diff --git a/registry/index.json b/registry/index.json
index 40794b4..3d768e4 100644
--- a/registry/index.json
+++ b/registry/index.json
@@ -16,7 +16,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
}
]
}
diff --git a/registry/packages/yao-meta-skill.json b/registry/packages/yao-meta-skill.json
index 6363283..c4a865a 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": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea",
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
"compatibility": {
"openai": "pass",
@@ -48,7 +48,7 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
diff --git a/reports/evidence_consistency.json b/reports/evidence_consistency.json
index c918d01..fb1ed7c 100644
--- a/reports/evidence_consistency.json
+++ b/reports/evidence_consistency.json
@@ -4,14 +4,14 @@
"generated_at": "2026-06-16",
"skill_dir": ".",
"summary": {
- "check_count": 29,
- "pass_count": 29,
+ "check_count": 30,
+ "pass_count": 30,
"warn_count": 0,
"fail_count": 0,
"decision": "consistent"
},
"status_counts": {
- "pass": 29,
+ "pass": 30,
"warn": 0,
"fail": 0
},
@@ -43,6 +43,59 @@
],
"detail": "The consistency gate can only be trusted when every source JSON report parses and every source Markdown report is readable."
},
+ {
+ "key": "release-evidence-flow-covers-first-class-reports",
+ "label": "Release evidence flow covers first-class reports",
+ "status": "pass",
+ "expected": {
+ "AGENTS.md": true,
+ "source_refresh_section": true,
+ "clean_lock_section": true,
+ "source_refresh_commands": {
+ "python3 scripts/render_skill_overview.py .": true,
+ "python3 scripts/render_skill_interpretation.py .": true,
+ "python3 scripts/render_review_viewer.py .": true,
+ "python3 scripts/render_review_studio.py . --output-html reports/review-studio.html --output-json reports/review-studio.json": true,
+ "python3 scripts/render_evidence_consistency.py . --generated-at \"$GENERATED_AT\"": true
+ },
+ "clean_lock_commands": {
+ "python3 scripts/render_skill_overview.py .": true,
+ "python3 scripts/render_skill_interpretation.py .": true,
+ "python3 scripts/render_review_viewer.py .": true,
+ "python3 scripts/render_review_studio.py . --output-html reports/review-studio.html --output-json reports/review-studio.json": true,
+ "python3 scripts/render_evidence_consistency.py . --generated-at \"$GENERATED_AT\"": true
+ }
+ },
+ "actual": {
+ "AGENTS.md": true,
+ "source_refresh_section": true,
+ "clean_lock_section": true,
+ "source_refresh_commands": {
+ "python3 scripts/render_skill_overview.py .": true,
+ "python3 scripts/render_skill_interpretation.py .": true,
+ "python3 scripts/render_review_viewer.py .": true,
+ "python3 scripts/render_review_studio.py . --output-html reports/review-studio.html --output-json reports/review-studio.json": true,
+ "python3 scripts/render_evidence_consistency.py . --generated-at \"$GENERATED_AT\"": true
+ },
+ "clean_lock_commands": {
+ "python3 scripts/render_skill_overview.py .": true,
+ "python3 scripts/render_skill_interpretation.py .": true,
+ "python3 scripts/render_review_viewer.py .": true,
+ "python3 scripts/render_review_studio.py . --output-html reports/review-studio.html --output-json reports/review-studio.json": true,
+ "python3 scripts/render_evidence_consistency.py . --generated-at \"$GENERATED_AT\"": true
+ }
+ },
+ "paths": [
+ "AGENTS.md",
+ "reports/benchmark_reproducibility.json",
+ "reports/skill-overview.json",
+ "reports/skill-interpretation.json",
+ "reports/review-viewer.json",
+ "reports/review-studio.json",
+ "reports/evidence_consistency.json"
+ ],
+ "detail": "Release refresh and clean-lock instructions must regenerate every first-class report before evidence consistency can be trusted."
+ },
{
"key": "benchmark-release-lock-self-consistency",
"label": "Benchmark release lock matches git dirty state",
@@ -1322,7 +1375,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 111
+ "file_count": 112
},
{
"path": "evals",
@@ -1337,7 +1390,7 @@
"file_count": 222
}
],
- "file_count": 400,
+ "file_count": 401,
"folder_count": 4,
"distribution": [
{
@@ -1362,7 +1415,7 @@
},
{
"label": "scripts",
- "value": 111
+ "value": 112
},
{
"label": "evals",
@@ -1410,7 +1463,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 111
+ "file_count": 112
},
{
"path": "evals",
@@ -1425,7 +1478,7 @@
"file_count": 222
}
],
- "file_count": 400,
+ "file_count": 401,
"folder_count": 4,
"distribution": [
{
@@ -1450,7 +1503,7 @@
},
{
"label": "scripts",
- "value": 111
+ "value": 112
},
{
"label": "evals",
@@ -2028,10 +2081,10 @@
"score `91`",
"`16` gates",
"`3` warnings",
- "`29` declared internal modules",
- "`82 / 82` CLI help smoke checks passing across `111` scripts",
- "`618` zip entries",
- "archive with `618` entries",
+ "`30` declared internal modules",
+ "`82 / 82` CLI help smoke checks passing across `112` scripts",
+ "`619` zip entries",
+ "archive with `619` entries",
"`12` installer permission checks enforced",
"`0` permission failures",
"`24` required artifacts",
diff --git a/reports/evidence_consistency.md b/reports/evidence_consistency.md
index 6245d0e..96a43f4 100644
--- a/reports/evidence_consistency.md
+++ b/reports/evidence_consistency.md
@@ -5,8 +5,8 @@ Generated at: `2026-06-16`
## Summary
- decision: `consistent`
-- checks: `29`
-- pass: `29`
+- checks: `30`
+- pass: `30`
- warn: `0`
- fail: `0`
@@ -17,6 +17,7 @@ This gate compares generated evidence reports against each other. It does not cr
| Check | Status | Detail | Paths |
| --- | --- | --- | --- |
| 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_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/benchmark_reproducibility.json`, `reports/skill-overview.json`, `reports/skill-interpretation.json`, `reports/review-viewer.json`, `reports/review-studio.json`, `reports/evidence_consistency.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` |
| 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` |
| overview embeds benchmark summary fields | `pass` | Selected summary fields must match exactly across generated reports. | `reports/benchmark_reproducibility.json`, `reports/skill-overview.json` |
diff --git a/reports/install_simulation.json b/reports/install_simulation.json
index ac29875..467ffb0 100644
--- a/reports/install_simulation.json
+++ b/reports/install_simulation.json
@@ -8,7 +8,7 @@
"installed_skill_dir": "dist/install-simulation/simulate-yao-meta-skill/yao-meta-skill",
"summary": {
"archive_present": true,
- "archive_entry_count": 618,
+ "archive_entry_count": 619,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
diff --git a/reports/output_execution_runs.json b/reports/output_execution_runs.json
index 78bc16b..1d448c2 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": 28.59,
+ "duration_ms": 26.89,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -62,7 +62,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 28.37,
+ "duration_ms": 26.26,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -85,7 +85,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 27.45,
+ "duration_ms": 26.84,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -113,7 +113,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 29.67,
+ "duration_ms": 29.71,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -136,7 +136,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 30.1,
+ "duration_ms": 29.67,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -164,7 +164,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 30.07,
+ "duration_ms": 28.07,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -187,7 +187,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 27.43,
+ "duration_ms": 26.39,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -214,7 +214,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 27.52,
+ "duration_ms": 26.35,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -237,7 +237,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 27.47,
+ "duration_ms": 26.48,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -266,7 +266,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 27.12,
+ "duration_ms": 26.29,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
diff --git a/reports/output_execution_runs.md b/reports/output_execution_runs.md
index df9d94f..8db41a5 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 | 28.59 | 33 | 0.0 | pass |
-| skill-package-contract | with_skill | command | local-output-eval-runner | 28.37 | 73 | 100.0 | pass |
-| output-eval-expectation | baseline | command | local-output-eval-runner | 27.45 | 36 | 0.0 | pass |
-| output-eval-expectation | with_skill | command | local-output-eval-runner | 29.67 | 80 | 100.0 | pass |
-| ir-before-packaging | baseline | command | local-output-eval-runner | 30.1 | 33 | 0.0 | pass |
-| ir-before-packaging | with_skill | command | local-output-eval-runner | 30.07 | 80 | 100.0 | pass |
-| near-neighbor-boundary | baseline | command | local-output-eval-runner | 27.43 | 36 | 0.0 | pass |
-| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 27.52 | 65 | 100.0 | pass |
-| file-backed-governed-package | baseline | command | local-output-eval-runner | 27.47 | 37 | 0.0 | pass |
-| file-backed-governed-package | with_skill | command | local-output-eval-runner | 27.12 | 98 | 100.0 | pass |
+| skill-package-contract | baseline | command | local-output-eval-runner | 26.89 | 33 | 0.0 | pass |
+| skill-package-contract | with_skill | command | local-output-eval-runner | 26.26 | 73 | 100.0 | pass |
+| output-eval-expectation | baseline | command | local-output-eval-runner | 26.84 | 36 | 0.0 | pass |
+| output-eval-expectation | with_skill | command | local-output-eval-runner | 29.71 | 80 | 100.0 | pass |
+| ir-before-packaging | baseline | command | local-output-eval-runner | 29.67 | 33 | 0.0 | pass |
+| ir-before-packaging | with_skill | command | local-output-eval-runner | 28.07 | 80 | 100.0 | pass |
+| near-neighbor-boundary | baseline | command | local-output-eval-runner | 26.39 | 36 | 0.0 | pass |
+| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 26.35 | 65 | 100.0 | pass |
+| file-backed-governed-package | baseline | command | local-output-eval-runner | 26.48 | 37 | 0.0 | pass |
+| file-backed-governed-package | with_skill | command | local-output-eval-runner | 26.29 | 98 | 100.0 | pass |
## Next Fixes
diff --git a/reports/package_verification.json b/reports/package_verification.json
index 43d7845..578eb4f 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": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
- "archive_entry_count": 618,
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
+ "archive_entry_count": 619,
"failure_count": 0,
"warning_count": 0
},
diff --git a/reports/package_verification.md b/reports/package_verification.md
index 8a654c3..c3cd252 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: `2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9`
+- Archive SHA256: `77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf`
- Failures: `0`
- Warnings: `0`
diff --git a/reports/registry_audit.json b/reports/registry_audit.json
index 2591034..a0768d3 100644
--- a/reports/registry_audit.json
+++ b/reports/registry_audit.json
@@ -21,8 +21,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea",
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
"compatibility": {
"openai": "pass",
@@ -53,7 +53,7 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
"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": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
}
]
},
diff --git a/reports/registry_audit.md b/reports/registry_audit.md
index c643b1d..ab3c426 100644
--- a/reports/registry_audit.md
+++ b/reports/registry_audit.md
@@ -6,8 +6,8 @@
- Maturity: `governed`
- Owner: `Yao Team`
- License: `MIT`
-- Package SHA256: `9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea`
-- Archive SHA256: `2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9`
+- Package SHA256: `ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544`
+- Archive SHA256: `77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf`
- Install simulated: `True`
## Compatibility
diff --git a/reports/review-studio.html b/reports/review-studio.html
index a5c03e3..a9a6477 100644
--- a/reports/review-studio.html
+++ b/reports/review-studio.html
@@ -676,12 +676,12 @@
核心指标
- Skill IR 2.0.0 5 targets in platform-neutral contract
Compiler 5/5 target contracts compiled from Skill IR
Output Delta 100.0 5 cases; 1 file-backed
Exec Runs 10 command 10; model 0; recorded 0
Blind A/B 5 review pairs hide baseline vs with-skill labels
Review Kit 0/5 pending 5; answer key hidden
Review A/B 0/5 adjudication decisions; pending 5
Public Claim blocked 4 blockers; local reproducible true
Blueprint 21/21 2.0 coverage; extensions partial 0, planned 0; evidence pending 4
Runtime 5/5 target conformance pass rate
Perm Probe 4/4 0 native; 4 installer-enforced
Trust 0 111 scripts scanned; secrets found
Py Compat 0 177 files scanned for Python 3.11
Arch Debt 0 899 largest lines; 8 watchlist; 64 CLI handlers; 18 in entrypoint
Atlas 5 12 scanned skills; route collisions
Drift low 1 metadata events; 0 missed triggers
Waivers 0 0 gates covered; human risk decisions
Intake 4/4 0 valid submissions; 0 invalid
Claim Guard 0 173 public surfaces scanned
Notes 0/0 0 open blocker annotations
Registry 1.1.0 5 targets; MIT license
Archive pass 618 zip entries; package verification
Install pass 4 adapters; 12 permissions enforced; 0 permission failures
Upgrade minor declared minor; 0 breaking changes
+ Skill IR 2.0.0 5 targets in platform-neutral contract
Compiler 5/5 target contracts compiled from Skill IR
Output Delta 100.0 5 cases; 1 file-backed
Exec Runs 10 command 10; model 0; recorded 0
Blind A/B 5 review pairs hide baseline vs with-skill labels
Review Kit 0/5 pending 5; answer key hidden
Review A/B 0/5 adjudication decisions; pending 5
Public Claim blocked 4 blockers; local reproducible true
Blueprint 21/21 2.0 coverage; extensions partial 0, planned 0; evidence pending 4
Runtime 5/5 target conformance pass rate
Perm Probe 4/4 0 native; 4 installer-enforced
Trust 0 112 scripts scanned; secrets found
Py Compat 0 177 files scanned for Python 3.11
Arch Debt 0 899 largest lines; 8 watchlist; 64 CLI handlers; 18 in entrypoint
Atlas 5 12 scanned skills; route collisions
Drift low 1 metadata events; 0 missed triggers
Waivers 0 0 gates covered; human risk decisions
Intake 4/4 0 valid submissions; 0 invalid
Claim Guard 0 173 public surfaces scanned
Notes 0/0 0 open blocker annotations
Registry 1.1.0 5 targets; MIT license
Archive pass 619 zip entries; package verification
Install pass 4 adapters; 12 permissions enforced; 0 permission failures
Upgrade minor declared minor; 0 breaking changes
审查闸门
- 通过
意图画布 intent confidence 100/100; Intent is clear enough to package the first routeable version.
reports/intent-confidence.json 证据 通过
触发实验 13 trigger cases; 0 misroutes; 0 ambiguous
reports/route_scorecard.json 证据 关注
输出实验 5/5 cases; with-skill 100.0; baseline 0.0; file-backed 1; near-neighbor 1; blind A/B 5; exec 10; command 10; model 0; recorded 0; reviewed 0/5; review pending 5
reports/output_quality_scorecard.json 证据 通过
上下文 initial load 960/1000; deferred 436837/120000; top deferred scripts 387626; resource governance governed; quality density 135.4
reports/context_budget.json 证据 通过
运行矩阵 5 / 5 targets pass
reports/conformance_matrix.json 证据 通过
信任报告 0 secrets; 111 scripts; 3 network-capable scripts; 0 help smoke failures
reports/security_trust_report.json 证据 通过
Python 兼容 Python 3.11; 177 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards
reports/python_compatibility.json 证据 通过
架构维护 174 Python files; 0 hotspots; 8 watchlist files; 0 blockers; largest 899 lines; 64 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
reports/adoption_drift_report.json 证据 关注
人工批准 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 6/13 pass; 7 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 960/1000; deferred 436837/120000; top deferred scripts 387626; resource governance governed; quality density 135.4
reports/context_budget.json 证据 通过
运行矩阵 5 / 5 targets pass
reports/conformance_matrix.json 证据 通过
信任报告 0 secrets; 112 scripts; 3 network-capable scripts; 0 help smoke failures
reports/security_trust_report.json 证据 通过
Python 兼容 Python 3.11; 177 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards
reports/python_compatibility.json 证据 通过
架构维护 174 Python files; 0 hotspots; 8 watchlist files; 0 blockers; largest 899 lines; 64 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
reports/adoption_drift_report.json 证据 关注
人工批准 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 6/13 pass; 7 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 证据
@@ -748,7 +748,7 @@
- 信任报告
Secret 0
脚本数 111
网络脚本 3
Help 失败 0
包体哈希 9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea
+ 信任报告
Secret 0
脚本数 112
网络脚本 3
Help 失败 0
包体哈希 ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544
安全边界 高风险 secret、远程 inline execution、缺失依赖策略或无法解释的脚本接口应阻断 governed release。
@@ -827,12 +827,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
归档哈希 2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9
+ 包体元数据
名称 yao-meta-skill
版本 1.1.0
Maturity governed
Owner Yao Team
License MIT
信任级别 local
目标平台 openai, claude, generic, agent-skills-compatible, vscode
兼容通过 6/6
归档哈希 77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf
发布路线 0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended
- 包体验证
目标数 4
Adapter 4
归档存在 是
Zip 条目 618
失败数 0
警告数 0
归档哈希 2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9
+ 包体验证
目标数 4
Adapter 4
归档存在 是
Zip 条目 619
失败数 0
警告数 0
归档哈希 77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf
diff --git a/reports/review-studio.json b/reports/review-studio.json
index 9e3a36b..f4f5479 100644
--- a/reports/review-studio.json
+++ b/reports/review-studio.json
@@ -59,7 +59,7 @@
"key": "trust-report",
"label": "信任报告",
"status": "pass",
- "detail": "0 secrets; 111 scripts; 3 network-capable scripts; 0 help smoke failures",
+ "detail": "0 secrets; 112 scripts; 3 network-capable scripts; 0 help smoke failures",
"evidence": "reports/security_trust_report.json",
"link": "security_trust_report.md"
},
@@ -1193,7 +1193,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 111
+ "file_count": 112
},
{
"path": "evals",
@@ -1208,7 +1208,7 @@
"file_count": 222
}
],
- "file_count": 400,
+ "file_count": 401,
"folder_count": 4,
"distribution": [
{
@@ -1233,7 +1233,7 @@
},
{
"label": "scripts",
- "value": 111
+ "value": 112
},
{
"label": "evals",
@@ -1363,7 +1363,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 111
+ "file_count": 112
},
{
"path": "evals",
@@ -1788,9 +1788,9 @@
"failures": []
},
"trust_security": {
- "scanned_files": 198,
- "script_count": 111,
- "internal_module_count": 29,
+ "scanned_files": 199,
+ "script_count": 112,
+ "internal_module_count": 30,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -1808,8 +1808,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
- "package_hash_file_count": 198,
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "package_hash_file_count": 199,
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
},
"skill_atlas": {
"skill_count": 12,
@@ -1847,8 +1847,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea",
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
"compatibility": {
"openai": "pass",
@@ -1879,7 +1879,7 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1895,8 +1895,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
- "archive_entry_count": 618,
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
+ "archive_entry_count": 619,
"failure_count": 0,
"warning_count": 0
},
@@ -1907,7 +1907,7 @@
"ok": true,
"summary": {
"archive_present": true,
- "archive_entry_count": 618,
+ "archive_entry_count": 619,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1974,12 +1974,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "to": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "to": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
}
]
},
@@ -4346,7 +4346,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 28.59,
+ "duration_ms": 26.89,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4374,7 +4374,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 28.37,
+ "duration_ms": 26.26,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4397,7 +4397,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 27.45,
+ "duration_ms": 26.84,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4425,7 +4425,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 29.67,
+ "duration_ms": 29.71,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4448,7 +4448,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 30.1,
+ "duration_ms": 29.67,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4476,7 +4476,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 30.07,
+ "duration_ms": 28.07,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4499,7 +4499,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 27.43,
+ "duration_ms": 26.39,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4526,7 +4526,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 27.52,
+ "duration_ms": 26.35,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4549,7 +4549,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 27.47,
+ "duration_ms": 26.48,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4578,7 +4578,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 27.12,
+ "duration_ms": 26.29,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5824,7 +5824,7 @@
"label": "Trust Security",
"status": "pass",
"objective": "Scripts, dependencies, permissions, secrets, and package hash are reviewable for team distribution.",
- "current": "111 scripts; secrets 0; help failures 0",
+ "current": "112 scripts; secrets 0; help failures 0",
"command": "python3 scripts/yao.py trust .",
"test": "python3 tests/verify_trust_check.py",
"evidence": [
@@ -5898,7 +5898,7 @@
"label": "Registry Distribution",
"status": "pass",
"objective": "Skill packages are installable, versioned, checksumed, and upgrade-reviewable.",
- "current": "archive entries 618; install failures 0",
+ "current": "archive entries 619; 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": [
@@ -11391,9 +11391,9 @@
"ok": true,
"skill_dir": ".",
"summary": {
- "scanned_files": 198,
- "script_count": 111,
- "internal_module_count": 29,
+ "scanned_files": 199,
+ "script_count": 112,
+ "internal_module_count": 30,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -11411,8 +11411,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
- "package_hash_file_count": 198,
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "package_hash_file_count": 199,
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
},
"failures": [],
"warnings": [],
@@ -11605,6 +11605,20 @@
"network_urls": [],
"network_hosts": []
},
+ {
+ "path": "scripts/evidence_consistency_release.py",
+ "interface": "internal-module",
+ "interface_declared": true,
+ "interface_reason": "Imported by render_evidence_consistency.py to verify release evidence refresh instructions.",
+ "has_argparse": false,
+ "has_main_guard": false,
+ "uses_input": false,
+ "uses_network": false,
+ "uses_file_write": false,
+ "uses_subprocess": false,
+ "network_urls": [],
+ "network_hosts": []
+ },
{
"path": "scripts/evidence_consistency_world_class.py",
"interface": "internal-module",
@@ -13024,7 +13038,7 @@
"checked_count": 82,
"passed_count": 82,
"failed_count": 0,
- "skipped_count": 29,
+ "skipped_count": 30,
"failed_scripts": [],
"results": [
{
@@ -13849,6 +13863,10 @@
}
],
"skipped": [
+ {
+ "path": "scripts/evidence_consistency_release.py",
+ "reason": "internal module"
+ },
{
"path": "scripts/evidence_consistency_world_class.py",
"reason": "internal module"
@@ -20462,8 +20480,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea",
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
"compatibility": {
"openai": "pass",
@@ -20494,7 +20512,7 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -20519,7 +20537,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
}
]
},
@@ -20542,8 +20560,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
- "archive_entry_count": 618,
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
+ "archive_entry_count": 619,
"failure_count": 0,
"warning_count": 0
},
@@ -21208,7 +21226,7 @@
"installed_skill_dir": "dist/install-simulation/simulate-yao-meta-skill/yao-meta-skill",
"summary": {
"archive_present": true,
- "archive_entry_count": 618,
+ "archive_entry_count": 619,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -21550,12 +21568,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "to": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "to": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
}
]
},
diff --git a/reports/review-viewer.json b/reports/review-viewer.json
index 025bde1..3aa0344 100644
--- a/reports/review-viewer.json
+++ b/reports/review-viewer.json
@@ -513,7 +513,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 111
+ "file_count": 112
},
{
"path": "evals",
@@ -528,7 +528,7 @@
"file_count": 222
}
],
- "file_count": 400,
+ "file_count": 401,
"folder_count": 4,
"distribution": [
{
@@ -553,7 +553,7 @@
},
{
"label": "scripts",
- "value": 111
+ "value": 112
},
{
"label": "evals",
@@ -683,7 +683,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 111
+ "file_count": 112
},
{
"path": "evals",
@@ -1108,9 +1108,9 @@
"failures": []
},
"trust_security": {
- "scanned_files": 198,
- "script_count": 111,
- "internal_module_count": 29,
+ "scanned_files": 199,
+ "script_count": 112,
+ "internal_module_count": 30,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -1128,8 +1128,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
- "package_hash_file_count": 198,
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "package_hash_file_count": 199,
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
},
"skill_atlas": {
"skill_count": 12,
@@ -1167,8 +1167,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea",
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
"compatibility": {
"openai": "pass",
@@ -1199,7 +1199,7 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1215,8 +1215,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
- "archive_entry_count": 618,
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
+ "archive_entry_count": 619,
"failure_count": 0,
"warning_count": 0
},
@@ -1227,7 +1227,7 @@
"ok": true,
"summary": {
"archive_present": true,
- "archive_entry_count": 618,
+ "archive_entry_count": 619,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1294,12 +1294,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "to": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "to": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
}
]
},
diff --git a/reports/security_trust_report.json b/reports/security_trust_report.json
index c03e8ad..74871c9 100644
--- a/reports/security_trust_report.json
+++ b/reports/security_trust_report.json
@@ -2,9 +2,9 @@
"ok": true,
"skill_dir": ".",
"summary": {
- "scanned_files": 198,
- "script_count": 111,
- "internal_module_count": 29,
+ "scanned_files": 199,
+ "script_count": 112,
+ "internal_module_count": 30,
"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": 198,
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "package_hash_file_count": 199,
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
},
"failures": [],
"warnings": [],
@@ -216,6 +216,20 @@
"network_urls": [],
"network_hosts": []
},
+ {
+ "path": "scripts/evidence_consistency_release.py",
+ "interface": "internal-module",
+ "interface_declared": true,
+ "interface_reason": "Imported by render_evidence_consistency.py to verify release evidence refresh instructions.",
+ "has_argparse": false,
+ "has_main_guard": false,
+ "uses_input": false,
+ "uses_network": false,
+ "uses_file_write": false,
+ "uses_subprocess": false,
+ "network_urls": [],
+ "network_hosts": []
+ },
{
"path": "scripts/evidence_consistency_world_class.py",
"interface": "internal-module",
@@ -1635,7 +1649,7 @@
"checked_count": 82,
"passed_count": 82,
"failed_count": 0,
- "skipped_count": 29,
+ "skipped_count": 30,
"failed_scripts": [],
"results": [
{
@@ -2460,6 +2474,10 @@
}
],
"skipped": [
+ {
+ "path": "scripts/evidence_consistency_release.py",
+ "reason": "internal module"
+ },
{
"path": "scripts/evidence_consistency_world_class.py",
"reason": "internal module"
diff --git a/reports/security_trust_report.md b/reports/security_trust_report.md
index 1b09bdb..6ca6a94 100644
--- a/reports/security_trust_report.md
+++ b/reports/security_trust_report.md
@@ -1,9 +1,9 @@
# Security Trust Report
- OK: `True`
-- Scanned files: `198`
-- Scripts: `111`
-- Internal script modules: `29`
+- Scanned files: `199`
+- Scripts: `112`
+- Internal script modules: `30`
- 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: `198`
-- Package SHA256: `9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea`
+- Package hash files: `199`
+- Package SHA256: `ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544`
## Failures
@@ -75,6 +75,7 @@
| scripts/cross_packager.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. |
| scripts/diff_eval.py | cli | False | True | True | False | False | False | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. |
| scripts/emit_telemetry_event.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. |
+| scripts/evidence_consistency_release.py | internal-module | True | False | False | False | False | False | False | Imported by render_evidence_consistency.py to verify release evidence refresh instructions. |
| scripts/evidence_consistency_world_class.py | internal-module | True | False | False | False | False | False | False | Imported by render_evidence_consistency.py to isolate world-class evidence workflow consistency checks. |
| scripts/export_skill_ir.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. |
| scripts/github_benchmark_scan.py | cli | False | True | True | False | True | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. |
diff --git a/reports/skill-interpretation.html b/reports/skill-interpretation.html
index 669c5ac..82493c1 100644
--- a/reports/skill-interpretation.html
+++ b/reports/skill-interpretation.html
@@ -930,7 +930,7 @@
让 reviewer 快速确认关键文件、目录和资产分布。 Lets reviewers confirm key files, directories, and asset distribution quickly.
-
资产分布 Asset Distribution 400项 400 items SKILL.md SKILL.md README.md README.md agents/interface.yaml agents/interface.yaml manifest.json manifest.json references references scripts scripts 资产分布图展示当前包体的文件和目录重心。 The asset distribution chart shows where files and directories are concentrated.
+
资产分布 Asset Distribution 401项 401 items SKILL.md SKILL.md README.md README.md agents/interface.yaml agents/interface.yaml manifest.json manifest.json references references scripts scripts 资产分布图展示当前包体的文件和目录重心。 The asset distribution chart shows where files and directories are concentrated.
路径 Path 作用 Role 类型 Type
SKILL.md Skill 入口文件 Skill entrypoint 文件 file README.md 人类可读使用说明 Human-readable usage guide 文件 file agents/interface.yaml 跨平台接口元数据 Neutral interface metadata 文件 file manifest.json 生命周期与打包元数据 Lifecycle and portability metadata 文件 file references 扩展指导与复用资料 Extended guidance and reusable notes 目录 folder scripts 确定性脚本或本地工具 Deterministic helpers or local tooling 目录 folder evals 触发与质量检查 Trigger and quality checks 目录 folder reports 生成的证据与总结报告 Generated evidence and overview artifacts 目录 folder
diff --git a/reports/skill-interpretation.json b/reports/skill-interpretation.json
index 10d1c51..1a3543b 100644
--- a/reports/skill-interpretation.json
+++ b/reports/skill-interpretation.json
@@ -513,7 +513,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 111
+ "file_count": 112
},
{
"path": "evals",
@@ -528,7 +528,7 @@
"file_count": 222
}
],
- "file_count": 400,
+ "file_count": 401,
"folder_count": 4,
"distribution": [
{
@@ -553,7 +553,7 @@
},
{
"label": "scripts",
- "value": 111
+ "value": 112
},
{
"label": "evals",
@@ -687,7 +687,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 111
+ "file_count": 112
},
{
"path": "evals",
@@ -1112,9 +1112,9 @@
"failures": []
},
"trust_security": {
- "scanned_files": 198,
- "script_count": 111,
- "internal_module_count": 29,
+ "scanned_files": 199,
+ "script_count": 112,
+ "internal_module_count": 30,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -1132,8 +1132,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
- "package_hash_file_count": 198,
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "package_hash_file_count": 199,
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
},
"skill_atlas": {
"skill_count": 12,
@@ -1171,8 +1171,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea",
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
"compatibility": {
"openai": "pass",
@@ -1203,7 +1203,7 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1219,8 +1219,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
- "archive_entry_count": 618,
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
+ "archive_entry_count": 619,
"failure_count": 0,
"warning_count": 0
},
@@ -1231,7 +1231,7 @@
"ok": true,
"summary": {
"archive_present": true,
- "archive_entry_count": 618,
+ "archive_entry_count": 619,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1298,12 +1298,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "to": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "to": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
}
]
},
diff --git a/reports/skill-os-2-review.md b/reports/skill-os-2-review.md
index f4d4610..791d9d0 100644
--- a/reports/skill-os-2-review.md
+++ b/reports/skill-os-2-review.md
@@ -114,13 +114,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, `29` declared internal modules, `3 / 3` network-capable scripts covered by bounded host policy, `82 / 82` CLI help smoke checks passing across `111` scripts, source-contract hash scope explicit |
+| Trust | `0` secret findings, `1` pinned dependency file, `30` declared internal modules, `3 / 3` network-capable scripts covered by bounded host policy, `82 / 82` CLI help smoke checks passing across `112` 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, `618` zip entries, `0` failures, `0` warnings |
-| Install Simulation | archive with `618` 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, `619` zip entries, `0` failures, `0` warnings |
+| Install Simulation | archive with `619` 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, `0` adoption samples, adoption `0`, 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 5786de6..e1d20c1 100644
--- a/reports/skill-overview.html
+++ b/reports/skill-overview.html
@@ -930,7 +930,7 @@
让 reviewer 快速确认关键文件、目录和资产分布。 Lets reviewers confirm key files, directories, and asset distribution quickly.
-
资产分布 Asset Distribution 400项 400 items SKILL.md SKILL.md README.md README.md agents/interface.yaml agents/interface.yaml manifest.json manifest.json references references scripts scripts 资产分布图展示当前包体的文件和目录重心。 The asset distribution chart shows where files and directories are concentrated.
+
资产分布 Asset Distribution 401项 401 items SKILL.md SKILL.md README.md README.md agents/interface.yaml agents/interface.yaml manifest.json manifest.json references references scripts scripts 资产分布图展示当前包体的文件和目录重心。 The asset distribution chart shows where files and directories are concentrated.
路径 Path 作用 Role 类型 Type
SKILL.md Skill 入口文件 Skill entrypoint 文件 file README.md 人类可读使用说明 Human-readable usage guide 文件 file agents/interface.yaml 跨平台接口元数据 Neutral interface metadata 文件 file manifest.json 生命周期与打包元数据 Lifecycle and portability metadata 文件 file references 扩展指导与复用资料 Extended guidance and reusable notes 目录 folder scripts 确定性脚本或本地工具 Deterministic helpers or local tooling 目录 folder evals 触发与质量检查 Trigger and quality checks 目录 folder reports 生成的证据与总结报告 Generated evidence and overview artifacts 目录 folder
diff --git a/reports/skill-overview.json b/reports/skill-overview.json
index b0bdca0..f75086b 100644
--- a/reports/skill-overview.json
+++ b/reports/skill-overview.json
@@ -512,7 +512,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 111
+ "file_count": 112
},
{
"path": "evals",
@@ -527,7 +527,7 @@
"file_count": 222
}
],
- "file_count": 400,
+ "file_count": 401,
"folder_count": 4,
"distribution": [
{
@@ -552,7 +552,7 @@
},
{
"label": "scripts",
- "value": 111
+ "value": 112
},
{
"label": "evals",
@@ -682,7 +682,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
- "file_count": 111
+ "file_count": 112
},
{
"path": "evals",
@@ -1107,9 +1107,9 @@
"failures": []
},
"trust_security": {
- "scanned_files": 198,
- "script_count": 111,
- "internal_module_count": 29,
+ "scanned_files": 199,
+ "script_count": 112,
+ "internal_module_count": 30,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -1127,8 +1127,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
- "package_hash_file_count": 198,
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "package_hash_file_count": 199,
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
},
"skill_atlas": {
"skill_count": 12,
@@ -1166,8 +1166,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea",
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
"compatibility": {
"openai": "pass",
@@ -1198,7 +1198,7 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1214,8 +1214,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9",
- "archive_entry_count": 618,
+ "archive_sha256": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf",
+ "archive_entry_count": 619,
"failure_count": 0,
"warning_count": 0
},
@@ -1226,7 +1226,7 @@
"ok": true,
"summary": {
"archive_present": true,
- "archive_entry_count": 618,
+ "archive_entry_count": 619,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1293,12 +1293,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "to": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "to": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
}
]
},
diff --git a/reports/skill_os2_coverage.json b/reports/skill_os2_coverage.json
index 9fa67d6..c5bb9d6 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": "111 scripts; secrets 0; help failures 0",
+ "current": "112 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 618; install failures 0",
+ "current": "archive entries 619; 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 6adfb26..78cdd70 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` | 111 scripts; secrets 0; help failures 0 | `python3 scripts/yao.py trust .` | `python3 tests/verify_trust_check.py` |
+| Trust Security | `pass` | 112 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 618; 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 619; 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 aa4f6c0..83d174c 100644
--- a/reports/upgrade_check.json
+++ b/reports/upgrade_check.json
@@ -70,12 +70,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
+ "to": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
+ "to": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
}
]
},
diff --git a/scripts/evidence_consistency_release.py b/scripts/evidence_consistency_release.py
new file mode 100644
index 0000000..e746181
--- /dev/null
+++ b/scripts/evidence_consistency_release.py
@@ -0,0 +1,72 @@
+from pathlib import Path
+from typing import Any
+
+
+SCRIPT_INTERFACE = "internal-module"
+SCRIPT_INTERFACE_REASON = "Imported by render_evidence_consistency.py to verify release evidence refresh instructions."
+
+SOURCE_REFRESH_HEADER = "After source changes that affect scripts"
+CLEAN_LOCK_HEADER = "For final release evidence"
+CLEAN_LOCK_END = "If `reports/benchmark_reproducibility.json`"
+
+FIRST_CLASS_REPORT_COMMANDS = [
+ "python3 scripts/render_skill_overview.py .",
+ "python3 scripts/render_skill_interpretation.py .",
+ "python3 scripts/render_review_viewer.py .",
+ "python3 scripts/render_review_studio.py . --output-html reports/review-studio.html --output-json reports/review-studio.json",
+ 'python3 scripts/render_evidence_consistency.py . --generated-at "$GENERATED_AT"',
+]
+
+
+def section_between(text: str, start: str, end: str) -> str:
+ if start not in text:
+ return ""
+ section = text.split(start, 1)[1]
+ if end in section:
+ section = section.split(end, 1)[0]
+ return section
+
+
+def command_presence(section: str) -> dict[str, bool]:
+ return {command: command in section for command in FIRST_CLASS_REPORT_COMMANDS}
+
+
+def build_release_evidence_flow_check(skill_dir: Path) -> dict[str, Any]:
+ agents_path = skill_dir / "AGENTS.md"
+ agents_text = agents_path.read_text(encoding="utf-8") if agents_path.exists() else ""
+ source_refresh = section_between(agents_text, SOURCE_REFRESH_HEADER, CLEAN_LOCK_HEADER)
+ clean_lock = section_between(agents_text, CLEAN_LOCK_HEADER, CLEAN_LOCK_END)
+ expected = {
+ "AGENTS.md": True,
+ "source_refresh_section": True,
+ "clean_lock_section": True,
+ "source_refresh_commands": {command: True for command in FIRST_CLASS_REPORT_COMMANDS},
+ "clean_lock_commands": {command: True for command in FIRST_CLASS_REPORT_COMMANDS},
+ }
+ actual = {
+ "AGENTS.md": agents_path.exists(),
+ "source_refresh_section": bool(source_refresh),
+ "clean_lock_section": bool(clean_lock),
+ "source_refresh_commands": command_presence(source_refresh),
+ "clean_lock_commands": command_presence(clean_lock),
+ }
+ return {
+ "key": "release-evidence-flow-covers-first-class-reports",
+ "label": "Release evidence flow covers first-class reports",
+ "status": "pass" if expected == actual else "fail",
+ "expected": expected,
+ "actual": actual,
+ "paths": [
+ "AGENTS.md",
+ "reports/benchmark_reproducibility.json",
+ "reports/skill-overview.json",
+ "reports/skill-interpretation.json",
+ "reports/review-viewer.json",
+ "reports/review-studio.json",
+ "reports/evidence_consistency.json",
+ ],
+ "detail": (
+ "Release refresh and clean-lock instructions must regenerate every first-class report "
+ "before evidence consistency can be trusted."
+ ),
+ }
diff --git a/scripts/render_evidence_consistency.py b/scripts/render_evidence_consistency.py
index 345d64d..59d1bfc 100644
--- a/scripts/render_evidence_consistency.py
+++ b/scripts/render_evidence_consistency.py
@@ -6,6 +6,7 @@ from datetime import date
from pathlib import Path
from typing import Any
+from evidence_consistency_release import build_release_evidence_flow_check
from evidence_consistency_world_class import build_world_class_workflow_check
@@ -250,6 +251,7 @@ def build_report(skill_dir: Path, generated_at: str) -> dict[str, Any]:
paths=list(REQUIRED_REPORTS.values()) + list(REQUIRED_TEXT_REPORTS.values()),
detail="The consistency gate can only be trusted when every source JSON report parses and every source Markdown report is readable.",
)
+ checks.append(build_release_evidence_flow_check(skill_dir))
benchmark = reports["benchmark"]
overview = reports["overview"]
diff --git a/tests/verify_evidence_consistency.py b/tests/verify_evidence_consistency.py
index a3eed12..7835338 100644
--- a/tests/verify_evidence_consistency.py
+++ b/tests/verify_evidence_consistency.py
@@ -10,6 +10,7 @@ ROOT = Path(__file__).resolve().parent.parent
SCRIPT = ROOT / "scripts" / "render_evidence_consistency.py"
TMP = ROOT / "tests" / "tmp_evidence_consistency"
REPORT_FILES = [
+ "AGENTS.md",
"reports/benchmark_reproducibility.json",
"reports/skill-overview.json",
"reports/skill-overview.html",
@@ -136,8 +137,11 @@ def main() -> None:
assert payload["ok"] is True, payload
assert payload["summary"]["decision"] == "consistent", payload
assert payload["summary"]["fail_count"] == 0, payload
- assert payload["summary"]["check_count"] >= 29, payload
+ assert payload["summary"]["check_count"] >= 30, payload
checks = {item["key"]: item for item in payload["checks"]}
+ assert checks["release-evidence-flow-covers-first-class-reports"]["status"] == "pass", checks[
+ "release-evidence-flow-covers-first-class-reports"
+ ]
assert checks["overview-benchmark-summary"]["status"] == "pass", checks["overview-benchmark-summary"]
assert checks["interpretation-adoption-summary"]["status"] == "pass", checks["interpretation-adoption-summary"]
assert checks["coverage-world-class-boundary"]["status"] == "pass", checks["coverage-world-class-boundary"]
@@ -212,6 +216,34 @@ def main() -> None:
claim_guard_drift_checks["claim-guard-package-runtime-surface"]
)
+ release_flow_drift_root = TMP / "release-flow-drift-skill"
+ copy_reports(release_flow_drift_root)
+ agents_path = release_flow_drift_root / "AGENTS.md"
+ agents_text = agents_path.read_text(encoding="utf-8")
+ agents_path.write_text(
+ agents_text.replace("python3 scripts/render_skill_interpretation.py .\n", "", 1),
+ encoding="utf-8",
+ )
+ release_flow_drift_proc = run(
+ [
+ sys.executable,
+ str(SCRIPT),
+ str(release_flow_drift_root),
+ "--output-json",
+ str(TMP / "release_flow_drift.json"),
+ "--output-md",
+ str(TMP / "release_flow_drift.md"),
+ "--generated-at",
+ "2026-06-15",
+ ]
+ )
+ assert release_flow_drift_proc.returncode == 2, release_flow_drift_proc.stdout
+ release_flow_drift_payload = json.loads(release_flow_drift_proc.stdout)
+ release_flow_drift_checks = {item["key"]: item for item in release_flow_drift_payload["checks"]}
+ assert release_flow_drift_checks["release-evidence-flow-covers-first-class-reports"]["status"] == "fail", (
+ release_flow_drift_checks["release-evidence-flow-covers-first-class-reports"]
+ )
+
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_trust_check.py b/tests/verify_trust_check.py
index 6a4ec39..7e9ca95 100644
--- a/tests/verify_trust_check.py
+++ b/tests/verify_trust_check.py
@@ -91,6 +91,7 @@ def main() -> None:
"scripts/review_studio_formatting.py",
"scripts/review_studio_gates.py",
"scripts/review_studio_layout.py",
+ "scripts/evidence_consistency_release.py",
"scripts/evidence_consistency_world_class.py",
"scripts/skill_report_charts.py",
"scripts/skill_report_i18n.py",
@@ -114,6 +115,7 @@ def main() -> None:
assert "review_studio_formatting.py" not in warning_text, payload["warnings"]
assert "review_studio_gates.py" not in warning_text, payload["warnings"]
assert "review_studio_layout.py" not in warning_text, payload["warnings"]
+ assert "evidence_consistency_release.py" not in warning_text, payload["warnings"]
assert "evidence_consistency_world_class.py" not in warning_text, payload["warnings"]
assert "skill_report_charts.py" not in warning_text, payload["warnings"]
assert "skill_report_i18n.py" not in warning_text, payload["warnings"]