feat: add world-class evidence cockpit

This commit is contained in:
yaojingang
2026-06-14 07:45:14 +08:00
parent 6b71aa2fb1
commit 08347d5c2c
26 changed files with 301 additions and 114 deletions
+1 -1
View File
@@ -16,7 +16,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
"package_sha256": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045"
"package_sha256": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771"
}
]
}
+3 -3
View File
@@ -16,8 +16,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045",
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7"
"package_sha256": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b"
},
"compatibility": {
"openai": "pass",
@@ -48,7 +48,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"ok": true,
"schema_version": "2.0",
"generated_at": "2026-06-13T23:31:32Z",
"generated_at": "2026-06-13T23:43:44Z",
"skill_dir": ".",
"privacy_contract": {
"storage": "local-first",
+2 -2
View File
@@ -27,7 +27,7 @@
},
{
"path": "tests/verify_yao_cli.py",
"lines": 898,
"lines": 899,
"kind": "test",
"severity": "pass",
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
@@ -55,7 +55,7 @@
},
{
"path": "scripts/yao_cli_parser.py",
"lines": 728,
"lines": 729,
"kind": "internal-module",
"severity": "pass",
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
+2 -2
View File
@@ -26,11 +26,11 @@ No file-size hotspots found.
| File | Lines | Kind | Severity |
| --- | ---: | --- | --- |
| `scripts/render_review_studio.py` | `899` | `cli-script` | `pass` |
| `tests/verify_yao_cli.py` | `898` | `test` | `pass` |
| `tests/verify_yao_cli.py` | `899` | `test` | `pass` |
| `scripts/yao.py` | `867` | `cli-script` | `pass` |
| `scripts/skill_report_model.py` | `792` | `internal-module` | `pass` |
| `scripts/compile_skill.py` | `734` | `cli-script` | `pass` |
| `scripts/yao_cli_parser.py` | `728` | `internal-module` | `pass` |
| `scripts/yao_cli_parser.py` | `729` | `internal-module` | `pass` |
| `scripts/optimize_description.py` | `723` | `cli-script` | `pass` |
| `scripts/trust_check.py` | `714` | `internal-module` | `pass` |
| `scripts/render_review_viewer.py` | `685` | `cli-script` | `pass` |
+8 -8
View File
@@ -3,11 +3,11 @@
"ok": true,
"generated_at": "2026-06-14",
"skill_dir": ".",
"commit": "834665b73c1422486be8cb1b1dd826fa58e81be7",
"commit": "6b71aa2fb1feac8342dc72ceb2a5d9c5e7572130",
"git_status": {
"available": true,
"dirty": true,
"changed_file_count": 58,
"changed_file_count": 49,
"sample": [
" M registry/index.json",
" M registry/packages/yao-meta-skill.json",
@@ -42,7 +42,7 @@
"world_class_task_count": 4,
"world_class_ledger_pending_count": 4,
"working_tree_dirty": true,
"changed_file_count": 58
"changed_file_count": 49
},
"methodology": {
"path": "reports/benchmark_methodology.md",
@@ -116,7 +116,7 @@
"path": "reports/output_execution_runs.json",
"exists": true,
"bytes": 7967,
"sha256": "94be89b0096ba1890e95f7ecfe2a25f603f507aca699843af5c466a1e6812848"
"sha256": "b0953427365ce84f89454531d5819a2ce6f494875661fbbb3be33b012a0d8f13"
},
{
"label": "blind_review",
@@ -151,7 +151,7 @@
"path": "reports/security_trust_report.json",
"exists": true,
"bytes": 95873,
"sha256": "e5bbb8250aeeee8b77cac94c7308484d27c90cf7bc241aea4e66791ec565f83c"
"sha256": "cb599bf68524be22e7df189f1f09deac404bda493a3013c74be209d7ef7efae4"
},
{
"label": "python_compatibility",
@@ -165,14 +165,14 @@
"path": "reports/registry_audit.json",
"exists": true,
"bytes": 3183,
"sha256": "3ea8d598452cf8995d403164bf3d204b2cc40b07accb8ea4883486e805c74e31"
"sha256": "2ff87aeb6f3dc7f0614d33d291faad1a55da2ade3ba98014bee5143dfb8f4806"
},
{
"label": "package_verification",
"path": "reports/package_verification.json",
"exists": true,
"bytes": 19325,
"sha256": "aef6143865fb67bcf2bc9f75f2cba8308deb2498180257c585050b3b46fb1534"
"sha256": "a5dac0ea2b6365c97d0b72ad695ed0ebbd5ac472745e20c1a98f695b26bdd827"
},
{
"label": "install_simulation",
@@ -186,7 +186,7 @@
"path": "reports/skill_os2_audit.json",
"exists": true,
"bytes": 14309,
"sha256": "a1ab5e625fbc89d12454afd43e98f4a68fb51f3ac35568e6419062feaee2cfc1"
"sha256": "78bcbcbc54711e63a6e34059c30748599a7e71d434182b78c307af6d2553cc81"
},
{
"label": "world_class_evidence_plan",
+7 -7
View File
@@ -1,7 +1,7 @@
# Benchmark Reproducibility
Generated at: `2026-06-14`
Commit: `834665b73c1422486be8cb1b1dd826fa58e81be7`
Commit: `6b71aa2fb1feac8342dc72ceb2a5d9c5e7572130`
Working tree dirty at generation: `true`
## Summary
@@ -16,7 +16,7 @@ Working tree dirty at generation: `true`
- provider evidence complete: `false`
- human review complete: `false`
- world-class ready: `false`
- changed files at generation: `58`
- changed files at generation: `49`
This report proves local benchmark reproducibility only. It keeps external provider and human-review gaps visible instead of counting them as complete.
@@ -40,17 +40,17 @@ This report proves local benchmark reproducibility only. It keeps external provi
| output_cases | `evals/output/cases.jsonl` | present | `a6ae96857116` |
| output_schema | `evals/output/schema.json` | present | `8ee340c95064` |
| output_scorecard | `reports/output_quality_scorecard.json` | present | `0806258a8e08` |
| output_execution | `reports/output_execution_runs.json` | present | `94be89b0096b` |
| output_execution | `reports/output_execution_runs.json` | present | `b0953427365c` |
| blind_review | `reports/output_blind_review_pack.json` | present | `bbe2db8ec277` |
| review_adjudication | `reports/output_review_adjudication.json` | present | `240485a721af` |
| trigger_scorecard | `reports/route_scorecard.json` | present | `c164e83e36d0` |
| runtime_conformance | `reports/conformance_matrix.json` | present | `8251329e663d` |
| trust_report | `reports/security_trust_report.json` | present | `e5bbb8250aee` |
| trust_report | `reports/security_trust_report.json` | present | `cb599bf68524` |
| python_compatibility | `reports/python_compatibility.json` | present | `e5dd973d0b5c` |
| registry_audit | `reports/registry_audit.json` | present | `3ea8d598452c` |
| package_verification | `reports/package_verification.json` | present | `aef6143865fb` |
| registry_audit | `reports/registry_audit.json` | present | `2ff87aeb6f3d` |
| package_verification | `reports/package_verification.json` | present | `a5dac0ea2b63` |
| install_simulation | `reports/install_simulation.json` | present | `eebfba42d71e` |
| skill_os2_audit | `reports/skill_os2_audit.json` | present | `a1ab5e625fbc` |
| skill_os2_audit | `reports/skill_os2_audit.json` | present | `78bcbcbc5471` |
| world_class_evidence_plan | `reports/world_class_evidence_plan.json` | present | `02e49b66159d` |
| world_class_evidence_ledger | `reports/world_class_evidence_ledger.json` | present | `0b52d0d1528b` |
| world_class_evidence_intake | `reports/world_class_evidence_intake.json` | present | `5fbfcd35ac6a` |
+2 -2
View File
@@ -6,9 +6,9 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 751,
"other_text_tokens": 1154440,
"other_text_tokens": 1157142,
"estimated_initial_load_tokens": 944,
"estimated_total_text_tokens": 1155191,
"estimated_total_text_tokens": 1157893,
"relevant_file_count": 491,
"unused_resource_dirs": [],
"quality_signal_points": 130,
+1 -1
View File
@@ -8,7 +8,7 @@
"installed_skill_dir": "tests/tmp_review_studio/install-root/simulate-yao-meta-skill/yao-meta-skill",
"summary": {
"archive_present": true,
"archive_entry_count": 574,
"archive_entry_count": 568,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
+10 -10
View File
@@ -34,7 +34,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 28.21,
"duration_ms": 27.97,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -62,7 +62,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 27.95,
"duration_ms": 27.97,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -85,7 +85,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 28.36,
"duration_ms": 28.26,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -113,7 +113,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 27.76,
"duration_ms": 28.71,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -136,7 +136,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 28.5,
"duration_ms": 28.89,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -164,7 +164,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 28.05,
"duration_ms": 27.93,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -187,7 +187,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 28.23,
"duration_ms": 27.5,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -214,7 +214,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 28.26,
"duration_ms": 27.37,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -237,7 +237,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 28.66,
"duration_ms": 27.2,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -266,7 +266,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 28.46,
"duration_ms": 27.27,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
+10 -10
View File
@@ -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.21 | 33 | 0.0 | pass |
| skill-package-contract | with_skill | command | local-output-eval-runner | 27.95 | 73 | 100.0 | pass |
| output-eval-expectation | baseline | command | local-output-eval-runner | 28.36 | 36 | 0.0 | pass |
| output-eval-expectation | with_skill | command | local-output-eval-runner | 27.76 | 80 | 100.0 | pass |
| ir-before-packaging | baseline | command | local-output-eval-runner | 28.5 | 33 | 0.0 | pass |
| ir-before-packaging | with_skill | command | local-output-eval-runner | 28.05 | 80 | 100.0 | pass |
| near-neighbor-boundary | baseline | command | local-output-eval-runner | 28.23 | 36 | 0.0 | pass |
| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 28.26 | 65 | 100.0 | pass |
| file-backed-governed-package | baseline | command | local-output-eval-runner | 28.66 | 37 | 0.0 | pass |
| file-backed-governed-package | with_skill | command | local-output-eval-runner | 28.46 | 98 | 100.0 | pass |
| skill-package-contract | baseline | command | local-output-eval-runner | 27.97 | 33 | 0.0 | pass |
| skill-package-contract | with_skill | command | local-output-eval-runner | 27.97 | 73 | 100.0 | pass |
| output-eval-expectation | baseline | command | local-output-eval-runner | 28.26 | 36 | 0.0 | pass |
| output-eval-expectation | with_skill | command | local-output-eval-runner | 28.71 | 80 | 100.0 | pass |
| ir-before-packaging | baseline | command | local-output-eval-runner | 28.89 | 33 | 0.0 | pass |
| ir-before-packaging | with_skill | command | local-output-eval-runner | 27.93 | 80 | 100.0 | pass |
| near-neighbor-boundary | baseline | command | local-output-eval-runner | 27.5 | 36 | 0.0 | pass |
| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 27.37 | 65 | 100.0 | pass |
| file-backed-governed-package | baseline | command | local-output-eval-runner | 27.2 | 37 | 0.0 | pass |
| file-backed-governed-package | with_skill | command | local-output-eval-runner | 27.27 | 98 | 100.0 | pass |
## Next Fixes
+1 -1
View File
@@ -8,7 +8,7 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b",
"archive_entry_count": 568,
"failure_count": 0,
"warning_count": 0
+1 -1
View File
@@ -4,7 +4,7 @@
- Package directory: `dist`
- Targets: `4 / 4` adapters present
- Archive present: `True`
- Archive SHA256: `fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7`
- Archive SHA256: `cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b`
- Failures: `0`
- Warnings: `0`
+4 -4
View File
@@ -21,8 +21,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045",
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7"
"package_sha256": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b"
},
"compatibility": {
"openai": "pass",
@@ -53,7 +53,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b",
"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": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045"
"package_sha256": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771"
}
]
},
+2 -2
View File
@@ -6,8 +6,8 @@
- Maturity: `governed`
- Owner: `Yao Team`
- License: `MIT`
- Package SHA256: `5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045`
- Archive SHA256: `fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7`
- Package SHA256: `7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771`
- Archive SHA256: `cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b`
- Install simulated: `True`
## Compatibility
+3 -3
View File
@@ -506,7 +506,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>93</dd></div><div><dt>网络脚本</dt><dd>3</dd></div><div><dt>Help 失败</dt><dd>0</dd></div><div><dt>包体哈希</dt><dd><code>5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045</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>93</dd></div><div><dt>网络脚本</dt><dd>3</dd></div><div><dt>Help 失败</dt><dd>0</dd></div><div><dt>包体哈希</dt><dd><code>7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771</code></dd></div></dl></div>
<div class="panel"><h2>安全边界</h2><p>高风险 secret、远程 inline execution、缺失依赖策略或无法解释的脚本接口应阻断 governed release。</p></div>
</section>
@@ -574,12 +574,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>fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7</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>cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b</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>568</dd></div><div><dt>失败数</dt><dd>0</dd></div><div><dt>警告数</dt><dd>0</dd></div><div><dt>归档哈希</dt><dd><code>fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7</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>568</dd></div><div><dt>失败数</dt><dd>0</dd></div><div><dt>警告数</dt><dd>0</dd></div><div><dt>归档哈希</dt><dd><code>cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b</code></dd></div></dl></div>
</section>
<section class="twocol">
+34 -34
View File
@@ -1347,9 +1347,9 @@
"world_class_task_count": 4,
"world_class_ledger_pending_count": 4,
"working_tree_dirty": true,
"changed_file_count": 33
"changed_file_count": 32
},
"commit": "834665b73c1422486be8cb1b1dd826fa58e81be7",
"commit": "6b71aa2fb1feac8342dc72ceb2a5d9c5e7572130",
"missing_artifacts": [],
"limitations": [
"Local command-runner evidence is reproducible but does not replace provider-backed model holdout evidence.",
@@ -1453,7 +1453,7 @@
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 177,
"package_sha256": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045"
"package_sha256": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771"
},
"skill_atlas": {
"skill_count": 12,
@@ -1491,8 +1491,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045",
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7"
"package_sha256": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b"
},
"compatibility": {
"openai": "pass",
@@ -1523,7 +1523,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1539,7 +1539,7 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b",
"archive_entry_count": 568,
"failure_count": 0,
"warning_count": 0
@@ -1618,12 +1618,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7"
"to": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045"
"to": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771"
}
]
},
@@ -3792,7 +3792,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.88,
"duration_ms": 26.32,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -3820,7 +3820,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.25,
"duration_ms": 25.41,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -3843,7 +3843,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.73,
"duration_ms": 26.48,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -3871,7 +3871,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 26.83,
"duration_ms": 27.35,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -3894,7 +3894,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 28.58,
"duration_ms": 28.32,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -3922,7 +3922,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 27.09,
"duration_ms": 25.82,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -3945,7 +3945,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 26.26,
"duration_ms": 25.54,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -3972,7 +3972,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.6,
"duration_ms": 25.39,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -3995,7 +3995,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.49,
"duration_ms": 25.46,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4024,7 +4024,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.76,
"duration_ms": 25.36,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4938,7 +4938,7 @@
"label": "Registry Distribution",
"status": "pass",
"objective": "Skill packages are installable, versioned, checksumed, and upgrade-reviewable.",
"current": "archive entries 567; install failures 0",
"current": "archive entries 568; 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": [
@@ -10230,7 +10230,7 @@
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 177,
"package_sha256": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045"
"package_sha256": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771"
},
"failures": [],
"warnings": [],
@@ -13584,7 +13584,7 @@
},
{
"path": "tests/verify_yao_cli.py",
"lines": 898,
"lines": 899,
"kind": "test",
"severity": "pass",
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
@@ -13612,7 +13612,7 @@
},
{
"path": "scripts/yao_cli_parser.py",
"lines": 728,
"lines": 729,
"kind": "internal-module",
"severity": "pass",
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
@@ -13675,10 +13675,10 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 751,
"other_text_tokens": 1154215,
"other_text_tokens": 1157129,
"estimated_initial_load_tokens": 944,
"estimated_total_text_tokens": 1154966,
"relevant_file_count": 490,
"estimated_total_text_tokens": 1157880,
"relevant_file_count": 491,
"unused_resource_dirs": [],
"quality_signal_points": 130,
"quality_density": 137.7
@@ -15530,7 +15530,7 @@
"adoption_drift": {
"ok": true,
"schema_version": "2.0",
"generated_at": "2026-06-13T23:27:35Z",
"generated_at": "2026-06-13T23:42:36Z",
"skill_dir": ".",
"privacy_contract": {
"storage": "local-first",
@@ -16792,8 +16792,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045",
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7"
"package_sha256": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b"
},
"compatibility": {
"openai": "pass",
@@ -16824,7 +16824,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -16849,7 +16849,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
"package_sha256": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045"
"package_sha256": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771"
}
]
},
@@ -16872,7 +16872,7 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b",
"archive_entry_count": 568,
"failure_count": 0,
"warning_count": 0
@@ -17880,12 +17880,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7"
"to": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045"
"to": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771"
}
]
},
+1 -1
View File
@@ -23,7 +23,7 @@
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 177,
"package_sha256": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045"
"package_sha256": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771"
},
"failures": [],
"warnings": [],
+1 -1
View File
@@ -16,7 +16,7 @@
- Interactive scripts: `0`
- Package hash scope: `source-contract-without-generated-reports`
- Package hash files: `177`
- Package SHA256: `5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045`
- Package SHA256: `7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771`
## Failures
+9 -9
View File
@@ -935,9 +935,9 @@
"world_class_task_count": 4,
"world_class_ledger_pending_count": 4,
"working_tree_dirty": true,
"changed_file_count": 33
"changed_file_count": 32
},
"commit": "834665b73c1422486be8cb1b1dd826fa58e81be7",
"commit": "6b71aa2fb1feac8342dc72ceb2a5d9c5e7572130",
"missing_artifacts": [],
"limitations": [
"Local command-runner evidence is reproducible but does not replace provider-backed model holdout evidence.",
@@ -1041,7 +1041,7 @@
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 177,
"package_sha256": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045"
"package_sha256": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771"
},
"skill_atlas": {
"skill_count": 12,
@@ -1079,8 +1079,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045",
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7"
"package_sha256": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b"
},
"compatibility": {
"openai": "pass",
@@ -1111,7 +1111,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1127,7 +1127,7 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7",
"archive_sha256": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b",
"archive_entry_count": 568,
"failure_count": 0,
"warning_count": 0
@@ -1206,12 +1206,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7"
"to": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045"
"to": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771"
}
]
},
+2 -2
View File
@@ -70,12 +70,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "fc334a4b4da4af6c463510a76551e018633deb5626dca38d9aaaa2c636591eb7"
"to": "cc5a43f9a1a3cf2a75cd3dc31d1317b90b2a911f32e3667b62936943dc5d808b"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "5b6eb1631e77feb6fe3f4199e128607cdc719f8ec0675c92ae986aad2553a045"
"to": "7f70f5ec6944b938933be61ba59499f6f65493c99a72213c59609b0f0cbd4771"
}
]
},
@@ -1,5 +1,6 @@
#!/usr/bin/env python3
import argparse
import html
import json
import shutil
from datetime import date
@@ -26,6 +27,10 @@ def write_json(path: Path, payload: dict[str, Any]) -> None:
path.write_text(json.dumps(payload, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
def html_text(value: Any) -> str:
return html.escape(str(value or ""), quote=True)
def requested_checklist_items(intake: dict[str, Any], evidence_keys: list[str]) -> list[dict[str, Any]]:
items = intake.get("operator_checklist", [])
if not evidence_keys:
@@ -128,12 +133,176 @@ def render_readme(report: dict[str, Any]) -> str:
return "\n".join(lines).rstrip() + "\n"
def render_html_list(values: list[Any], empty: str) -> str:
if not values:
return f"<li>{html_text(empty)}</li>"
return "".join(f"<li>{html_text(value)}</li>" for value in values)
def render_html_commands(commands: dict[str, str]) -> str:
return "".join(
f"<li><span>{html_text(label.replace('_', ' '))}</span><code>{html_text(command)}</code></li>"
for label, command in commands.items()
)
def render_html_files(files: list[dict[str, Any]]) -> str:
if not files:
return "<p class=\"muted\">No submission drafts were requested.</p>"
return "".join(
"""
<article class="draft-card {status}">
<div>
<span>{status}</span>
<h3>{key}</h3>
</div>
<dl>
<dt>Template</dt><dd><code>{template}</code></dd>
<dt>Draft</dt><dd><code>{output}</code></dd>
</dl>
{errors}
</article>
""".format(
status=html_text(item.get("status", "")),
key=html_text(item.get("evidence_key", "")),
template=html_text(item.get("template_path", "")),
output=html_text(item.get("output_path", "")),
errors=(
"<ul class=\"errors\">"
+ render_html_list(item.get("errors", []), "No errors.")
+ "</ul>"
if item.get("errors")
else ""
),
)
for item in files
)
def render_html_item(item: dict[str, Any]) -> str:
must_collect = item.get("must_collect", {}) if isinstance(item.get("must_collect", {}), dict) else {}
return f"""
<article class="evidence-card {html_text(item.get('readiness', ''))}">
<header>
<span>{html_text(item.get('category', ''))} · {html_text(item.get('readiness', ''))}</span>
<h3>{html_text(item.get('label', item.get('evidence_key', '')))}</h3>
</header>
<p>{html_text(item.get('blocking_reason', ''))}</p>
<dl>
<dt>Owner</dt><dd>{html_text(item.get('owner', ''))}</dd>
<dt>Evidence</dt><dd><code>{html_text(item.get('evidence_key', ''))}</code></dd>
<dt>Submission</dt><dd><code>{html_text(item.get('submission_path', ''))}</code></dd>
</dl>
<div class="mini-grid">
<section>
<h4>Must Collect</h4>
<ul>{render_html_list(must_collect.get('provenance_requirements', []), 'No provenance requirements listed.')}</ul>
</section>
<section>
<h4>Pass Checks</h4>
<ul>{render_html_list(must_collect.get('success_checks', []), 'No success checks listed.')}</ul>
</section>
<section>
<h4>Privacy</h4>
<ul>{render_html_list(must_collect.get('privacy_contract', []), 'No privacy contract listed.')}</ul>
</section>
</div>
</article>
"""
def render_html(report: dict[str, Any]) -> str:
summary = report["summary"]
stats = [
("Requested", summary["requested_count"]),
("Written", summary["written_count"]),
("Existing", summary["existing_count"]),
("Skipped", summary["skipped_count"]),
]
stat_html = "".join(f"<article><span>{html_text(label)}</span><strong>{html_text(value)}</strong></article>" for label, value in stats)
evidence_html = "".join(render_html_item(item) for item in report.get("evidence_items", []))
return f"""<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>World-Class Evidence Submission Kit</title>
<style>
:root {{ --ink:#1B365D; --text:#202124; --muted:#6f6a63; --line:#e8e1d8; --soft:#f8f6f2; --warn:#9b4d0f; --pass:#1f6f43; }}
* {{ box-sizing:border-box; }}
body {{ margin:0; background:#fff; color:var(--text); font:16px/1.55 Georgia, "Times New Roman", serif; }}
.topbar {{ position:sticky; top:0; z-index:10; background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); }}
.topbar-inner {{ max-width:1180px; margin:0 auto; padding:12px 24px; display:flex; justify-content:space-between; gap:16px; align-items:center; }}
.brand, a {{ color:var(--ink); }}
.links {{ display:flex; gap:14px; flex-wrap:wrap; }}
.links a {{ text-decoration:none; }}
.shell {{ max-width:1180px; margin:0 auto; padding:36px 24px 72px; }}
.hero {{ border-bottom:1px solid var(--line); padding:32px 0 28px; }}
.eyebrow {{ color:var(--ink); font-size:12px; text-transform:uppercase; font-weight:700; letter-spacing:0; }}
h1 {{ margin:8px 0 12px; color:var(--ink); font-size:56px; line-height:1.04; letter-spacing:0; }}
h2, h3, h4 {{ color:var(--ink); letter-spacing:0; }}
h2 {{ margin:0 0 14px; font-size:30px; }}
h3 {{ margin:4px 0 10px; font-size:22px; }}
h4 {{ margin:0 0 8px; font-size:16px; }}
.lede {{ max-width:800px; color:var(--muted); font-size:20px; }}
.stats {{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px; margin:26px 0 0; }}
.stats article, .panel, .draft-card, .evidence-card {{ border:1px solid var(--line); border-radius:8px; background:#fff; }}
.stats article {{ padding:16px; }}
.stats span, .draft-card span, .evidence-card span, .muted {{ color:var(--muted); }}
.stats strong {{ display:block; color:var(--ink); font-size:34px; line-height:1; }}
.section {{ padding:32px 0; border-bottom:1px solid var(--line); }}
.panel {{ padding:20px; }}
.two-col {{ display:grid; grid-template-columns:minmax(0, .45fr) minmax(0, 1fr); gap:18px; align-items:start; }}
.draft-grid, .evidence-grid {{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; }}
.draft-card, .evidence-card {{ padding:18px; min-width:0; }}
.draft-card.written, .draft-card.exists {{ border-left:4px solid var(--pass); }}
.draft-card.skipped {{ border-left:4px solid var(--warn); }}
.evidence-card.awaiting-submission, .evidence-card.fix-submission, .evidence-card.fix-template {{ border-left:4px solid var(--warn); }}
dl {{ display:grid; grid-template-columns:96px minmax(0,1fr); gap:8px 12px; }}
dt {{ color:var(--ink); }}
dd {{ margin:0; min-width:0; overflow-wrap:anywhere; }}
code {{ font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size:13px; overflow-wrap:anywhere; }}
ul, ol {{ padding-left:20px; }}
.commands {{ list-style:none; padding:0; margin:0; display:grid; gap:10px; }}
.commands li {{ padding:12px; background:var(--soft); border-radius:8px; }}
.commands span {{ display:block; color:var(--ink); font-weight:700; margin-bottom:4px; }}
.mini-grid {{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; margin-top:14px; }}
.mini-grid section {{ background:var(--soft); border-radius:8px; padding:14px; min-width:0; }}
.mini-grid li, .notice li {{ overflow-wrap:anywhere; }}
.notice {{ background:var(--soft); border-left:4px solid var(--ink); padding:16px; border-radius:8px; }}
.errors {{ color:var(--warn); }}
@media (max-width:820px) {{ .stats, .two-col, .draft-grid, .evidence-grid, .mini-grid {{ grid-template-columns:1fr; }} h1 {{ font-size:38px; }} .topbar-inner {{ align-items:flex-start; flex-direction:column; }} }}
</style>
</head>
<body>
<nav class="topbar"><div class="topbar-inner"><span class="brand">World-Class Kit</span><div class="links"><a href="#workflow">Workflow</a><a href="#drafts">Drafts</a><a href="#evidence">Evidence</a><a href="#safety">Safety</a></div></div></nav>
<main class="shell">
<section class="hero">
<span class="eyebrow">Evidence Intake</span>
<h1>World-Class Evidence Submission Kit</h1>
<p class="lede">Use this cockpit to prepare human and external evidence packets. Drafts are not accepted evidence, and this page never changes the ledger result.</p>
<div class="stats">{stat_html}</div>
</section>
<section class="section two-col" id="workflow">
<article class="panel"><h2>Workflow</h2><ol><li>Run the real provider, human review, native permission, or native client telemetry work first.</li><li>Edit the matching JSON draft with aggregate artifact references and provenance metadata.</li><li>Set template_only to false only after real evidence exists.</li><li>Validate intake, refresh the ledger, then guard public claims.</li></ol></article>
<aside class="panel"><h2>Commands</h2><ul class="commands">{render_html_commands(report['commands'])}</ul></aside>
</section>
<section class="section" id="drafts"><h2>Drafts</h2><div class="draft-grid">{render_html_files(report['files'])}</div></section>
<section class="section" id="evidence"><h2>Evidence Requirements</h2><div class="evidence-grid">{evidence_html}</div></section>
<section class="section" id="safety"><h2>Safety Boundary</h2><div class="notice"><ul><li>Drafts never count as accepted ledger evidence.</li><li>Valid intake means ready for ledger review, not world-class completion.</li><li>Do not include credentials, raw prompts, raw outputs, transcripts, notes, or private user content.</li></ul></div></section>
</main>
</body>
</html>
"""
def build_submission_kit(
skill_dir: Path,
output_dir: Path,
generated_at: str,
evidence_keys: list[str] | None = None,
overwrite: bool = False,
output_html: Path | None = None,
) -> dict[str, Any]:
intake = build_intake(skill_dir, generated_at, submissions_dir=output_dir)
items = requested_checklist_items(intake, evidence_keys or [])
@@ -143,6 +312,7 @@ def build_submission_kit(
files = [copy_template(skill_dir, output_dir, item, template_results, overwrite) for item in items]
manifest_path = output_dir / "submission_manifest.json"
readme_path = output_dir / "README.md"
output_html = output_html or (output_dir / "index.html")
written_count = sum(1 for item in files if item["status"] == "written")
existing_count = sum(1 for item in files if item["status"] == "exists")
skipped_count = sum(1 for item in files if item["status"] == "skipped")
@@ -166,6 +336,7 @@ def build_submission_kit(
},
"unknown_evidence_keys": unknown_keys,
"files": files,
"evidence_items": items,
"commands": {
"validate_intake": f"python3 scripts/yao.py world-class-intake . --submissions-dir {rel_path(output_dir, skill_dir)}",
"refresh_ledger": f"python3 scripts/yao.py world-class-ledger . --submissions-dir {rel_path(output_dir, skill_dir)}",
@@ -181,11 +352,14 @@ def build_submission_kit(
"artifacts": {
"manifest": rel_path(manifest_path, skill_dir),
"readme": rel_path(readme_path, skill_dir),
"html": rel_path(output_html, skill_dir),
},
}
output_dir.mkdir(parents=True, exist_ok=True)
write_json(manifest_path, report)
readme_path.write_text(render_readme(report), encoding="utf-8")
output_html.parent.mkdir(parents=True, exist_ok=True)
output_html.write_text(render_html(report), encoding="utf-8")
return report
@@ -196,6 +370,7 @@ def main() -> None:
parser.add_argument("--evidence-key", action="append", default=[])
parser.add_argument("--overwrite", action="store_true")
parser.add_argument("--generated-at", default=date.today().isoformat())
parser.add_argument("--output-html")
args = parser.parse_args()
skill_dir = Path(args.skill_dir).resolve()
@@ -208,6 +383,7 @@ def main() -> None:
args.generated_at,
evidence_keys=args.evidence_key,
overwrite=args.overwrite,
output_html=Path(args.output_html).resolve() if args.output_html else None,
)
print(json.dumps(report, ensure_ascii=False, indent=2))
if not report["ok"]:
+1
View File
@@ -217,6 +217,7 @@ def build_parser(command_handlers: dict[str, Callable[[argparse.Namespace], int]
world_class_submission_kit_cmd.add_argument("--evidence-key", action="append", default=[])
world_class_submission_kit_cmd.add_argument("--overwrite", action="store_true")
world_class_submission_kit_cmd.add_argument("--generated-at")
world_class_submission_kit_cmd.add_argument("--output-html")
world_class_submission_kit_cmd.set_defaults(func=_handler(command_handlers, "command_world_class_submission_kit"))
world_class_submission_review_cmd = subparsers.add_parser(
+2
View File
@@ -87,6 +87,8 @@ def command_world_class_submission_kit(args: argparse.Namespace) -> int:
cmd.append("--overwrite")
if args.generated_at:
cmd.extend(["--generated-at", args.generated_at])
if args.output_html:
cmd.extend(["--output-html", args.output_html])
return emit_result(run_script("prepare_world_class_submission_kit.py", cmd))
@@ -165,9 +165,16 @@ def main() -> None:
assert kit_draft["attestation"]["real_external_or_human_evidence"] is False, kit_draft
kit_manifest = json.loads((kit_dir / "submission_manifest.json").read_text(encoding="utf-8"))
assert kit_manifest["summary"]["ledger_counts_submission_as_completion"] is False, kit_manifest["summary"]
assert kit_manifest["artifacts"]["html"].endswith("tests/tmp_world_class_evidence_intake/submission_kit/index.html"), kit_manifest["artifacts"]
kit_readme = (kit_dir / "README.md").read_text(encoding="utf-8")
assert "Drafts are not accepted evidence." in kit_readme, kit_readme
assert "validate intake" in kit_readme, kit_readme
kit_html = (kit_dir / "index.html").read_text(encoding="utf-8")
assert "<title>World-Class Evidence Submission Kit</title>" in kit_html, kit_html
assert "Drafts are not accepted evidence" in kit_html, kit_html
assert "provider-holdout" in kit_html, kit_html
assert "World-Class Evidence Submission Kit" in kit_html, kit_html
assert "Do not include credentials, raw prompts, raw outputs, transcripts, notes, or private user content." in kit_html, kit_html
draft_intake = run_intake("--submissions-dir", str(kit_dir))
assert draft_intake["ok"] is False, draft_intake
assert draft_intake["summary"]["submission_count"] == 1, draft_intake["summary"]
+10 -9
View File
@@ -282,19 +282,20 @@ def main() -> None:
world_class_submission_kit_result = run(
"world-class-submission-kit",
str(ROOT),
"--output-dir",
str(tmp_root / "world_class_submission_kit"),
"--evidence-key",
"provider-holdout",
"--generated-at",
"2026-06-14",
"--output-dir", str(tmp_root / "world_class_submission_kit"),
"--evidence-key", "provider-holdout",
"--generated-at", "2026-06-14",
"--output-html", str(tmp_root / "world_class_submission_kit.html"),
)
kit_payload = world_class_submission_kit_result["payload"]
assert world_class_submission_kit_result["ok"], world_class_submission_kit_result
assert world_class_submission_kit_result["payload"]["summary"]["decision"] == "submission-kit-ready", world_class_submission_kit_result
assert world_class_submission_kit_result["payload"]["summary"]["written_count"] == 1, world_class_submission_kit_result
assert world_class_submission_kit_result["payload"]["summary"]["drafts_count_as_evidence"] is False, world_class_submission_kit_result
assert kit_payload["summary"]["decision"] == "submission-kit-ready", world_class_submission_kit_result
assert kit_payload["summary"]["written_count"] == 1, world_class_submission_kit_result
assert kit_payload["summary"]["drafts_count_as_evidence"] is False, world_class_submission_kit_result
assert kit_payload["artifacts"]["html"].endswith("tests/tmp_cli/world_class_submission_kit.html"), world_class_submission_kit_result
assert (tmp_root / "world_class_submission_kit" / "provider-holdout.json").exists(), world_class_submission_kit_result
assert (tmp_root / "world_class_submission_kit" / "submission_manifest.json").exists(), world_class_submission_kit_result
assert (tmp_root / "world_class_submission_kit.html").exists(), world_class_submission_kit_result
world_class_submission_review_result = run(
"world-class-submission-review",