Flamehaven Initiative commited on
Commit
d647970
·
1 Parent(s): 5d47b47

release: v1.8.0 mica runtime uplift

Browse files
CHANGELOG.md CHANGED
@@ -14,6 +14,21 @@ Rubric refinements and additions use patch versions (1.0.x).
14
 
15
  ---
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  ## [1.7.9] - 2026-05-31
18
 
19
  ### Changed
 
14
 
15
  ---
16
 
17
+ ## [1.8.0] - 2026-05-31
18
+
19
+ ### Added
20
+ - Added explicit MICA invocation runtime surfaces for session-start governance:
21
+ - `tools/mica_runtime.py --format session-report`
22
+ - `tools/mica_invoke.py --mode {natural|guided|forced}`
23
+ - `mica_invoke.bat` Windows wrapper
24
+ - Added `SECURITY.md` so the default deterministic scan boundary, advisory/provider boundary, and verification path are documented as first-class repository surfaces.
25
+ - Added focused regression coverage for the new MICA invocation/session-report path in `tests/test_mica_invocation.py`.
26
+
27
+ ### Changed
28
+ - Refreshed the tracked HTML preview artifact under `docs/assets/report-preview/yorkeccak_bio_report.html` from a real `1.8.0` generated report so the README/browser preview matches the current runtime surface.
29
+
30
+ ---
31
+
32
  ## [1.7.9] - 2026-05-31
33
 
34
  ### Changed
README.md CHANGED
@@ -23,7 +23,7 @@ pinned: false
23
 
24
  <p align="center">
25
  <a href="https://github.com/flamehaven01/STEM-BIO-AI/actions/workflows/python-package.yml"><img src="https://github.com/flamehaven01/STEM-BIO-AI/actions/workflows/python-package.yml/badge.svg" alt="CI"></a>
26
- <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/stable-v1.7.9-informational.svg" alt="v1.7.9"></a>
27
  <a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.9%2B-blue.svg" alt="Python 3.9+"></a>
28
  <a href="https://pypi.org/project/stem-ai/"><img src="https://img.shields.io/pypi/v/stem-ai.svg" alt="PyPI"></a>
29
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue.svg" alt="Apache 2.0"></a>
@@ -96,7 +96,7 @@ stem audit /path/to/bio-ai-repo --tier-gate T3 --quiet
96
 
97
  Clone the target repository first; the CLI operates on local paths only.
98
 
99
- Calibration profiles are implemented in `mirror_only` mode in `1.7.9`. `--policy` changes what profile is surfaced in artifacts, while `policy derive` and `policy simulate` provide governed preview lanes without mutating the authoritative deterministic score path. `policy simulate --profile-file <path>` allows local schema-valid profile experiments without registering a new named policy. In the current rule scope, `strict_clinical_adjacency` is the only release-grade named recommendation; stronger reproducibility postures still fall back to `preview_only` simulation deltas rather than a named profile.
100
 
101
  Researchers and domain specialists are expected to influence calibration through `derive`, `simulate`, and documented preview/profile proposals. The intent interview uses a governed `1–5` posture scale, while official score-affecting policy changes still require profile promotion rather than direct ad hoc tuning.
102
 
@@ -260,7 +260,7 @@ The plain `stem <repo>` and `stem scan <repo>` path now defaults to `--level 3`,
260
 
261
  Interactive features: sticky scroll-spy nav · repo hyperlink in the hero header · `?` tooltip icons on every metric · click-to-expand integrity cards · covered/gaps + domain filtering for AIRI risks · FAIL/WARN/PASS/INFO filter on the evidence ledger.
262
 
263
- Current `1.7.9` HTML semantics:
264
 
265
  - `Decision Path` explains score construction and policy posture with `Configured, Not Rewritten`
266
  - `Code Integrity` surfaces the split between `C4` fail-open exceptions, `C5` compliance/boundary integrity, and `C6` mock-auth/no-auth trust boundaries
@@ -394,7 +394,7 @@ How AIRI is used here:
394
  - AIRI does **not** prove harm, causality, clinical safety, or regulatory status
395
  - AIRI helps place local findings into a wider risk vocabulary for review
396
 
397
- In the current `1.7.9` line, AIRI is used through three local governed layers:
398
 
399
  1. full normalized local registry
400
  2. curated runtime bundle used by deterministic scans
@@ -515,14 +515,14 @@ See [CONTRIBUTING.md](CONTRIBUTING.md). High-value areas: rubric discrimination
515
 
516
  Preferred citation metadata lives in [`CITATION.cff`](CITATION.cff).
517
 
518
- Current concept DOI-backed archive for the `1.7.9` line:
519
  - <https://doi.org/10.5281/zenodo.20154479>
520
 
