diff --git a/registry/index.json b/registry/index.json
index 6ffea353..82fd7d35 100644
--- a/registry/index.json
+++ b/registry/index.json
@@ -16,7 +16,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
}
]
}
diff --git a/registry/packages/yao-meta-skill.json b/registry/packages/yao-meta-skill.json
index 8688b4b3..00e626e9 100644
--- a/registry/packages/yao-meta-skill.json
+++ b/registry/packages/yao-meta-skill.json
@@ -16,8 +16,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
"compatibility": {
"openai": "pass",
@@ -48,7 +48,7 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
diff --git a/reports/adoption_drift_report.json b/reports/adoption_drift_report.json
index 12204847..2d99ca55 100644
--- a/reports/adoption_drift_report.json
+++ b/reports/adoption_drift_report.json
@@ -1,7 +1,7 @@
{
"ok": true,
"schema_version": "2.0",
- "generated_at": "2026-06-16T20:08:23Z",
+ "generated_at": "2026-06-16T20:21:16Z",
"skill_dir": ".",
"privacy_contract": {
"storage": "local-first",
diff --git a/reports/architecture_maintainability.json b/reports/architecture_maintainability.json
index 755a7340..f3106937 100644
--- a/reports/architecture_maintainability.json
+++ b/reports/architecture_maintainability.json
@@ -4,10 +4,10 @@
"generated_at": "2026-06-13",
"skill_dir": ".",
"summary": {
- "python_file_count": 224,
- "script_file_count": 148,
+ "python_file_count": 225,
+ "script_file_count": 149,
"test_file_count": 76,
- "internal_module_count": 64,
+ "internal_module_count": 65,
"cli_script_count": 86,
"command_handler_count": 68,
"entrypoint_command_handler_count": 18,
@@ -48,14 +48,6 @@
"early_watch": false,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
- {
- "path": "scripts/render_benchmark_reproducibility.py",
- "lines": 595,
- "kind": "cli-script",
- "severity": "pass",
- "early_watch": false,
- "recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
- },
{
"path": "scripts/render_world_class_preflight.py",
"lines": 593,
@@ -106,7 +98,7 @@
},
{
"path": "scripts/render_evidence_consistency.py",
- "lines": 568,
+ "lines": 571,
"kind": "cli-script",
"severity": "pass",
"early_watch": false,
@@ -119,6 +111,14 @@
"severity": "pass",
"early_watch": false,
"recommendation": "Move data loading and large section renderers into focused review_studio_* modules."
+ },
+ {
+ "path": "scripts/adjudicate_output_review.py",
+ "lines": 566,
+ "kind": "cli-script",
+ "severity": "pass",
+ "early_watch": false,
+ "recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
}
],
"watchlist": [],
diff --git a/reports/architecture_maintainability.md b/reports/architecture_maintainability.md
index 5ef3430b..86e51c62 100644
--- a/reports/architecture_maintainability.md
+++ b/reports/architecture_maintainability.md
@@ -5,10 +5,10 @@ Generated at: `2026-06-13`
## Summary
- decision: `pass`
-- python files: `224`
-- scripts: `148`
+- python files: `225`
+- scripts: `149`
- tests: `76`
-- internal modules: `64`
+- internal modules: `65`
- CLI scripts: `86`
- Yao CLI command handlers: `68`
- entrypoint command handlers: `18`
@@ -45,15 +45,15 @@ No near-threshold files found.
| `tests/verify_yao_cli.py` | `696` | `test` | `pass` |
| `tests/verify_world_class_evidence_intake.py` | `690` | `test` | `pass` |
| `tests/verify_output_review_adjudication.py` | `599` | `test` | `pass` |
-| `scripts/render_benchmark_reproducibility.py` | `595` | `cli-script` | `pass` |
| `scripts/render_world_class_preflight.py` | `593` | `cli-script` | `pass` |
| `scripts/render_skill_overview.py` | `588` | `cli-script` | `pass` |
| `scripts/build_skill_atlas.py` | `586` | `cli-script` | `pass` |
| `scripts/optimize_description.py` | `585` | `cli-script` | `pass` |
| `scripts/trust_check.py` | `582` | `cli-script` | `pass` |
| `tests/verify_world_class_evidence_ledger.py` | `579` | `test` | `pass` |
-| `scripts/render_evidence_consistency.py` | `568` | `cli-script` | `pass` |
+| `scripts/render_evidence_consistency.py` | `571` | `cli-script` | `pass` |
| `scripts/render_review_studio.py` | `568` | `cli-script` | `pass` |
+| `scripts/adjudicate_output_review.py` | `566` | `cli-script` | `pass` |
## Release Rule
diff --git a/reports/benchmark_reproducibility.json b/reports/benchmark_reproducibility.json
index 1c270121..3e2a7c9b 100644
--- a/reports/benchmark_reproducibility.json
+++ b/reports/benchmark_reproducibility.json
@@ -3,13 +3,16 @@
"ok": true,
"generated_at": "2026-06-17",
"skill_dir": ".",
- "commit": "f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11",
+ "commit": "4a1a5295708ba3570821583652ef91fda0f0874f",
"git_status": {
"available": true,
"dirty": true,
- "changed_file_count": 67,
+ "changed_file_count": 62,
+ "generated_dirty": true,
+ "generated_changed_file_count": 56,
+ "source_dirty": true,
+ "source_changed_file_count": 6,
"sample": [
- " M assets/review-studio.css",
" M registry/index.json",
" M registry/packages/yao-meta-skill.json",
" M reports/adoption_drift_report.json",
@@ -18,10 +21,41 @@
" M reports/architecture_maintainability.md",
" M reports/benchmark_reproducibility.json",
" M reports/benchmark_reproducibility.md",
+ " M reports/compiled_targets.json",
" M reports/context_budget.json",
" M reports/context_budget.md",
" M reports/context_budget_summary.json"
],
+ "source_sample": [
+ " M scripts/render_benchmark_reproducibility.py",
+ " M scripts/render_evidence_consistency.py",
+ " M tests/verify_benchmark_reproducibility.py",
+ " M tests/verify_evidence_consistency.py",
+ " M tests/verify_review_studio.py",
+ "?? scripts/benchmark_release_lock.py"
+ ],
+ "generated_sample": [
+ " M registry/index.json",
+ " M registry/packages/yao-meta-skill.json",
+ " M reports/adoption_drift_report.json",
+ " M reports/adoption_drift_report.md",
+ " M reports/architecture_maintainability.json",
+ " M reports/architecture_maintainability.md",
+ " M reports/benchmark_reproducibility.json",
+ " M reports/benchmark_reproducibility.md",
+ " M reports/compiled_targets.json",
+ " M reports/context_budget.json",
+ " M reports/context_budget.md",
+ " M reports/context_budget_summary.json"
+ ],
+ "generated_dirty_prefixes": [
+ "dist/",
+ "registry/index.json",
+ "registry/packages/",
+ "reports/",
+ "skill_atlas/",
+ "skill-ir/examples/"
+ ],
"scope": "generation-time status before this report is written"
},
"summary": {
@@ -30,9 +64,9 @@
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "evidence_bundle_sha256": "55fc0caa28b80022bd16a0a84f77bb0040c4f6eee14fabb526f492ae7c962ef6",
- "source_contract_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "evidence_bundle_sha256": "e114eec2acbc1cbb7ac578dd4e5165c3ed2b88e4922ba3e64d2c6232a577fc6d",
+ "source_contract_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -52,7 +86,11 @@
"public_claim_ready": false,
"public_claim_blocker_count": 5,
"working_tree_dirty": true,
- "changed_file_count": 67
+ "changed_file_count": 62,
+ "source_tree_dirty": true,
+ "source_changed_file_count": 6,
+ "generated_tree_dirty": true,
+ "generated_changed_file_count": 56
},
"public_claim": {
"ready": false,
@@ -68,9 +106,11 @@
},
"release_lock": {
"ready": false,
- "commit": "f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11",
+ "commit": "4a1a5295708ba3570821583652ef91fda0f0874f",
"status_scope": "generation-time status before this report is written",
- "reason": "working tree was dirty at generation time"
+ "source_changed_file_count": 6,
+ "generated_changed_file_count": 56,
+ "reason": "source files were dirty at generation time"
},
"evidence_bundle": {
"algorithm": "sha256(path,label,exists,artifact_sha256)",
@@ -78,7 +118,7 @@
"existing_count": 25,
"missing_count": 0,
"missing_paths": [],
- "sha256": "55fc0caa28b80022bd16a0a84f77bb0040c4f6eee14fabb526f492ae7c962ef6"
+ "sha256": "e114eec2acbc1cbb7ac578dd4e5165c3ed2b88e4922ba3e64d2c6232a577fc6d"
},
"methodology": {
"path": "reports/benchmark_methodology.md",
@@ -151,8 +191,8 @@
"label": "output_execution",
"path": "reports/output_execution_runs.json",
"exists": true,
- "bytes": 7965,
- "sha256": "5291115a0e1348926c8afe739fc2185754e571766bcc1d6a6e88b80ba07f8a9e"
+ "bytes": 7966,
+ "sha256": "c9c054c2e0a731644c659c5005b871e33072c3d12612793ba2a5df5b8873eba3"
},
{
"label": "blind_review",
@@ -186,43 +226,43 @@
"label": "trust_report",
"path": "reports/security_trust_report.json",
"exists": true,
- "bytes": 134467,
- "sha256": "596dafa184943797bd77591b0f2ba9366ddd541f90cb9c08d92ce7069c1b326c"
+ "bytes": 135139,
+ "sha256": "a18583795da7c3ffc0d355bc5465382b50f1a737a33e62b1e4b182496c9e4c5e"
},
{
"label": "python_compatibility",
"path": "reports/python_compatibility.json",
"exists": true,
- "bytes": 29464,
- "sha256": "f53cce322cc33af4f7cbc7e22587ac3e0c0359dfa1889a03f38c93472abf319d"
+ "bytes": 29589,
+ "sha256": "364a150344f461934d36ca59c0f5f6e1ed487fbfa3b30cfdff548ded277dd5c5"
},
{
"label": "registry_audit",
"path": "reports/registry_audit.json",
"exists": true,
"bytes": 3183,
- "sha256": "79532bfc006cabfd1f086601112b58c1fe84660d6606521d0256c77177d6c993"
+ "sha256": "d0157e4c0242955a3870f11eb00649f77e14b75f393874ea110b8f8e6eca89fb"
},
{
"label": "package_verification",
"path": "reports/package_verification.json",
"exists": true,
"bytes": 19338,
- "sha256": "df947ca7f0e5737c0f7961ee146171b3727c189f8dc5439941597d3c646fe06a"
+ "sha256": "755a9c6788ccc0624682e523fe0154ac8b471bc4e41ed132f9866143762f398e"
},
{
"label": "install_simulation",
"path": "reports/install_simulation.json",
"exists": true,
- "bytes": 8604,
- "sha256": "08d96de4662c8e047e351f4241ff3a4f98c521907fc4cd703faadff861bee63a"
+ "bytes": 8758,
+ "sha256": "15b77ec2b4738df891457d1d65f914751f30d6cd816a377e5c50c5a0b6d35b78"
},
{
"label": "skill_os2_audit",
"path": "reports/skill_os2_audit.json",
"exists": true,
"bytes": 14466,
- "sha256": "7fc0b099204ca5045de2db9eb19c5cf599f9c87bed1cd7f39c1f5f50704b3fb2"
+ "sha256": "16cbe378cc1a5ef847022c274af42ec8b6f7c346c8a06f59e6f6e3060d666177"
},
{
"label": "world_class_evidence_plan",
@@ -412,7 +452,7 @@
"policy": "Keep representative failures visible and tied to regression checks."
},
"limitations": [
- "The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
+ "The git commit and dirty flags are generation-time context; release lock is blocked by source changes, while generated evidence artifacts are tracked separately.",
"Local command-runner evidence is reproducible but does not replace provider-backed model holdout evidence.",
"Pending blind-review decisions are visible but do not count as human adjudication.",
"World-class readiness remains false until external and human evidence gaps close."
diff --git a/reports/benchmark_reproducibility.md b/reports/benchmark_reproducibility.md
index bb572f0f..2dac0eb5 100644
--- a/reports/benchmark_reproducibility.md
+++ b/reports/benchmark_reproducibility.md
@@ -1,9 +1,11 @@
# Benchmark Reproducibility
Generated at: `2026-06-17`
-Commit: `f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11`
+Commit: `4a1a5295708ba3570821583652ef91fda0f0874f`
Working tree dirty at generation: `true`
-Evidence bundle SHA256: `55fc0caa28b80022bd16a0a84f77bb0040c4f6eee14fabb526f492ae7c962ef6`
+Source tree dirty at generation: `true`
+Generated evidence dirty at generation: `true`
+Evidence bundle SHA256: `e114eec2acbc1cbb7ac578dd4e5165c3ed2b88e4922ba3e64d2c6232a577fc6d`
## Summary
@@ -12,8 +14,8 @@ Evidence bundle SHA256: `55fc0caa28b80022bd16a0a84f77bb0040c4f6eee14fabb526f492a
- methodology complete: `true`
- required artifacts: `25`
- missing artifacts: `0`
-- source contract sha256: `7993d9f42640`
-- archive sha256: `e0d57b8bede6`
+- source contract sha256: `6fbdbed9dfdc`
+- archive sha256: `0db54f788046`
- output cases: `5`
- disclosed failure cases: `3`
- reproduction commands: `23`
@@ -23,9 +25,11 @@ Evidence bundle SHA256: `55fc0caa28b80022bd16a0a84f77bb0040c4f6eee14fabb526f492a
- world-class source checks: `9` pass / `19` total; `10` blocked
- public claim ready: `false`
- public claim blockers: `5`
-- changed files at generation: `67`
+- changed files at generation: `62`
+- source changed files at generation: `6`
+- generated changed files at generation: `56`
-This report proves local benchmark reproducibility only. It keeps external provider and human-review gaps visible instead of counting them as complete. The git commit is generation-time context; the evidence bundle SHA is the durable anchor for the artifacts listed below.
+This report proves local benchmark reproducibility only. It keeps external provider and human-review gaps visible instead of counting them as complete. The git commit and dirty samples are generation-time context; the evidence bundle SHA is the durable anchor for the artifacts listed below.
## Public Claim Boundary
@@ -44,14 +48,14 @@ This report proves local benchmark reproducibility only. It keeps external provi
## Release Lock
- ready: `false`
-- reason: working tree was dirty at generation time
+- reason: source files were dirty at generation time
- status scope: generation-time status before this report is written
## Evidence Bundle
- algorithm: `sha256(path,label,exists,artifact_sha256)`
- artifacts: `25` / `25`
-- sha256: `55fc0caa28b80022bd16a0a84f77bb0040c4f6eee14fabb526f492ae7c962ef6`
+- sha256: `e114eec2acbc1cbb7ac578dd4e5165c3ed2b88e4922ba3e64d2c6232a577fc6d`
## Methodology Sections
@@ -73,17 +77,17 @@ This report proves local benchmark reproducibility only. It keeps external provi
| output_cases | `evals/output/cases.jsonl` | present | `a6ae96857116` |
| output_schema | `evals/output/schema.json` | present | `8ee340c95064` |
| output_scorecard | `reports/output_quality_scorecard.json` | present | `0806258a8e08` |
-| output_execution | `reports/output_execution_runs.json` | present | `5291115a0e13` |
+| output_execution | `reports/output_execution_runs.json` | present | `c9c054c2e0a7` |
| blind_review | `reports/output_blind_review_pack.json` | present | `bbe2db8ec277` |
| review_adjudication | `reports/output_review_adjudication.json` | present | `91fd88dd9b0f` |
| trigger_scorecard | `reports/route_scorecard.json` | present | `c164e83e36d0` |
| runtime_conformance | `reports/conformance_matrix.json` | present | `97f9ba949c23` |
-| trust_report | `reports/security_trust_report.json` | present | `596dafa18494` |
-| python_compatibility | `reports/python_compatibility.json` | present | `f53cce322cc3` |
-| registry_audit | `reports/registry_audit.json` | present | `79532bfc006c` |
-| package_verification | `reports/package_verification.json` | present | `df947ca7f0e5` |
-| install_simulation | `reports/install_simulation.json` | present | `08d96de4662c` |
-| skill_os2_audit | `reports/skill_os2_audit.json` | present | `7fc0b099204c` |
+| trust_report | `reports/security_trust_report.json` | present | `a18583795da7` |
+| python_compatibility | `reports/python_compatibility.json` | present | `364a150344f4` |
+| registry_audit | `reports/registry_audit.json` | present | `d0157e4c0242` |
+| package_verification | `reports/package_verification.json` | present | `755a9c6788cc` |
+| install_simulation | `reports/install_simulation.json` | present | `15b77ec2b473` |
+| skill_os2_audit | `reports/skill_os2_audit.json` | present | `16cbe378cc1a` |
| world_class_evidence_plan | `reports/world_class_evidence_plan.json` | present | `2beb888d7992` |
| world_class_evidence_ledger | `reports/world_class_evidence_ledger.json` | present | `22c85613d7be` |
| world_class_evidence_intake | `reports/world_class_evidence_intake.json` | present | `d3f44570e605` |
@@ -151,7 +155,7 @@ This report proves local benchmark reproducibility only. It keeps external provi
## Limits
-- The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.
+- The git commit and dirty flags are generation-time context; release lock is blocked by source changes, while generated evidence artifacts are tracked separately.
- Local command-runner evidence is reproducible but does not replace provider-backed model holdout evidence.
- Pending blind-review decisions are visible but do not count as human adjudication.
- World-class readiness remains false until external and human evidence gaps close.
diff --git a/reports/compiled_targets.json b/reports/compiled_targets.json
index 639bf703..d907f3b4 100644
--- a/reports/compiled_targets.json
+++ b/reports/compiled_targets.json
@@ -539,9 +539,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -582,7 +583,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -604,7 +605,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -796,9 +797,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -839,7 +841,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -859,7 +861,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -1486,9 +1488,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -1529,7 +1532,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -1551,7 +1554,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -1743,9 +1746,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -1786,7 +1790,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -1806,7 +1810,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -2433,9 +2437,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -2476,7 +2481,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -2498,7 +2503,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -2683,9 +2688,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -2726,7 +2732,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -2746,7 +2752,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -3364,9 +3370,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -3407,7 +3414,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -3429,7 +3436,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -3614,9 +3621,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -3657,7 +3665,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -3677,7 +3685,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -4295,9 +4303,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -4338,7 +4347,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -4360,7 +4369,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -4549,9 +4558,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -4592,7 +4602,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -4612,7 +4622,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
diff --git a/reports/context_budget.json b/reports/context_budget.json
index f86648f1..454ed98e 100644
--- a/reports/context_budget.json
+++ b/reports/context_budget.json
@@ -6,16 +6,16 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 797,
- "other_text_tokens": 1110595,
+ "other_text_tokens": 1112816,
"estimated_initial_load_tokens": 990,
- "estimated_total_text_tokens": 1111392,
- "deferred_resource_tokens": 506961,
+ "estimated_total_text_tokens": 1113613,
+ "deferred_resource_tokens": 507713,
"deferred_resource_warn_threshold": 120000,
"deferred_resource_dirs": [
{
"path": "scripts",
- "estimated_tokens": 445781,
- "file_count": 148
+ "estimated_tokens": 446533,
+ "file_count": 149
},
{
"path": "references",
@@ -36,8 +36,8 @@
"large_deferred_resource_dirs": [
{
"path": "scripts",
- "estimated_tokens": 445781,
- "file_count": 148
+ "estimated_tokens": 446533,
+ "file_count": 149
}
],
"deferred_resource_governance": {
@@ -59,14 +59,14 @@
],
"missing": [],
"path": "scripts",
- "estimated_tokens": 445781,
- "file_count": 148,
+ "estimated_tokens": 446533,
+ "file_count": 149,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
],
"summary": "Large deferred resources are indexed and backed by evidence."
},
- "relevant_file_count": 702,
+ "relevant_file_count": 704,
"unused_resource_dirs": [],
"quality_signal_points": 130,
"quality_density": 131.3
diff --git a/reports/context_budget.md b/reports/context_budget.md
index 65b413f0..c33ef9b4 100644
--- a/reports/context_budget.md
+++ b/reports/context_budget.md
@@ -2,7 +2,7 @@
| Target | Path | Tier | Limit | Initial | SKILL | Deferred | Resource Governance | Large Deferred Dirs | Quality Density | Unused Dirs | Status |
| --- | --- | --- | ---: | ---: | ---: | ---: | --- | --- | ---: | --- | --- |
-| root | `.` | `production` | 1000 | 990 | 797 | 506961 | `governed` | scripts:445781 | 131.3 | - | ok |
+| root | `.` | `production` | 1000 | 990 | 797 | 507713 | `governed` | scripts:446533 | 131.3 | - | ok |
| complex-release-orchestrator | `examples/complex-release-orchestrator/generated-skill` | `production` | 1000 | 790 | 718 | 1657 | `not-required` | - | 164.6 | - | ok |
| governed-incident-command | `examples/governed-incident-command/generated-skill` | `production` | 1000 | 760 | 658 | 1030 | `not-required` | - | 171.1 | - | ok |
diff --git a/reports/context_budget_summary.json b/reports/context_budget_summary.json
index 48ba1d16..541ac56d 100644
--- a/reports/context_budget_summary.json
+++ b/reports/context_budget_summary.json
@@ -8,12 +8,12 @@
"budget_limit": 1000,
"initial_tokens": 990,
"skill_body_tokens": 797,
- "deferred_resource_tokens": 506961,
+ "deferred_resource_tokens": 507713,
"large_deferred_resource_dirs": [
{
"path": "scripts",
- "estimated_tokens": 445781,
- "file_count": 148
+ "estimated_tokens": 446533,
+ "file_count": 149
}
],
"deferred_resource_governance": {
@@ -35,8 +35,8 @@
],
"missing": [],
"path": "scripts",
- "estimated_tokens": 445781,
- "file_count": 148,
+ "estimated_tokens": 446533,
+ "file_count": 149,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
],
diff --git a/reports/evidence_consistency.json b/reports/evidence_consistency.json
index 636c4fbc..3c3f8b08 100644
--- a/reports/evidence_consistency.json
+++ b/reports/evidence_consistency.json
@@ -189,12 +189,12 @@
"status": "pass",
"expected": {
"status": "pass",
- "detail": "initial load 990/1000; deferred 506961/120000; top deferred scripts 445781; resource governance governed; quality density 131.3",
+ "detail": "initial load 990/1000; deferred 507713/120000; top deferred scripts 446533; resource governance governed; quality density 131.3",
"evidence": "reports/context_budget.json"
},
"actual": {
"status": "pass",
- "detail": "initial load 990/1000; deferred 506961/120000; top deferred scripts 445781; resource governance governed; quality density 131.3",
+ "detail": "initial load 990/1000; deferred 507713/120000; top deferred scripts 446533; resource governance governed; quality density 131.3",
"evidence": "reports/context_budget.json"
},
"paths": [
@@ -205,14 +205,14 @@
},
{
"key": "benchmark-release-lock-self-consistency",
- "label": "Benchmark release lock matches git dirty state",
+ "label": "Benchmark release lock matches source dirty state",
"status": "pass",
"expected": false,
"actual": false,
"paths": [
"reports/benchmark_reproducibility.json"
],
- "detail": "The benchmark release lock must reflect the generation-time git dirty flag."
+ "detail": "The benchmark release lock must be blocked by source changes, while generated evidence artifacts are tracked as generation context."
},
{
"key": "benchmark-clean-worktree-release-lock",
@@ -222,7 +222,7 @@
"actual": {
"available": true,
"clean": false,
- "changed_file_count": 67
+ "changed_file_count": 62
},
"paths": [
"reports/benchmark_reproducibility.json"
@@ -263,8 +263,8 @@
"key": "overview-benchmark-commit",
"label": "overview embeds the benchmark commit",
"status": "pass",
- "expected": "f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11",
- "actual": "f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11",
+ "expected": "4a1a5295708ba3570821583652ef91fda0f0874f",
+ "actual": "4a1a5295708ba3570821583652ef91fda0f0874f",
"paths": [
"reports/benchmark_reproducibility.json",
"reports/skill-overview.json"
@@ -279,8 +279,8 @@
"release_lock_ready": false,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "source_contract_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "source_contract_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"world_class_ledger_pending_count": 4,
"world_class_source_check_count": 19,
"world_class_source_pass_count": 9,
@@ -292,8 +292,8 @@
"release_lock_ready": false,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "source_contract_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "source_contract_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"world_class_ledger_pending_count": 4,
"world_class_source_check_count": 19,
"world_class_source_pass_count": 9,
@@ -409,8 +409,8 @@
"key": "interpretation-benchmark-commit",
"label": "interpretation embeds the benchmark commit",
"status": "pass",
- "expected": "f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11",
- "actual": "f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11",
+ "expected": "4a1a5295708ba3570821583652ef91fda0f0874f",
+ "actual": "4a1a5295708ba3570821583652ef91fda0f0874f",
"paths": [
"reports/benchmark_reproducibility.json",
"reports/skill-interpretation.json"
@@ -425,8 +425,8 @@
"release_lock_ready": false,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "source_contract_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "source_contract_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"world_class_ledger_pending_count": 4,
"world_class_source_check_count": 19,
"world_class_source_pass_count": 9,
@@ -438,8 +438,8 @@
"release_lock_ready": false,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "source_contract_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "source_contract_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"world_class_ledger_pending_count": 4,
"world_class_source_check_count": 19,
"world_class_source_pass_count": 9,
@@ -1529,7 +1529,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 148
+ "file_count": 149
},
{
"path": "evals",
@@ -1544,7 +1544,7 @@
"file_count": 235
}
],
- "file_count": 451,
+ "file_count": 452,
"folder_count": 4,
"distribution": [
{
@@ -1569,7 +1569,7 @@
},
{
"label": "scripts",
- "value": 148
+ "value": 149
},
{
"label": "evals",
@@ -1617,7 +1617,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 148
+ "file_count": 149
},
{
"path": "evals",
@@ -1632,7 +1632,7 @@
"file_count": 235
}
],
- "file_count": 451,
+ "file_count": 452,
"folder_count": 4,
"distribution": [
{
@@ -1657,7 +1657,7 @@
},
{
"label": "scripts",
- "value": 148
+ "value": 149
},
{
"label": "evals",
@@ -2421,10 +2421,10 @@
"score `91`",
"`16` gates",
"`3` warnings",
- "`62` declared internal modules",
- "`86 / 86` CLI help smoke checks passing across `148` scripts",
- "`687` zip entries",
- "archive with `687` entries",
+ "`63` declared internal modules",
+ "`86 / 86` CLI help smoke checks passing across `149` scripts",
+ "`688` zip entries",
+ "archive with `688` entries",
"`12` installer permission checks enforced",
"`0` permission failures",
"`25` required artifacts",
diff --git a/reports/evidence_consistency.md b/reports/evidence_consistency.md
index 26627b69..a711e77c 100644
--- a/reports/evidence_consistency.md
+++ b/reports/evidence_consistency.md
@@ -19,7 +19,7 @@ This gate compares generated evidence reports against each other. It does not cr
| Required report artifacts are readable | `pass` | The consistency gate can only be trusted when every source JSON report parses and every source Markdown report is readable. | `reports/benchmark_reproducibility.json`, `reports/skill-overview.json`, `reports/skill-interpretation.json`, `reports/adoption_drift_report.json`, `reports/world_class_evidence_ledger.json`, `reports/world_class_evidence_plan.json`, `reports/world_class_evidence_intake.json`, `reports/world_class_evidence_preflight.json`, `reports/world_class_submission_review.json`, `reports/world_class_operator_runbook.json`, `reports/skill_os2_coverage.json`, `reports/review-studio.json`, `reports/package_verification.json`, `reports/install_simulation.json`, `reports/security_trust_report.json`, `reports/context_budget.json`, `reports/world_class_claim_guard.json`, `reports/skill-os-2-review.md` |
| Release evidence flow covers first-class reports | `pass` | Release refresh and clean-lock instructions must regenerate every first-class report before evidence consistency can be trusted. | `AGENTS.md`, `reports/output_execution_runs.json`, `reports/install_simulation.json`, `reports/security_trust_report.json`, `reports/registry_audit.json`, `reports/package_verification.json`, `reports/upgrade_check.json`, `reports/adoption_drift_report.json`, `reports/architecture_maintainability.json`, `reports/python_compatibility.json`, `reports/runtime_permission_probes.json`, `reports/review_waivers.json`, `reports/review_annotations.json`, `reports/skill_atlas.json`, `reports/skill_os2_audit.json`, `reports/skill_os2_coverage.json`, `reports/context_budget.json`, `reports/context_budget_summary.json`, `reports/benchmark_reproducibility.json`, `reports/skill-overview.json`, `reports/skill-interpretation.json`, `reports/review-viewer.json`, `reports/world_class_evidence_preflight.json`, `reports/skillops/daily`, `reports/skillops/weekly`, `reports/review-studio.json`, `reports/evidence_consistency.json` |
| Review Studio mirrors context budget governance | `pass` | Review Studio must not keep stale context warnings after context reports prove large deferred resources are governed. | `reports/context_budget.json`, `reports/review-studio.json` |
-| Benchmark release lock matches git dirty state | `pass` | The benchmark release lock must reflect the generation-time git dirty flag. | `reports/benchmark_reproducibility.json` |
+| Benchmark release lock matches source dirty state | `pass` | The benchmark release lock must be blocked by source changes, while generated evidence artifacts are tracked as generation context. | `reports/benchmark_reproducibility.json` |
| Clean worktree keeps a clean benchmark release lock | `pass` | Dirty or non-git worktrees cannot prove final release-lock freshness, so this check is advisory until the final clean-lock pass. | `reports/benchmark_reproducibility.json` |
| Human-facing reports expose the canonical Skill IR artifact | `pass` | Skill IR is the 2.0 platform-neutral semantic source, so user-facing reports must link to the artifact that actually exists. | `reports/skill-overview.json`, `reports/skill-interpretation.json`, `reports/review-studio.json`, `skill-ir/examples/yao-meta-skill.json` |
| overview embeds the benchmark commit | `pass` | Human-facing reports must point to the same benchmark release-lock commit. | `reports/benchmark_reproducibility.json`, `reports/skill-overview.json` |
diff --git a/reports/install_simulation.json b/reports/install_simulation.json
index 44dcec2c..d53e1ae2 100644
--- a/reports/install_simulation.json
+++ b/reports/install_simulation.json
@@ -8,7 +8,7 @@
"installed_skill_dir": "tests/tmp_review_studio/install-root/simulate-yao-meta-skill/yao-meta-skill",
"summary": {
"archive_present": true,
- "archive_entry_count": 687,
+ "archive_entry_count": 688,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
diff --git a/reports/output_execution_runs.json b/reports/output_execution_runs.json
index 3d57f30e..197697a6 100644
--- a/reports/output_execution_runs.json
+++ b/reports/output_execution_runs.json
@@ -34,7 +34,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 38.77,
+ "duration_ms": 29.28,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -62,7 +62,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 36.69,
+ "duration_ms": 28.7,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -85,7 +85,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 36.84,
+ "duration_ms": 29.28,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -113,7 +113,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 36.88,
+ "duration_ms": 28.04,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -136,7 +136,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 35.28,
+ "duration_ms": 28.34,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -164,7 +164,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 34.8,
+ "duration_ms": 27.95,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -187,7 +187,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 33.15,
+ "duration_ms": 32.32,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -214,7 +214,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 48.5,
+ "duration_ms": 28.58,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -237,7 +237,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 32.18,
+ "duration_ms": 28.26,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -266,7 +266,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 32.15,
+ "duration_ms": 27.95,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
diff --git a/reports/output_execution_runs.md b/reports/output_execution_runs.md
index 553a15aa..6d7d4255 100644
--- a/reports/output_execution_runs.md
+++ b/reports/output_execution_runs.md
@@ -23,16 +23,16 @@ Command runner evidence is present. This proves the eval harness executed an ext
| Case | Variant | Mode | Model | Duration ms | Tokens | Score | Status |
| --- | --- | --- | --- | ---: | ---: | ---: | --- |
-| skill-package-contract | baseline | command | local-output-eval-runner | 38.77 | 33 | 0.0 | pass |
-| skill-package-contract | with_skill | command | local-output-eval-runner | 36.69 | 73 | 100.0 | pass |
-| output-eval-expectation | baseline | command | local-output-eval-runner | 36.84 | 36 | 0.0 | pass |
-| output-eval-expectation | with_skill | command | local-output-eval-runner | 36.88 | 80 | 100.0 | pass |
-| ir-before-packaging | baseline | command | local-output-eval-runner | 35.28 | 33 | 0.0 | pass |
-| ir-before-packaging | with_skill | command | local-output-eval-runner | 34.8 | 80 | 100.0 | pass |
-| near-neighbor-boundary | baseline | command | local-output-eval-runner | 33.15 | 36 | 0.0 | pass |
-| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 48.5 | 65 | 100.0 | pass |
-| file-backed-governed-package | baseline | command | local-output-eval-runner | 32.18 | 37 | 0.0 | pass |
-| file-backed-governed-package | with_skill | command | local-output-eval-runner | 32.15 | 98 | 100.0 | pass |
+| skill-package-contract | baseline | command | local-output-eval-runner | 29.28 | 33 | 0.0 | pass |
+| skill-package-contract | with_skill | command | local-output-eval-runner | 28.7 | 73 | 100.0 | pass |
+| output-eval-expectation | baseline | command | local-output-eval-runner | 29.28 | 36 | 0.0 | pass |
+| output-eval-expectation | with_skill | command | local-output-eval-runner | 28.04 | 80 | 100.0 | pass |
+| ir-before-packaging | baseline | command | local-output-eval-runner | 28.34 | 33 | 0.0 | pass |
+| ir-before-packaging | with_skill | command | local-output-eval-runner | 27.95 | 80 | 100.0 | pass |
+| near-neighbor-boundary | baseline | command | local-output-eval-runner | 32.32 | 36 | 0.0 | pass |
+| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 28.58 | 65 | 100.0 | pass |
+| file-backed-governed-package | baseline | command | local-output-eval-runner | 28.26 | 37 | 0.0 | pass |
+| file-backed-governed-package | with_skill | command | local-output-eval-runner | 27.95 | 98 | 100.0 | pass |
## Next Fixes
diff --git a/reports/package_verification.json b/reports/package_verification.json
index db4cb739..60e97ea1 100644
--- a/reports/package_verification.json
+++ b/reports/package_verification.json
@@ -8,8 +8,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
- "archive_entry_count": 687,
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
+ "archive_entry_count": 688,
"failure_count": 0,
"warning_count": 0
},
diff --git a/reports/package_verification.md b/reports/package_verification.md
index f44b5083..476dd283 100644
--- a/reports/package_verification.md
+++ b/reports/package_verification.md
@@ -4,7 +4,7 @@
- Package directory: `dist`
- Targets: `4 / 4` adapters present
- Archive present: `True`
-- Archive SHA256: `e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40`
+- Archive SHA256: `0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8`
- Failures: `0`
- Warnings: `0`
diff --git a/reports/python_compatibility.json b/reports/python_compatibility.json
index 834e73cf..304330f0 100644
--- a/reports/python_compatibility.json
+++ b/reports/python_compatibility.json
@@ -5,7 +5,7 @@
"root": ".",
"summary": {
"target_python": "3.11",
- "file_count": 227,
+ "file_count": 228,
"issue_count": 0,
"syntax_error_count": 0,
"fstring_311_violation_count": 0,
@@ -64,6 +64,12 @@
"issue_count": 0,
"issues": []
},
+ {
+ "path": "scripts/benchmark_release_lock.py",
+ "ok": true,
+ "issue_count": 0,
+ "issues": []
+ },
{
"path": "scripts/build_confusion_matrix.py",
"ok": true,
diff --git a/reports/python_compatibility.md b/reports/python_compatibility.md
index 51ee5ed4..378317f4 100644
--- a/reports/python_compatibility.md
+++ b/reports/python_compatibility.md
@@ -6,7 +6,7 @@ Generated at: `2026-06-13`
- decision: `pass`
- target python: `3.11`
-- files scanned: `227`
+- files scanned: `228`
- issues: `0`
- syntax errors: `0`
- f-string 3.11 violations: `0`
diff --git a/reports/registry_audit.json b/reports/registry_audit.json
index 35516f4b..cd42a5c7 100644
--- a/reports/registry_audit.json
+++ b/reports/registry_audit.json
@@ -21,8 +21,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
"compatibility": {
"openai": "pass",
@@ -53,7 +53,7 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -78,7 +78,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
}
]
},
diff --git a/reports/registry_audit.md b/reports/registry_audit.md
index d774a4d3..e717ebbc 100644
--- a/reports/registry_audit.md
+++ b/reports/registry_audit.md
@@ -6,8 +6,8 @@
- Maturity: `governed`
- Owner: `Yao Team`
- License: `MIT`
-- Package SHA256: `7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e`
-- Archive SHA256: `e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40`
+- Package SHA256: `6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59`
+- Archive SHA256: `0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8`
- Install simulated: `True`
## Compatibility
diff --git a/reports/review-studio.html b/reports/review-studio.html
index 84f167a7..e551a382 100644
--- a/reports/review-studio.html
+++ b/reports/review-studio.html
@@ -759,12 +759,12 @@
核心指标
- Skill IR 2.0.0 5 targets in platform-neutral contract
Compiler 5/5 target contracts compiled from Skill IR
Output Delta 100.0 5 cases; 1 file-backed
Exec Runs 10 command 10; model 0; recorded 0
Blind A/B 5 review pairs hide baseline vs with-skill labels
Review Kit 0/5 pending 5; answer key hidden
Review A/B 0/5 adjudication decisions; pending 5
Public Claim blocked 5 blockers; local reproducible true
Blueprint 21/21 2.0 coverage; extensions partial 0, planned 0; evidence pending 4
Runtime 5/5 target conformance pass rate
Perm Probe 4/4 0 native; 4 installer-enforced
Trust 0 148 scripts scanned; secrets found
Py Compat 0 227 files scanned for Python 3.11
Arch Debt 0 696 largest lines; 0 watchlist; 2 early; 68 CLI handlers; 18 in entrypoint
Atlas 5 12 scanned skills; route collisions
Drift low 1 metadata events; 0 missed triggers
Daily Ops 5 proposal-review; approval 0; release lock false
Weekly Queue 5 curator-review; ready 1; top score 88
Waivers 0 0 gates covered; human risk decisions
Intake 4/4 0 valid submissions; 0 invalid
Claim Guard 0 182 public surfaces scanned
Notes 0/0 0 open blocker annotations
Registry 1.1.0 5 targets; MIT license
Archive pass 687 zip entries; package verification
Install pass 4 adapters; 12 permissions enforced; 0 permission failures
Upgrade minor declared minor; 0 breaking changes
+ Skill IR 2.0.0 5 targets in platform-neutral contract
Compiler 5/5 target contracts compiled from Skill IR
Output Delta 100.0 5 cases; 1 file-backed
Exec Runs 10 command 10; model 0; recorded 0
Blind A/B 5 review pairs hide baseline vs with-skill labels
Review Kit 0/5 pending 5; answer key hidden
Review A/B 0/5 adjudication decisions; pending 5
Public Claim blocked 5 blockers; local reproducible true
Blueprint 21/21 2.0 coverage; extensions partial 0, planned 0; evidence pending 4
Runtime 5/5 target conformance pass rate
Perm Probe 4/4 0 native; 4 installer-enforced
Trust 0 149 scripts scanned; secrets found
Py Compat 0 228 files scanned for Python 3.11
Arch Debt 0 696 largest lines; 0 watchlist; 2 early; 68 CLI handlers; 18 in entrypoint
Atlas 5 12 scanned skills; route collisions
Drift low 1 metadata events; 0 missed triggers
Daily Ops 5 proposal-review; approval 0; release lock false
Weekly Queue 5 curator-review; ready 1; top score 88
Waivers 0 0 gates covered; human risk decisions
Intake 4/4 0 valid submissions; 0 invalid
Claim Guard 0 182 public surfaces scanned
Notes 0/0 0 open blocker annotations
Registry 1.1.0 5 targets; MIT license
Archive pass 688 zip entries; package verification
Install pass 4 adapters; 12 permissions enforced; 0 permission failures
Upgrade minor declared minor; 0 breaking changes
审查闸门
- 通过
意图画布 intent confidence 100/100; Intent is clear enough to package the first routeable version.
reports/intent-confidence.json 证据 通过
触发实验 13 trigger cases; 0 misroutes; 0 ambiguous
reports/route_scorecard.json 证据 关注
输出实验 5/5 cases; with-skill 100.0; baseline 0.0; file-backed 1; near-neighbor 1; blind A/B 5; exec 10; command 10; model 0; recorded 0; reviewed 0/5; review pending 5
reports/output_quality_scorecard.json 证据 通过
上下文 initial load 990/1000; deferred 506961/120000; top deferred scripts 445781; resource governance governed; quality density 131.3
reports/context_budget.json 证据 通过
运行矩阵 5 / 5 targets pass
reports/conformance_matrix.json 证据 通过
信任报告 0 secrets; 148 scripts; 3 network-capable scripts; 0 help smoke failures
reports/security_trust_report.json 证据 通过
Python 兼容 Python 3.11; 227 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards
reports/python_compatibility.json 证据 通过
架构维护 224 Python files; 0 hotspots; 0 watchlist files; 2 early watch files; 0 blockers; largest 696 lines; 68 CLI handlers; 18 in entrypoint
reports/architecture_maintainability.json 证据 通过
权限批准 3/3 permissions approved; gaps 0; required file_write, network, subprocess
reports/security_trust_report.json + security/permission_policy.json 证据 通过
权限探针 4/4 targets probed; native 0; metadata fallback 4; installer 4; residual risks 4
reports/runtime_permission_probes.json 证据 通过
组合治理 12 skills, 1 actionable; 0 actionable route collisions; 0 actionable owner gaps; 0 actionable stale; 0 actionable drift; 24 scoped non-actionable issues
reports/skill_atlas.json 证据 通过
运营回路 1 metadata events; adoption 0; missed 0; bad-output 0; risk low; daily proposals 5; daily decision proposal-review; daily release lock false; weekly queue 5 unique; weekly ready 1; weekly top 88; weekly release lock false
reports/adoption_drift_report.json + reports/skillops/daily + reports/skillops/weekly 证据 关注
人工批准 0 active waivers; 1 warning gates still need reviewer decision
reports/review_waivers.json 证据 关注
世界证据 4 pending world-class evidence entries; 1 human pending; 3 external pending; source checks 9/19 pass; 10 blocked; overclaim guard true
reports/world_class_evidence_ledger.json 证据 通过
注册审计 yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures
reports/registry_audit.json + reports/install_simulation.json 证据 通过
发布路线 0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended
reports/promotion_decisions.json + reports/upgrade_check.json + docs/migration-v2.md 证据
+ 通过
意图画布 intent confidence 100/100; Intent is clear enough to package the first routeable version.
reports/intent-confidence.json 证据 通过
触发实验 13 trigger cases; 0 misroutes; 0 ambiguous
reports/route_scorecard.json 证据 关注
输出实验 5/5 cases; with-skill 100.0; baseline 0.0; file-backed 1; near-neighbor 1; blind A/B 5; exec 10; command 10; model 0; recorded 0; reviewed 0/5; review pending 5
reports/output_quality_scorecard.json 证据 通过
上下文 initial load 990/1000; deferred 507713/120000; top deferred scripts 446533; resource governance governed; quality density 131.3
reports/context_budget.json 证据 通过
运行矩阵 5 / 5 targets pass
reports/conformance_matrix.json 证据 通过
信任报告 0 secrets; 149 scripts; 3 network-capable scripts; 0 help smoke failures
reports/security_trust_report.json 证据 通过
Python 兼容 Python 3.11; 228 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards
reports/python_compatibility.json 证据 通过
架构维护 225 Python files; 0 hotspots; 0 watchlist files; 2 early watch files; 0 blockers; largest 696 lines; 68 CLI handlers; 18 in entrypoint
reports/architecture_maintainability.json 证据 通过
权限批准 3/3 permissions approved; gaps 0; required file_write, network, subprocess
reports/security_trust_report.json + security/permission_policy.json 证据 通过
权限探针 4/4 targets probed; native 0; metadata fallback 4; installer 4; residual risks 4
reports/runtime_permission_probes.json 证据 通过
组合治理 12 skills, 1 actionable; 0 actionable route collisions; 0 actionable owner gaps; 0 actionable stale; 0 actionable drift; 24 scoped non-actionable issues
reports/skill_atlas.json 证据 通过
运营回路 1 metadata events; adoption 0; missed 0; bad-output 0; risk low; daily proposals 5; daily decision proposal-review; daily release lock false; weekly queue 5 unique; weekly ready 1; weekly top 88; weekly release lock false
reports/adoption_drift_report.json + reports/skillops/daily + reports/skillops/weekly 证据 关注
人工批准 0 active waivers; 1 warning gates still need reviewer decision
reports/review_waivers.json 证据 关注
世界证据 4 pending world-class evidence entries; 1 human pending; 3 external pending; source checks 9/19 pass; 10 blocked; overclaim guard true
reports/world_class_evidence_ledger.json 证据 通过
注册审计 yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures
reports/registry_audit.json + reports/install_simulation.json 证据 通过
发布路线 0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended
reports/promotion_decisions.json + reports/upgrade_check.json + docs/migration-v2.md 证据
- 上下文 initial load 990/1000; deferred 506961/120000; top deferred scripts 445781; resource governance governed; quality density 131.3
+ 上下文 initial load 990/1000; deferred 507713/120000; top deferred scripts 446533; resource governance governed; quality density 131.3
编译证据 Review reports/compiled_targets.md before packaging to inspect target adapter modes, generated files, preserved semantics, warnings, and unsupported features.
- 信任报告
Secret 0
脚本数 148
网络脚本 3
Help 失败 0
包体哈希 7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e
+ 信任报告
Secret 0
脚本数 149
网络脚本 3
Help 失败 0
包体哈希 6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59
安全边界 高风险 secret、远程 inline execution、缺失依赖策略或无法解释的脚本接口应阻断 governed release。
- Python 兼容
目标 Python 3.11
文件数 227
问题数 0
语法错误 0
F-string 3.11 0
+ Python 兼容
目标 Python 3.11
文件数 228
问题数 0
语法错误 0
F-string 3.11 0
解释器边界 CI 和发布审查以 Python 3.11 兼容为底线;本地更高版本允许的新语法不能绕过兼容门禁。
@@ -880,7 +880,7 @@
批准台账
Waiver Count 0
Active Count 0
Expired Count 0
Invalid Count 0
覆盖 Gate 0
批准候选
- 可批准 · needs-reviewer-decision
Output Lab review pending 5; model-executed 0; output failures 0
Gate output-lab证据 reports/output_review_adjudication.md选项 accepted-risk, false-positive, temporary-exception 边界 Does not count as provider, human, or public world-class completion evidence. 审查条件 Reviewer confirms this release does not claim provider-backed or human-adjudicated output superiority. Reviewer names the release scope and expiry date. Reviewer links output_review_adjudication or output_execution evidence. 建议命令 python3 scripts/yao.py review-waivers . --add-waiver --gate-key output-lab --reviewer "<reviewer>" --reason "Output Lab has pending human/provider evidence; accepted only for this bounded review scope." --expires-at 2027-06-17 --evidence reports/output_review_adjudication.md
不可批准 · cannot-waive
World-Class Evidence 4 pending evidence entries; 1 human pending; 3 external pending
Gate world-class-evidence证据 reports/world_class_evidence_ledger.md选项 无 边界 Non-waivable completion boundary. 审查条件 Do not use a waiver to claim public world-class readiness. Either submit accepted ledger evidence or state that this release does not claim world-class completion. Keep claim guard active until ledger summary.ready_to_claim_world_class is true. 建议命令 python3 scripts/yao.py world-class-ledger . --submissions-dir evidence/world_class/submissions && python3 scripts/yao.py world-class-claim-guard .
+ 可批准 · needs-reviewer-decision
Output Lab review pending 5; model-executed 0; output failures 0
Gate output-lab证据 reports/output_review_adjudication.md选项 accepted-risk, false-positive, temporary-exception 边界 Does not count as provider, human, or public world-class completion evidence. 审查条件 Reviewer confirms this release does not claim provider-backed or human-adjudicated output superiority. Reviewer names the release scope and expiry date. Reviewer links output_review_adjudication or output_execution evidence. 建议命令 python3 scripts/yao.py review-waivers . --add-waiver --gate-key output-lab --reviewer "<reviewer>" --reason "Output Lab has pending human/provider evidence; accepted only for this bounded review scope." --expires-at 2027-06-13 --evidence reports/output_review_adjudication.md
不可批准 · cannot-waive
World-Class Evidence 4 pending evidence entries; 1 human pending; 3 external pending
Gate world-class-evidence证据 reports/world_class_evidence_ledger.md选项 无 边界 Non-waivable completion boundary. 审查条件 Do not use a waiver to claim public world-class readiness. Either submit accepted ledger evidence or state that this release does not claim world-class completion. Keep claim guard active until ledger summary.ready_to_claim_world_class is true. 建议命令 python3 scripts/yao.py world-class-ledger . --submissions-dir evidence/world_class/submissions && python3 scripts/yao.py world-class-claim-guard .
@@ -922,12 +922,12 @@
注册审计 yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures
- 包体元数据
名称 yao-meta-skill
版本 1.1.0
Maturity governed
Owner Yao Team
License MIT
信任级别 local
目标平台 openai, claude, generic, agent-skills-compatible, vscode
兼容通过 6/6
归档哈希 e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40
+ 包体元数据
名称 yao-meta-skill
版本 1.1.0
Maturity governed
Owner Yao Team
License MIT
信任级别 local
目标平台 openai, claude, generic, agent-skills-compatible, vscode
兼容通过 6/6
归档哈希 0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8
发布路线 0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended
- 包体验证
目标数 4
Adapter 4
归档存在 是
Zip 条目 687
失败数 0
警告数 0
归档哈希 e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40
+ 包体验证
目标数 4
Adapter 4
归档存在 是
Zip 条目 688
失败数 0
警告数 0
归档哈希 0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8
diff --git a/reports/review-studio.json b/reports/review-studio.json
index 4dfd8723..c61bbe32 100644
--- a/reports/review-studio.json
+++ b/reports/review-studio.json
@@ -44,7 +44,7 @@
"key": "context-budget",
"label": "上下文",
"status": "pass",
- "detail": "initial load 990/1000; deferred 506961/120000; top deferred scripts 445781; resource governance governed; quality density 131.3",
+ "detail": "initial load 990/1000; deferred 507713/120000; top deferred scripts 446533; resource governance governed; quality density 131.3",
"evidence": "reports/context_budget.json",
"link": "context_budget.md"
},
@@ -60,7 +60,7 @@
"key": "trust-report",
"label": "信任报告",
"status": "pass",
- "detail": "0 secrets; 148 scripts; 3 network-capable scripts; 0 help smoke failures",
+ "detail": "0 secrets; 149 scripts; 3 network-capable scripts; 0 help smoke failures",
"evidence": "reports/security_trust_report.json",
"link": "security_trust_report.md"
},
@@ -68,7 +68,7 @@
"key": "python-compat",
"label": "Python 兼容",
"status": "pass",
- "detail": "Python 3.11; 227 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards",
+ "detail": "Python 3.11; 228 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards",
"evidence": "reports/python_compatibility.json",
"link": "python_compatibility.md"
},
@@ -76,7 +76,7 @@
"key": "architecture-maintainability",
"label": "架构维护",
"status": "pass",
- "detail": "224 Python files; 0 hotspots; 0 watchlist files; 2 early watch files; 0 blockers; largest 696 lines; 68 CLI handlers; 18 in entrypoint",
+ "detail": "225 Python files; 0 hotspots; 0 watchlist files; 2 early watch files; 0 blockers; largest 696 lines; 68 CLI handlers; 18 in entrypoint",
"evidence": "reports/architecture_maintainability.json",
"link": "architecture_maintainability.md"
},
@@ -1733,7 +1733,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 148
+ "file_count": 149
},
{
"path": "evals",
@@ -1748,7 +1748,7 @@
"file_count": 235
}
],
- "file_count": 451,
+ "file_count": 452,
"folder_count": 4,
"distribution": [
{
@@ -1773,7 +1773,7 @@
},
{
"label": "scripts",
- "value": 148
+ "value": 149
},
{
"label": "evals",
@@ -1903,7 +1903,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 148
+ "file_count": 149
},
{
"path": "evals",
@@ -2229,9 +2229,9 @@
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "evidence_bundle_sha256": "55fc0caa28b80022bd16a0a84f77bb0040c4f6eee14fabb526f492ae7c962ef6",
- "source_contract_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "evidence_bundle_sha256": "e114eec2acbc1cbb7ac578dd4e5165c3ed2b88e4922ba3e64d2c6232a577fc6d",
+ "source_contract_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -2251,12 +2251,16 @@
"public_claim_ready": false,
"public_claim_blocker_count": 5,
"working_tree_dirty": true,
- "changed_file_count": 67
+ "changed_file_count": 62,
+ "source_tree_dirty": true,
+ "source_changed_file_count": 6,
+ "generated_tree_dirty": true,
+ "generated_changed_file_count": 56
},
- "commit": "f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11",
+ "commit": "4a1a5295708ba3570821583652ef91fda0f0874f",
"missing_artifacts": [],
"limitations": [
- "The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
+ "The git commit and dirty flags are generation-time context; release lock is blocked by source changes, while generated evidence artifacts are tracked separately.",
"Local command-runner evidence is reproducible but does not replace provider-backed model holdout evidence.",
"Pending blind-review decisions are visible but do not count as human adjudication.",
"World-class readiness remains false until external and human evidence gaps close."
@@ -2337,9 +2341,9 @@
"failures": []
},
"trust_security": {
- "scanned_files": 240,
- "script_count": 148,
- "internal_module_count": 62,
+ "scanned_files": 241,
+ "script_count": 149,
+ "internal_module_count": 63,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -2357,8 +2361,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
- "package_hash_file_count": 240,
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "package_hash_file_count": 241,
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
},
"skill_atlas": {
"skill_count": 12,
@@ -2396,8 +2400,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
"compatibility": {
"openai": "pass",
@@ -2428,12 +2432,12 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
},
- "generated_at": "2026-06-17"
+ "generated_at": "2026-06-13"
},
"failures": [],
"warnings": []
@@ -2444,8 +2448,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
- "archive_entry_count": 687,
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
+ "archive_entry_count": 688,
"failure_count": 0,
"warning_count": 0
},
@@ -2456,7 +2460,7 @@
"ok": true,
"summary": {
"archive_present": true,
- "archive_entry_count": 687,
+ "archive_entry_count": 688,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -2523,12 +2527,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "to": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "to": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
}
]
},
@@ -5042,7 +5046,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 38.77,
+ "duration_ms": 28.43,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5070,7 +5074,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 36.69,
+ "duration_ms": 28.15,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5093,7 +5097,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 36.84,
+ "duration_ms": 27.9,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5121,7 +5125,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 36.88,
+ "duration_ms": 27.98,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5144,7 +5148,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 35.28,
+ "duration_ms": 27.99,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5172,7 +5176,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 34.8,
+ "duration_ms": 27.99,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5195,7 +5199,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 33.15,
+ "duration_ms": 28.48,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5222,7 +5226,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 48.5,
+ "duration_ms": 29.39,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5245,7 +5249,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 32.18,
+ "duration_ms": 29.22,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5274,7 +5278,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 32.15,
+ "duration_ms": 28.25,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -6055,13 +6059,16 @@
"ok": true,
"generated_at": "2026-06-17",
"skill_dir": ".",
- "commit": "f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11",
+ "commit": "4a1a5295708ba3570821583652ef91fda0f0874f",
"git_status": {
"available": true,
"dirty": true,
- "changed_file_count": 67,
+ "changed_file_count": 62,
+ "generated_dirty": true,
+ "generated_changed_file_count": 56,
+ "source_dirty": true,
+ "source_changed_file_count": 6,
"sample": [
- " M assets/review-studio.css",
" M registry/index.json",
" M registry/packages/yao-meta-skill.json",
" M reports/adoption_drift_report.json",
@@ -6070,10 +6077,41 @@
" M reports/architecture_maintainability.md",
" M reports/benchmark_reproducibility.json",
" M reports/benchmark_reproducibility.md",
+ " M reports/compiled_targets.json",
" M reports/context_budget.json",
" M reports/context_budget.md",
" M reports/context_budget_summary.json"
],
+ "source_sample": [
+ " M scripts/render_benchmark_reproducibility.py",
+ " M scripts/render_evidence_consistency.py",
+ " M tests/verify_benchmark_reproducibility.py",
+ " M tests/verify_evidence_consistency.py",
+ " M tests/verify_review_studio.py",
+ "?? scripts/benchmark_release_lock.py"
+ ],
+ "generated_sample": [
+ " M registry/index.json",
+ " M registry/packages/yao-meta-skill.json",
+ " M reports/adoption_drift_report.json",
+ " M reports/adoption_drift_report.md",
+ " M reports/architecture_maintainability.json",
+ " M reports/architecture_maintainability.md",
+ " M reports/benchmark_reproducibility.json",
+ " M reports/benchmark_reproducibility.md",
+ " M reports/compiled_targets.json",
+ " M reports/context_budget.json",
+ " M reports/context_budget.md",
+ " M reports/context_budget_summary.json"
+ ],
+ "generated_dirty_prefixes": [
+ "dist/",
+ "registry/index.json",
+ "registry/packages/",
+ "reports/",
+ "skill_atlas/",
+ "skill-ir/examples/"
+ ],
"scope": "generation-time status before this report is written"
},
"summary": {
@@ -6082,9 +6120,9 @@
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "evidence_bundle_sha256": "55fc0caa28b80022bd16a0a84f77bb0040c4f6eee14fabb526f492ae7c962ef6",
- "source_contract_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "evidence_bundle_sha256": "e114eec2acbc1cbb7ac578dd4e5165c3ed2b88e4922ba3e64d2c6232a577fc6d",
+ "source_contract_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -6104,7 +6142,11 @@
"public_claim_ready": false,
"public_claim_blocker_count": 5,
"working_tree_dirty": true,
- "changed_file_count": 67
+ "changed_file_count": 62,
+ "source_tree_dirty": true,
+ "source_changed_file_count": 6,
+ "generated_tree_dirty": true,
+ "generated_changed_file_count": 56
},
"public_claim": {
"ready": false,
@@ -6120,9 +6162,11 @@
},
"release_lock": {
"ready": false,
- "commit": "f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11",
+ "commit": "4a1a5295708ba3570821583652ef91fda0f0874f",
"status_scope": "generation-time status before this report is written",
- "reason": "working tree was dirty at generation time"
+ "source_changed_file_count": 6,
+ "generated_changed_file_count": 56,
+ "reason": "source files were dirty at generation time"
},
"evidence_bundle": {
"algorithm": "sha256(path,label,exists,artifact_sha256)",
@@ -6130,7 +6174,7 @@
"existing_count": 25,
"missing_count": 0,
"missing_paths": [],
- "sha256": "55fc0caa28b80022bd16a0a84f77bb0040c4f6eee14fabb526f492ae7c962ef6"
+ "sha256": "e114eec2acbc1cbb7ac578dd4e5165c3ed2b88e4922ba3e64d2c6232a577fc6d"
},
"methodology": {
"path": "reports/benchmark_methodology.md",
@@ -6203,8 +6247,8 @@
"label": "output_execution",
"path": "reports/output_execution_runs.json",
"exists": true,
- "bytes": 7965,
- "sha256": "5291115a0e1348926c8afe739fc2185754e571766bcc1d6a6e88b80ba07f8a9e"
+ "bytes": 7966,
+ "sha256": "c9c054c2e0a731644c659c5005b871e33072c3d12612793ba2a5df5b8873eba3"
},
{
"label": "blind_review",
@@ -6238,43 +6282,43 @@
"label": "trust_report",
"path": "reports/security_trust_report.json",
"exists": true,
- "bytes": 134467,
- "sha256": "596dafa184943797bd77591b0f2ba9366ddd541f90cb9c08d92ce7069c1b326c"
+ "bytes": 135139,
+ "sha256": "a18583795da7c3ffc0d355bc5465382b50f1a737a33e62b1e4b182496c9e4c5e"
},
{
"label": "python_compatibility",
"path": "reports/python_compatibility.json",
"exists": true,
- "bytes": 29464,
- "sha256": "f53cce322cc33af4f7cbc7e22587ac3e0c0359dfa1889a03f38c93472abf319d"
+ "bytes": 29589,
+ "sha256": "364a150344f461934d36ca59c0f5f6e1ed487fbfa3b30cfdff548ded277dd5c5"
},
{
"label": "registry_audit",
"path": "reports/registry_audit.json",
"exists": true,
"bytes": 3183,
- "sha256": "79532bfc006cabfd1f086601112b58c1fe84660d6606521d0256c77177d6c993"
+ "sha256": "d0157e4c0242955a3870f11eb00649f77e14b75f393874ea110b8f8e6eca89fb"
},
{
"label": "package_verification",
"path": "reports/package_verification.json",
"exists": true,
"bytes": 19338,
- "sha256": "df947ca7f0e5737c0f7961ee146171b3727c189f8dc5439941597d3c646fe06a"
+ "sha256": "755a9c6788ccc0624682e523fe0154ac8b471bc4e41ed132f9866143762f398e"
},
{
"label": "install_simulation",
"path": "reports/install_simulation.json",
"exists": true,
- "bytes": 8604,
- "sha256": "08d96de4662c8e047e351f4241ff3a4f98c521907fc4cd703faadff861bee63a"
+ "bytes": 8758,
+ "sha256": "15b77ec2b4738df891457d1d65f914751f30d6cd816a377e5c50c5a0b6d35b78"
},
{
"label": "skill_os2_audit",
"path": "reports/skill_os2_audit.json",
"exists": true,
"bytes": 14466,
- "sha256": "7fc0b099204ca5045de2db9eb19c5cf599f9c87bed1cd7f39c1f5f50704b3fb2"
+ "sha256": "16cbe378cc1a5ef847022c274af42ec8b6f7c346c8a06f59e6f6e3060d666177"
},
{
"label": "world_class_evidence_plan",
@@ -6464,7 +6508,7 @@
"policy": "Keep representative failures visible and tied to regression checks."
},
"limitations": [
- "The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
+ "The git commit and dirty flags are generation-time context; release lock is blocked by source changes, while generated evidence artifacts are tracked separately.",
"Local command-runner evidence is reproducible but does not replace provider-backed model holdout evidence.",
"Pending blind-review decisions are visible but do not count as human adjudication.",
"World-class readiness remains false until external and human evidence gaps close."
@@ -6606,7 +6650,7 @@
"label": "Trust Security",
"status": "pass",
"objective": "Scripts, dependencies, permissions, secrets, and package hash are reviewable for team distribution.",
- "current": "148 scripts; secrets 0; help failures 0",
+ "current": "149 scripts; secrets 0; help failures 0",
"command": "python3 scripts/yao.py trust .",
"test": "python3 tests/verify_trust_check.py",
"evidence": [
@@ -6680,7 +6724,7 @@
"label": "Registry Distribution",
"status": "pass",
"objective": "Skill packages are installable, versioned, checksumed, and upgrade-reviewable.",
- "current": "archive entries 687; install failures 0",
+ "current": "archive entries 688; install failures 0",
"command": "python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip && python3 scripts/yao.py registry-audit .",
"test": "python3 tests/verify_registry_audit.py",
"evidence": [
@@ -7826,9 +7870,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -7869,7 +7914,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -7891,7 +7936,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -8083,9 +8128,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -8126,7 +8172,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -8146,7 +8192,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -8773,9 +8819,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -8816,7 +8863,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -8838,7 +8885,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -9030,9 +9077,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -9073,7 +9121,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -9093,7 +9141,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -9720,9 +9768,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -9763,7 +9812,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -9785,7 +9834,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -9970,9 +10019,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -10013,7 +10063,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -10033,7 +10083,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -10651,9 +10701,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -10694,7 +10745,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -10716,7 +10767,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -10901,9 +10952,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -10944,7 +10996,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -10964,7 +11016,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -11582,9 +11634,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -11625,7 +11678,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -11647,7 +11700,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -11836,9 +11889,10 @@
},
"subprocess": {
"required": true,
- "script_count": 11,
+ "script_count": 12,
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -11879,7 +11933,7 @@
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 73,
- "subprocess_script_count": 11,
+ "subprocess_script_count": 12,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
}
@@ -11899,7 +11953,7 @@
"capability_counts": {
"network": 3,
"file_write": 73,
- "subprocess": 11,
+ "subprocess": 12,
"interactive": 0
},
"evidence": "reports/security_trust_report.json",
@@ -12247,7 +12301,7 @@
"schema_version": "1.0",
"ok": true,
"skill_dir": ".",
- "package_dir": "dist",
+ "package_dir": "tests/tmp_review_studio/dist",
"expected_capabilities": [
"file_write",
"network",
@@ -12287,7 +12341,7 @@
{
"target": "openai",
"status": "pass",
- "adapter": "dist/targets/openai/adapter.json",
+ "adapter": "tests/tmp_review_studio/dist/targets/openai/adapter.json",
"permission_model": "metadata-only",
"native_enforcement": false,
"metadata_fallback_explicit": true,
@@ -12384,7 +12438,7 @@
{
"target": "claude",
"status": "pass",
- "adapter": "dist/targets/claude/adapter.json",
+ "adapter": "tests/tmp_review_studio/dist/targets/claude/adapter.json",
"permission_model": "neutral-source-plus-adapter",
"native_enforcement": false,
"metadata_fallback_explicit": true,
@@ -12466,7 +12520,7 @@
{
"target": "generic",
"status": "pass",
- "adapter": "dist/targets/generic/adapter.json",
+ "adapter": "tests/tmp_review_studio/dist/targets/generic/adapter.json",
"permission_model": "agent-skills-compatible-metadata",
"native_enforcement": false,
"metadata_fallback_explicit": true,
@@ -12548,7 +12602,7 @@
{
"target": "vscode",
"status": "pass",
- "adapter": "dist/targets/vscode/adapter.json",
+ "adapter": "tests/tmp_review_studio/dist/targets/vscode/adapter.json",
"permission_model": "vscode-workspace-trust-plus-metadata",
"native_enforcement": false,
"metadata_fallback_explicit": true,
@@ -12638,9 +12692,9 @@
"ok": true,
"skill_dir": ".",
"summary": {
- "scanned_files": 240,
- "script_count": 148,
- "internal_module_count": 62,
+ "scanned_files": 241,
+ "script_count": 149,
+ "internal_module_count": 63,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -12658,8 +12712,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
- "package_hash_file_count": 240,
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "package_hash_file_count": 241,
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
},
"failures": [],
"warnings": [],
@@ -12721,6 +12775,20 @@
"network_urls": [],
"network_hosts": []
},
+ {
+ "path": "scripts/benchmark_release_lock.py",
+ "interface": "internal-module",
+ "interface_declared": true,
+ "interface_reason": "Imported by render_benchmark_reproducibility.py to keep release-lock git status classification out of the report renderer.",
+ "has_argparse": false,
+ "has_main_guard": false,
+ "uses_input": false,
+ "uses_network": false,
+ "uses_file_write": false,
+ "uses_subprocess": true,
+ "network_urls": [],
+ "network_hosts": []
+ },
{
"path": "scripts/build_confusion_matrix.py",
"interface": "cli",
@@ -14789,7 +14857,7 @@
"checked_count": 86,
"passed_count": 86,
"failed_count": 0,
- "skipped_count": 62,
+ "skipped_count": 63,
"failed_scripts": [],
"results": [
{
@@ -15662,6 +15730,10 @@
"path": "scripts/adaptation_report_contracts.py",
"reason": "internal module"
},
+ {
+ "path": "scripts/benchmark_release_lock.py",
+ "reason": "internal module"
+ },
{
"path": "scripts/build_skill_atlas_layout.py",
"reason": "internal module"
@@ -16052,6 +16124,7 @@
"status": "approved",
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
@@ -16094,11 +16167,11 @@
"python_compatibility": {
"schema_version": "1.0",
"ok": true,
- "generated_at": "2026-06-17",
+ "generated_at": "2026-06-13",
"root": ".",
"summary": {
"target_python": "3.11",
- "file_count": 227,
+ "file_count": 228,
"issue_count": 0,
"syntax_error_count": 0,
"fstring_311_violation_count": 0,
@@ -16157,6 +16230,12 @@
"issue_count": 0,
"issues": []
},
+ {
+ "path": "scripts/benchmark_release_lock.py",
+ "ok": true,
+ "issue_count": 0,
+ "issues": []
+ },
{
"path": "scripts/build_confusion_matrix.py",
"ok": true,
@@ -17487,13 +17566,13 @@
"architecture_maintainability": {
"schema_version": "1.0",
"ok": true,
- "generated_at": "2026-06-17",
+ "generated_at": "2026-06-13",
"skill_dir": ".",
"summary": {
- "python_file_count": 224,
- "script_file_count": 148,
+ "python_file_count": 225,
+ "script_file_count": 149,
"test_file_count": 76,
- "internal_module_count": 64,
+ "internal_module_count": 65,
"cli_script_count": 86,
"command_handler_count": 68,
"entrypoint_command_handler_count": 18,
@@ -17534,14 +17613,6 @@
"early_watch": false,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
- {
- "path": "scripts/render_benchmark_reproducibility.py",
- "lines": 595,
- "kind": "cli-script",
- "severity": "pass",
- "early_watch": false,
- "recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
- },
{
"path": "scripts/render_world_class_preflight.py",
"lines": 593,
@@ -17592,7 +17663,7 @@
},
{
"path": "scripts/render_evidence_consistency.py",
- "lines": 568,
+ "lines": 571,
"kind": "cli-script",
"severity": "pass",
"early_watch": false,
@@ -17605,6 +17676,14 @@
"severity": "pass",
"early_watch": false,
"recommendation": "Move data loading and large section renderers into focused review_studio_* modules."
+ },
+ {
+ "path": "scripts/adjudicate_output_review.py",
+ "lines": 566,
+ "kind": "cli-script",
+ "severity": "pass",
+ "early_watch": false,
+ "recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
}
],
"watchlist": [],
@@ -17641,16 +17720,16 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 797,
- "other_text_tokens": 1110546,
+ "other_text_tokens": 1112808,
"estimated_initial_load_tokens": 990,
- "estimated_total_text_tokens": 1111343,
- "deferred_resource_tokens": 506961,
+ "estimated_total_text_tokens": 1113605,
+ "deferred_resource_tokens": 507713,
"deferred_resource_warn_threshold": 120000,
"deferred_resource_dirs": [
{
"path": "scripts",
- "estimated_tokens": 445781,
- "file_count": 148
+ "estimated_tokens": 446533,
+ "file_count": 149
},
{
"path": "references",
@@ -17671,8 +17750,8 @@
"large_deferred_resource_dirs": [
{
"path": "scripts",
- "estimated_tokens": 445781,
- "file_count": 148
+ "estimated_tokens": 446533,
+ "file_count": 149
}
],
"deferred_resource_governance": {
@@ -17694,14 +17773,14 @@
],
"missing": [],
"path": "scripts",
- "estimated_tokens": 445781,
- "file_count": 148,
+ "estimated_tokens": 446533,
+ "file_count": 149,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
],
"summary": "Large deferred resources are indexed and backed by evidence."
},
- "relevant_file_count": 702,
+ "relevant_file_count": 704,
"unused_resource_dirs": [],
"quality_signal_points": 130,
"quality_density": 131.3
@@ -18545,7 +18624,7 @@
},
"catalog": {
"workspace_root": ".",
- "generated_at": "2026-06-17",
+ "generated_at": "2026-06-13",
"skills": [
{
"name": "yao-meta-skill",
@@ -18569,6 +18648,7 @@
"scripts/adaptation_report_contracts.py",
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/build_confusion_matrix.py",
"scripts/build_skill_atlas.py",
"scripts/build_skill_atlas_layout.py",
@@ -18783,8 +18863,8 @@
"report": "reports/adoption_drift_report.json",
"risk_band": "low",
"event_count": 1,
- "adoption_sample_count": 0,
- "adoption_rate": 0,
+ "adoption_sample_count": 1,
+ "adoption_rate": 100.0,
"candidate_count": 0
}
},
@@ -19447,7 +19527,7 @@
"name": "incident-command-governor",
"path": "examples/governed-incident-command/generated-skill",
"reason": "review overdue by cadence monthly",
- "age_days": 78,
+ "age_days": 74,
"allowed_days": 31,
"actionable": false,
"scope": "example"
@@ -20535,7 +20615,7 @@
"schema_version": "1.0",
"ok": true,
"skill_dir": ".",
- "generated_at": "2026-06-17",
+ "generated_at": "2026-06-13",
"summary": {
"waiver_count": 0,
"active_count": 0,
@@ -20625,7 +20705,7 @@
"Reviewer links output_review_adjudication or output_execution evidence."
],
"suggested_evidence": "reports/output_review_adjudication.md",
- "suggested_command": "python3 scripts/yao.py review-waivers . --add-waiver --gate-key output-lab --reviewer \"\" --reason \"Output Lab has pending human/provider evidence; accepted only for this bounded review scope.\" --expires-at 2027-06-17 --evidence reports/output_review_adjudication.md",
+ "suggested_command": "python3 scripts/yao.py review-waivers . --add-waiver --gate-key output-lab --reviewer \"\" --reason \"Output Lab has pending human/provider evidence; accepted only for this bounded review scope.\" --expires-at 2027-06-13 --evidence reports/output_review_adjudication.md",
"world_class_boundary": "Does not count as provider, human, or public world-class completion evidence."
},
{
@@ -20655,7 +20735,7 @@
"schema_version": "1.0",
"ok": true,
"skill_dir": ".",
- "source": "reports/review_annotations_input.json",
+ "source": "tests/tmp_review_studio/empty_review_annotations_input.json",
"summary": {
"annotation_count": 0,
"open_count": 0,
@@ -25454,8 +25534,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
"compatibility": {
"openai": "pass",
@@ -25486,16 +25566,16 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
},
- "generated_at": "2026-06-17"
+ "generated_at": "2026-06-13"
},
"index": {
"schema_version": "2.0",
- "generated_at": "2026-06-17",
+ "generated_at": "2026-06-13",
"package_count": 1,
"packages": [
{
@@ -25511,7 +25591,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
}
]
},
@@ -25534,8 +25614,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
- "archive_entry_count": 687,
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
+ "archive_entry_count": 688,
"failure_count": 0,
"warning_count": 0
},
@@ -26193,14 +26273,14 @@
"install_simulation": {
"ok": true,
"schema_version": "2.0",
- "generated_at": "2026-06-17",
+ "generated_at": "2026-06-13",
"skill_dir": ".",
- "package_dir": "dist",
- "install_root": "dist/install-simulation/simulate-yao-meta-skill",
- "installed_skill_dir": "dist/install-simulation/simulate-yao-meta-skill/yao-meta-skill",
+ "package_dir": "tests/tmp_review_studio/dist",
+ "install_root": "tests/tmp_review_studio/install-root/simulate-yao-meta-skill",
+ "installed_skill_dir": "tests/tmp_review_studio/install-root/simulate-yao-meta-skill/yao-meta-skill",
"summary": {
"archive_present": true,
- "archive_entry_count": 687,
+ "archive_entry_count": 688,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -26218,7 +26298,7 @@
{
"id": "archive-present",
"status": "pass",
- "detail": "Package archive exists: dist/yao-meta-skill.zip"
+ "detail": "Package archive exists: tests/tmp_review_studio/dist/yao-meta-skill.zip"
},
{
"id": "archive-safe-paths",
@@ -26464,16 +26544,16 @@
"failures": [],
"warnings": [],
"artifacts": {
- "archive": "dist/yao-meta-skill.zip",
- "package_manifest": "dist/manifest.json",
- "json": "reports/install_simulation.json",
- "markdown": "reports/install_simulation.md"
+ "archive": "tests/tmp_review_studio/dist/yao-meta-skill.zip",
+ "package_manifest": "tests/tmp_review_studio/dist/manifest.json",
+ "json": "tests/tmp_review_studio/install_simulation.json",
+ "markdown": "tests/tmp_review_studio/install_simulation.md"
}
},
"upgrade_check": {
"ok": true,
"schema_version": "2.0",
- "generated_at": "2026-06-17",
+ "generated_at": "2026-06-13",
"previous": {
"name": "yao-meta-skill",
"version": "1.0.0",
@@ -26542,12 +26622,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "to": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "to": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
}
]
},
@@ -26562,8 +26642,8 @@
"artifacts": {
"previous_package": "registry/examples/yao-meta-skill-1.0.0.json",
"current_package": "reports/registry_audit.json",
- "json": "reports/upgrade_check.json",
- "markdown": "reports/upgrade_check.md"
+ "json": "tests/tmp_review_studio/upgrade_check.json",
+ "markdown": "tests/tmp_review_studio/upgrade_check.md"
}
},
"manifest": {
diff --git a/reports/review-viewer.json b/reports/review-viewer.json
index 6977be19..883220c7 100644
--- a/reports/review-viewer.json
+++ b/reports/review-viewer.json
@@ -514,7 +514,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 148
+ "file_count": 149
},
{
"path": "evals",
@@ -529,7 +529,7 @@
"file_count": 235
}
],
- "file_count": 451,
+ "file_count": 452,
"folder_count": 4,
"distribution": [
{
@@ -554,7 +554,7 @@
},
{
"label": "scripts",
- "value": 148
+ "value": 149
},
{
"label": "evals",
@@ -684,7 +684,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 148
+ "file_count": 149
},
{
"path": "evals",
@@ -1010,9 +1010,9 @@
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "evidence_bundle_sha256": "55fc0caa28b80022bd16a0a84f77bb0040c4f6eee14fabb526f492ae7c962ef6",
- "source_contract_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "evidence_bundle_sha256": "e114eec2acbc1cbb7ac578dd4e5165c3ed2b88e4922ba3e64d2c6232a577fc6d",
+ "source_contract_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1032,12 +1032,16 @@
"public_claim_ready": false,
"public_claim_blocker_count": 5,
"working_tree_dirty": true,
- "changed_file_count": 67
+ "changed_file_count": 62,
+ "source_tree_dirty": true,
+ "source_changed_file_count": 6,
+ "generated_tree_dirty": true,
+ "generated_changed_file_count": 56
},
- "commit": "f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11",
+ "commit": "4a1a5295708ba3570821583652ef91fda0f0874f",
"missing_artifacts": [],
"limitations": [
- "The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
+ "The git commit and dirty flags are generation-time context; release lock is blocked by source changes, while generated evidence artifacts are tracked separately.",
"Local command-runner evidence is reproducible but does not replace provider-backed model holdout evidence.",
"Pending blind-review decisions are visible but do not count as human adjudication.",
"World-class readiness remains false until external and human evidence gaps close."
@@ -1118,9 +1122,9 @@
"failures": []
},
"trust_security": {
- "scanned_files": 240,
- "script_count": 148,
- "internal_module_count": 62,
+ "scanned_files": 241,
+ "script_count": 149,
+ "internal_module_count": 63,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -1138,8 +1142,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
- "package_hash_file_count": 240,
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "package_hash_file_count": 241,
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
},
"skill_atlas": {
"skill_count": 12,
@@ -1177,8 +1181,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
"compatibility": {
"openai": "pass",
@@ -1209,12 +1213,12 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
},
- "generated_at": "2026-06-17"
+ "generated_at": "2026-06-13"
},
"failures": [],
"warnings": []
@@ -1225,8 +1229,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
- "archive_entry_count": 687,
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
+ "archive_entry_count": 688,
"failure_count": 0,
"warning_count": 0
},
@@ -1237,7 +1241,7 @@
"ok": true,
"summary": {
"archive_present": true,
- "archive_entry_count": 687,
+ "archive_entry_count": 688,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1304,12 +1308,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "to": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "to": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
}
]
},
diff --git a/reports/security_trust_report.json b/reports/security_trust_report.json
index 05d6582d..a9efcc69 100644
--- a/reports/security_trust_report.json
+++ b/reports/security_trust_report.json
@@ -2,9 +2,9 @@
"ok": true,
"skill_dir": ".",
"summary": {
- "scanned_files": 240,
- "script_count": 148,
- "internal_module_count": 62,
+ "scanned_files": 241,
+ "script_count": 149,
+ "internal_module_count": 63,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -22,8 +22,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
- "package_hash_file_count": 240,
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "package_hash_file_count": 241,
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
},
"failures": [],
"warnings": [],
@@ -85,6 +85,20 @@
"network_urls": [],
"network_hosts": []
},
+ {
+ "path": "scripts/benchmark_release_lock.py",
+ "interface": "internal-module",
+ "interface_declared": true,
+ "interface_reason": "Imported by render_benchmark_reproducibility.py to keep release-lock git status classification out of the report renderer.",
+ "has_argparse": false,
+ "has_main_guard": false,
+ "uses_input": false,
+ "uses_network": false,
+ "uses_file_write": false,
+ "uses_subprocess": true,
+ "network_urls": [],
+ "network_hosts": []
+ },
{
"path": "scripts/build_confusion_matrix.py",
"interface": "cli",
@@ -2153,7 +2167,7 @@
"checked_count": 86,
"passed_count": 86,
"failed_count": 0,
- "skipped_count": 62,
+ "skipped_count": 63,
"failed_scripts": [],
"results": [
{
@@ -3026,6 +3040,10 @@
"path": "scripts/adaptation_report_contracts.py",
"reason": "internal module"
},
+ {
+ "path": "scripts/benchmark_release_lock.py",
+ "reason": "internal module"
+ },
{
"path": "scripts/build_skill_atlas_layout.py",
"reason": "internal module"
@@ -3416,6 +3434,7 @@
"status": "approved",
"scripts": [
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/ci_test.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_eval_dashboard.py",
diff --git a/reports/security_trust_report.md b/reports/security_trust_report.md
index 51dbfca1..907fa0fe 100644
--- a/reports/security_trust_report.md
+++ b/reports/security_trust_report.md
@@ -1,9 +1,9 @@
# Security Trust Report
- OK: `True`
-- Scanned files: `240`
-- Scripts: `148`
-- Internal script modules: `62`
+- Scanned files: `241`
+- Scripts: `149`
+- Internal script modules: `63`
- Secret findings: `0`
- Network-capable scripts: `3`
- Network policy covered scripts: `3`
@@ -15,8 +15,8 @@
- CLI help smoke failures: `0`
- Interactive scripts: `0`
- Package hash scope: `source-contract-without-generated-reports`
-- Package hash files: `240`
-- Package SHA256: `7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e`
+- Package hash files: `241`
+- Package SHA256: `6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59`
## Failures
@@ -66,6 +66,7 @@
| scripts/adaptation_report_contracts.py | internal-module | True | False | False | False | False | False | False | Shared adaptation approval and regression report contract decoration helpers. |
| scripts/adjudicate_output_review.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. |
| scripts/apply_adaptation.py | cli | True | True | True | False | False | True | True | Approval-gated adaptive patch application with dry-run, allowlist, regression, and rollback evidence. |
+| scripts/benchmark_release_lock.py | internal-module | True | False | False | False | False | False | True | Imported by render_benchmark_reproducibility.py to keep release-lock git status classification out of the report renderer. |
| scripts/build_confusion_matrix.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. |
| scripts/build_skill_atlas.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. |
| scripts/build_skill_atlas_layout.py | internal-module | True | False | False | False | False | False | False | Imported by build_skill_atlas.py to render the static Skill Atlas HTML report. |
diff --git a/reports/skill-interpretation.html b/reports/skill-interpretation.html
index 2b366b6e..23f28080 100644
--- a/reports/skill-interpretation.html
+++ b/reports/skill-interpretation.html
@@ -940,7 +940,7 @@
让 reviewer 快速确认关键文件、目录和资产分布。 Lets reviewers confirm key files, directories, and asset distribution quickly.
-
资产分布 Asset Distribution 451项 451 items SKILL.md SKILL.md README.md README.md agents/interface.yaml agents/interface.yaml manifest.json manifest.json references references scripts scripts 资产分布图展示当前包体的文件和目录重心。 The asset distribution chart shows where files and directories are concentrated.
+
资产分布 Asset Distribution 452项 452 items SKILL.md SKILL.md README.md README.md agents/interface.yaml agents/interface.yaml manifest.json manifest.json references references scripts scripts 资产分布图展示当前包体的文件和目录重心。 The asset distribution chart shows where files and directories are concentrated.
路径 Path 作用 Role 类型 Type
SKILL.md Skill 入口文件 Skill entrypoint 文件 file README.md 人类可读使用说明 Human-readable usage guide 文件 file agents/interface.yaml 跨平台接口元数据 Neutral interface metadata 文件 file manifest.json 生命周期与打包元数据 Lifecycle and portability metadata 文件 file references 扩展指导与复用资料 Extended guidance and reusable notes 目录 folder scripts 确定性脚本或本地工具 Deterministic helpers or local tooling 目录 folder evals 触发与质量检查 Trigger and quality checks 目录 folder reports 生成的证据与总结报告 Generated evidence and overview artifacts 目录 folder
diff --git a/reports/skill-interpretation.json b/reports/skill-interpretation.json
index 11ab904b..10e687e7 100644
--- a/reports/skill-interpretation.json
+++ b/reports/skill-interpretation.json
@@ -514,7 +514,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 148
+ "file_count": 149
},
{
"path": "evals",
@@ -529,7 +529,7 @@
"file_count": 235
}
],
- "file_count": 451,
+ "file_count": 452,
"folder_count": 4,
"distribution": [
{
@@ -554,7 +554,7 @@
},
{
"label": "scripts",
- "value": 148
+ "value": 149
},
{
"label": "evals",
@@ -688,7 +688,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 148
+ "file_count": 149
},
{
"path": "evals",
@@ -1014,9 +1014,9 @@
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "evidence_bundle_sha256": "55fc0caa28b80022bd16a0a84f77bb0040c4f6eee14fabb526f492ae7c962ef6",
- "source_contract_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "evidence_bundle_sha256": "e114eec2acbc1cbb7ac578dd4e5165c3ed2b88e4922ba3e64d2c6232a577fc6d",
+ "source_contract_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1036,12 +1036,16 @@
"public_claim_ready": false,
"public_claim_blocker_count": 5,
"working_tree_dirty": true,
- "changed_file_count": 67
+ "changed_file_count": 62,
+ "source_tree_dirty": true,
+ "source_changed_file_count": 6,
+ "generated_tree_dirty": true,
+ "generated_changed_file_count": 56
},
- "commit": "f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11",
+ "commit": "4a1a5295708ba3570821583652ef91fda0f0874f",
"missing_artifacts": [],
"limitations": [
- "The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
+ "The git commit and dirty flags are generation-time context; release lock is blocked by source changes, while generated evidence artifacts are tracked separately.",
"Local command-runner evidence is reproducible but does not replace provider-backed model holdout evidence.",
"Pending blind-review decisions are visible but do not count as human adjudication.",
"World-class readiness remains false until external and human evidence gaps close."
@@ -1122,9 +1126,9 @@
"failures": []
},
"trust_security": {
- "scanned_files": 240,
- "script_count": 148,
- "internal_module_count": 62,
+ "scanned_files": 241,
+ "script_count": 149,
+ "internal_module_count": 63,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -1142,8 +1146,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
- "package_hash_file_count": 240,
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "package_hash_file_count": 241,
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
},
"skill_atlas": {
"skill_count": 12,
@@ -1181,8 +1185,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
"compatibility": {
"openai": "pass",
@@ -1213,12 +1217,12 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
},
- "generated_at": "2026-06-17"
+ "generated_at": "2026-06-13"
},
"failures": [],
"warnings": []
@@ -1229,8 +1233,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
- "archive_entry_count": 687,
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
+ "archive_entry_count": 688,
"failure_count": 0,
"warning_count": 0
},
@@ -1241,7 +1245,7 @@
"ok": true,
"summary": {
"archive_present": true,
- "archive_entry_count": 687,
+ "archive_entry_count": 688,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1308,12 +1312,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "to": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "to": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
}
]
},
diff --git a/reports/skill-os-2-review.md b/reports/skill-os-2-review.md
index 73bb1c63..5e83d83f 100644
--- a/reports/skill-os-2-review.md
+++ b/reports/skill-os-2-review.md
@@ -135,13 +135,13 @@ Next move: add real client or installer permission enforcement integration.
| Output Eval | `5` cases, with-skill pass rate `100`, baseline pass rate `0`, with file-backed, near-neighbor, boundary coverage, `10` local command-runner execution runs, `0` recorded fixture runs, `0` provider model-executed runs in root release evidence, `10` estimated token counts, provider runner v0 available, `5` blind A/B review pairs, a generated `reports/output_review_decisions.json` template, `0 / 5` reviewer decisions pending, `0` answer keys revealed, and `5` pending answers hidden |
| Runtime Conformance | `5 / 5` targets passing |
| Target Compiler | `5 / 5` compiled target contracts generated for OpenAI, Claude, generic, Agent Skills compatible, and VS Code / Copilot outputs, including target permission contracts and target-native behavior contracts |
-| Trust | `0` secret findings, `1` pinned dependency file, `62` declared internal modules, `3 / 3` network-capable scripts covered by bounded host policy, `86 / 86` CLI help smoke checks passing across `148` scripts, source-contract hash scope explicit |
+| Trust | `0` secret findings, `1` pinned dependency file, `63` declared internal modules, `3 / 3` network-capable scripts covered by bounded host policy, `86 / 86` CLI help smoke checks passing across `149` scripts, source-contract hash scope explicit |
| Permission Governance | `3 / 3` required high-permission capabilities approved, `0` missing, `0` invalid, `0` expired |
| Runtime Permission Probes | `4 / 4` target adapters probed, `0` native-enforcement adapters, `4` explicit metadata fallbacks, `4` residual risks retained for reviewer visibility |
| Skill Atlas | `12` scanned skills, `1` actionable root skill, `1` telemetry report, `0` actionable route collisions, `0` actionable owner gaps, `0` actionable stale skills, `0` actionable drift signals, `24` scoped non-actionable issue signals retained for visibility |
| Registry Audit | package metadata generated with version, owner, license, source checksum, archive checksum, Skill IR provenance, and compatibility matrix |
-| Package Verification | `4 / 4` target adapters present, archive verified, `687` zip entries, `0` failures, `0` warnings |
-| Install Simulation | archive with `687` entries extracted into a local verification root, entrypoint/manifest/interface loaded, reports present, `4` adapters readable, `12` installer permission checks enforced, `0` permission failures, `0` failures, `0` warnings |
+| Package Verification | `4 / 4` target adapters present, archive verified, `688` zip entries, `0` failures, `0` warnings |
+| Install Simulation | archive with `688` entries extracted into a local verification root, entrypoint/manifest/interface loaded, reports present, `4` adapters readable, `12` installer permission checks enforced, `0` permission failures, `0` failures, `0` warnings |
| Local Install Sync Preflight | `make sync-local-install` and `make sync-active-install` rebuild the package first, then sync only after install simulation passes with `12` enforced installer permission checks and `0` permission failures |
| Upgrade Check | current package declares `minor` over the 1.0.0 baseline, recommended bump is `minor`, and release notes include added targets plus checksum changes |
| Adoption Drift | `1` metadata-only review event, `1` adoption sample, adoption `100`, risk band `low`; optional `yao.py` CLI capture, external client `telemetry-emit`, `5` `telemetry-hooks` recipes, Browser/Chrome native messaging host, and validated external JSONL import are available but off by default for reproducible release evidence; raw `reports/telemetry_events.jsonl` is gitignored and blocked from zip packages |
diff --git a/reports/skill-overview.html b/reports/skill-overview.html
index 3ef14565..c6258ee1 100644
--- a/reports/skill-overview.html
+++ b/reports/skill-overview.html
@@ -940,7 +940,7 @@
让 reviewer 快速确认关键文件、目录和资产分布。 Lets reviewers confirm key files, directories, and asset distribution quickly.
-
资产分布 Asset Distribution 451项 451 items SKILL.md SKILL.md README.md README.md agents/interface.yaml agents/interface.yaml manifest.json manifest.json references references scripts scripts 资产分布图展示当前包体的文件和目录重心。 The asset distribution chart shows where files and directories are concentrated.
+
资产分布 Asset Distribution 452项 452 items SKILL.md SKILL.md README.md README.md agents/interface.yaml agents/interface.yaml manifest.json manifest.json references references scripts scripts 资产分布图展示当前包体的文件和目录重心。 The asset distribution chart shows where files and directories are concentrated.
路径 Path 作用 Role 类型 Type
SKILL.md Skill 入口文件 Skill entrypoint 文件 file README.md 人类可读使用说明 Human-readable usage guide 文件 file agents/interface.yaml 跨平台接口元数据 Neutral interface metadata 文件 file manifest.json 生命周期与打包元数据 Lifecycle and portability metadata 文件 file references 扩展指导与复用资料 Extended guidance and reusable notes 目录 folder scripts 确定性脚本或本地工具 Deterministic helpers or local tooling 目录 folder evals 触发与质量检查 Trigger and quality checks 目录 folder reports 生成的证据与总结报告 Generated evidence and overview artifacts 目录 folder
diff --git a/reports/skill-overview.json b/reports/skill-overview.json
index 09f67027..b87bc70b 100644
--- a/reports/skill-overview.json
+++ b/reports/skill-overview.json
@@ -513,7 +513,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 148
+ "file_count": 149
},
{
"path": "evals",
@@ -528,7 +528,7 @@
"file_count": 235
}
],
- "file_count": 451,
+ "file_count": 452,
"folder_count": 4,
"distribution": [
{
@@ -553,7 +553,7 @@
},
{
"label": "scripts",
- "value": 148
+ "value": 149
},
{
"label": "evals",
@@ -683,7 +683,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 148
+ "file_count": 149
},
{
"path": "evals",
@@ -1009,9 +1009,9 @@
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "evidence_bundle_sha256": "55fc0caa28b80022bd16a0a84f77bb0040c4f6eee14fabb526f492ae7c962ef6",
- "source_contract_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "evidence_bundle_sha256": "e114eec2acbc1cbb7ac578dd4e5165c3ed2b88e4922ba3e64d2c6232a577fc6d",
+ "source_contract_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1031,12 +1031,16 @@
"public_claim_ready": false,
"public_claim_blocker_count": 5,
"working_tree_dirty": true,
- "changed_file_count": 67
+ "changed_file_count": 62,
+ "source_tree_dirty": true,
+ "source_changed_file_count": 6,
+ "generated_tree_dirty": true,
+ "generated_changed_file_count": 56
},
- "commit": "f2cf8a9e53f02dbaf34bf1d0b874284d893ebc11",
+ "commit": "4a1a5295708ba3570821583652ef91fda0f0874f",
"missing_artifacts": [],
"limitations": [
- "The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
+ "The git commit and dirty flags are generation-time context; release lock is blocked by source changes, while generated evidence artifacts are tracked separately.",
"Local command-runner evidence is reproducible but does not replace provider-backed model holdout evidence.",
"Pending blind-review decisions are visible but do not count as human adjudication.",
"World-class readiness remains false until external and human evidence gaps close."
@@ -1117,9 +1121,9 @@
"failures": []
},
"trust_security": {
- "scanned_files": 240,
- "script_count": 148,
- "internal_module_count": 62,
+ "scanned_files": 241,
+ "script_count": 149,
+ "internal_module_count": 63,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -1137,8 +1141,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
- "package_hash_file_count": 240,
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "package_hash_file_count": 241,
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
},
"skill_atlas": {
"skill_count": 12,
@@ -1176,8 +1180,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e",
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "package_sha256": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
"compatibility": {
"openai": "pass",
@@ -1208,12 +1212,12 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
},
- "generated_at": "2026-06-17"
+ "generated_at": "2026-06-13"
},
"failures": [],
"warnings": []
@@ -1224,8 +1228,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40",
- "archive_entry_count": 687,
+ "archive_sha256": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8",
+ "archive_entry_count": 688,
"failure_count": 0,
"warning_count": 0
},
@@ -1236,7 +1240,7 @@
"ok": true,
"summary": {
"archive_present": true,
- "archive_entry_count": 687,
+ "archive_entry_count": 688,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1303,12 +1307,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "to": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "to": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
}
]
},
diff --git a/reports/skill_atlas.json b/reports/skill_atlas.json
index 16c1e7b1..1bdbea00 100644
--- a/reports/skill_atlas.json
+++ b/reports/skill_atlas.json
@@ -68,6 +68,7 @@
"scripts/adaptation_report_contracts.py",
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/build_confusion_matrix.py",
"scripts/build_skill_atlas.py",
"scripts/build_skill_atlas_layout.py",
diff --git a/reports/skill_os2_audit.json b/reports/skill_os2_audit.json
index 10daa4dd..3eadfb22 100644
--- a/reports/skill_os2_audit.json
+++ b/reports/skill_os2_audit.json
@@ -197,7 +197,7 @@
"key": "trust-security",
"label": "Trust Security",
"status": "pass",
- "current": "secrets 0; scripts 148; help failures 0",
+ "current": "secrets 0; scripts 149; help failures 0",
"target": "Secrets, scripts, dependencies, permissions, and package hash are reviewable",
"evidence": [
{
@@ -285,7 +285,7 @@
"key": "registry-distribution",
"label": "Registry Distribution",
"status": "pass",
- "current": "zip entries 687; install failures 0; permission failures 0",
+ "current": "zip entries 688; install failures 0; permission failures 0",
"target": "Package metadata, archive checksum, package verification, and install simulation pass",
"evidence": [
{
diff --git a/reports/skill_os2_audit.md b/reports/skill_os2_audit.md
index b4457343..106e632c 100644
--- a/reports/skill_os2_audit.md
+++ b/reports/skill_os2_audit.md
@@ -23,11 +23,11 @@ Generated at: `2026-06-13`
| Human Adjudication | human-required | 0/5 decisions; pending 5 | Real reviewer decisions, blind-review attestation, and integrity fingerprints recorded before claiming output review completion | Record real A/B choices, reviewer metadata, and blind-review attestation, then regenerate adjudication. |
| Benchmark Reproducibility | pass | artifacts 25; missing 0; failures 3 | Public methodology, reproducible commands, required artifacts, and failure disclosure are machine-checkable | Keep the manifest current with every benchmark, package, and release evidence change. |
| Runtime Conformance | pass | 5/5 targets pass | Target package structure, metadata, relative paths, and degradation notes pass | Keep target conformance fixtures updated as platform contracts change. |
-| Trust Security | pass | secrets 0; scripts 148; help failures 0 | Secrets, scripts, dependencies, permissions, and package hash are reviewable | Keep high-permission approvals scoped, expiring, and target-mapped. |
+| Trust Security | pass | secrets 0; scripts 149; help failures 0 | Secrets, scripts, dependencies, permissions, and package hash are reviewable | Keep high-permission approvals scoped, expiring, and target-mapped. |
| Permission Metadata | pass | 4/4 target probes pass; metadata fallback 4; installer enforcement 4 | Packaged adapters expose explicit permission metadata, residual risks, and installer enforcement evidence when available | Preserve residual-risk notes until real native enforcement exists. |
| Native Permission Enforcement | external-required | native-enforced targets 0; installer-enforced targets 4 | At least one target/client enforces approved permissions at runtime | Integrate a real target-client or external installer runtime guard before claiming native permission enforcement. |
| Skill Atlas | pass | 12 skills; actionable collisions 0 | Workspace catalog, route overlap, stale/owner gaps, drift, and no-route opportunities | Feed real drift data into Atlas once client telemetry is installed. |
-| Registry Distribution | pass | zip entries 687; install failures 0; permission failures 0 | Package metadata, archive checksum, package verification, and install simulation pass | Regenerate registry after package verification so checksums stay aligned. |
+| Registry Distribution | pass | zip entries 688; install failures 0; permission failures 0 | Package metadata, archive checksum, package verification, and install simulation pass | Regenerate registry after package verification so checksums stay aligned. |
| Review Studio | pass | decision review; warnings 3; score 91 | One page shows gates, evidence paths, blockers, warnings, actions, waivers, and annotations | Resolve human/external warning gates before claiming full release readiness. |
| Telemetry Drift | pass | events 1; risk low; recipes 5 | Local-first metadata-only event contract, aggregate drift report, hook recipes, and import path | Keep raw JSONL out of distributed packages and use aggregate reports for Atlas. |
| Native Client Telemetry | external-required | external source events 0; adoption samples 1 | A real Browser/Chrome/provider client sends production metadata events | Install a real client against the native host and import production metadata-only events. |
diff --git a/reports/skill_os2_coverage.json b/reports/skill_os2_coverage.json
index d6db18f8..62d2b515 100644
--- a/reports/skill_os2_coverage.json
+++ b/reports/skill_os2_coverage.json
@@ -130,7 +130,7 @@
"label": "Trust Security",
"status": "pass",
"objective": "Scripts, dependencies, permissions, secrets, and package hash are reviewable for team distribution.",
- "current": "148 scripts; secrets 0; help failures 0",
+ "current": "149 scripts; secrets 0; help failures 0",
"command": "python3 scripts/yao.py trust .",
"test": "python3 tests/verify_trust_check.py",
"evidence": [
@@ -204,7 +204,7 @@
"label": "Registry Distribution",
"status": "pass",
"objective": "Skill packages are installable, versioned, checksumed, and upgrade-reviewable.",
- "current": "archive entries 687; install failures 0",
+ "current": "archive entries 688; install failures 0",
"command": "python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip && python3 scripts/yao.py registry-audit .",
"test": "python3 tests/verify_registry_audit.py",
"evidence": [
diff --git a/reports/skill_os2_coverage.md b/reports/skill_os2_coverage.md
index 1bdf2d41..51eed5c4 100644
--- a/reports/skill_os2_coverage.md
+++ b/reports/skill_os2_coverage.md
@@ -26,9 +26,9 @@ This report maps the Skill OS 2.0 upgrade blueprint to concrete local artifacts,
| Skill IR | `pass` | schema 2.0.0; targets 5 | `python3 scripts/yao.py skill-ir .` | `python3 tests/verify_skill_ir.py` |
| Output Eval Lab | `pass` | 5 cases; delta 100.0; execution 10 | `python3 scripts/yao.py output-exec . && python3 scripts/yao.py output-review .` | `python3 tests/verify_output_eval_lab.py` |
| Runtime Conformance | `pass` | 5/5 targets pass | `python3 scripts/yao.py conformance .` | `python3 tests/verify_conformance_suite.py` |
-| Trust Security | `pass` | 148 scripts; secrets 0; help failures 0 | `python3 scripts/yao.py trust .` | `python3 tests/verify_trust_check.py` |
+| Trust Security | `pass` | 149 scripts; secrets 0; help failures 0 | `python3 scripts/yao.py trust .` | `python3 tests/verify_trust_check.py` |
| Skill Atlas | `pass` | 12 scanned skills; actionable collisions 0 | `python3 scripts/yao.py skill-atlas --workspace-root .` | `python3 tests/verify_skill_atlas.py` |
-| Registry Distribution | `pass` | archive entries 687; install failures 0 | `python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip && python3 scripts/yao.py registry-audit .` | `python3 tests/verify_registry_audit.py` |
+| Registry Distribution | `pass` | archive entries 688; install failures 0 | `python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip && python3 scripts/yao.py registry-audit .` | `python3 tests/verify_registry_audit.py` |
| Review Studio | `pass` | 16 gates; decision review; warnings 3 | `python3 scripts/yao.py review-studio .` | `python3 tests/verify_review_studio.py` |
| Telemetry Drift | `pass` | events 1; recipes 5; risk low | `python3 scripts/yao.py telemetry-hooks . && python3 scripts/yao.py adoption-drift .` | `python3 tests/verify_telemetry_hooks.py` |
diff --git a/reports/upgrade_check.json b/reports/upgrade_check.json
index 7deddbac..583a46ce 100644
--- a/reports/upgrade_check.json
+++ b/reports/upgrade_check.json
@@ -70,12 +70,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "e0d57b8bede61d6e2e75e068d6ae1e7c3cc62ae64e2b6374edd58f31ace5ee40"
+ "to": "0db54f7880460ee162ea2779554315c225ad912737660379c0c503f068c636e8"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "7993d9f426409a0307d85fa6d9a4a9815a3cbe2faaa06cffff9deba813c4ef7e"
+ "to": "6fbdbed9dfdc8d272caa0a6596312fa524796132dfb3c9e9e1a9cbc801729f59"
}
]
},
diff --git a/scripts/benchmark_release_lock.py b/scripts/benchmark_release_lock.py
new file mode 100644
index 00000000..cd8157e8
--- /dev/null
+++ b/scripts/benchmark_release_lock.py
@@ -0,0 +1,98 @@
+#!/usr/bin/env python3
+"""Git source/generated dirty classification for benchmark release locks."""
+
+import subprocess
+from pathlib import Path
+from typing import Any
+
+
+SCRIPT_INTERFACE = "internal-module"
+SCRIPT_INTERFACE_REASON = "Imported by render_benchmark_reproducibility.py to keep release-lock git status classification out of the report renderer."
+
+
+GENERATED_DIRTY_PREFIXES = (
+ "dist/",
+ "registry/index.json",
+ "registry/packages/",
+ "reports/",
+ "skill_atlas/",
+ "skill-ir/examples/",
+)
+
+
+def status_path(line: str) -> str:
+ path = line[3:].strip() if len(line) > 3 else line.strip()
+ if " -> " in path:
+ path = path.rsplit(" -> ", 1)[-1].strip()
+ return path
+
+
+def is_generated_dirty_path(path: str) -> bool:
+ return any(path == prefix.rstrip("/") or path.startswith(prefix) for prefix in GENERATED_DIRTY_PREFIXES)
+
+
+def git_status(skill_dir: Path) -> dict[str, Any]:
+ try:
+ proc = subprocess.run(
+ ["git", "status", "--short", "--untracked-files=all"],
+ cwd=skill_dir,
+ capture_output=True,
+ text=True,
+ check=True,
+ )
+ except (OSError, subprocess.CalledProcessError):
+ return {
+ "available": False,
+ "dirty": None,
+ "changed_file_count": None,
+ "source_dirty": None,
+ "source_changed_file_count": None,
+ "generated_dirty": None,
+ "generated_changed_file_count": None,
+ }
+ lines = [line for line in proc.stdout.splitlines() if line.strip()]
+ paths = [status_path(line) for line in lines]
+ generated_lines = [line for line, path in zip(lines, paths) if is_generated_dirty_path(path)]
+ source_lines = [line for line, path in zip(lines, paths) if not is_generated_dirty_path(path)]
+ return {
+ "available": True,
+ "dirty": bool(lines),
+ "changed_file_count": len(lines),
+ "generated_dirty": bool(generated_lines),
+ "generated_changed_file_count": len(generated_lines),
+ "source_dirty": bool(source_lines),
+ "source_changed_file_count": len(source_lines),
+ "sample": lines[:12],
+ "source_sample": source_lines[:12],
+ "generated_sample": generated_lines[:12],
+ "generated_dirty_prefixes": list(GENERATED_DIRTY_PREFIXES),
+ "scope": "generation-time status before this report is written",
+ }
+
+
+def release_lock_status(status: dict[str, Any], commit: str) -> dict[str, Any]:
+ available = status.get("available") is True
+ source_clean = status.get("source_dirty") is False
+ known_commit = bool(commit and commit != "unknown")
+ ready = available and source_clean and known_commit
+ reasons = []
+ if not available:
+ reasons.append("git status unavailable")
+ if not known_commit:
+ reasons.append("git commit unavailable")
+ if status.get("source_dirty") is True:
+ reasons.append("source files were dirty at generation time")
+ if status.get("source_dirty") is None:
+ reasons.append("working tree cleanliness unknown")
+ if status.get("generated_dirty") is True and status.get("source_dirty") is False:
+ reasons.append("only generated evidence artifacts were dirty at generation time")
+ if not reasons:
+ reasons.append("clean source tree at generation-time HEAD")
+ return {
+ "ready": ready,
+ "commit": commit,
+ "status_scope": status.get("scope", "generation-time status"),
+ "source_changed_file_count": status.get("source_changed_file_count"),
+ "generated_changed_file_count": status.get("generated_changed_file_count"),
+ "reason": "; ".join(reasons),
+ }
diff --git a/scripts/render_benchmark_reproducibility.py b/scripts/render_benchmark_reproducibility.py
index 20926dc3..d5c23418 100644
--- a/scripts/render_benchmark_reproducibility.py
+++ b/scripts/render_benchmark_reproducibility.py
@@ -7,6 +7,7 @@ from datetime import date
from pathlib import Path
from typing import Any
+from benchmark_release_lock import git_status, release_lock_status
ROOT = Path(__file__).resolve().parent.parent
SCRIPT_INTERFACE = "cli"
@@ -207,27 +208,6 @@ def git_commit(skill_dir: Path) -> str:
return proc.stdout.strip() or "unknown"
-def git_status(skill_dir: Path) -> dict[str, Any]:
- try:
- proc = subprocess.run(
- ["git", "status", "--short", "--untracked-files=all"],
- cwd=skill_dir,
- capture_output=True,
- text=True,
- check=True,
- )
- except (OSError, subprocess.CalledProcessError):
- return {"available": False, "dirty": None, "changed_file_count": None}
- lines = [line for line in proc.stdout.splitlines() if line.strip()]
- return {
- "available": True,
- "dirty": bool(lines),
- "changed_file_count": len(lines),
- "sample": lines[:12],
- "scope": "generation-time status before this report is written",
- }
-
-
def count_jsonl(path: Path) -> int:
if not path.exists():
return 0
@@ -292,30 +272,6 @@ def evidence_bundle_fingerprint(artifacts: list[dict[str, Any]]) -> dict[str, An
}
-def release_lock_status(status: dict[str, Any], commit: str) -> dict[str, Any]:
- available = status.get("available") is True
- clean = status.get("dirty") is False
- known_commit = bool(commit and commit != "unknown")
- ready = available and clean and known_commit
- reasons = []
- if not available:
- reasons.append("git status unavailable")
- if not known_commit:
- reasons.append("git commit unavailable")
- if status.get("dirty") is True:
- reasons.append("working tree was dirty at generation time")
- if status.get("dirty") is None:
- reasons.append("working tree cleanliness unknown")
- if not reasons:
- reasons.append("clean generation-time HEAD")
- return {
- "ready": ready,
- "commit": commit,
- "status_scope": status.get("scope", "generation-time status"),
- "reason": "; ".join(reasons),
- }
-
-
def public_claim_blockers(
local_reproducibility_ready: bool,
release_lock_ready: bool,
@@ -444,6 +400,10 @@ def build_report(skill_dir: Path, generated_at: str) -> dict[str, Any]:
"public_claim_blocker_count": len(claim_blockers),
"working_tree_dirty": status.get("dirty"),
"changed_file_count": status.get("changed_file_count"),
+ "source_tree_dirty": status.get("source_dirty"),
+ "source_changed_file_count": status.get("source_changed_file_count"),
+ "generated_tree_dirty": status.get("generated_dirty"),
+ "generated_changed_file_count": status.get("generated_changed_file_count"),
},
"public_claim": {
"ready": public_claim_ready,
@@ -463,7 +423,7 @@ def build_report(skill_dir: Path, generated_at: str) -> dict[str, Any]:
"policy": "Keep representative failures visible and tied to regression checks.",
},
"limitations": [
- "The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
+ "The git commit and dirty flags are generation-time context; release lock is blocked by source changes, while generated evidence artifacts are tracked separately.",
"Local command-runner evidence is reproducible but does not replace provider-backed model holdout evidence.",
"Pending blind-review decisions are visible but do not count as human adjudication.",
"World-class readiness remains false until external and human evidence gaps close.",
@@ -483,6 +443,8 @@ def render_markdown(report: dict[str, Any]) -> str:
f"Generated at: `{report['generated_at']}`",
f"Commit: `{report['commit']}`",
f"Working tree dirty at generation: `{str(summary.get('working_tree_dirty')).lower()}`",
+ f"Source tree dirty at generation: `{str(summary.get('source_tree_dirty')).lower()}`",
+ f"Generated evidence dirty at generation: `{str(summary.get('generated_tree_dirty')).lower()}`",
f"Evidence bundle SHA256: `{summary.get('evidence_bundle_sha256', '')}`",
"",
"## Summary",
@@ -504,8 +466,10 @@ def render_markdown(report: dict[str, Any]) -> str:
f"- public claim ready: `{str(summary['public_claim_ready']).lower()}`",
f"- public claim blockers: `{summary['public_claim_blocker_count']}`",
f"- changed files at generation: `{summary.get('changed_file_count')}`",
+ f"- source changed files at generation: `{summary.get('source_changed_file_count')}`",
+ f"- generated changed files at generation: `{summary.get('generated_changed_file_count')}`",
"",
- "This report proves local benchmark reproducibility only. It keeps external provider and human-review gaps visible instead of counting them as complete. The git commit is generation-time context; the evidence bundle SHA is the durable anchor for the artifacts listed below.",
+ "This report proves local benchmark reproducibility only. It keeps external provider and human-review gaps visible instead of counting them as complete. The git commit and dirty samples are generation-time context; the evidence bundle SHA is the durable anchor for the artifacts listed below.",
"",
"## Public Claim Boundary",
"",
diff --git a/scripts/render_evidence_consistency.py b/scripts/render_evidence_consistency.py
index 57d68f46..94513489 100644
--- a/scripts/render_evidence_consistency.py
+++ b/scripts/render_evidence_consistency.py
@@ -156,11 +156,14 @@ def build_report(skill_dir: Path, generated_at: str) -> dict[str, Any]:
compare_values(
checks,
key="benchmark-release-lock-self-consistency",
- label="Benchmark release lock matches git dirty state",
- expected=not bool(nested(benchmark, ["git_status", "dirty"], True)),
+ label="Benchmark release lock matches source dirty state",
+ expected=not bool(nested(benchmark, ["git_status", "source_dirty"], True)),
actual=benchmark_summary.get("release_lock_ready"),
paths=[REQUIRED_REPORTS["benchmark"]],
- detail="The benchmark release lock must reflect the generation-time git dirty flag.",
+ detail=(
+ "The benchmark release lock must be blocked by source changes, while generated evidence artifacts are "
+ "tracked as generation context."
+ ),
)
current_git_status = git_worktree_status(skill_dir)
if current_git_status.get("available") and current_git_status.get("clean") is True:
diff --git a/skill_atlas/catalog.json b/skill_atlas/catalog.json
index 2f89ec43..3c890003 100644
--- a/skill_atlas/catalog.json
+++ b/skill_atlas/catalog.json
@@ -24,6 +24,7 @@
"scripts/adaptation_report_contracts.py",
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
+ "scripts/benchmark_release_lock.py",
"scripts/build_confusion_matrix.py",
"scripts/build_skill_atlas.py",
"scripts/build_skill_atlas_layout.py",
diff --git a/tests/verify_benchmark_reproducibility.py b/tests/verify_benchmark_reproducibility.py
index f2832887..815b0d3b 100644
--- a/tests/verify_benchmark_reproducibility.py
+++ b/tests/verify_benchmark_reproducibility.py
@@ -128,7 +128,7 @@ def main() -> None:
assert payload["schema_version"] == "1.0", payload
assert payload["ok"] is True, payload
assert payload["summary"]["reproducibility_ready"] is True, payload
- assert payload["summary"]["release_lock_ready"] == (payload["git_status"]["dirty"] is False), payload
+ assert payload["summary"]["release_lock_ready"] == (payload["git_status"]["source_dirty"] is False), payload
assert payload["summary"]["methodology_complete"] is True, payload
assert payload["summary"]["missing_artifact_count"] == 0, payload
assert len(payload["summary"]["evidence_bundle_sha256"]) == 64, payload
@@ -139,10 +139,23 @@ def main() -> None:
assert payload["summary"]["failure_disclosure_count"] >= 1, payload
assert payload["summary"]["command_count"] >= 10, payload
assert "working_tree_dirty" in payload["summary"], payload
+ assert "source_tree_dirty" in payload["summary"], payload
+ assert "generated_tree_dirty" in payload["summary"], payload
+ assert payload["summary"]["source_changed_file_count"] == payload["git_status"]["source_changed_file_count"], payload
+ assert payload["summary"]["generated_changed_file_count"] == payload["git_status"][
+ "generated_changed_file_count"
+ ], payload
assert payload["git_status"]["available"] is True, payload
assert payload["git_status"]["scope"] == "generation-time status before this report is written", payload
+ assert isinstance(payload["git_status"]["generated_dirty_prefixes"], list), payload
assert payload["release_lock"]["status_scope"] == "generation-time status before this report is written", payload
assert payload["release_lock"]["commit"] == payload["commit"], payload
+ assert payload["release_lock"]["source_changed_file_count"] == payload["git_status"][
+ "source_changed_file_count"
+ ], payload
+ assert payload["release_lock"]["generated_changed_file_count"] == payload["git_status"][
+ "generated_changed_file_count"
+ ], payload
assert payload["evidence_bundle"]["algorithm"] == "sha256(path,label,exists,artifact_sha256)", payload
assert payload["evidence_bundle"]["artifact_count"] == payload["summary"]["required_artifact_count"], payload
assert payload["evidence_bundle"]["existing_count"] == payload["summary"]["required_artifact_count"], payload
@@ -197,6 +210,10 @@ def main() -> None:
assert "Benchmark Reproducibility" in markdown, markdown
assert "Evidence bundle SHA256" in markdown, markdown
assert "release lock ready" in markdown, markdown
+ assert "Source tree dirty at generation" in markdown, markdown
+ assert "Generated evidence dirty at generation" in markdown, markdown
+ assert "source changed files at generation" in markdown, markdown
+ assert "generated changed files at generation" in markdown, markdown
assert "world-class source checks" in markdown, markdown
assert "public claim ready: `false`" in markdown, markdown
assert "## Public Claim Boundary" in markdown, markdown
diff --git a/tests/verify_evidence_consistency.py b/tests/verify_evidence_consistency.py
index 5e698156..f73f2959 100644
--- a/tests/verify_evidence_consistency.py
+++ b/tests/verify_evidence_consistency.py
@@ -429,11 +429,19 @@ def main() -> None:
benchmark = json.loads(benchmark_path.read_text(encoding="utf-8"))
benchmark["git_status"]["dirty"] = True
benchmark["git_status"]["changed_file_count"] = 3
+ benchmark["git_status"]["source_dirty"] = True
+ benchmark["git_status"]["source_changed_file_count"] = 1
+ benchmark["git_status"]["generated_dirty"] = True
+ benchmark["git_status"]["generated_changed_file_count"] = 2
benchmark["summary"]["release_lock_ready"] = False
benchmark["summary"]["working_tree_dirty"] = True
benchmark["summary"]["changed_file_count"] = 3
+ benchmark["summary"]["source_tree_dirty"] = True
+ benchmark["summary"]["source_changed_file_count"] = 1
+ benchmark["summary"]["generated_tree_dirty"] = True
+ benchmark["summary"]["generated_changed_file_count"] = 2
benchmark["release_lock"]["ready"] = False
- benchmark["release_lock"]["reason"] = "working tree was dirty at generation time"
+ benchmark["release_lock"]["reason"] = "source files were dirty at generation time"
benchmark_path.write_text(json.dumps(benchmark, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
for report_name in ["skill-overview", "skill-interpretation"]:
report_path = stale_clean_lock_root / "reports" / f"{report_name}.json"
@@ -441,6 +449,10 @@ def main() -> None:
report["benchmark_reproducibility"]["summary"]["release_lock_ready"] = False
report["benchmark_reproducibility"]["summary"]["working_tree_dirty"] = True
report["benchmark_reproducibility"]["summary"]["changed_file_count"] = 3
+ report["benchmark_reproducibility"]["summary"]["source_tree_dirty"] = True
+ report["benchmark_reproducibility"]["summary"]["source_changed_file_count"] = 1
+ report["benchmark_reproducibility"]["summary"]["generated_tree_dirty"] = True
+ report["benchmark_reproducibility"]["summary"]["generated_changed_file_count"] = 2
report_path.write_text(json.dumps(report, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
subprocess.run(["git", "init"], cwd=stale_clean_lock_root, capture_output=True, text=True, check=True)
subprocess.run(["git", "add", "."], cwd=stale_clean_lock_root, capture_output=True, text=True, check=True)
@@ -474,6 +486,48 @@ def main() -> None:
stale_clean_lock_checks["benchmark-clean-worktree-release-lock"]
)
+ generated_only_lock_root = TMP / "generated-only-lock-skill"
+ copy_reports(generated_only_lock_root)
+ generated_benchmark_path = generated_only_lock_root / "reports" / "benchmark_reproducibility.json"
+ generated_benchmark = json.loads(generated_benchmark_path.read_text(encoding="utf-8"))
+ generated_benchmark["git_status"]["dirty"] = True
+ generated_benchmark["git_status"]["changed_file_count"] = 4
+ generated_benchmark["git_status"]["source_dirty"] = False
+ generated_benchmark["git_status"]["source_changed_file_count"] = 0
+ generated_benchmark["git_status"]["generated_dirty"] = True
+ generated_benchmark["git_status"]["generated_changed_file_count"] = 4
+ generated_benchmark["summary"]["release_lock_ready"] = True
+ generated_benchmark["summary"]["working_tree_dirty"] = True
+ generated_benchmark["summary"]["changed_file_count"] = 4
+ generated_benchmark["summary"]["source_tree_dirty"] = False
+ generated_benchmark["summary"]["source_changed_file_count"] = 0
+ generated_benchmark["summary"]["generated_tree_dirty"] = True
+ generated_benchmark["summary"]["generated_changed_file_count"] = 4
+ generated_benchmark["release_lock"]["ready"] = True
+ generated_benchmark["release_lock"]["reason"] = "only generated evidence artifacts were dirty at generation time"
+ generated_benchmark_path.write_text(
+ json.dumps(generated_benchmark, ensure_ascii=False, indent=2) + "\n",
+ encoding="utf-8",
+ )
+ generated_only_proc = run(
+ [
+ sys.executable,
+ str(SCRIPT),
+ str(generated_only_lock_root),
+ "--output-json",
+ str(TMP / "generated_only_lock.json"),
+ "--output-md",
+ str(TMP / "generated_only_lock.md"),
+ "--generated-at",
+ "2026-06-15",
+ ]
+ )
+ generated_only_payload = json.loads(generated_only_proc.stdout)
+ generated_only_checks = {item["key"]: item for item in generated_only_payload["checks"]}
+ assert generated_only_checks["benchmark-release-lock-self-consistency"]["status"] == "pass", (
+ generated_only_checks["benchmark-release-lock-self-consistency"]
+ )
+
workflow_drift_root = TMP / "workflow-drift-skill"
copy_reports(workflow_drift_root)
studio_path = workflow_drift_root / "reports" / "review-studio.json"
diff --git a/tests/verify_review_studio.py b/tests/verify_review_studio.py
index 015a895a..0ea5354a 100644
--- a/tests/verify_review_studio.py
+++ b/tests/verify_review_studio.py
@@ -190,7 +190,8 @@ def main() -> None:
assert all(not item["expected_revealed"] for item in full_payload["data"]["output_review_adjudication"]["pairs"]), full_payload["data"]["output_review_adjudication"]
benchmark_summary = full_payload["data"]["benchmark_reproducibility"]["summary"]
assert benchmark_summary["reproducibility_ready"] is True, benchmark_summary
- assert benchmark_summary["release_lock_ready"] == (benchmark_summary["working_tree_dirty"] is False), benchmark_summary
+ assert benchmark_summary["release_lock_ready"] == (benchmark_summary["source_tree_dirty"] is False), benchmark_summary
+ assert "generated_tree_dirty" in benchmark_summary, benchmark_summary
assert benchmark_summary["public_claim_ready"] is False, benchmark_summary
assert benchmark_summary["public_claim_blocker_count"] >= 3, benchmark_summary
public_claim = full_payload["data"]["benchmark_reproducibility"]["public_claim"]