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 IR2.0.0

5 targets in platform-neutral contract

Compiler5/5

target contracts compiled from Skill IR

Output Delta100.0

5 cases; 1 file-backed

Exec Runs10

command 10; model 0; recorded 0

Blind A/B5

review pairs hide baseline vs with-skill labels

Review Kit0/5

pending 5; answer key hidden

Review A/B0/5

adjudication decisions; pending 5

Public Claimblocked

5 blockers; local reproducible true

Blueprint21/21

2.0 coverage; extensions partial 0, planned 0; evidence pending 4

Runtime5/5

target conformance pass rate

Perm Probe4/4

0 native; 4 installer-enforced

Trust0

148 scripts scanned; secrets found

Py Compat0

227 files scanned for Python 3.11

Arch Debt0

696 largest lines; 0 watchlist; 2 early; 68 CLI handlers; 18 in entrypoint

Atlas5

12 scanned skills; route collisions

Driftlow

1 metadata events; 0 missed triggers

Daily Ops5

proposal-review; approval 0; release lock false

Weekly Queue5

curator-review; ready 1; top score 88

Waivers0

0 gates covered; human risk decisions

Intake4/4

0 valid submissions; 0 invalid

Claim Guard0

182 public surfaces scanned

Notes0/0

0 open blocker annotations

Registry1.1.0

5 targets; MIT license

Archivepass

687 zip entries; package verification

Installpass

4 adapters; 12 permissions enforced; 0 permission failures

Upgrademinor

declared minor; 0 breaking changes

+
Skill IR2.0.0

5 targets in platform-neutral contract

Compiler5/5

target contracts compiled from Skill IR

Output Delta100.0

5 cases; 1 file-backed

Exec Runs10

command 10; model 0; recorded 0

Blind A/B5

review pairs hide baseline vs with-skill labels

Review Kit0/5

pending 5; answer key hidden

Review A/B0/5

adjudication decisions; pending 5

Public Claimblocked

5 blockers; local reproducible true

Blueprint21/21

2.0 coverage; extensions partial 0, planned 0; evidence pending 4

Runtime5/5

target conformance pass rate

Perm Probe4/4

0 native; 4 installer-enforced

Trust0

149 scripts scanned; secrets found

Py Compat0

228 files scanned for Python 3.11

Arch Debt0

696 largest lines; 0 watchlist; 2 early; 68 CLI handlers; 18 in entrypoint

Atlas5

12 scanned skills; route collisions

Driftlow

1 metadata events; 0 missed triggers

Daily Ops5

proposal-review; approval 0; release lock false

Weekly Queue5

curator-review; ready 1; top score 88

Waivers0

0 gates covered; human risk decisions

Intake4/4

0 valid submissions; 0 invalid

Claim Guard0

182 public surfaces scanned

Notes0/0

0 open blocker annotations

Registry1.1.0

5 targets; MIT license

Archivepass

688 zip entries; package verification

Installpass

4 adapters; 12 permissions enforced; 0 permission failures

Upgrademinor

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

@@ -831,17 +831,17 @@
-

上下文

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 Distribution451项451 itemsSKILL.mdSKILL.mdREADME.mdREADME.mdagents/interface.yamlagents/interface.yamlmanifest.jsonmanifest.jsonreferencesreferencesscriptsscripts
资产分布图展示当前包体的文件和目录重心。The asset distribution chart shows where files and directories are concentrated.
+
资产分布Asset Distribution452项452 itemsSKILL.mdSKILL.mdREADME.mdREADME.mdagents/interface.yamlagents/interface.yamlmanifest.jsonmanifest.jsonreferencesreferencesscriptsscripts
资产分布图展示当前包体的文件和目录重心。The asset distribution chart shows where files and directories are concentrated.
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 Distribution451项451 itemsSKILL.mdSKILL.mdREADME.mdREADME.mdagents/interface.yamlagents/interface.yamlmanifest.jsonmanifest.jsonreferencesreferencesscriptsscripts
资产分布图展示当前包体的文件和目录重心。The asset distribution chart shows where files and directories are concentrated.
+
资产分布Asset Distribution452项452 itemsSKILL.mdSKILL.mdREADME.mdREADME.mdagents/interface.yamlagents/interface.yamlmanifest.jsonmanifest.jsonreferencesreferencesscriptsscripts
资产分布图展示当前包体的文件和目录重心。The asset distribution chart shows where files and directories are concentrated.
路径Path作用Role类型Type
SKILL.mdSkill 入口文件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"]
路径Path作用Role类型Type
SKILL.mdSkill 入口文件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