521
  ```bibtex
522
  @software{stem-bio-ai,
523
  author = {Yun, Kwansub},
524
  title = {STEM BIO-AI: Deterministic Evidence-Surface Scanner for Bio/Medical AI Repositories},
525
- version = {1.7.9},
526
  year = {2026},
527
  doi = {10.5281/zenodo.20154479},
528
  url = {https://doi.org/10.5281/zenodo.20154479}
 
23
 
24
  <p align="center">
25
  <a href="https://github.com/flamehaven01/STEM-BIO-AI/actions/workflows/python-package.yml"><img src="https://github.com/flamehaven01/STEM-BIO-AI/actions/workflows/python-package.yml/badge.svg" alt="CI"></a>
26
+ <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/stable-v1.8.0-informational.svg" alt="v1.8.0"></a>
27
  <a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.9%2B-blue.svg" alt="Python 3.9+"></a>
28
  <a href="https://pypi.org/project/stem-ai/"><img src="https://img.shields.io/pypi/v/stem-ai.svg" alt="PyPI"></a>
29
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue.svg" alt="Apache 2.0"></a>
 
96
 
97
  Clone the target repository first; the CLI operates on local paths only.
98
 
99
+ Calibration profiles are implemented in `mirror_only` mode in `1.8.0`. `--policy` changes what profile is surfaced in artifacts, while `policy derive` and `policy simulate` provide governed preview lanes without mutating the authoritative deterministic score path. `policy simulate --profile-file <path>` allows local schema-valid profile experiments without registering a new named policy. In the current rule scope, `strict_clinical_adjacency` is the only release-grade named recommendation; stronger reproducibility postures still fall back to `preview_only` simulation deltas rather than a named profile.
100
 
101
  Researchers and domain specialists are expected to influence calibration through `derive`, `simulate`, and documented preview/profile proposals. The intent interview uses a governed `1–5` posture scale, while official score-affecting policy changes still require profile promotion rather than direct ad hoc tuning.
102
 
 
260
 
261
  Interactive features: sticky scroll-spy nav · repo hyperlink in the hero header · `?` tooltip icons on every metric · click-to-expand integrity cards · covered/gaps + domain filtering for AIRI risks · FAIL/WARN/PASS/INFO filter on the evidence ledger.
262
 
263
+ Current `1.8.0` HTML semantics:
264
 
265
  - `Decision Path` explains score construction and policy posture with `Configured, Not Rewritten`
266
  - `Code Integrity` surfaces the split between `C4` fail-open exceptions, `C5` compliance/boundary integrity, and `C6` mock-auth/no-auth trust boundaries
 
394
  - AIRI does **not** prove harm, causality, clinical safety, or regulatory status
395
  - AIRI helps place local findings into a wider risk vocabulary for review
396
 
397
+ In the current `1.8.0` line, AIRI is used through three local governed layers:
398
 
399
  1. full normalized local registry
400
  2. curated runtime bundle used by deterministic scans
 
515
 
516
  Preferred citation metadata lives in [`CITATION.cff`](CITATION.cff).
517
 
518
+ Current concept DOI-backed archive for the `1.8.0` line:
519
  - <https://doi.org/10.5281/zenodo.20154479>
520
 
521
  ```bibtex
