Check release evidence flow consistency
This commit is contained in:
+1
-1
@@ -16,7 +16,7 @@
|
||||
"vscode"
|
||||
],
|
||||
"package_metadata": "registry/packages/yao-meta-skill.json",
|
||||
"package_sha256": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
|
||||
"package_sha256": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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` |
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
},
|
||||
|
||||
@@ -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`
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -676,12 +676,12 @@
|
||||
|
||||
<section>
|
||||
<h2>核心指标</h2>
|
||||
<div class="metrics"><article class='metric'><span>Skill IR</span><strong>2.0.0</strong><p>5 targets in platform-neutral contract</p></article><article class='metric'><span>Compiler</span><strong>5/5</strong><p>target contracts compiled from Skill IR</p></article><article class='metric'><span>Output Delta</span><strong>100.0</strong><p>5 cases; 1 file-backed</p></article><article class='metric'><span>Exec Runs</span><strong>10</strong><p>command 10; model 0; recorded 0</p></article><article class='metric'><span>Blind A/B</span><strong>5</strong><p>review pairs hide baseline vs with-skill labels</p></article><article class='metric'><span>Review Kit</span><strong>0/5</strong><p>pending 5; answer key hidden</p></article><article class='metric'><span>Review A/B</span><strong>0/5</strong><p>adjudication decisions; pending 5</p></article><article class='metric'><span>Public Claim</span><strong>blocked</strong><p>4 blockers; local reproducible true</p></article><article class='metric'><span>Blueprint</span><strong>21/21</strong><p>2.0 coverage; extensions partial 0, planned 0; evidence pending 4</p></article><article class='metric'><span>Runtime</span><strong>5/5</strong><p>target conformance pass rate</p></article><article class='metric'><span>Perm Probe</span><strong>4/4</strong><p>0 native; 4 installer-enforced</p></article><article class='metric'><span>Trust</span><strong>0</strong><p>111 scripts scanned; secrets found</p></article><article class='metric'><span>Py Compat</span><strong>0</strong><p>177 files scanned for Python 3.11</p></article><article class='metric'><span>Arch Debt</span><strong>0</strong><p>899 largest lines; 8 watchlist; 64 CLI handlers; 18 in entrypoint</p></article><article class='metric'><span>Atlas</span><strong>5</strong><p>12 scanned skills; route collisions</p></article><article class='metric'><span>Drift</span><strong>low</strong><p>1 metadata events; 0 missed triggers</p></article><article class='metric'><span>Waivers</span><strong>0</strong><p>0 gates covered; human risk decisions</p></article><article class='metric'><span>Intake</span><strong>4/4</strong><p>0 valid submissions; 0 invalid</p></article><article class='metric'><span>Claim Guard</span><strong>0</strong><p>173 public surfaces scanned</p></article><article class='metric'><span>Notes</span><strong>0/0</strong><p>0 open blocker annotations</p></article><article class='metric'><span>Registry</span><strong>1.1.0</strong><p>5 targets; MIT license</p></article><article class='metric'><span>Archive</span><strong>pass</strong><p>618 zip entries; package verification</p></article><article class='metric'><span>Install</span><strong>pass</strong><p>4 adapters; 12 permissions enforced; 0 permission failures</p></article><article class='metric'><span>Upgrade</span><strong>minor</strong><p>declared minor; 0 breaking changes</p></article></div>
|
||||
<div class="metrics"><article class='metric'><span>Skill IR</span><strong>2.0.0</strong><p>5 targets in platform-neutral contract</p></article><article class='metric'><span>Compiler</span><strong>5/5</strong><p>target contracts compiled from Skill IR</p></article><article class='metric'><span>Output Delta</span><strong>100.0</strong><p>5 cases; 1 file-backed</p></article><article class='metric'><span>Exec Runs</span><strong>10</strong><p>command 10; model 0; recorded 0</p></article><article class='metric'><span>Blind A/B</span><strong>5</strong><p>review pairs hide baseline vs with-skill labels</p></article><article class='metric'><span>Review Kit</span><strong>0/5</strong><p>pending 5; answer key hidden</p></article><article class='metric'><span>Review A/B</span><strong>0/5</strong><p>adjudication decisions; pending 5</p></article><article class='metric'><span>Public Claim</span><strong>blocked</strong><p>4 blockers; local reproducible true</p></article><article class='metric'><span>Blueprint</span><strong>21/21</strong><p>2.0 coverage; extensions partial 0, planned 0; evidence pending 4</p></article><article class='metric'><span>Runtime</span><strong>5/5</strong><p>target conformance pass rate</p></article><article class='metric'><span>Perm Probe</span><strong>4/4</strong><p>0 native; 4 installer-enforced</p></article><article class='metric'><span>Trust</span><strong>0</strong><p>112 scripts scanned; secrets found</p></article><article class='metric'><span>Py Compat</span><strong>0</strong><p>177 files scanned for Python 3.11</p></article><article class='metric'><span>Arch Debt</span><strong>0</strong><p>899 largest lines; 8 watchlist; 64 CLI handlers; 18 in entrypoint</p></article><article class='metric'><span>Atlas</span><strong>5</strong><p>12 scanned skills; route collisions</p></article><article class='metric'><span>Drift</span><strong>low</strong><p>1 metadata events; 0 missed triggers</p></article><article class='metric'><span>Waivers</span><strong>0</strong><p>0 gates covered; human risk decisions</p></article><article class='metric'><span>Intake</span><strong>4/4</strong><p>0 valid submissions; 0 invalid</p></article><article class='metric'><span>Claim Guard</span><strong>0</strong><p>173 public surfaces scanned</p></article><article class='metric'><span>Notes</span><strong>0/0</strong><p>0 open blocker annotations</p></article><article class='metric'><span>Registry</span><strong>1.1.0</strong><p>5 targets; MIT license</p></article><article class='metric'><span>Archive</span><strong>pass</strong><p>619 zip entries; package verification</p></article><article class='metric'><span>Install</span><strong>pass</strong><p>4 adapters; 12 permissions enforced; 0 permission failures</p></article><article class='metric'><span>Upgrade</span><strong>minor</strong><p>declared minor; 0 breaking changes</p></article></div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>审查闸门</h2>
|
||||
<div class="gates"><article class='gate pass'><div><span>通过</span><h3>意图画布</h3></div><p>intent confidence 100/100; Intent is clear enough to package the first routeable version.</p><footer>reports/intent-confidence.json <a href='intent-confidence.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>触发实验</h3></div><p>13 trigger cases; 0 misroutes; 0 ambiguous</p><footer>reports/route_scorecard.json <a href='route_scorecard.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>输出实验</h3></div><p>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</p><footer>reports/output_quality_scorecard.json <a href='output_quality_scorecard.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>上下文</h3></div><p>initial load 960/1000; deferred 436837/120000; top deferred scripts 387626; resource governance governed; quality density 135.4</p><footer>reports/context_budget.json <a href='context_budget.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>运行矩阵</h3></div><p>5 / 5 targets pass</p><footer>reports/conformance_matrix.json <a href='conformance_matrix.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>信任报告</h3></div><p>0 secrets; 111 scripts; 3 network-capable scripts; 0 help smoke failures</p><footer>reports/security_trust_report.json <a href='security_trust_report.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>Python 兼容</h3></div><p>Python 3.11; 177 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards</p><footer>reports/python_compatibility.json <a href='python_compatibility.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>架构维护</h3></div><p>174 Python files; 0 hotspots; 8 watchlist files; 0 blockers; largest 899 lines; 64 CLI handlers; 18 in entrypoint</p><footer>reports/architecture_maintainability.json <a href='architecture_maintainability.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>权限批准</h3></div><p>3/3 permissions approved; gaps 0; required file_write, network, subprocess</p><footer>reports/security_trust_report.json + security/permission_policy.json <a href='../security/permission_policy.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>权限探针</h3></div><p>4/4 targets probed; native 0; metadata fallback 4; installer 4; residual risks 4</p><footer>reports/runtime_permission_probes.json <a href='runtime_permission_probes.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>组合治理</h3></div><p>12 skills, 1 actionable; 0 actionable route collisions; 0 actionable owner gaps; 0 actionable stale; 0 actionable drift; 24 scoped non-actionable issues</p><footer>reports/skill_atlas.json <a href='skill_atlas.html'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>运营回路</h3></div><p>1 metadata events; adoption 0; missed 0; bad-output 0; risk low</p><footer>reports/adoption_drift_report.json <a href='adoption_drift_report.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>人工批准</h3></div><p>0 active waivers; 1 warning gates still need reviewer decision</p><footer>reports/review_waivers.json <a href='review_waivers.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>世界证据</h3></div><p>4 pending world-class evidence entries; 1 human pending; 3 external pending; source checks 6/13 pass; 7 blocked; overclaim guard true</p><footer>reports/world_class_evidence_ledger.json <a href='world_class_evidence_ledger.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>注册审计</h3></div><p>yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures</p><footer>reports/registry_audit.json + reports/install_simulation.json <a href='registry_audit.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>发布路线</h3></div><p>0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended</p><footer>reports/promotion_decisions.json + reports/upgrade_check.json + docs/migration-v2.md <a href='promotion_decisions.md'>证据</a></footer></article></div>
|
||||
<div class="gates"><article class='gate pass'><div><span>通过</span><h3>意图画布</h3></div><p>intent confidence 100/100; Intent is clear enough to package the first routeable version.</p><footer>reports/intent-confidence.json <a href='intent-confidence.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>触发实验</h3></div><p>13 trigger cases; 0 misroutes; 0 ambiguous</p><footer>reports/route_scorecard.json <a href='route_scorecard.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>输出实验</h3></div><p>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</p><footer>reports/output_quality_scorecard.json <a href='output_quality_scorecard.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>上下文</h3></div><p>initial load 960/1000; deferred 436837/120000; top deferred scripts 387626; resource governance governed; quality density 135.4</p><footer>reports/context_budget.json <a href='context_budget.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>运行矩阵</h3></div><p>5 / 5 targets pass</p><footer>reports/conformance_matrix.json <a href='conformance_matrix.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>信任报告</h3></div><p>0 secrets; 112 scripts; 3 network-capable scripts; 0 help smoke failures</p><footer>reports/security_trust_report.json <a href='security_trust_report.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>Python 兼容</h3></div><p>Python 3.11; 177 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards</p><footer>reports/python_compatibility.json <a href='python_compatibility.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>架构维护</h3></div><p>174 Python files; 0 hotspots; 8 watchlist files; 0 blockers; largest 899 lines; 64 CLI handlers; 18 in entrypoint</p><footer>reports/architecture_maintainability.json <a href='architecture_maintainability.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>权限批准</h3></div><p>3/3 permissions approved; gaps 0; required file_write, network, subprocess</p><footer>reports/security_trust_report.json + security/permission_policy.json <a href='../security/permission_policy.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>权限探针</h3></div><p>4/4 targets probed; native 0; metadata fallback 4; installer 4; residual risks 4</p><footer>reports/runtime_permission_probes.json <a href='runtime_permission_probes.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>组合治理</h3></div><p>12 skills, 1 actionable; 0 actionable route collisions; 0 actionable owner gaps; 0 actionable stale; 0 actionable drift; 24 scoped non-actionable issues</p><footer>reports/skill_atlas.json <a href='skill_atlas.html'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>运营回路</h3></div><p>1 metadata events; adoption 0; missed 0; bad-output 0; risk low</p><footer>reports/adoption_drift_report.json <a href='adoption_drift_report.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>人工批准</h3></div><p>0 active waivers; 1 warning gates still need reviewer decision</p><footer>reports/review_waivers.json <a href='review_waivers.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>世界证据</h3></div><p>4 pending world-class evidence entries; 1 human pending; 3 external pending; source checks 6/13 pass; 7 blocked; overclaim guard true</p><footer>reports/world_class_evidence_ledger.json <a href='world_class_evidence_ledger.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>注册审计</h3></div><p>yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures</p><footer>reports/registry_audit.json + reports/install_simulation.json <a href='registry_audit.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>发布路线</h3></div><p>0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended</p><footer>reports/promotion_decisions.json + reports/upgrade_check.json + docs/migration-v2.md <a href='promotion_decisions.md'>证据</a></footer></article></div>
|
||||
</section>
|
||||
|
||||
<div class="twocol">
|
||||
@@ -748,7 +748,7 @@
|
||||
</section>
|
||||
|
||||
<section id="trust" class="twocol">
|
||||
<div class="panel"><h2>信任报告</h2><dl class='kv-grid'><div><dt>Secret</dt><dd>0</dd></div><div><dt>脚本数</dt><dd>111</dd></div><div><dt>网络脚本</dt><dd>3</dd></div><div><dt>Help 失败</dt><dd>0</dd></div><div><dt>包体哈希</dt><dd><code>9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea</code></dd></div></dl></div>
|
||||
<div class="panel"><h2>信任报告</h2><dl class='kv-grid'><div><dt>Secret</dt><dd>0</dd></div><div><dt>脚本数</dt><dd>112</dd></div><div><dt>网络脚本</dt><dd>3</dd></div><div><dt>Help 失败</dt><dd>0</dd></div><div><dt>包体哈希</dt><dd><code>ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544</code></dd></div></dl></div>
|
||||
<div class="panel"><h2>安全边界</h2><p>高风险 secret、远程 inline execution、缺失依赖策略或无法解释的脚本接口应阻断 governed release。</p></div>
|
||||
</section>
|
||||
|
||||
@@ -827,12 +827,12 @@
|
||||
|
||||
<section id="registry" class="twocol">
|
||||
<div class="panel"><h2>注册审计</h2><p>yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures</p></div>
|
||||
<div class="panel"><h2>包体元数据</h2><dl class='kv-grid'><div><dt>名称</dt><dd>yao-meta-skill</dd></div><div><dt>版本</dt><dd>1.1.0</dd></div><div><dt>Maturity</dt><dd>governed</dd></div><div><dt>Owner</dt><dd>Yao Team</dd></div><div><dt>License</dt><dd>MIT</dd></div><div><dt>信任级别</dt><dd>local</dd></div><div><dt>目标平台</dt><dd>openai, claude, generic, agent-skills-compatible, vscode</dd></div><div><dt>兼容通过</dt><dd>6/6</dd></div><div><dt>归档哈希</dt><dd><code>2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9</code></dd></div></dl></div>
|
||||
<div class="panel"><h2>包体元数据</h2><dl class='kv-grid'><div><dt>名称</dt><dd>yao-meta-skill</dd></div><div><dt>版本</dt><dd>1.1.0</dd></div><div><dt>Maturity</dt><dd>governed</dd></div><div><dt>Owner</dt><dd>Yao Team</dd></div><div><dt>License</dt><dd>MIT</dd></div><div><dt>信任级别</dt><dd>local</dd></div><div><dt>目标平台</dt><dd>openai, claude, generic, agent-skills-compatible, vscode</dd></div><div><dt>兼容通过</dt><dd>6/6</dd></div><div><dt>归档哈希</dt><dd><code>77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf</code></dd></div></dl></div>
|
||||
</section>
|
||||
|
||||
<section id="release" class="twocol">
|
||||
<div class="panel"><h2>发布路线</h2><p>0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended</p></div>
|
||||
<div class="panel"><h2>包体验证</h2><dl class='kv-grid'><div><dt>目标数</dt><dd>4</dd></div><div><dt>Adapter</dt><dd>4</dd></div><div><dt>归档存在</dt><dd>是</dd></div><div><dt>Zip 条目</dt><dd>618</dd></div><div><dt>失败数</dt><dd>0</dd></div><div><dt>警告数</dt><dd>0</dd></div><div><dt>归档哈希</dt><dd><code>2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9</code></dd></div></dl></div>
|
||||
<div class="panel"><h2>包体验证</h2><dl class='kv-grid'><div><dt>目标数</dt><dd>4</dd></div><div><dt>Adapter</dt><dd>4</dd></div><div><dt>归档存在</dt><dd>是</dd></div><div><dt>Zip 条目</dt><dd>619</dd></div><div><dt>失败数</dt><dd>0</dd></div><div><dt>警告数</dt><dd>0</dd></div><div><dt>归档哈希</dt><dd><code>77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf</code></dd></div></dl></div>
|
||||
</section>
|
||||
|
||||
<section class="twocol">
|
||||
|
||||
+63
-45
@@ -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"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
+17
-17
@@ -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"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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. |
|
||||
|
||||
@@ -930,7 +930,7 @@
|
||||
<p><span data-lang="zh-CN">让 reviewer 快速确认关键文件、目录和资产分布。</span><span data-lang="en">Lets reviewers confirm key files, directories, and asset distribution quickly.</span></p>
|
||||
</div>
|
||||
<div class="two-col">
|
||||
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-0.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-1.3" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-2.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="22.8 77.2" stroke-dashoffset="-2.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="74.5 25.5" stroke-dashoffset="-25.5" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">400项</text><text data-lang="en" x="130" y="136" text-anchor="middle">400 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
|
||||
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-0.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-1.3" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-2.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="22.7 77.3" stroke-dashoffset="-2.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="74.7 25.3" stroke-dashoffset="-25.3" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">401项</text><text data-lang="en" x="130" y="136" text-anchor="middle">401 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
|
||||
<table>
|
||||
<thead><tr><th><span data-lang="zh-CN">路径</span><span data-lang="en">Path</span></th><th><span data-lang="zh-CN">作用</span><span data-lang="en">Role</span></th><th><span data-lang="zh-CN">类型</span><span data-lang="en">Type</span></th></tr></thead>
|
||||
<tbody><tr><td>SKILL.md</td><td><span data-lang="zh-CN">Skill 入口文件</span><span data-lang="en">Skill entrypoint</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>README.md</td><td><span data-lang="zh-CN">人类可读使用说明</span><span data-lang="en">Human-readable usage guide</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>agents/interface.yaml</td><td><span data-lang="zh-CN">跨平台接口元数据</span><span data-lang="en">Neutral interface metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>manifest.json</td><td><span data-lang="zh-CN">生命周期与打包元数据</span><span data-lang="en">Lifecycle and portability metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>references</td><td><span data-lang="zh-CN">扩展指导与复用资料</span><span data-lang="en">Extended guidance and reusable notes</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>scripts</td><td><span data-lang="zh-CN">确定性脚本或本地工具</span><span data-lang="en">Deterministic helpers or local tooling</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>evals</td><td><span data-lang="zh-CN">触发与质量检查</span><span data-lang="en">Trigger and quality checks</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>reports</td><td><span data-lang="zh-CN">生成的证据与总结报告</span><span data-lang="en">Generated evidence and overview artifacts</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr></tbody>
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -930,7 +930,7 @@
|
||||
<p><span data-lang="zh-CN">让 reviewer 快速确认关键文件、目录和资产分布。</span><span data-lang="en">Lets reviewers confirm key files, directories, and asset distribution quickly.</span></p>
|
||||
</div>
|
||||
<div class="two-col">
|
||||
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-0.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-1.3" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-2.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="22.8 77.2" stroke-dashoffset="-2.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="74.5 25.5" stroke-dashoffset="-25.5" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">400项</text><text data-lang="en" x="130" y="136" text-anchor="middle">400 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
|
||||
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-0.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-1.3" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-2.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="22.7 77.3" stroke-dashoffset="-2.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="74.7 25.3" stroke-dashoffset="-25.3" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">401项</text><text data-lang="en" x="130" y="136" text-anchor="middle">401 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
|
||||
<table>
|
||||
<thead><tr><th><span data-lang="zh-CN">路径</span><span data-lang="en">Path</span></th><th><span data-lang="zh-CN">作用</span><span data-lang="en">Role</span></th><th><span data-lang="zh-CN">类型</span><span data-lang="en">Type</span></th></tr></thead>
|
||||
<tbody><tr><td>SKILL.md</td><td><span data-lang="zh-CN">Skill 入口文件</span><span data-lang="en">Skill entrypoint</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>README.md</td><td><span data-lang="zh-CN">人类可读使用说明</span><span data-lang="en">Human-readable usage guide</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>agents/interface.yaml</td><td><span data-lang="zh-CN">跨平台接口元数据</span><span data-lang="en">Neutral interface metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>manifest.json</td><td><span data-lang="zh-CN">生命周期与打包元数据</span><span data-lang="en">Lifecycle and portability metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>references</td><td><span data-lang="zh-CN">扩展指导与复用资料</span><span data-lang="en">Extended guidance and reusable notes</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>scripts</td><td><span data-lang="zh-CN">确定性脚本或本地工具</span><span data-lang="en">Deterministic helpers or local tooling</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>evals</td><td><span data-lang="zh-CN">触发与质量检查</span><span data-lang="en">Trigger and quality checks</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>reports</td><td><span data-lang="zh-CN">生成的证据与总结报告</span><span data-lang="en">Generated evidence and overview artifacts</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr></tbody>
|
||||
|
||||
+17
-17
@@ -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"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -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": [
|
||||
|
||||
@@ -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` |
|
||||
|
||||
|
||||
@@ -70,12 +70,12 @@
|
||||
{
|
||||
"field": "archive_sha256",
|
||||
"from": "",
|
||||
"to": "2fd9a3f8c7c4aa72b0bd03e9cfbf0449a0fa9215f949459324895c72c9abf6b9"
|
||||
"to": "77d9bd77e4a9e3992b727da369e195d94753fd4195b33981abadd10e81ee9fdf"
|
||||
},
|
||||
{
|
||||
"field": "package_sha256",
|
||||
"from": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"to": "9fde13846a41c2d1442b6e80350313246dedebe02590ce1f2f07f2da1109c9ea"
|
||||
"to": "ce3d8c67706a5059ae162d937f51d7469aee3d0095a53889c686524f2b43d544"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -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."
|
||||
),
|
||||
}
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"]
|
||||
|
||||
Reference in New Issue
Block a user