522
  @software{stem-bio-ai,
523
  author = {Yun, Kwansub},
524
  title = {STEM BIO-AI: Deterministic Evidence-Surface Scanner for Bio/Medical AI Repositories},
525
+ version = {1.8.0},
526
  year = {2026},
527
  doi = {10.5281/zenodo.20154479},
528
  url = {https://doi.org/10.5281/zenodo.20154479}
docs/ADVISORY_RUNTIME.md CHANGED
@@ -1,6 +1,6 @@
1
  # Advisory Runtime Boundary
2
 
3
- Version: 1.7.9
4
  Status: Public operational note for `stem advisory call`
5
 
6
  ---
@@ -9,11 +9,11 @@ Status: Public operational note for `stem advisory call`
9
 
10
  `stem advisory packet` and `stem advisory validate` are deterministic local contract operations.
11
 
12
- `stem advisory call` is different. It is the explicit runtime boundary where a downstream provider adapter may be invoked. In v1.7.9, this mode exists to make the boundary visible and enforce its security contract before real provider execution is attached.
13
 
14
  ---
15
 
16
- ## What `stem advisory call` Does In v1.7.9
17
 
18
  - builds the same provider-budgeted advisory input packet
19
  - exports provider request metadata
@@ -86,7 +86,7 @@ Artifacts are sanitized before write. This is the last boundary if upstream reda
86
 
87
  ## What This Mode Does Not Yet Do
88
 
89
- v1.7.9 does **not** ship a live provider adapter.
90
 
91
  That means:
92
 
 
1
  # Advisory Runtime Boundary
2
 
3
+ Version: 1.8.0
4
  Status: Public operational note for `stem advisory call`
5
 
6
  ---
 
9
 
10
  `stem advisory packet` and `stem advisory validate` are deterministic local contract operations.
11
 
12
+ `stem advisory call` is different. It is the explicit runtime boundary where a downstream provider adapter may be invoked. In v1.8.0, this mode exists to make the boundary visible and enforce its security contract before real provider execution is attached.
13
 
14
  ---
15
 
16
+ ## What `stem advisory call` Does In v1.8.0
17
 
18
  - builds the same provider-budgeted advisory input packet
19
  - exports provider request metadata
 
86
 
87
  ## What This Mode Does Not Yet Do
88
 
89
+ v1.8.0 does **not** ship a live provider adapter.
90
 
91
  That means:
92
 
docs/ADVISORY_SECRET_HANDLING.md CHANGED
@@ -1,6 +1,6 @@
1
  # Advisory Secret Handling
2
 
3
- Version: 1.7.9
4
  Status: Operational policy for provider-neutral advisory handoff
5
 
6
  ---
@@ -123,7 +123,7 @@ This keeps deterministic scoring and external provider execution on separate tru
123
 
124
  ## Runtime Guardrails
125
 
126
- `stem advisory call` is an explicit provider-call boundary. In v1.7.9 the runtime exports:
127
 
128
  - centralized redaction policy
129
  - adapter logging policy
 
1
  # Advisory Secret Handling
2
 
3
+ Version: 1.8.0
4
  Status: Operational policy for provider-neutral advisory handoff
5
 
6
  ---
 
123
 
124
  ## Runtime Guardrails
125
 
126
+ `stem advisory call` is an explicit provider-call boundary. In v1.8.0 the runtime exports:
127
 
128
  - centralized redaction policy
129
  - adapter logging policy
docs/AIRI_DATA_GOVERNANCE.md CHANGED
@@ -1,6 +1,6 @@
1
  # AIRI Data Governance
2
 
3
- Version: 1.7.9
4
  Status: Active governance note for the local AIRI data layer
5
 
6
  ---
 
1
  # AIRI Data Governance
2
 
3
+ Version: 1.8.0
4
  Status: Active governance note for the local AIRI data layer
5
 
6
  ---
docs/API_CONTRACT.md CHANGED
@@ -1,6 +1,6 @@
1
  # STEM BIO-AI Public API Contract
2
 
3
- Version: 1.7.9
4
  Status: **Stable**
5
  Supersedes: historical v1.5 draft contract
6
 
@@ -71,7 +71,7 @@ All fields below are present in every `audit_repository()` result.
71
  | Field | Type | Description |
72
  |-------|------|-------------|
73
  | `schema_version` | string | `"stem-ai-local-cli-result-v1.6"` — bumped on breaking change |
74
- | `stem_ai_version` | string | Package version (e.g. `"1.7.9"`) |
75
  | `generated_at_local` | string | ISO 8601 date of scan |
76
  | `execution_mode` | string | Always `"LOCAL_ANALYSIS"` for the CLI |
77
  | `method` | string | Human-readable method description |
@@ -101,10 +101,10 @@ All fields below are present in every `audit_repository()` result.
101
  | `calibration_profile.tool_version_last_validated` | string | Last tool version whose runtime constants were checked against this profile |
102
  | `calibration_profile.profile_name` | string | Active profile label selected by CLI `--policy` |
103
  | `calibration_profile.profile_status` | string | Profile lifecycle status (`authoritative_release`, `experimental`, etc.) |
104
- | `calibration_profile.profile_read_mode` | string | `"mirror_only"` in `1.7.9`; later `"authoritative"` when scan scoring reads policy values directly |
105
  | `calibration_profile.policy_sha256` | string | Canonical SHA256 surfaced by the runtime artifact; profile files may carry `null` before authoritative read-through |
106
 
107
- In `1.7.9`, `scan --policy <name>` still keeps authoritative scan scoring on the deterministic runtime-constant path. Policy selection changes surfaced metadata only; governed score-delta preview belongs to `stem policy simulate`.
108
 
109
  ### Target (Locked)
110
 
 
1
  # STEM BIO-AI Public API Contract
2
 
3
+ Version: 1.8.0
4
  Status: **Stable**
5
  Supersedes: historical v1.5 draft contract
6
 
 
71
  | Field | Type | Description |
72
  |-------|------|-------------|
73
  | `schema_version` | string | `"stem-ai-local-cli-result-v1.6"` — bumped on breaking change |
74
+ | `stem_ai_version` | string | Package version (e.g. `"1.8.0"`) |
75
  | `generated_at_local` | string | ISO 8601 date of scan |
76
  | `execution_mode` | string | Always `"LOCAL_ANALYSIS"` for the CLI |
77
  | `method` | string | Human-readable method description |
 
101
  | `calibration_profile.tool_version_last_validated` | string | Last tool version whose runtime constants were checked against this profile |
102
  | `calibration_profile.profile_name` | string | Active profile label selected by CLI `--policy` |
103
  | `calibration_profile.profile_status` | string | Profile lifecycle status (`authoritative_release`, `experimental`, etc.) |
104
+ | `calibration_profile.profile_read_mode` | string | `"mirror_only"` in `1.8.0`; later `"authoritative"` when scan scoring reads policy values directly |
105
  | `calibration_profile.policy_sha256` | string | Canonical SHA256 surfaced by the runtime artifact; profile files may carry `null` before authoritative read-through |
106
 
107
+ In `1.8.0`, `scan --policy <name>` still keeps authoritative scan scoring on the deterministic runtime-constant path. Policy selection changes surfaced metadata only; governed score-delta preview belongs to `stem policy simulate`.
108
 
109
  ### Target (Locked)
110
 
docs/ARCHITECTURE.md CHANGED
@@ -1,6 +1,6 @@
1
  # STEM BIO-AI Architecture
2
 
3
- This document describes the implemented repository structure and runtime boundaries in `v1.7.9`.
4
 
5
  ## Purpose
6
 
 
1
  # STEM BIO-AI Architecture
2
 
3
+ This document describes the implemented repository structure and runtime boundaries in `v1.8.0`.
4
 
5
  ## Purpose
6
 
docs/CALIBRATION_PROFILE_DESIGN.md CHANGED
@@ -1,7 +1,7 @@
1
  # STEM BIO-AI Calibration Profile Architecture
2
 
3
- Version: 1.7.9
4
- Status: implemented mirror-only calibration contract with derive/simulate preview surfaces; 1.7.9 preview hardening complete; authoritative read-through remains future work
5
 
6
  ---
7
 
@@ -9,7 +9,7 @@ Status: implemented mirror-only calibration contract with derive/simulate previe
9
 
10
  STEM BIO-AI already separates formal scoring, deterministic diagnostics, regulatory traceability, and AI advisory into distinct lanes.
11
 
12
- As of `1.7.9`, the repository ships a real calibration architecture:
13
 
14
  - packaged profiles in `policy/`
15
  - schema and runtime validation
@@ -25,7 +25,7 @@ What is still not fully separated is the **authoritative score read-through surf
25
  - evidence-only versus score-authoritative detector status
26
  - reasoning-model status labels
27
 
28
- In `1.7.9`, most score-affecting values are still implemented as runtime constants plus prose in `SCORING_RATIONALE.md`, even though mirror-only profile metadata, CLI-visible profile selection, and derive/simulate preview surfaces are already live. That is acceptable for the current release line, but it still creates a long-term maintenance risk:
29
 
30
  > if calibration values are easy to change but hard to govern, the architecture will drift even if the lane boundaries remain conceptually correct.
31
 
@@ -143,7 +143,7 @@ Current shipped fields:
143
  "policy_schema_version": "1",
144
  "policy_version": "ca-policy-1.0",
145
  "tool_version_introduced": "1.6.5",
146
- "tool_version_last_validated": "1.7.9",
147
  "profile_name": "default",
148
  "profile_status": "authoritative_release",
149
  "profile_read_mode": "mirror_only",
@@ -200,7 +200,7 @@ Current shipped fields:
200
  }
201
  ```
202
 
203
- This is the active shipped schema family in `1.7.9`.
204
 
205
  Schema notes:
206
 
@@ -209,7 +209,7 @@ Schema notes:
209
  - normalization should be represented as named semantics plus parameters, not a free-form expression string
210
  - `policy_version` should be independent from the tool release version
211
  - `profile_read_mode` must distinguish mirror-only exposure from authoritative runtime loading
212
- - `stage_3_policy.b2_partial_credit_mode` is currently a declared mirror-only profile field; authoritative Stage 3 B2 scoring in `1.7.9` still follows the hardcoded scanner path and does not yet read this value directly
213
  - `governance_sources.ca_taxonomy_version` must increment whenever runtime CA trigger membership, severity mapping, or cap-relevant phrase semantics change
214
 
215
  Current `profile_status` state set:
@@ -507,7 +507,7 @@ Current intent variables:
507
  - `reproducibility_priority`
508
  - `structured_limitations_requirement`
509
 
510
- Current `1.7.9` decision rules:
511
 
512
  | Condition | Outcome |
513
  |---|---|
@@ -515,7 +515,7 @@ Current `1.7.9` decision rules:
515
  | all four values are `2` or `3` | keep `default` |
516
  | no named profile rule matches | generate `preview_only` profile delta from explicit bounded deltas only |
517
 
518
- This narrow table is intentional. It keeps the translation layer visible, reviewable, and testable without pretending that every strong posture already has a release-grade named profile. In particular, `reproducibility_first` remains deferred in `1.7.9`; high reproducibility answers still fall back to `preview_only` Stage 4 emphasis rather than a named recommendation.
519
 
520
  Rule priority:
521
 
@@ -567,7 +567,7 @@ Current bounded deltas used in preview-only mode:
567
  | `structured_limitations_requirement >= 4` with no named-profile match | require stricter Stage 3 B2 partial-credit posture only |
568
  | multiple strong answers with no named-profile match | combine only explicitly listed bounded deltas; do not infer new arithmetic outside documented policy fields |
569
 
570
- These are active preview-only deltas in `1.7.9`. They are not hidden similarity operations and they do not mutate the authoritative scan path.
571
 
572
  ### 11.2.4 Comparison Output
573
 
@@ -599,11 +599,11 @@ The current implementation defines two named profiles:
599
  Deferred until explicitly defined:
600
 
601
  - `documentation_lenient`
602
- - not active in the `1.7.9` rule table
603
  - `research_repo_baseline`
604
- - not active in the `1.7.9` rule table
605
  - `biosecurity_cautious`
606
- - not active in the `1.7.9` rule table
607
  - `reproducibility_first`
608
  - intentionally deferred until an actual policy diff exists and a release-grade recommendation path is defined
609
 
 
1
  # STEM BIO-AI Calibration Profile Architecture
2
 
3
+ Version: 1.8.0
4
+ Status: implemented mirror-only calibration contract with derive/simulate preview surfaces; 1.8.0 preview hardening complete; authoritative read-through remains future work
5
 
6
  ---
7
 
 
9
 
10
  STEM BIO-AI already separates formal scoring, deterministic diagnostics, regulatory traceability, and AI advisory into distinct lanes.
11
 
12
+ As of `1.8.0`, the repository ships a real calibration architecture:
13
 
14
  - packaged profiles in `policy/`
15
  - schema and runtime validation
 
25
  - evidence-only versus score-authoritative detector status
26
  - reasoning-model status labels
27
 
28
+ In `1.8.0`, most score-affecting values are still implemented as runtime constants plus prose in `SCORING_RATIONALE.md`, even though mirror-only profile metadata, CLI-visible profile selection, and derive/simulate preview surfaces are already live. That is acceptable for the current release line, but it still creates a long-term maintenance risk:
29
 
30
  > if calibration values are easy to change but hard to govern, the architecture will drift even if the lane boundaries remain conceptually correct.
31
 
 
143
  "policy_schema_version": "1",
144
  "policy_version": "ca-policy-1.0",
145
  "tool_version_introduced": "1.6.5",
146
+ "tool_version_last_validated": "1.8.0",
147
  "profile_name": "default",
148
  "profile_status": "authoritative_release",
149
  "profile_read_mode": "mirror_only",
 
200
  }
201
  ```
202
 
203
+ This is the active shipped schema family in `1.8.0`.
204
 
205
  Schema notes:
206
 
 
209
  - normalization should be represented as named semantics plus parameters, not a free-form expression string
210
  - `policy_version` should be independent from the tool release version
211
  - `profile_read_mode` must distinguish mirror-only exposure from authoritative runtime loading
212
+ - `stage_3_policy.b2_partial_credit_mode` is currently a declared mirror-only profile field; authoritative Stage 3 B2 scoring in `1.8.0` still follows the hardcoded scanner path and does not yet read this value directly
213
  - `governance_sources.ca_taxonomy_version` must increment whenever runtime CA trigger membership, severity mapping, or cap-relevant phrase semantics change
214
 
215
  Current `profile_status` state set:
 
507
  - `reproducibility_priority`
508
  - `structured_limitations_requirement`
509
 
510
+ Current `1.8.0` decision rules:
511
 
512
  | Condition | Outcome |
513
  |---|---|
 
515
  | all four values are `2` or `3` | keep `default` |
516
  | no named profile rule matches | generate `preview_only` profile delta from explicit bounded deltas only |
517
 
518
+ This narrow table is intentional. It keeps the translation layer visible, reviewable, and testable without pretending that every strong posture already has a release-grade named profile. In particular, `reproducibility_first` remains deferred in `1.8.0`; high reproducibility answers still fall back to `preview_only` Stage 4 emphasis rather than a named recommendation.
519
 
520
  Rule priority:
521
 
 
567
  | `structured_limitations_requirement >= 4` with no named-profile match | require stricter Stage 3 B2 partial-credit posture only |
568
  | multiple strong answers with no named-profile match | combine only explicitly listed bounded deltas; do not infer new arithmetic outside documented policy fields |
569
 
570
+ These are active preview-only deltas in `1.8.0`. They are not hidden similarity operations and they do not mutate the authoritative scan path.
571
 
572
  ### 11.2.4 Comparison Output
573
 
 
599
  Deferred until explicitly defined:
600
 
601
  - `documentation_lenient`
602
+ - not active in the `1.8.0` rule table
603
  - `research_repo_baseline`
604
+ - not active in the `1.8.0` rule table
605
  - `biosecurity_cautious`
606
+ - not active in the `1.8.0` rule table
607
  - `reproducibility_first`
608
  - intentionally deferred until an actual policy diff exists and a release-grade recommendation path is defined
609
 
docs/CLI_REFERENCE.md CHANGED
@@ -1,13 +1,13 @@
1
  # CLI Reference
2
 
3
- **Version:** 1.7.9
4
  **Status:** Stable
5
 
6
  ---
7
 
8
  ## Command Model
9
 
10
- The 1.7.9 CLI is organized around workflows instead of one long option string, exposes named calibration profiles directly, and adds auditable researcher-intent derive/simulate surfaces.
11
 
12
  ```bash
13
  stem <folder> [OPTIONS] # shortcut for `stem scan <folder>`
@@ -90,7 +90,7 @@ The shorthand remains:
90
  stem /path/to/repo
91
  ```
92
 
93
- Policy selection remains mirror-only in scans in `1.7.9`: the chosen profile is surfaced in outputs and summaries, and `policy derive` / `policy simulate` preview governed posture changes without turning those deltas into authoritative scan behavior.
94
 
95
  Layer 2 AST contract detectors (`CC1` / `CC2` / `CC3`) run during normal scans
96
  and surface through:
@@ -130,7 +130,7 @@ stem policy simulate /path/to/repo \
130
 
131
  In this mode, the profile file must remain schema-valid and `mirror_only`. The file is used for preview only and is not added to the packaged named-profile set.
132
 
133
- Current `1.7.9` rule scope is intentionally narrow:
134
 
135
  - strong clinical strictness maps to `strict_clinical_adjacency`
136
  - balanced `2..3` answers keep `default`
 
1
  # CLI Reference
2
 
3
+ **Version:** 1.8.0
4
  **Status:** Stable
5
 
6
  ---
7
 
8
  ## Command Model
9
 
10
+ The 1.8.0 CLI is organized around workflows instead of one long option string, exposes named calibration profiles directly, and adds auditable researcher-intent derive/simulate surfaces.
11
 
12
  ```bash
13
  stem <folder> [OPTIONS] # shortcut for `stem scan <folder>`
 
90
  stem /path/to/repo
91
  ```
92
 
93
+ Policy selection remains mirror-only in scans in `1.8.0`: the chosen profile is surfaced in outputs and summaries, and `policy derive` / `policy simulate` preview governed posture changes without turning those deltas into authoritative scan behavior.
94
 
95
  Layer 2 AST contract detectors (`CC1` / `CC2` / `CC3`) run during normal scans
96
  and surface through:
 
130
 
131
  In this mode, the profile file must remain schema-valid and `mirror_only`. The file is used for preview only and is not added to the packaged named-profile set.
132
 
133
+ Current `1.8.0` rule scope is intentionally narrow:
134
 
135
  - strong clinical strictness maps to `strict_clinical_adjacency`
136
  - balanced `2..3` answers keep `default`
docs/DETERMINISTIC_DIAGNOSTICS.md CHANGED
@@ -1,5 +1,5 @@
1
  # Deterministic Diagnostics for Bio-AI Integrity
2
- ## Version 1.7.9 (Active deterministic bio diagnostics note)
3
 
4
  This document is the active deterministic diagnostics specification for STEM BIO-AI's bio-focused deterministic lane. The local lane is implemented as evidence-bearing repository diagnostics inside `stem_ai/detector_bio.py`. The optional AI lane remains advisory, opt-in, and non-authoritative.
5
 
@@ -22,7 +22,7 @@ The local deterministic lane is authoritative for hard findings. The AI lane is
22
 
23
  ---
24
 
25
- ## 1A. Implementation Status (STEM BIO-AI v1.7.9)
26
 
27
  Implemented now:
28
  1. `SMILES-DECEPT` Lane A0 conservative surface scanner
@@ -136,7 +136,7 @@ Not yet implemented:
136
  ---
137
 
138
  ## 3. Integration with STEM-BIO-AI CORE
139
- These diagnostics align with the current **Code Integrity (C1-C6)** and bio-diagnostic surfaces in the `1.7.9` line:
140
 
141
  - **SMILES-DECEPT** -> bio deterministic diagnostics surface first; possible future linkage to `C3` or a dedicated bio-integrity lane after benchmark review
142
  - **MOUNT-AUDIT** -> future hardening candidate; not currently shipped in the active runtime
 
1
  # Deterministic Diagnostics for Bio-AI Integrity
2
+ ## Version 1.8.0 (Active deterministic bio diagnostics note)
3
 
4
  This document is the active deterministic diagnostics specification for STEM BIO-AI's bio-focused deterministic lane. The local lane is implemented as evidence-bearing repository diagnostics inside `stem_ai/detector_bio.py`. The optional AI lane remains advisory, opt-in, and non-authoritative.
5
 
 
22
 
23
  ---
24
 
25
+ ## 1A. Implementation Status (STEM BIO-AI v1.8.0)
26
 
27
  Implemented now:
28
  1. `SMILES-DECEPT` Lane A0 conservative surface scanner
 
136
  ---
137
 
138
  ## 3. Integration with STEM-BIO-AI CORE
139
+ These diagnostics align with the current **Code Integrity (C1-C6)** and bio-diagnostic surfaces in the `1.8.0` line:
140
 
141
  - **SMILES-DECEPT** -> bio deterministic diagnostics surface first; possible future linkage to `C3` or a dedicated bio-integrity lane after benchmark review
142
  - **MOUNT-AUDIT** -> future hardening candidate; not currently shipped in the active runtime
docs/EXAMPLE_AUDITS.md CHANGED
@@ -1,6 +1,6 @@
1
  # Example Audits
2
 
3
- Version: 1.7.9
4
  Status: Public proof-surface index
5
 
6
  ---
@@ -16,7 +16,7 @@ This project is easier to evaluate through outputs than through claims. This pag
16
  - Report preview pages: [`docs/assets/report-preview/`](assets/report-preview)
17
  - Sample PDF: [`yorkeccak_bio_detailed_7p.pdf`](assets/report-preview/yorkeccak_bio_detailed_7p.pdf)
18
 
19
- Use this when you want to inspect the current `1.7.9` full 7-page packet shape, Stage 4 separation, AIRI reasoning, and closeout metadata.
20
 
21
  ---
22
 
 
1
  # Example Audits
2
 
3
+ Version: 1.8.0
4
  Status: Public proof-surface index
5
 
6
  ---
 
16
  - Report preview pages: [`docs/assets/report-preview/`](assets/report-preview)
17
  - Sample PDF: [`yorkeccak_bio_detailed_7p.pdf`](assets/report-preview/yorkeccak_bio_detailed_7p.pdf)
18
 
19
+ Use this when you want to inspect the current `1.8.0` full 7-page packet shape, Stage 4 separation, AIRI reasoning, and closeout metadata.
20
 
21
  ---
22
 
docs/MICA_MEMORY.md CHANGED
@@ -1,6 +1,6 @@
1
  # STEM BIO-AI MICA Memory Layer
2
 
3
- Version: 1.7.9
4
  MICA Contract: 0.2.4
5
  Status: Active operational memory contract
6
 
 
1
  # STEM BIO-AI MICA Memory Layer
2
 
3
+ Version: 1.8.0
4
  MICA Contract: 0.2.4
5
  Status: Active operational memory contract
6
 
docs/SCORING_RATIONALE.md CHANGED
@@ -1,6 +1,6 @@
1
  # STEM BIO-AI Scoring Rationale
2
 
3
- Version: 1.7.9
4
  Status: Authoritative design record. Update with each structural score change.
5
 
6
  ---
@@ -33,7 +33,7 @@ In LOCAL_ANALYSIS mode, Stage 2 cross-platform verification is unavailable. The
33
 
34
  ## 3. Key Terms
35
 
36
- - **CA-DIRECT / CA-INDIRECT**: Clinical-adjacent severity classes derived from visible repository language. They govern cap policy, not clinical truth. In `1.7.9`, the active runtime taxonomy remains `ca-taxonomy-v1` implemented in `scanner.py`; reference markdown is informative, not authoritative.
37
  - **Stage 2R**: Repo-local consistency substitute for full Stage 2 cross-platform verification in LOCAL_ANALYSIS mode.
38
  - **score_cap**: Post-score ceiling applied when clinical-adjacent boundary conditions are not satisfied.
39
  - **C1_penalty**: Only code-integrity item that currently subtracts from the final score.
@@ -265,7 +265,7 @@ C1–C6 are code-level or governance-boundary checks available only in LOCAL_ANA
265
 
266
  Only C1 affects the final score. C2–C6 are reported as risk surfaces because they represent elevated engineering or governance concern but do not rise to the level of score penalties in the current calibration.
267
 
268
- The C4/C5/C6 split is deliberate in `1.7.9`:
269
 
270
  - `C4` is reserved for executable fail-open exception behavior in code.
271
  - `C5` is reserved for compliance, legal, or clinical-boundary integrity warnings surfaced from reviewed repository sources.
 
1
  # STEM BIO-AI Scoring Rationale
2
 
3
+ Version: 1.8.0
4
  Status: Authoritative design record. Update with each structural score change.
5
 
6
  ---
 
33
 
34
  ## 3. Key Terms
35
 
36
+ - **CA-DIRECT / CA-INDIRECT**: Clinical-adjacent severity classes derived from visible repository language. They govern cap policy, not clinical truth. In `1.8.0`, the active runtime taxonomy remains `ca-taxonomy-v1` implemented in `scanner.py`; reference markdown is informative, not authoritative.
37
  - **Stage 2R**: Repo-local consistency substitute for full Stage 2 cross-platform verification in LOCAL_ANALYSIS mode.
38
  - **score_cap**: Post-score ceiling applied when clinical-adjacent boundary conditions are not satisfied.
39
  - **C1_penalty**: Only code-integrity item that currently subtracts from the final score.
 
265
 
266
  Only C1 affects the final score. C2–C6 are reported as risk surfaces because they represent elevated engineering or governance concern but do not rise to the level of score penalties in the current calibration.
267
 
268
+ The C4/C5/C6 split is deliberate in `1.8.0`:
269
 
270
  - `C4` is reserved for executable fail-open exception behavior in code.
271
  - `C5` is reserved for compliance, legal, or clinical-boundary integrity warnings surfaced from reviewed repository sources.
docs/UI_HTML_REPORT.md CHANGED
@@ -1,9 +1,9 @@
1
  # HTML Report Dashboard
2
 
3
- Version: 1.7.9
4
  Status: Active HTML/PDF surface note
5
 
6
- STEM BIO-AI ships a **self-contained interactive HTML dashboard** as the primary human-readable output format. In the current `1.7.9` line, the dashboard reflects the post-`C4/C5/C6` code-integrity split, AIRI detector-to-risk reasoning, policy-surface metadata, and audit-freshness summaries. The report is a single `.html` file with inline CSS, SVG, and JavaScript — zero external dependencies, fully offline-capable.
7
 
8
  ## Generating the Report
9
 
@@ -120,7 +120,7 @@ The 5-page and 7-page packets both include AIRI coverage and bounded `why:` expl
120
 
121
  ![HTML Report Preview](assets/html_report_preview.png)
122
 
123
- *Screenshot: current 1.7.9 HTML dashboard surface with the post-C4/C5/C6 integrity split and AIRI domain filtering.*
124
 
125
  ## Color Palette
126
 
@@ -158,7 +158,7 @@ This helps reviewers understand *why* a risk appears in AIRI coverage without im
158
 
159
  Coverage rate = covered risk IDs / total IDs in detector scope.
160
 
161
- Representative active mapping rows in the `1.7.9` line:
162
 
163
  | Detector | AIRI Risk IDs Covered |
164
  |----------|----------------------|
 
1
  # HTML Report Dashboard
2
 
3
+ Version: 1.8.0
4
  Status: Active HTML/PDF surface note
5
 
6
+ STEM BIO-AI ships a **self-contained interactive HTML dashboard** as the primary human-readable output format. In the current `1.8.0` line, the dashboard reflects the post-`C4/C5/C6` code-integrity split, AIRI detector-to-risk reasoning, policy-surface metadata, and audit-freshness summaries. The report is a single `.html` file with inline CSS, SVG, and JavaScript — zero external dependencies, fully offline-capable.
7
 
8
  ## Generating the Report
9
 
 
120
 
121
  ![HTML Report Preview](assets/html_report_preview.png)
122
 
123
+ *Screenshot: current 1.8.0 HTML dashboard surface with the post-C4/C5/C6 integrity split and AIRI domain filtering.*
124
 
125
  ## Color Palette
126
 
 
158
 
159
  Coverage rate = covered risk IDs / total IDs in detector scope.
160
 
161
+ Representative active mapping rows in the `1.8.0` line:
162
 
163
  | Detector | AIRI Risk IDs Covered |
164
  |----------|----------------------|
docs/assets/report-preview/yorkeccak_bio_report.html CHANGED
The diff for this file is too large to render. See raw diff
 
pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
 
5
  [project]
6
  name = "stem-ai"
7
- version = "1.7.9"
8
  description = "STEM BIO-AI deterministic evidence-surface scanner for bio/medical AI repositories"
9
  readme = "README.md"
10
  requires-python = ">=3.9"
 
4
 
5
  [project]
6
  name = "stem-ai"
7
+ version = "1.8.0"
8
  description = "STEM BIO-AI deterministic evidence-surface scanner for bio/medical AI repositories"
9
  readme = "README.md"
10
  requires-python = ">=3.9"
stem_ai/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
  """STEM BIO-AI local audit CLI."""
2
 
3
- __version__ = "1.7.9"
4
 
5
 
6
 
 
1
  """STEM BIO-AI local audit CLI."""
2
 
3
+ __version__ = "1.8.0"
4
 
5
 
6
 
stem_ai/cli.py CHANGED
@@ -228,7 +228,7 @@ def _add_shared_arguments(parser: argparse.ArgumentParser, *, default_format: st
228
  "--policy",
229
  choices=_policy_choices(),
230
  default="default",
231
- help="Named calibration profile to surface in the result (1.7.9 keeps scan-time policy selection mirror-only)",
232
  )
233
  parser.add_argument(
234
  "--explain",
@@ -618,7 +618,7 @@ def _print_policy_explain(profile_name: str) -> int:
618
  print(f"Read Mode: {profile['profile_read_mode']}")
619
  print(
620
  "Scoring Effect: "
621
- "mirror-only in 1.7.9; selection is surfaced in artifacts but does not yet reweight score computation"
622
  )
623
  print()
624
  print(
@@ -734,7 +734,7 @@ def _print_simulation_tail(simulation: dict) -> None:
734
  print(f"Score Delta: {simulation['score_delta']:+d}")
735
  print(f"Raw Delta: {simulation['raw_score_delta']:+d}")
736
  if simulation["replication_posture_changed"] and not simulation["formal_score_changed"]:
737
- print("Formal Score: unchanged; Stage 4 remains a separate replication lane in 1.7.9")
738
 
739
 
740
  def _print_policy_derive(args: argparse.Namespace) -> int:
 
228
  "--policy",
229
  choices=_policy_choices(),
230
  default="default",
231
+ help="Named calibration profile to surface in the result (1.8.0 keeps scan-time policy selection mirror-only)",
232
  )
233
  parser.add_argument(
234
  "--explain",
 
618
  print(f"Read Mode: {profile['profile_read_mode']}")
619
  print(
620
  "Scoring Effect: "
621
+ "mirror-only in 1.8.0; selection is surfaced in artifacts but does not yet reweight score computation"
622
  )
623
  print()
624
  print(
 
734
  print(f"Score Delta: {simulation['score_delta']:+d}")
735
  print(f"Raw Delta: {simulation['raw_score_delta']:+d}")
736
  if simulation["replication_posture_changed"] and not simulation["formal_score_changed"]:
737
+ print("Formal Score: unchanged; Stage 4 remains a separate replication lane in 1.8.0")
738
 
739
 
740
  def _print_policy_derive(args: argparse.Namespace) -> int:
stem_ai/policy_intent.py CHANGED
@@ -141,7 +141,7 @@ def simulate_policy_outcome(
141
  if replication_posture_changed and final_score == baseline_final:
142
  notes.append(
143
  "Formal score remained unchanged because Stage 4 is still a separate "
144
- "replication lane in 1.7.9."
145
  )
146
 
147
  simulation = {
 
141
  if replication_posture_changed and final_score == baseline_final:
142
  notes.append(
143
  "Formal score remained unchanged because Stage 4 is still a separate "
144
+ "replication lane in 1.8.0."
145
  )
146
 
147
  simulation = {
stem_ai/render.py CHANGED
@@ -335,7 +335,7 @@ def _calibration_effect_note(calibration: dict[str, Any]) -> str | None:
335
  if calibration.get("profile_read_mode") != "mirror_only":
336
  return None
337
  return (
338
- "mirror-only in 1.7.9 — selected profile metadata is surfaced in artifacts, "
339
  "but authoritative scan scoring still follows deterministic runtime constants. "
340
  "Preview-only posture changes, including Stage 4 replication emphasis, do not "
341
  "change the formal score until a future read-through phase. "
 
335
  if calibration.get("profile_read_mode") != "mirror_only":
336
  return None
337
  return (
338
+ "mirror-only in 1.8.0 — selected profile metadata is surfaced in artifacts, "
339
  "but authoritative scan scoring still follows deterministic runtime constants. "
340
  "Preview-only posture changes, including Stage 4 replication emphasis, do not "
341
  "change the formal score until a future read-through phase. "
tests/test_scanner_regressions.py CHANGED
@@ -2452,10 +2452,10 @@ def test_markdown_and_explain_surface_calibration_profile(tmp_path: Path) -> Non
2452
  html = render_html(result)
2453
 
2454
  assert "**Calibration Profile:** `default` (`ca-policy-1.0`, `mirror_only`, `authoritative_release`)" in markdown
2455
- assert "**Calibration Effect:** mirror-only in 1.7.9" in markdown
2456
  assert "Stage 4 replication emphasis" in markdown
2457
  assert "Policy : default [ca-policy-1.0; mirror_only; authoritative_release]" in explain
2458
- assert "Policy Mode: mirror-only in 1.7.9" in explain
2459
  assert "Stage 4 replication emphasis" in explain
2460
  assert "authoritative_release" in html
2461
  assert "mirror_only" in html
@@ -2508,7 +2508,7 @@ def test_policy_explain_cli_surfaces_profile_details(capsys) -> None:
2508
 
2509
  assert code == 0
2510
  assert "STEM BIO-AI policy: strict_clinical_adjacency" in captured.out
2511
- assert "Scoring Effect: mirror-only in 1.7.9" in captured.out
2512
  assert "Clinical Caps: no_disclaimer_cap=60 | t0_hard_floor_cap=35" in captured.out
2513
  assert "Default Diff:" in captured.out
2514
 
@@ -2861,7 +2861,7 @@ def test_policy_simulate_cli_accepts_local_profile_file(tmp_path: Path, capsys)
2861
  assert "Profile File:" in captured.out
2862
  assert "Profile Hash:" in captured.out
2863
  assert "Replication: baseline=baseline | simulation=stronger_than_baseline" in captured.out
2864
- assert "Formal Score: unchanged; Stage 4 remains a separate replication lane in 1.7.9" in captured.out
2865
 
2866
 
2867
  def test_policy_simulate_cli_rejects_mixing_profile_file_and_intent_answers(tmp_path: Path) -> None:
 
2452
  html = render_html(result)
2453
 
2454
  assert "**Calibration Profile:** `default` (`ca-policy-1.0`, `mirror_only`, `authoritative_release`)" in markdown
2455
+ assert "**Calibration Effect:** mirror-only in 1.8.0" in markdown
2456
  assert "Stage 4 replication emphasis" in markdown
2457
  assert "Policy : default [ca-policy-1.0; mirror_only; authoritative_release]" in explain
2458
+ assert "Policy Mode: mirror-only in 1.8.0" in explain
2459
  assert "Stage 4 replication emphasis" in explain
2460
  assert "authoritative_release" in html
2461
  assert "mirror_only" in html
 
2508
 
2509
  assert code == 0
2510
  assert "STEM BIO-AI policy: strict_clinical_adjacency" in captured.out
2511
+ assert "Scoring Effect: mirror-only in 1.8.0" in captured.out
2512
  assert "Clinical Caps: no_disclaimer_cap=60 | t0_hard_floor_cap=35" in captured.out
2513
  assert "Default Diff:" in captured.out
2514
 
 
2861
  assert "Profile File:" in captured.out
2862
  assert "Profile Hash:" in captured.out
2863
  assert "Replication: baseline=baseline | simulation=stronger_than_baseline" in captured.out
2864
+ assert "Formal Score: unchanged; Stage 4 remains a separate replication lane in 1.8.0" in captured.out
2865
 
2866
 
2867
  def test_policy_simulate_cli_rejects_mixing_profile_file_and_intent_answers(tmp_path: Path) -> None: