Split skill overview report sections

This commit is contained in:
yaojingang
2026-06-17 01:21:34 +08:00
parent 421bd08909
commit f37fd3a073
44 changed files with 604 additions and 522 deletions
+1 -1
View File
@@ -16,7 +16,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
}
]
}
+3 -3
View File
@@ -16,8 +16,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
"compatibility": {
"openai": "pass",
@@ -48,7 +48,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"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-16T17:13:06Z",
"generated_at": "2026-06-16T17:20:30Z",
"skill_dir": ".",
"privacy_contract": {
"storage": "local-first",
+12 -20
View File
@@ -4,10 +4,10 @@
"generated_at": "2026-06-17",
"skill_dir": ".",
"summary": {
"python_file_count": 218,
"script_file_count": 143,
"python_file_count": 219,
"script_file_count": 144,
"test_file_count": 75,
"internal_module_count": 59,
"internal_module_count": 60,
"cli_script_count": 86,
"command_handler_count": 68,
"entrypoint_command_handler_count": 18,
@@ -18,7 +18,7 @@
"block_line_threshold": 1500,
"largest_file_lines": 696,
"watchlist_count": 0,
"early_watchlist_count": 6,
"early_watchlist_count": 5,
"hotspot_count": 0,
"blocker_count": 0,
"decision": "pass"
@@ -32,14 +32,6 @@
"early_watch": true,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "scripts/skill_report_model.py",
"lines": 665,
"kind": "internal-module",
"severity": "pass",
"early_watch": true,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "scripts/render_review_studio.py",
"lines": 647,
@@ -119,6 +111,14 @@
"severity": "pass",
"early_watch": false,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "scripts/render_evidence_consistency.py",
"lines": 568,
"kind": "cli-script",
"severity": "pass",
"early_watch": false,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
}
],
"watchlist": [],
@@ -131,14 +131,6 @@
"early_watch": true,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "scripts/skill_report_model.py",
"lines": 665,
"kind": "internal-module",
"severity": "pass",
"early_watch": true,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "scripts/render_review_studio.py",
"lines": 647,
+5 -6
View File
@@ -5,17 +5,17 @@ Generated at: `2026-06-17`
## Summary
- decision: `pass`
- python files: `218`
- scripts: `143`
- python files: `219`
- scripts: `144`
- tests: `75`
- internal modules: `59`
- internal modules: `60`
- CLI scripts: `86`
- Yao CLI command handlers: `68`
- entrypoint command handlers: `18`
- command modules: `6`
- largest file lines: `696`
- early watch threshold lines: `600`
- early watchlist: `6`
- early watchlist: `5`
- watch threshold lines: `720`
- watchlist: `0`
- hotspots: `0`
@@ -36,7 +36,6 @@ No near-threshold files found.
| File | Lines | Kind | Recommended next split |
| --- | ---: | --- | --- |
| `tests/verify_yao_cli.py` | `696` | `test` | Break broad integration assertions into focused verifier helpers when the next behavior change lands. |
| `scripts/skill_report_model.py` | `665` | `internal-module` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `scripts/render_review_studio.py` | `647` | `cli-script` | Move data loading and large section renderers into focused review_studio_* modules. |
| `scripts/review_studio_gates.py` | `646` | `internal-module` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `scripts/cross_packager.py` | `638` | `cli-script` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
@@ -47,7 +46,6 @@ No near-threshold files found.
| File | Lines | Kind | Severity |
| --- | ---: | --- | --- |
| `tests/verify_yao_cli.py` | `696` | `test` | `pass` |
| `scripts/skill_report_model.py` | `665` | `internal-module` | `pass` |
| `scripts/render_review_studio.py` | `647` | `cli-script` | `pass` |
| `scripts/review_studio_gates.py` | `646` | `internal-module` | `pass` |
| `scripts/cross_packager.py` | `638` | `cli-script` | `pass` |
@@ -58,6 +56,7 @@ No near-threshold files found.
| `scripts/render_skill_overview.py` | `584` | `cli-script` | `pass` |
| `scripts/trust_check.py` | `582` | `cli-script` | `pass` |
| `tests/verify_review_studio.py` | `580` | `test` | `pass` |
| `scripts/render_evidence_consistency.py` | `568` | `cli-script` | `pass` |
## Release Rule
+38 -24
View File
@@ -3,23 +3,36 @@
"ok": true,
"generated_at": "2026-06-17",
"skill_dir": ".",
"commit": "5b7e118c2ea60b0386339ae52cc8b3943d9d9abd",
"commit": "421bd089091d8387e4db0ebf448cb6e739d83be1",
"git_status": {
"available": true,
"dirty": false,
"changed_file_count": 0,
"sample": [],
"dirty": true,
"changed_file_count": 42,
"sample": [
" M registry/index.json",
" M registry/packages/yao-meta-skill.json",
" M reports/adoption_drift_report.json",
" M reports/architecture_maintainability.json",
" M reports/architecture_maintainability.md",
" M reports/compiled_targets.json",
" M reports/context_budget.json",
" M reports/context_budget.md",
" M reports/context_budget_summary.json",
" M reports/evidence_consistency.json",
" M reports/install_simulation.json",
" M reports/output_execution_runs.json"
],
"scope": "generation-time status before this report is written"
},
"summary": {
"reproducibility_ready": true,
"release_lock_ready": true,
"release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"evidence_bundle_sha256": "8eca09b308577de4d05b1e23f4b3947937feebfaf9a35f0bd6c8d7c99ba1add1",
"source_contract_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"evidence_bundle_sha256": "bed23286b82f5261843228a999dd868b993e764267ce5480b0839fe7e4b6c3ec",
"source_contract_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -37,14 +50,15 @@
"world_class_source_pass_count": 7,
"world_class_source_blocked_count": 6,
"public_claim_ready": false,
"public_claim_blocker_count": 4,
"working_tree_dirty": false,
"changed_file_count": 0
"public_claim_blocker_count": 5,
"working_tree_dirty": true,
"changed_file_count": 42
},
"public_claim": {
"ready": false,
"scope": "public benchmark or world-class readiness claim",
"blockers": [
"release lock is not clean or commit is unavailable",
"provider-backed model holdout evidence is incomplete",
"human blind-review adjudication is incomplete",
"world-class evidence is not accepted yet (4 open gaps, 4 ledger pending)",
@@ -53,10 +67,10 @@
"policy": "Local reproducibility can pass before public claims; public claims require provider evidence, human adjudication, clean release lock, accepted world-class evidence, and complete source checks."
},
"release_lock": {
"ready": true,
"commit": "5b7e118c2ea60b0386339ae52cc8b3943d9d9abd",
"ready": false,
"commit": "421bd089091d8387e4db0ebf448cb6e739d83be1",
"status_scope": "generation-time status before this report is written",
"reason": "clean generation-time HEAD"
"reason": "working tree was dirty at generation time"
},
"evidence_bundle": {
"algorithm": "sha256(path,label,exists,artifact_sha256)",
@@ -64,7 +78,7 @@
"existing_count": 25,
"missing_count": 0,
"missing_paths": [],
"sha256": "8eca09b308577de4d05b1e23f4b3947937feebfaf9a35f0bd6c8d7c99ba1add1"
"sha256": "bed23286b82f5261843228a999dd868b993e764267ce5480b0839fe7e4b6c3ec"
},
"methodology": {
"path": "reports/benchmark_methodology.md",
@@ -138,7 +152,7 @@
"path": "reports/output_execution_runs.json",
"exists": true,
"bytes": 7964,
"sha256": "1a7d172912376818391679d2990fa43f4907e5fb4ef511ce6abd68fba7025871"
"sha256": "a6c011b7408873214c4886a160d86a999dba2b30cdc835eb727fe43dbe825a16"
},
{
"label": "blind_review",
@@ -172,43 +186,43 @@
"label": "trust_report",
"path": "reports/security_trust_report.json",
"exists": true,
"bytes": 131433,
"sha256": "eed13d34bb468546ab367a4a308aaaefac48740cacb7b959d8cf6f21190bd577"
"bytes": 132031,
"sha256": "719954979459df2f3d9a70923d72456f23a661d445e1e4d1ea6e4c1568eb03b2"
},
{
"label": "python_compatibility",
"path": "reports/python_compatibility.json",
"exists": true,
"bytes": 28693,
"sha256": "42c19c9c621e910a43b53f25dc34e66a3161c9ae594080b85cca2d1ec8cfa198"
"bytes": 28817,
"sha256": "cd6bd515cad86b5bfe9933e671a489ee1067e2c8de309d5c5589fbf6324caeb1"
},
{
"label": "registry_audit",
"path": "reports/registry_audit.json",
"exists": true,
"bytes": 3183,
"sha256": "5c41afcffcb67f4c0cbfc0683a7764aa6c006b9bb59d835c82007b222b77ddd3"
"sha256": "4cb383ec730bdc75565a2ea3f5d3e5bfcf1517a3adb8294c25f476a4d49cfe49"
},
{
"label": "package_verification",
"path": "reports/package_verification.json",
"exists": true,
"bytes": 19338,
"sha256": "ad97458ab51752a176cebb387b13ce18f28c921040a4f89431c22da84696280a"
"sha256": "1be9da837cd93cb5c6cedfa32e464f7aa610a6b254da0ccc56b1c62e547d5bc0"
},
{
"label": "install_simulation",
"path": "reports/install_simulation.json",
"exists": true,
"bytes": 8604,
"sha256": "807f8c0344c10c4ff48673ade38607e74a35094ee5f513ae5e3b536c76d1720a"
"sha256": "9c588e6af9aa3da52be77ce1dec23281cfc9729006f22e2bdd8016633b5d2cf7"
},
{
"label": "skill_os2_audit",
"path": "reports/skill_os2_audit.json",
"exists": true,
"bytes": 14310,
"sha256": "9ae89df81c3117fa0a68e06c47dccf6695b7e0a918fd293417baac2ba0ec8022"
"sha256": "fc12eb6713740f1adf7de18daa5a2889f945353730961f4bf87b810f92f6e426"
},
{
"label": "world_class_evidence_plan",
+19 -18
View File
@@ -1,19 +1,19 @@
# Benchmark Reproducibility
Generated at: `2026-06-17`
Commit: `5b7e118c2ea60b0386339ae52cc8b3943d9d9abd`
Working tree dirty at generation: `false`
Evidence bundle SHA256: `8eca09b308577de4d05b1e23f4b3947937feebfaf9a35f0bd6c8d7c99ba1add1`
Commit: `421bd089091d8387e4db0ebf448cb6e739d83be1`
Working tree dirty at generation: `true`
Evidence bundle SHA256: `bed23286b82f5261843228a999dd868b993e764267ce5480b0839fe7e4b6c3ec`
## Summary
- reproducibility ready: `true`
- release lock ready: `true`
- release lock ready: `false`
- methodology complete: `true`
- required artifacts: `25`
- missing artifacts: `0`
- source contract sha256: `a868eb139efe`
- archive sha256: `470e2481d30d`
- source contract sha256: `b28843624ffa`
- archive sha256: `9bbe58230777`
- output cases: `5`
- disclosed failure cases: `3`
- reproduction commands: `23`
@@ -22,8 +22,8 @@ Evidence bundle SHA256: `8eca09b308577de4d05b1e23f4b3947937feebfaf9a35f0bd6c8d7c
- world-class ready: `false`
- world-class source checks: `7` pass / `13` total; `6` blocked
- public claim ready: `false`
- public claim blockers: `4`
- changed files at generation: `0`
- public claim blockers: `5`
- changed files at generation: `42`
This report proves local benchmark reproducibility only. It keeps external provider and human-review gaps visible instead of counting them as complete. The git commit is generation-time context; the evidence bundle SHA is the durable anchor for the artifacts listed below.
@@ -35,6 +35,7 @@ This report proves local benchmark reproducibility only. It keeps external provi
| Blocker |
| --- |
| release lock is not clean or commit is unavailable |
| provider-backed model holdout evidence is incomplete |
| human blind-review adjudication is incomplete |
| world-class evidence is not accepted yet (4 open gaps, 4 ledger pending) |
@@ -42,15 +43,15 @@ This report proves local benchmark reproducibility only. It keeps external provi
## Release Lock
- ready: `true`
- reason: clean generation-time HEAD
- ready: `false`
- reason: working tree was dirty at generation time
- status scope: generation-time status before this report is written
## Evidence Bundle
- algorithm: `sha256(path,label,exists,artifact_sha256)`
- artifacts: `25` / `25`
- sha256: `8eca09b308577de4d05b1e23f4b3947937feebfaf9a35f0bd6c8d7c99ba1add1`
- sha256: `bed23286b82f5261843228a999dd868b993e764267ce5480b0839fe7e4b6c3ec`
## Methodology Sections
@@ -72,17 +73,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 | `1a7d17291237` |
| output_execution | `reports/output_execution_runs.json` | present | `a6c011b74088` |
| blind_review | `reports/output_blind_review_pack.json` | present | `bbe2db8ec277` |
| review_adjudication | `reports/output_review_adjudication.json` | present | `bb8c72a9291e` |
| trigger_scorecard | `reports/route_scorecard.json` | present | `c164e83e36d0` |
| runtime_conformance | `reports/conformance_matrix.json` | present | `97f9ba949c23` |
| trust_report | `reports/security_trust_report.json` | present | `eed13d34bb46` |
| python_compatibility | `reports/python_compatibility.json` | present | `42c19c9c621e` |
| registry_audit | `reports/registry_audit.json` | present | `5c41afcffcb6` |
| package_verification | `reports/package_verification.json` | present | `ad97458ab517` |
| install_simulation | `reports/install_simulation.json` | present | `807f8c0344c1` |
| skill_os2_audit | `reports/skill_os2_audit.json` | present | `9ae89df81c31` |
| trust_report | `reports/security_trust_report.json` | present | `719954979459` |
| python_compatibility | `reports/python_compatibility.json` | present | `cd6bd515cad8` |
| registry_audit | `reports/registry_audit.json` | present | `4cb383ec730b` |
| package_verification | `reports/package_verification.json` | present | `1be9da837cd9` |
| install_simulation | `reports/install_simulation.json` | present | `9c588e6af9aa` |
| skill_os2_audit | `reports/skill_os2_audit.json` | present | `fc12eb671374` |
| world_class_evidence_plan | `reports/world_class_evidence_plan.json` | present | `9b74155fb9bf` |
| world_class_evidence_ledger | `reports/world_class_evidence_ledger.json` | present | `f6e1a69b0359` |
| world_class_evidence_intake | `reports/world_class_evidence_intake.json` | present | `46f801051ec0` |
+30 -25
View File
@@ -259,6 +259,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
@@ -348,7 +349,7 @@
],
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
}
@@ -620,7 +621,7 @@
"strategy": "Ship the neutral source tree and expose OpenAI-facing interface metadata as a generated companion file.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -631,7 +632,7 @@
},
"scripts": {
"strategy": "Keep scripts as local package resources; expose help-smoke and permission metadata for reviewer approval before execution.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -875,7 +876,7 @@
"strategy": "Ship the neutral source tree and expose OpenAI-facing interface metadata as a generated companion file.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -886,7 +887,7 @@
},
"scripts": {
"strategy": "Keep scripts as local package resources; expose help-smoke and permission metadata for reviewer approval before execution.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -1202,6 +1203,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
@@ -1291,7 +1293,7 @@
],
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
}
@@ -1563,7 +1565,7 @@
"strategy": "Preserve the source tree directly; write target notes in targets/claude/README.md.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -1574,7 +1576,7 @@
},
"scripts": {
"strategy": "Scripts remain local package resources and must be reviewed through trust and permission reports before use.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -1818,7 +1820,7 @@
"strategy": "Preserve the source tree directly; write target notes in targets/claude/README.md.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -1829,7 +1831,7 @@
},
"scripts": {
"strategy": "Scripts remain local package resources and must be reviewed through trust and permission reports before use.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -2145,6 +2147,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
@@ -2234,7 +2237,7 @@
],
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
}
@@ -2506,7 +2509,7 @@
"strategy": "Preserve references, scripts, assets, evals, reports, and adapter metadata as relative package resources.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -2516,7 +2519,7 @@
},
"scripts": {
"strategy": "Expose script and permission metadata for downstream clients or installers to enforce.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -2754,7 +2757,7 @@
"strategy": "Preserve references, scripts, assets, evals, reports, and adapter metadata as relative package resources.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -2764,7 +2767,7 @@
},
"scripts": {
"strategy": "Expose script and permission metadata for downstream clients or installers to enforce.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -3072,6 +3075,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
@@ -3161,7 +3165,7 @@
],
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
}
@@ -3433,7 +3437,7 @@
"strategy": "Keep optional directories as relative resources next to SKILL.md.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -3444,7 +3448,7 @@
},
"scripts": {
"strategy": "Scripts remain local optional resources and should advertise --help when executable.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -3681,7 +3685,7 @@
"strategy": "Keep optional directories as relative resources next to SKILL.md.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -3692,7 +3696,7 @@
},
"scripts": {
"strategy": "Scripts remain local optional resources and should advertise --help when executable.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -3999,6 +4003,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
@@ -4088,7 +4093,7 @@
],
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
}
@@ -4360,7 +4365,7 @@
"strategy": "Install as project or user scoped skill source, preserving relative references and scripts.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -4371,7 +4376,7 @@
},
"scripts": {
"strategy": "Scripts require workspace trust and operator/client approval outside this compiler.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -4612,7 +4617,7 @@
"strategy": "Install as project or user scoped skill source, preserving relative references and scripts.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -4623,7 +4628,7 @@
},
"scripts": {
"strategy": "Scripts require workspace trust and operator/client approval outside this compiler.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
+10 -10
View File
@@ -6,16 +6,16 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 797,
"other_text_tokens": 1082505,
"other_text_tokens": 1082831,
"estimated_initial_load_tokens": 990,
"estimated_total_text_tokens": 1083302,
"deferred_resource_tokens": 496260,
"estimated_total_text_tokens": 1083628,
"deferred_resource_tokens": 496320,
"deferred_resource_warn_threshold": 120000,
"deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 435366,
"file_count": 143
"estimated_tokens": 435426,
"file_count": 144
},
{
"path": "references",
@@ -36,8 +36,8 @@
"large_deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 435366,
"file_count": 143
"estimated_tokens": 435426,
"file_count": 144
}
],
"deferred_resource_governance": {
@@ -59,14 +59,14 @@
],
"missing": [],
"path": "scripts",
"estimated_tokens": 435366,
"file_count": 143,
"estimated_tokens": 435426,
"file_count": 144,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
],
"summary": "Large deferred resources are indexed and backed by evidence."
},
"relevant_file_count": 687,
"relevant_file_count": 689,
"unused_resource_dirs": [],
"quality_signal_points": 130,
"quality_density": 131.3
+1 -1
View File
@@ -2,7 +2,7 @@
| Target | Path | Tier | Limit | Initial | SKILL | Deferred | Resource Governance | Large Deferred Dirs | Quality Density | Unused Dirs | Status |
| --- | --- | --- | ---: | ---: | ---: | ---: | --- | --- | ---: | --- | --- |
| root | `.` | `production` | 1000 | 990 | 797 | 496260 | `governed` | scripts:435366 | 131.3 | - | ok |
| root | `.` | `production` | 1000 | 990 | 797 | 496320 | `governed` | scripts:435426 | 131.3 | - | ok |
| complex-release-orchestrator | `examples/complex-release-orchestrator/generated-skill` | `production` | 1000 | 790 | 718 | 1657 | `not-required` | - | 164.6 | - | ok |
| governed-incident-command | `examples/governed-incident-command/generated-skill` | `production` | 1000 | 760 | 658 | 1030 | `not-required` | - | 171.1 | - | ok |
+6 -6
View File
@@ -1,5 +1,5 @@
{
"generated_at": "2026-06-17",
"generated_at": "2026-03-31",
"targets": [
{
"label": "root",
@@ -8,12 +8,12 @@
"budget_limit": 1000,
"initial_tokens": 990,
"skill_body_tokens": 797,
"deferred_resource_tokens": 496260,
"deferred_resource_tokens": 496320,
"large_deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 435366,
"file_count": 143
"estimated_tokens": 435426,
"file_count": 144
}
],
"deferred_resource_governance": {
@@ -35,8 +35,8 @@
],
"missing": [],
"path": "scripts",
"estimated_tokens": 435366,
"file_count": 143,
"estimated_tokens": 435426,
"file_count": 144,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
],
+13 -13
View File
@@ -189,12 +189,12 @@
"status": "pass",
"expected": {
"status": "pass",
"detail": "initial load 990/1000; deferred 496260/120000; top deferred scripts 435366; resource governance governed; quality density 131.3",
"detail": "initial load 990/1000; deferred 496320/120000; top deferred scripts 435426; resource governance governed; quality density 131.3",
"evidence": "reports/context_budget.json"
},
"actual": {
"status": "pass",
"detail": "initial load 990/1000; deferred 496260/120000; top deferred scripts 435366; resource governance governed; quality density 131.3",
"detail": "initial load 990/1000; deferred 496320/120000; top deferred scripts 435426; resource governance governed; quality density 131.3",
"evidence": "reports/context_budget.json"
},
"paths": [
@@ -222,7 +222,7 @@
"actual": {
"available": true,
"clean": false,
"changed_file_count": 11
"changed_file_count": 57
},
"paths": [
"reports/benchmark_reproducibility.json"
@@ -1525,7 +1525,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 143
"file_count": 144
},
{
"path": "evals",
@@ -1540,7 +1540,7 @@
"file_count": 235
}
],
"file_count": 446,
"file_count": 447,
"folder_count": 4,
"distribution": [
{
@@ -1565,7 +1565,7 @@
},
{
"label": "scripts",
"value": 143
"value": 144
},
{
"label": "evals",
@@ -1613,7 +1613,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 143
"file_count": 144
},
{
"path": "evals",
@@ -1628,7 +1628,7 @@
"file_count": 235
}
],
"file_count": 446,
"file_count": 447,
"folder_count": 4,
"distribution": [
{
@@ -1653,7 +1653,7 @@
},
{
"label": "scripts",
"value": 143
"value": 144
},
{
"label": "evals",
@@ -2417,10 +2417,10 @@
"score `91`",
"`16` gates",
"`3` warnings",
"`57` declared internal modules",
"`86 / 86` CLI help smoke checks passing across `143` scripts",
"`681` zip entries",
"archive with `681` entries",
"`58` declared internal modules",
"`86 / 86` CLI help smoke checks passing across `144` scripts",
"`682` zip entries",
"archive with `682` entries",
"`12` installer permission checks enforced",
"`0` permission failures",
"`25` required artifacts",
+1 -1
View File
@@ -8,7 +8,7 @@
"installed_skill_dir": "dist/install-simulation/simulate-yao-meta-skill/yao-meta-skill",
"summary": {
"archive_present": true,
"archive_entry_count": 681,
"archive_entry_count": 682,
"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": 26.1,
"duration_ms": 27.84,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -62,7 +62,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 26.14,
"duration_ms": 26.68,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -85,7 +85,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.73,
"duration_ms": 26.07,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -113,7 +113,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.81,
"duration_ms": 26.09,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -136,7 +136,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.98,
"duration_ms": 25.9,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -164,7 +164,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.6,
"duration_ms": 25.79,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -187,7 +187,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.73,
"duration_ms": 25.72,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -214,7 +214,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.8,
"duration_ms": 25.47,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -237,7 +237,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 26.04,
"duration_ms": 25.8,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -266,7 +266,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.59,
"duration_ms": 25.8,
"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 | 26.1 | 33 | 0.0 | pass |
| skill-package-contract | with_skill | command | local-output-eval-runner | 26.14 | 73 | 100.0 | pass |
| output-eval-expectation | baseline | command | local-output-eval-runner | 25.73 | 36 | 0.0 | pass |
| output-eval-expectation | with_skill | command | local-output-eval-runner | 25.81 | 80 | 100.0 | pass |
| ir-before-packaging | baseline | command | local-output-eval-runner | 25.98 | 33 | 0.0 | pass |
| ir-before-packaging | with_skill | command | local-output-eval-runner | 25.6 | 80 | 100.0 | pass |
| near-neighbor-boundary | baseline | command | local-output-eval-runner | 25.73 | 36 | 0.0 | pass |
| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 25.8 | 65 | 100.0 | pass |
| file-backed-governed-package | baseline | command | local-output-eval-runner | 26.04 | 37 | 0.0 | pass |
| file-backed-governed-package | with_skill | command | local-output-eval-runner | 25.59 | 98 | 100.0 | pass |
| skill-package-contract | baseline | command | local-output-eval-runner | 27.84 | 33 | 0.0 | pass |
| skill-package-contract | with_skill | command | local-output-eval-runner | 26.68 | 73 | 100.0 | pass |
| output-eval-expectation | baseline | command | local-output-eval-runner | 26.07 | 36 | 0.0 | pass |
| output-eval-expectation | with_skill | command | local-output-eval-runner | 26.09 | 80 | 100.0 | pass |
| ir-before-packaging | baseline | command | local-output-eval-runner | 25.9 | 33 | 0.0 | pass |
| ir-before-packaging | with_skill | command | local-output-eval-runner | 25.79 | 80 | 100.0 | pass |
| near-neighbor-boundary | baseline | command | local-output-eval-runner | 25.72 | 36 | 0.0 | pass |
| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 25.47 | 65 | 100.0 | pass |
| file-backed-governed-package | baseline | command | local-output-eval-runner | 25.8 | 37 | 0.0 | pass |
| file-backed-governed-package | with_skill | command | local-output-eval-runner | 25.8 | 98 | 100.0 | pass |
## Next Fixes
+2 -2
View File
@@ -8,8 +8,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"archive_entry_count": 681,
"archive_sha256": "9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1",
"archive_entry_count": 682,
"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: `470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571`
- Archive SHA256: `9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1`
- Failures: `0`
- Warnings: `0`
+7 -1
View File
@@ -5,7 +5,7 @@
"root": ".",
"summary": {
"target_python": "3.11",
"file_count": 221,
"file_count": 222,
"issue_count": 0,
"syntax_error_count": 0,
"fstring_311_violation_count": 0,
@@ -700,6 +700,12 @@
"issue_count": 0,
"issues": []
},
{
"path": "scripts/skill_report_sections.py",
"ok": true,
"issue_count": 0,
"issues": []
},
{
"path": "scripts/skill_report_sources.py",
"ok": true,
+1 -1
View File
@@ -6,7 +6,7 @@ Generated at: `2026-06-17`
- decision: `pass`
- target python: `3.11`
- files scanned: `221`
- files scanned: `222`
- issues: `0`
- syntax errors: `0`
- f-string 3.11 violations: `0`
+4 -4
View File
@@ -21,8 +21,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
"compatibility": {
"openai": "pass",
@@ -53,7 +53,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"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": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
}
]
},
+2 -2
View File
@@ -6,8 +6,8 @@
- Maturity: `governed`
- Owner: `Yao Team`
- License: `MIT`
- Package SHA256: `a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6`
- Archive SHA256: `123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a`
- Package SHA256: `b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de`
- Archive SHA256: `470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571`
- Install simulated: `True`
## Compatibility
+9 -9
View File
@@ -740,12 +740,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>143 scripts scanned; secrets found</p></article><article class='metric'><span>Py Compat</span><strong>0</strong><p>221 files scanned for Python 3.11</p></article><article class='metric'><span>Arch Debt</span><strong>0</strong><p>696 largest lines; 0 watchlist; 6 early; 68 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>Daily Ops</span><strong>5</strong><p>proposal-review; approval 0; release lock true</p></article><article class='metric'><span>Weekly Queue</span><strong>5</strong><p>curator-review; ready 1; top score 88</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>182 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>681 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>5 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>144 scripts scanned; secrets found</p></article><article class='metric'><span>Py Compat</span><strong>0</strong><p>222 files scanned for Python 3.11</p></article><article class='metric'><span>Arch Debt</span><strong>0</strong><p>696 largest lines; 0 watchlist; 5 early; 68 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>Daily Ops</span><strong>5</strong><p>proposal-review; approval 0; release lock true</p></article><article class='metric'><span>Weekly Queue</span><strong>5</strong><p>curator-review; ready 1; top score 88</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>182 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>682 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 990/1000; deferred 496260/120000; top deferred scripts 435366; resource governance governed; quality density 131.3</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; 143 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; 221 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>218 Python files; 0 hotspots; 0 watchlist files; 6 early watch files; 0 blockers; largest 696 lines; 68 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 100.0; missed 0; bad-output 0; risk low; daily proposals 5; daily decision proposal-review; daily release lock true; weekly queue 5 unique; weekly ready 1; weekly top 88; weekly release lock true</p><footer>reports/adoption_drift_report.json + reports/skillops/daily + reports/skillops/weekly <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 7/13 pass; 6 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 990/1000; deferred 496320/120000; top deferred scripts 435426; resource governance governed; quality density 131.3</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; 144 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; 222 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>219 Python files; 0 hotspots; 0 watchlist files; 5 early watch files; 0 blockers; largest 696 lines; 68 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 100.0; missed 0; bad-output 0; risk low; daily proposals 5; daily decision proposal-review; daily release lock true; weekly queue 5 unique; weekly ready 1; weekly top 88; weekly release lock true</p><footer>reports/adoption_drift_report.json + reports/skillops/daily + reports/skillops/weekly <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 7/13 pass; 6 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>
<section>
@@ -812,17 +812,17 @@
</section>
<section class="twocol">
<div class="panel"><h2>上下文</h2><p>initial load 990/1000; deferred 496260/120000; top deferred scripts 435366; resource governance governed; quality density 131.3</p></div>
<div class="panel"><h2>上下文</h2><p>initial load 990/1000; deferred 496320/120000; top deferred scripts 435426; resource governance governed; quality density 131.3</p></div>
<div class="panel"><h2>编译证据</h2><p>Review reports/compiled_targets.md before packaging to inspect target adapter modes, generated files, preserved semantics, warnings, and unsupported features.</p></div>
</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>143</dd></div><div><dt>网络脚本</dt><dd>3</dd></div><div><dt>Help 失败</dt><dd>0</dd></div><div><dt>包体哈希</dt><dd><code>a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6</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>144</dd></div><div><dt>网络脚本</dt><dd>3</dd></div><div><dt>Help 失败</dt><dd>0</dd></div><div><dt>包体哈希</dt><dd><code>b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de</code></dd></div></dl></div>
<div class="panel"><h2>安全边界</h2><p>高风险 secret、远程 inline execution、缺失依赖策略或无法解释的脚本接口应阻断 governed release。</p></div>
</section>
<section class="twocol">
<div class="panel"><h2>Python 兼容</h2><dl class='kv-grid'><div><dt>目标 Python</dt><dd>3.11</dd></div><div><dt>文件数</dt><dd>221</dd></div><div><dt>问题数</dt><dd>0</dd></div><div><dt>语法错误</dt><dd>0</dd></div><div><dt>F-string 3.11</dt><dd>0</dd></div></dl></div>
<div class="panel"><h2>Python 兼容</h2><dl class='kv-grid'><div><dt>目标 Python</dt><dd>3.11</dd></div><div><dt>文件数</dt><dd>222</dd></div><div><dt>问题数</dt><dd>0</dd></div><div><dt>语法错误</dt><dd>0</dd></div><div><dt>F-string 3.11</dt><dd>0</dd></div></dl></div>
<div class="panel"><h2>解释器边界</h2><p>CI 和发布审查以 Python 3.11 兼容为底线;本地更高版本允许的新语法不能绕过兼容门禁。</p></div>
</section>
@@ -882,8 +882,8 @@
</section>
<section class="twocol">
<div class="panel"><h2>公开声明</h2><dl class='kv-grid'><div><dt>本地复现</dt><dd></dd></div><div><dt>发布锁</dt><dd></dd></div><div><dt>可公开声明</dt><dd></dd></div><div><dt>声明阻断</dt><dd>4</dd></div><div><dt>Provider 证据</dt><dd></dd></div><div><dt>人审完成</dt><dd></dd></div><div><dt>世界级就绪</dt><dd></dd></div></dl></div>
<div class="panel"><h2>声明阻断</h2><ul class='issues'><li><strong>阻断</strong><span>provider-backed model holdout evidence is incomplete</span></li><li><strong>阻断</strong><span>human blind-review adjudication is incomplete</span></li><li><strong>阻断</strong><span>world-class evidence is not accepted yet (4 open gaps, 4 ledger pending)</span></li><li><strong>阻断</strong><span>world-class source checks are not all accepted (7/13 pass, 6 blocked)</span></li></ul></div>
<div class="panel"><h2>公开声明</h2><dl class='kv-grid'><div><dt>本地复现</dt><dd></dd></div><div><dt>发布锁</dt><dd></dd></div><div><dt>可公开声明</dt><dd></dd></div><div><dt>声明阻断</dt><dd>5</dd></div><div><dt>Provider 证据</dt><dd></dd></div><div><dt>人审完成</dt><dd></dd></div><div><dt>世界级就绪</dt><dd></dd></div></dl></div>
<div class="panel"><h2>声明阻断</h2><ul class='issues'><li><strong>阻断</strong><span>release lock is not clean or commit is unavailable</span></li><li><strong>阻断</strong><span>provider-backed model holdout evidence is incomplete</span></li><li><strong>阻断</strong><span>human blind-review adjudication is incomplete</span></li><li><strong>阻断</strong><span>world-class evidence is not accepted yet (4 open gaps, 4 ledger pending)</span></li><li><strong>阻断</strong><span>world-class source checks are not all accepted (7/13 pass, 6 blocked)</span></li></ul></div>
</section>
<section class="twocol">
@@ -903,12 +903,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>123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a</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>470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571</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>681</dd></div><div><dt>失败数</dt><dd>0</dd></div><div><dt>警告数</dt><dd>0</dd></div><div><dt>归档哈希</dt><dd><code>470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571</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>682</dd></div><div><dt>失败数</dt><dd>0</dd></div><div><dt>警告数</dt><dd>0</dd></div><div><dt>归档哈希</dt><dd><code>9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1</code></dd></div></dl></div>
</section>
<section class="twocol">
+173 -137
View File
@@ -44,7 +44,7 @@
"key": "context-budget",
"label": "上下文",
"status": "pass",
"detail": "initial load 990/1000; deferred 496260/120000; top deferred scripts 435366; resource governance governed; quality density 131.3",
"detail": "initial load 990/1000; deferred 496320/120000; top deferred scripts 435426; resource governance governed; quality density 131.3",
"evidence": "reports/context_budget.json",
"link": "context_budget.md"
},
@@ -60,7 +60,7 @@
"key": "trust-report",
"label": "信任报告",
"status": "pass",
"detail": "0 secrets; 143 scripts; 3 network-capable scripts; 0 help smoke failures",
"detail": "0 secrets; 144 scripts; 3 network-capable scripts; 0 help smoke failures",
"evidence": "reports/security_trust_report.json",
"link": "security_trust_report.md"
},
@@ -68,7 +68,7 @@
"key": "python-compat",
"label": "Python 兼容",
"status": "pass",
"detail": "Python 3.11; 221 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards",
"detail": "Python 3.11; 222 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards",
"evidence": "reports/python_compatibility.json",
"link": "python_compatibility.md"
},
@@ -76,7 +76,7 @@
"key": "architecture-maintainability",
"label": "架构维护",
"status": "pass",
"detail": "218 Python files; 0 hotspots; 0 watchlist files; 6 early watch files; 0 blockers; largest 696 lines; 68 CLI handlers; 18 in entrypoint",
"detail": "219 Python files; 0 hotspots; 0 watchlist files; 5 early watch files; 0 blockers; largest 696 lines; 68 CLI handlers; 18 in entrypoint",
"evidence": "reports/architecture_maintainability.json",
"link": "architecture_maintainability.md"
},
@@ -1475,7 +1475,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 143
"file_count": 144
},
{
"path": "evals",
@@ -1490,7 +1490,7 @@
"file_count": 235
}
],
"file_count": 446,
"file_count": 447,
"folder_count": 4,
"distribution": [
{
@@ -1515,7 +1515,7 @@
},
{
"label": "scripts",
"value": 143
"value": 144
},
{
"label": "evals",
@@ -1645,7 +1645,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 143
"file_count": 144
},
{
"path": "evals",
@@ -1959,13 +1959,13 @@
"ok": true,
"summary": {
"reproducibility_ready": true,
"release_lock_ready": true,
"release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"evidence_bundle_sha256": "8eca09b308577de4d05b1e23f4b3947937feebfaf9a35f0bd6c8d7c99ba1add1",
"source_contract_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"evidence_bundle_sha256": "bed23286b82f5261843228a999dd868b993e764267ce5480b0839fe7e4b6c3ec",
"source_contract_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1983,11 +1983,11 @@
"world_class_source_pass_count": 7,
"world_class_source_blocked_count": 6,
"public_claim_ready": false,
"public_claim_blocker_count": 4,
"working_tree_dirty": false,
"changed_file_count": 0
"public_claim_blocker_count": 5,
"working_tree_dirty": true,
"changed_file_count": 42
},
"commit": "5b7e118c2ea60b0386339ae52cc8b3943d9d9abd",
"commit": "421bd089091d8387e4db0ebf448cb6e739d83be1",
"missing_artifacts": [],
"limitations": [
"The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
@@ -2071,9 +2071,9 @@
"failures": []
},
"trust_security": {
"scanned_files": 235,
"script_count": 143,
"internal_module_count": 57,
"scanned_files": 236,
"script_count": 144,
"internal_module_count": 58,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -2091,8 +2091,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 235,
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"package_hash_file_count": 236,
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
},
"skill_atlas": {
"skill_count": 12,
@@ -2130,8 +2130,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
"compatibility": {
"openai": "pass",
@@ -2162,7 +2162,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -2178,8 +2178,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"archive_entry_count": 681,
"archive_sha256": "9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1",
"archive_entry_count": 682,
"failure_count": 0,
"warning_count": 0
},
@@ -2190,7 +2190,7 @@
"ok": true,
"summary": {
"archive_present": true,
"archive_entry_count": 681,
"archive_entry_count": 682,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -2257,12 +2257,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"to": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"to": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
}
]
},
@@ -4692,7 +4692,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 26.1,
"duration_ms": 27.84,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4720,7 +4720,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 26.14,
"duration_ms": 26.68,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4743,7 +4743,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.73,
"duration_ms": 26.07,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4771,7 +4771,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.81,
"duration_ms": 26.09,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4794,7 +4794,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.98,
"duration_ms": 25.9,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4822,7 +4822,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.6,
"duration_ms": 25.79,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4845,7 +4845,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.73,
"duration_ms": 25.72,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4872,7 +4872,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.8,
"duration_ms": 25.47,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4895,7 +4895,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 26.04,
"duration_ms": 25.8,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4924,7 +4924,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 25.59,
"duration_ms": 25.8,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5650,23 +5650,36 @@
"ok": true,
"generated_at": "2026-06-17",
"skill_dir": ".",
"commit": "5b7e118c2ea60b0386339ae52cc8b3943d9d9abd",
"commit": "421bd089091d8387e4db0ebf448cb6e739d83be1",
"git_status": {
"available": true,
"dirty": false,
"changed_file_count": 0,
"sample": [],
"dirty": true,
"changed_file_count": 42,
"sample": [
" M registry/index.json",
" M registry/packages/yao-meta-skill.json",
" M reports/adoption_drift_report.json",
" M reports/architecture_maintainability.json",
" M reports/architecture_maintainability.md",
" M reports/compiled_targets.json",
" M reports/context_budget.json",
" M reports/context_budget.md",
" M reports/context_budget_summary.json",
" M reports/evidence_consistency.json",
" M reports/install_simulation.json",
" M reports/output_execution_runs.json"
],
"scope": "generation-time status before this report is written"
},
"summary": {
"reproducibility_ready": true,
"release_lock_ready": true,
"release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"evidence_bundle_sha256": "8eca09b308577de4d05b1e23f4b3947937feebfaf9a35f0bd6c8d7c99ba1add1",
"source_contract_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"evidence_bundle_sha256": "bed23286b82f5261843228a999dd868b993e764267ce5480b0839fe7e4b6c3ec",
"source_contract_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -5684,14 +5697,15 @@
"world_class_source_pass_count": 7,
"world_class_source_blocked_count": 6,
"public_claim_ready": false,
"public_claim_blocker_count": 4,
"working_tree_dirty": false,
"changed_file_count": 0
"public_claim_blocker_count": 5,
"working_tree_dirty": true,
"changed_file_count": 42
},
"public_claim": {
"ready": false,
"scope": "public benchmark or world-class readiness claim",
"blockers": [
"release lock is not clean or commit is unavailable",
"provider-backed model holdout evidence is incomplete",
"human blind-review adjudication is incomplete",
"world-class evidence is not accepted yet (4 open gaps, 4 ledger pending)",
@@ -5700,10 +5714,10 @@
"policy": "Local reproducibility can pass before public claims; public claims require provider evidence, human adjudication, clean release lock, accepted world-class evidence, and complete source checks."
},
"release_lock": {
"ready": true,
"commit": "5b7e118c2ea60b0386339ae52cc8b3943d9d9abd",
"ready": false,
"commit": "421bd089091d8387e4db0ebf448cb6e739d83be1",
"status_scope": "generation-time status before this report is written",
"reason": "clean generation-time HEAD"
"reason": "working tree was dirty at generation time"
},
"evidence_bundle": {
"algorithm": "sha256(path,label,exists,artifact_sha256)",
@@ -5711,7 +5725,7 @@
"existing_count": 25,
"missing_count": 0,
"missing_paths": [],
"sha256": "8eca09b308577de4d05b1e23f4b3947937feebfaf9a35f0bd6c8d7c99ba1add1"
"sha256": "bed23286b82f5261843228a999dd868b993e764267ce5480b0839fe7e4b6c3ec"
},
"methodology": {
"path": "reports/benchmark_methodology.md",
@@ -5785,7 +5799,7 @@
"path": "reports/output_execution_runs.json",
"exists": true,
"bytes": 7964,
"sha256": "1a7d172912376818391679d2990fa43f4907e5fb4ef511ce6abd68fba7025871"
"sha256": "a6c011b7408873214c4886a160d86a999dba2b30cdc835eb727fe43dbe825a16"
},
{
"label": "blind_review",
@@ -5819,43 +5833,43 @@
"label": "trust_report",
"path": "reports/security_trust_report.json",
"exists": true,
"bytes": 131433,
"sha256": "eed13d34bb468546ab367a4a308aaaefac48740cacb7b959d8cf6f21190bd577"
"bytes": 132031,
"sha256": "719954979459df2f3d9a70923d72456f23a661d445e1e4d1ea6e4c1568eb03b2"
},
{
"label": "python_compatibility",
"path": "reports/python_compatibility.json",
"exists": true,
"bytes": 28693,
"sha256": "42c19c9c621e910a43b53f25dc34e66a3161c9ae594080b85cca2d1ec8cfa198"
"bytes": 28817,
"sha256": "cd6bd515cad86b5bfe9933e671a489ee1067e2c8de309d5c5589fbf6324caeb1"
},
{
"label": "registry_audit",
"path": "reports/registry_audit.json",
"exists": true,
"bytes": 3183,
"sha256": "5c41afcffcb67f4c0cbfc0683a7764aa6c006b9bb59d835c82007b222b77ddd3"
"sha256": "4cb383ec730bdc75565a2ea3f5d3e5bfcf1517a3adb8294c25f476a4d49cfe49"
},
{
"label": "package_verification",
"path": "reports/package_verification.json",
"exists": true,
"bytes": 19338,
"sha256": "ad97458ab51752a176cebb387b13ce18f28c921040a4f89431c22da84696280a"
"sha256": "1be9da837cd93cb5c6cedfa32e464f7aa610a6b254da0ccc56b1c62e547d5bc0"
},
{
"label": "install_simulation",
"path": "reports/install_simulation.json",
"exists": true,
"bytes": 8604,
"sha256": "807f8c0344c10c4ff48673ade38607e74a35094ee5f513ae5e3b536c76d1720a"
"sha256": "9c588e6af9aa3da52be77ce1dec23281cfc9729006f22e2bdd8016633b5d2cf7"
},
{
"label": "skill_os2_audit",
"path": "reports/skill_os2_audit.json",
"exists": true,
"bytes": 14310,
"sha256": "9ae89df81c3117fa0a68e06c47dccf6695b7e0a918fd293417baac2ba0ec8022"
"sha256": "fc12eb6713740f1adf7de18daa5a2889f945353730961f4bf87b810f92f6e426"
},
{
"label": "world_class_evidence_plan",
@@ -6187,7 +6201,7 @@
"label": "Trust Security",
"status": "pass",
"objective": "Scripts, dependencies, permissions, secrets, and package hash are reviewable for team distribution.",
"current": "143 scripts; secrets 0; help failures 0",
"current": "144 scripts; secrets 0; help failures 0",
"command": "python3 scripts/yao.py trust .",
"test": "python3 tests/verify_trust_check.py",
"evidence": [
@@ -6261,7 +6275,7 @@
"label": "Registry Distribution",
"status": "pass",
"objective": "Skill packages are installable, versioned, checksumed, and upgrade-reviewable.",
"current": "archive entries 681; install failures 0",
"current": "archive entries 682; 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": [
@@ -7127,6 +7141,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
@@ -7216,7 +7231,7 @@
],
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
}
@@ -7488,7 +7503,7 @@
"strategy": "Ship the neutral source tree and expose OpenAI-facing interface metadata as a generated companion file.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -7499,7 +7514,7 @@
},
"scripts": {
"strategy": "Keep scripts as local package resources; expose help-smoke and permission metadata for reviewer approval before execution.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -7743,7 +7758,7 @@
"strategy": "Ship the neutral source tree and expose OpenAI-facing interface metadata as a generated companion file.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -7754,7 +7769,7 @@
},
"scripts": {
"strategy": "Keep scripts as local package resources; expose help-smoke and permission metadata for reviewer approval before execution.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -8070,6 +8085,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
@@ -8159,7 +8175,7 @@
],
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
}
@@ -8431,7 +8447,7 @@
"strategy": "Preserve the source tree directly; write target notes in targets/claude/README.md.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -8442,7 +8458,7 @@
},
"scripts": {
"strategy": "Scripts remain local package resources and must be reviewed through trust and permission reports before use.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -8686,7 +8702,7 @@
"strategy": "Preserve the source tree directly; write target notes in targets/claude/README.md.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -8697,7 +8713,7 @@
},
"scripts": {
"strategy": "Scripts remain local package resources and must be reviewed through trust and permission reports before use.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -9013,6 +9029,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
@@ -9102,7 +9119,7 @@
],
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
}
@@ -9374,7 +9391,7 @@
"strategy": "Preserve references, scripts, assets, evals, reports, and adapter metadata as relative package resources.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -9384,7 +9401,7 @@
},
"scripts": {
"strategy": "Expose script and permission metadata for downstream clients or installers to enforce.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -9622,7 +9639,7 @@
"strategy": "Preserve references, scripts, assets, evals, reports, and adapter metadata as relative package resources.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -9632,7 +9649,7 @@
},
"scripts": {
"strategy": "Expose script and permission metadata for downstream clients or installers to enforce.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -9940,6 +9957,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
@@ -10029,7 +10047,7 @@
],
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
}
@@ -10301,7 +10319,7 @@
"strategy": "Keep optional directories as relative resources next to SKILL.md.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -10312,7 +10330,7 @@
},
"scripts": {
"strategy": "Scripts remain local optional resources and should advertise --help when executable.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -10549,7 +10567,7 @@
"strategy": "Keep optional directories as relative resources next to SKILL.md.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -10560,7 +10578,7 @@
},
"scripts": {
"strategy": "Scripts remain local optional resources and should advertise --help when executable.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -10867,6 +10885,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
@@ -10956,7 +10975,7 @@
],
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
}
@@ -11228,7 +11247,7 @@
"strategy": "Install as project or user scoped skill source, preserving relative references and scripts.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -11239,7 +11258,7 @@
},
"scripts": {
"strategy": "Scripts require workspace trust and operator/client approval outside this compiler.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -11480,7 +11499,7 @@
"strategy": "Install as project or user scoped skill source, preserving relative references and scripts.",
"counts": {
"references": 35,
"scripts": 143,
"scripts": 144,
"assets": 6,
"reports": 43
},
@@ -11491,7 +11510,7 @@
},
"scripts": {
"strategy": "Scripts require workspace trust and operator/client approval outside this compiler.",
"script_count": 143,
"script_count": 144,
"help_smoke_failed_count": 0
},
"permissions": {
@@ -12199,9 +12218,9 @@
"ok": true,
"skill_dir": ".",
"summary": {
"scanned_files": 235,
"script_count": 143,
"internal_module_count": 57,
"scanned_files": 236,
"script_count": 144,
"internal_module_count": 58,
"secret_findings": 0,
"dependency_files": [
"requirements-ci.txt"
@@ -12219,8 +12238,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 235,
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"package_hash_file_count": 236,
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
},
"failures": [],
"warnings": [],
@@ -13783,6 +13802,20 @@
"network_urls": [],
"network_hosts": []
},
{
"path": "scripts/skill_report_sections.py",
"interface": "internal-module",
"interface_declared": true,
"interface_reason": "Imported by skill_report_model.py to assemble overview report quality, risk, and asset sections.",
"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/skill_report_sources.py",
"interface": "internal-module",
@@ -14280,7 +14313,7 @@
"checked_count": 86,
"passed_count": 86,
"failed_count": 0,
"skipped_count": 57,
"skipped_count": 58,
"failed_scripts": [],
"results": [
{
@@ -15277,6 +15310,10 @@
"path": "scripts/skill_report_model.py",
"reason": "internal module"
},
{
"path": "scripts/skill_report_sections.py",
"reason": "internal module"
},
{
"path": "scripts/skill_report_sources.py",
"reason": "internal module"
@@ -15569,7 +15606,7 @@
"root": ".",
"summary": {
"target_python": "3.11",
"file_count": 221,
"file_count": 222,
"issue_count": 0,
"syntax_error_count": 0,
"fstring_311_violation_count": 0,
@@ -16264,6 +16301,12 @@
"issue_count": 0,
"issues": []
},
{
"path": "scripts/skill_report_sections.py",
"ok": true,
"issue_count": 0,
"issues": []
},
{
"path": "scripts/skill_report_sources.py",
"ok": true,
@@ -16925,10 +16968,10 @@
"generated_at": "2026-06-17",
"skill_dir": ".",
"summary": {
"python_file_count": 218,
"script_file_count": 143,
"python_file_count": 219,
"script_file_count": 144,
"test_file_count": 75,
"internal_module_count": 59,
"internal_module_count": 60,
"cli_script_count": 86,
"command_handler_count": 68,
"entrypoint_command_handler_count": 18,
@@ -16939,7 +16982,7 @@
"block_line_threshold": 1500,
"largest_file_lines": 696,
"watchlist_count": 0,
"early_watchlist_count": 6,
"early_watchlist_count": 5,
"hotspot_count": 0,
"blocker_count": 0,
"decision": "pass"
@@ -16953,14 +16996,6 @@
"early_watch": true,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "scripts/skill_report_model.py",
"lines": 665,
"kind": "internal-module",
"severity": "pass",
"early_watch": true,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "scripts/render_review_studio.py",
"lines": 647,
@@ -17040,6 +17075,14 @@
"severity": "pass",
"early_watch": false,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "scripts/render_evidence_consistency.py",
"lines": 568,
"kind": "cli-script",
"severity": "pass",
"early_watch": false,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
}
],
"watchlist": [],
@@ -17052,14 +17095,6 @@
"early_watch": true,
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
},
{
"path": "scripts/skill_report_model.py",
"lines": 665,
"kind": "internal-module",
"severity": "pass",
"early_watch": true,
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "scripts/render_review_studio.py",
"lines": 647,
@@ -17108,16 +17143,16 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 797,
"other_text_tokens": 1082505,
"other_text_tokens": 1082831,
"estimated_initial_load_tokens": 990,
"estimated_total_text_tokens": 1083302,
"deferred_resource_tokens": 496260,
"estimated_total_text_tokens": 1083628,
"deferred_resource_tokens": 496320,
"deferred_resource_warn_threshold": 120000,
"deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 435366,
"file_count": 143
"estimated_tokens": 435426,
"file_count": 144
},
{
"path": "references",
@@ -17138,8 +17173,8 @@
"large_deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 435366,
"file_count": 143
"estimated_tokens": 435426,
"file_count": 144
}
],
"deferred_resource_governance": {
@@ -17161,14 +17196,14 @@
],
"missing": [],
"path": "scripts",
"estimated_tokens": 435366,
"file_count": 143,
"estimated_tokens": 435426,
"file_count": 144,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
],
"summary": "Large deferred resources are indexed and backed by evidence."
},
"relevant_file_count": 687,
"relevant_file_count": 689,
"unused_resource_dirs": [],
"quality_signal_points": 130,
"quality_density": 131.3
@@ -18142,6 +18177,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
@@ -19077,7 +19113,7 @@
"adoption_drift": {
"ok": true,
"schema_version": "2.0",
"generated_at": "2026-06-16T17:13:06Z",
"generated_at": "2026-06-16T17:20:30Z",
"skill_dir": ".",
"privacy_contract": {
"storage": "local-first",
@@ -24106,8 +24142,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
"compatibility": {
"openai": "pass",
@@ -24138,7 +24174,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -24163,7 +24199,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
}
]
},
@@ -24186,8 +24222,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"archive_entry_count": 681,
"archive_sha256": "9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1",
"archive_entry_count": 682,
"failure_count": 0,
"warning_count": 0
},
@@ -24852,7 +24888,7 @@
"installed_skill_dir": "dist/install-simulation/simulate-yao-meta-skill/yao-meta-skill",
"summary": {
"archive_present": true,
"archive_entry_count": 681,
"archive_entry_count": 682,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -25194,12 +25230,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"to": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"to": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
}
]
},
+25 -25
View File
@@ -512,7 +512,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 143
"file_count": 144
},
{
"path": "evals",
@@ -527,7 +527,7 @@
"file_count": 235
}
],
"file_count": 446,
"file_count": 447,
"folder_count": 4,
"distribution": [
{
@@ -552,7 +552,7 @@
},
{
"label": "scripts",
"value": 143
"value": 144
},
{
"label": "evals",
@@ -682,7 +682,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 143
"file_count": 144
},
{
"path": "evals",
@@ -996,13 +996,13 @@
"ok": true,
"summary": {
"reproducibility_ready": true,
"release_lock_ready": true,
"release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"evidence_bundle_sha256": "8eca09b308577de4d05b1e23f4b3947937feebfaf9a35f0bd6c8d7c99ba1add1",
"source_contract_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"evidence_bundle_sha256": "bed23286b82f5261843228a999dd868b993e764267ce5480b0839fe7e4b6c3ec",
"source_contract_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1020,11 +1020,11 @@
"world_class_source_pass_count": 7,
"world_class_source_blocked_count": 6,
"public_claim_ready": false,
"public_claim_blocker_count": 4,
"working_tree_dirty": false,
"changed_file_count": 0
"public_claim_blocker_count": 5,
"working_tree_dirty": true,
"changed_file_count": 42
},
"commit": "5b7e118c2ea60b0386339ae52cc8b3943d9d9abd",
"commit": "421bd089091d8387e4db0ebf448cb6e739d83be1",
"missing_artifacts": [],
"limitations": [
"The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
@@ -1108,9 +1108,9 @@
"failures": []
},
"trust_security": {
"scanned_files": 235,
"script_count": 143,
"internal_module_count": 57,
"scanned_files": 236,
"script_count": 144,
"internal_module_count": 58,
"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": 235,
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"package_hash_file_count": 236,
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
},
"skill_atlas": {
"skill_count": 12,
@@ -1167,8 +1167,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
"compatibility": {
"openai": "pass",
@@ -1199,7 +1199,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"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": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"archive_entry_count": 681,
"archive_sha256": "9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1",
"archive_entry_count": 682,
"failure_count": 0,
"warning_count": 0
},
@@ -1227,7 +1227,7 @@
"ok": true,
"summary": {
"archive_present": true,
"archive_entry_count": 681,
"archive_entry_count": 682,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1294,12 +1294,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"to": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"to": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
}
]
},
+24 -6
View File
@@ -2,9 +2,9 @@
"ok": true,
"skill_dir": ".",
"summary": {
"scanned_files": 235,
"script_count": 143,
"internal_module_count": 57,
"scanned_files": 236,
"script_count": 144,
"internal_module_count": 58,
"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": 235,
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"package_hash_file_count": 236,
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
},
"failures": [],
"warnings": [],
@@ -1586,6 +1586,20 @@
"network_urls": [],
"network_hosts": []
},
{
"path": "scripts/skill_report_sections.py",
"interface": "internal-module",
"interface_declared": true,
"interface_reason": "Imported by skill_report_model.py to assemble overview report quality, risk, and asset sections.",
"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/skill_report_sources.py",
"interface": "internal-module",
@@ -2083,7 +2097,7 @@
"checked_count": 86,
"passed_count": 86,
"failed_count": 0,
"skipped_count": 57,
"skipped_count": 58,
"failed_scripts": [],
"results": [
{
@@ -3080,6 +3094,10 @@
"path": "scripts/skill_report_model.py",
"reason": "internal module"
},
{
"path": "scripts/skill_report_sections.py",
"reason": "internal module"
},
{
"path": "scripts/skill_report_sources.py",
"reason": "internal module"
+6 -5
View File
@@ -1,9 +1,9 @@
# Security Trust Report
- OK: `True`
- Scanned files: `235`
- Scripts: `143`
- Internal script modules: `57`
- Scanned files: `236`
- Scripts: `144`
- Internal script modules: `58`
- 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: `235`
- Package SHA256: `a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6`
- Package hash files: `236`
- Package SHA256: `b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de`
## Failures
@@ -172,6 +172,7 @@
| scripts/skill_report_layout.py | internal-module | True | False | False | False | False | False | False | Imported by render_skill_overview.py to keep overview report layout and CSS out of data rendering. |
| scripts/skill_report_metrics.py | internal-module | True | False | False | False | False | False | False | Imported by skill_report_model.py to calculate overview report metrics. |
| scripts/skill_report_model.py | internal-module | True | False | False | False | False | False | False | Imported by render_skill_overview.py to build the v2 report data model. |
| scripts/skill_report_sections.py | internal-module | True | False | False | False | False | False | False | Imported by skill_report_model.py to assemble overview report quality, risk, and asset sections. |
| scripts/skill_report_sources.py | internal-module | True | False | False | False | False | False | False | Imported by skill_report_model.py to load source files and scan overview package assets. |
| scripts/skill_report_world_class.py | internal-module | True | False | False | False | False | False | False | Imported by skill_report_model.py to summarize world-class evidence readiness and roadmap actions. |
| scripts/skillops_opportunity.py | internal-module | True | False | False | False | False | False | False | Imported by render_daily_skillops_report.py to score SkillOps opportunities without writing files. |
+1 -1
View File
@@ -921,7 +921,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.5 99.5" 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.5 99.5" stroke-dashoffset="-0.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.1" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.6" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="19.2 80.8" stroke-dashoffset="-2.2" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="78.6 21.4" stroke-dashoffset="-21.4" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">446</text><text data-lang="en" x="130" y="136" text-anchor="middle">446 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.5 99.5" 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.5 99.5" stroke-dashoffset="-0.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.1" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.6" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="19.1 80.9" stroke-dashoffset="-2.2" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="78.7 21.3" stroke-dashoffset="-21.3" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">447</text><text data-lang="en" x="130" y="136" text-anchor="middle">447 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>
+25 -25
View File
@@ -512,7 +512,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 143
"file_count": 144
},
{
"path": "evals",
@@ -527,7 +527,7 @@
"file_count": 235
}
],
"file_count": 446,
"file_count": 447,
"folder_count": 4,
"distribution": [
{
@@ -552,7 +552,7 @@
},
{
"label": "scripts",
"value": 143
"value": 144
},
{
"label": "evals",
@@ -686,7 +686,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 143
"file_count": 144
},
{
"path": "evals",
@@ -1000,13 +1000,13 @@
"ok": true,
"summary": {
"reproducibility_ready": true,
"release_lock_ready": true,
"release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"evidence_bundle_sha256": "8eca09b308577de4d05b1e23f4b3947937feebfaf9a35f0bd6c8d7c99ba1add1",
"source_contract_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"evidence_bundle_sha256": "bed23286b82f5261843228a999dd868b993e764267ce5480b0839fe7e4b6c3ec",
"source_contract_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1024,11 +1024,11 @@
"world_class_source_pass_count": 7,
"world_class_source_blocked_count": 6,
"public_claim_ready": false,
"public_claim_blocker_count": 4,
"working_tree_dirty": false,
"changed_file_count": 0
"public_claim_blocker_count": 5,
"working_tree_dirty": true,
"changed_file_count": 42
},
"commit": "5b7e118c2ea60b0386339ae52cc8b3943d9d9abd",
"commit": "421bd089091d8387e4db0ebf448cb6e739d83be1",
"missing_artifacts": [],
"limitations": [
"The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
@@ -1112,9 +1112,9 @@
"failures": []
},
"trust_security": {
"scanned_files": 235,
"script_count": 143,
"internal_module_count": 57,
"scanned_files": 236,
"script_count": 144,
"internal_module_count": 58,
"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": 235,
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"package_hash_file_count": 236,
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
},
"skill_atlas": {
"skill_count": 12,
@@ -1171,8 +1171,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
"compatibility": {
"openai": "pass",
@@ -1203,7 +1203,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"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": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"archive_entry_count": 681,
"archive_sha256": "9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1",
"archive_entry_count": 682,
"failure_count": 0,
"warning_count": 0
},
@@ -1231,7 +1231,7 @@
"ok": true,
"summary": {
"archive_present": true,
"archive_entry_count": 681,
"archive_entry_count": 682,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1298,12 +1298,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"to": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"to": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
}
]
},
+3 -3
View File
@@ -133,13 +133,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, `57` declared internal modules, `3 / 3` network-capable scripts covered by bounded host policy, `86 / 86` CLI help smoke checks passing across `143` scripts, source-contract hash scope explicit |
| Trust | `0` secret findings, `1` pinned dependency file, `58` declared internal modules, `3 / 3` network-capable scripts covered by bounded host policy, `86 / 86` CLI help smoke checks passing across `144` 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, `681` zip entries, `0` failures, `0` warnings |
| Install Simulation | archive with `681` 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, `682` zip entries, `0` failures, `0` warnings |
| Install Simulation | archive with `682` entries extracted into a local verification root, entrypoint/manifest/interface loaded, reports present, `4` adapters readable, `12` installer permission checks enforced, `0` permission failures, `0` failures, `0` warnings |
| Local Install Sync Preflight | `make sync-local-install` and `make sync-active-install` rebuild the package first, then sync only after install simulation passes with `12` enforced installer permission checks and `0` permission failures |
| Upgrade Check | current package declares `minor` over the 1.0.0 baseline, recommended bump is `minor`, and release notes include added targets plus checksum changes |
| Adoption Drift | `1` metadata-only review event, `1` adoption sample, adoption `100`, risk band `low`; optional `yao.py` CLI capture, external client `telemetry-emit`, `5` `telemetry-hooks` recipes, Browser/Chrome native messaging host, and validated external JSONL import are available but off by default for reproducible release evidence; raw `reports/telemetry_events.jsonl` is gitignored and blocked from zip packages |
+1 -1
View File
@@ -921,7 +921,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.5 99.5" 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.5 99.5" stroke-dashoffset="-0.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.1" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.6" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="19.2 80.8" stroke-dashoffset="-2.2" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="78.6 21.4" stroke-dashoffset="-21.4" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">446</text><text data-lang="en" x="130" y="136" text-anchor="middle">446 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.5 99.5" 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.5 99.5" stroke-dashoffset="-0.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.1" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.6" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="19.1 80.9" stroke-dashoffset="-2.2" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="78.7 21.3" stroke-dashoffset="-21.3" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">447</text><text data-lang="en" x="130" y="136" text-anchor="middle">447 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>
+25 -25
View File
@@ -511,7 +511,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 143
"file_count": 144
},
{
"path": "evals",
@@ -526,7 +526,7 @@
"file_count": 235
}
],
"file_count": 446,
"file_count": 447,
"folder_count": 4,
"distribution": [
{
@@ -551,7 +551,7 @@
},
{
"label": "scripts",
"value": 143
"value": 144
},
{
"label": "evals",
@@ -681,7 +681,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 143
"file_count": 144
},
{
"path": "evals",
@@ -995,13 +995,13 @@
"ok": true,
"summary": {
"reproducibility_ready": true,
"release_lock_ready": true,
"release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"evidence_bundle_sha256": "8eca09b308577de4d05b1e23f4b3947937feebfaf9a35f0bd6c8d7c99ba1add1",
"source_contract_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"evidence_bundle_sha256": "bed23286b82f5261843228a999dd868b993e764267ce5480b0839fe7e4b6c3ec",
"source_contract_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1019,11 +1019,11 @@
"world_class_source_pass_count": 7,
"world_class_source_blocked_count": 6,
"public_claim_ready": false,
"public_claim_blocker_count": 4,
"working_tree_dirty": false,
"changed_file_count": 0
"public_claim_blocker_count": 5,
"working_tree_dirty": true,
"changed_file_count": 42
},
"commit": "5b7e118c2ea60b0386339ae52cc8b3943d9d9abd",
"commit": "421bd089091d8387e4db0ebf448cb6e739d83be1",
"missing_artifacts": [],
"limitations": [
"The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
@@ -1107,9 +1107,9 @@
"failures": []
},
"trust_security": {
"scanned_files": 235,
"script_count": 143,
"internal_module_count": 57,
"scanned_files": 236,
"script_count": 144,
"internal_module_count": 58,
"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": 235,
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"package_hash_file_count": 236,
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
},
"skill_atlas": {
"skill_count": 12,
@@ -1166,8 +1166,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6",
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"package_sha256": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
"compatibility": {
"openai": "pass",
@@ -1198,7 +1198,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a",
"archive_sha256": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"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": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571",
"archive_entry_count": 681,
"archive_sha256": "9bbe58230777e9c17ef13349b74e75392fe87225d298aa3d5ed77577bbfff7a1",
"archive_entry_count": 682,
"failure_count": 0,
"warning_count": 0
},
@@ -1226,7 +1226,7 @@
"ok": true,
"summary": {
"archive_present": true,
"archive_entry_count": 681,
"archive_entry_count": 682,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1293,12 +1293,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"to": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"to": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
}
]
},
+1
View File
@@ -174,6 +174,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
+2 -2
View File
@@ -197,7 +197,7 @@
"key": "trust-security",
"label": "Trust Security",
"status": "pass",
"current": "secrets 0; scripts 143; help failures 0",
"current": "secrets 0; scripts 144; help failures 0",
"target": "Secrets, scripts, dependencies, permissions, and package hash are reviewable",
"evidence": [
{
@@ -285,7 +285,7 @@
"key": "registry-distribution",
"label": "Registry Distribution",
"status": "pass",
"current": "zip entries 681; install failures 0; permission failures 0",
"current": "zip entries 682; install failures 0; permission failures 0",
"target": "Package metadata, archive checksum, package verification, and install simulation pass",
"evidence": [
{
+2 -2
View File
@@ -23,11 +23,11 @@ Generated at: `2026-06-17`
| Human Adjudication | human-required | 0/5 decisions; pending 5 | Real reviewer decisions recorded before claiming output review completion | Record real A/B choices in the decision template, then regenerate adjudication. |
| Benchmark Reproducibility | pass | artifacts 25; missing 0; failures 3 | Public methodology, reproducible commands, required artifacts, and failure disclosure are machine-checkable | Keep the manifest current with every benchmark, package, and release evidence change. |
| Runtime Conformance | pass | 5/5 targets pass | Target package structure, metadata, relative paths, and degradation notes pass | Keep target conformance fixtures updated as platform contracts change. |
| Trust Security | pass | secrets 0; scripts 143; help failures 0 | Secrets, scripts, dependencies, permissions, and package hash are reviewable | Keep high-permission approvals scoped, expiring, and target-mapped. |
| Trust Security | pass | secrets 0; scripts 144; help failures 0 | Secrets, scripts, dependencies, permissions, and package hash are reviewable | Keep high-permission approvals scoped, expiring, and target-mapped. |
| Permission Metadata | pass | 4/4 target probes pass; metadata fallback 4; installer enforcement 4 | Packaged adapters expose explicit permission metadata, residual risks, and installer enforcement evidence when available | Preserve residual-risk notes until real native enforcement exists. |
| Native Permission Enforcement | external-required | native-enforced targets 0; installer-enforced targets 4 | At least one target/client enforces approved permissions at runtime | Integrate a real target-client or external installer runtime guard before claiming native permission enforcement. |
| Skill Atlas | pass | 12 skills; actionable collisions 0 | Workspace catalog, route overlap, stale/owner gaps, drift, and no-route opportunities | Feed real drift data into Atlas once client telemetry is installed. |
| Registry Distribution | pass | zip entries 681; install failures 0; permission failures 0 | Package metadata, archive checksum, package verification, and install simulation pass | Regenerate registry after package verification so checksums stay aligned. |
| Registry Distribution | pass | zip entries 682; install failures 0; permission failures 0 | Package metadata, archive checksum, package verification, and install simulation pass | Regenerate registry after package verification so checksums stay aligned. |
| Review Studio | pass | decision review; warnings 3; score 91 | One page shows gates, evidence paths, blockers, warnings, actions, waivers, and annotations | Resolve human/external warning gates before claiming full release readiness. |
| Telemetry Drift | pass | events 1; risk low; recipes 5 | Local-first metadata-only event contract, aggregate drift report, hook recipes, and import path | Keep raw JSONL out of distributed packages and use aggregate reports for Atlas. |
| Native Client Telemetry | external-required | external source events 0; adoption samples 1 | A real Browser/Chrome/provider client sends production metadata events | Install a real client against the native host and import production metadata-only events. |
+2 -2
View File
@@ -130,7 +130,7 @@
"label": "Trust Security",
"status": "pass",
"objective": "Scripts, dependencies, permissions, secrets, and package hash are reviewable for team distribution.",
"current": "143 scripts; secrets 0; help failures 0",
"current": "144 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 681; install failures 0",
"current": "archive entries 682; 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": [
+2 -2
View File
@@ -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` | 143 scripts; secrets 0; help failures 0 | `python3 scripts/yao.py trust .` | `python3 tests/verify_trust_check.py` |
| Trust Security | `pass` | 144 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 681; 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 682; 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` |
+2 -2
View File
@@ -70,12 +70,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "123e153d1cddf7f7dc0134766c7eb21f0aa4f17afb04aa7945d7ffd2340fd54a"
"to": "470e2481d30dc641f51a5b1f39cf4745ad1be5a181e18cd42e4bae5d32ead571"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "a868eb139efe4af97300ab1e124721d5573c3ac4bfd25f278c4e7f1e349f48a6"
"to": "b28843624ffa9196da3d65e7f4c9e18d679c4ea41218ea2eeb7f8955b8f3c2de"
}
]
},
+1 -112
View File
@@ -14,6 +14,7 @@ from skill_report_sources import (
summarize_logic,
summarize_usage,
)
from skill_report_sections import package_assets, quality_review, risk_governance
from skill_report_world_class import world_class_readiness, world_class_roadmap_item
@@ -203,42 +204,6 @@ def roadmap_items(iteration: dict, readiness: dict | None = None) -> list[dict]:
]
def artifact_design_highlights(profile: dict) -> list[str]:
primary = profile.get("primary_artifact", {})
highlights = []
if primary.get("direction"):
highlights.append(primary["direction"])
highlights.extend(profile.get("quality_gates", [])[:3])
return highlights[:4]
def prompt_quality_highlights(profile: dict) -> list[str]:
highlights = []
primary = profile.get("primary_task_family", {})
complexity = profile.get("complexity", {})
if primary.get("label"):
highlights.append(f"Primary prompt task family: {primary['label']}.")
if complexity.get("band"):
highlights.append(f"Complexity: {complexity['band']}{complexity.get('reason', '')}")
for item in profile.get("quality_matrix", [])[:2]:
highlights.append(f"{item.get('label', 'Quality')}: {item.get('score', 'n/a')}/100.")
return highlights[:4]
def system_model_highlights(model: dict) -> list[str]:
highlights = []
stability = model.get("stability", {})
if stability:
highlights.append(f"Stability: {stability.get('band', 'unknown')} ({stability.get('score', 'n/a')}/100).")
boundary = model.get("boundary_map", {})
if boundary.get("owned_job"):
highlights.append(f"Owned job: {boundary['owned_job']}")
for point in model.get("leverage_points", [])[:2]:
if point.get("point"):
highlights.append(f"Leverage: {point['point']}{point.get('move', '')}")
return highlights[:4]
def capability_profile(manifest: dict, interface_data: dict, prompt_quality: dict) -> dict:
maturity = manifest.get("maturity_tier", "scaffold")
task_family = prompt_quality.get("primary_task_family", {}).get("label", "Skill workflow")
@@ -256,82 +221,6 @@ def capability_profile(manifest: dict, interface_data: dict, prompt_quality: dic
}
def risk_governance(output_risk: dict, system_model: dict, scorecard: dict) -> dict:
risk_names = [
("误触发风险", "trigger_score"),
("输出漂移风险", "evidence_score"),
("证据不足风险", "evidence_score"),
("包体膨胀风险", "maintainability_score"),
("跨平台迁移风险", "portability_score"),
]
risks = []
for index, (name, metric_key) in enumerate(risk_names):
score = scorecard.get(metric_key, {}).get("score", 50)
probability = max(1, min(3, 4 - round(score / 34)))
impact = 3 if index in {0, 2, 4} else 2
risks.append(
{
"name": name,
"impact": impact,
"probability": probability,
"signal": scorecard.get(metric_key, {}).get("reasons", ["证据不足"])[0],
"response": "先补证据和边界,再增加包体复杂度。",
}
)
human_boundary = system_model.get("boundary_map", {}).get("human_judgment_boundary", [])
return {
"risks": risks,
"risk_families": output_risk.get("risk_families", []),
"human_judgment_boundary": human_boundary,
}
def quality_review(
strengths: list[str],
scorecard: dict,
artifact_design: dict,
prompt_quality: dict,
system_model: dict,
) -> dict:
gaps = []
for key, payload in scorecard.items():
if payload.get("score", 0) < 70:
gaps.append(f"{payload.get('label', key)}需要补强:{payload.get('reasons', ['证据不足'])[0]}")
return {
"strengths": strengths,
"gaps": gaps or ["当前关键证据较完整,优先保持轻量。"],
"recommendations": [
"先改触发边界,再扩展工作流。",
"只把重复且稳定的步骤沉淀为脚本。",
"每次升级后重新生成报告并检查分数原因。",
],
"artifact_design": {
"design_system": artifact_design.get("design_system", "content-led editorial"),
"highlights": artifact_design_highlights(artifact_design),
},
"prompt_quality": {
"overall_quality_score": prompt_quality.get("overall_quality_score", "n/a"),
"highlights": prompt_quality_highlights(prompt_quality),
},
"system_model": {
"stability": system_model.get("stability", {}),
"highlights": system_model_highlights(system_model),
},
}
def package_assets(package_map: list[dict]) -> dict:
files = sum(item.get("file_count", 0) for item in package_map if item.get("kind") == "file")
folders = [item for item in package_map if item.get("kind") == "folder"]
distribution = [{"label": item["path"], "value": max(1, item.get("file_count", 1))} for item in package_map]
return {
"entries": package_map,
"file_count": files + sum(item.get("file_count", 0) for item in folders),
"folder_count": len(folders),
"distribution": distribution,
}
def build_report_model(skill_dir: Path) -> dict:
skill_dir = skill_dir.resolve()
skill_text = (skill_dir / "SKILL.md").read_text(encoding="utf-8")
+114
View File
@@ -0,0 +1,114 @@
SCRIPT_INTERFACE = "internal-module"
SCRIPT_INTERFACE_REASON = "Imported by skill_report_model.py to assemble overview report quality, risk, and asset sections."
def artifact_design_highlights(profile: dict) -> list[str]:
primary = profile.get("primary_artifact", {})
highlights = []
if primary.get("direction"):
highlights.append(primary["direction"])
highlights.extend(profile.get("quality_gates", [])[:3])
return highlights[:4]
def prompt_quality_highlights(profile: dict) -> list[str]:
highlights = []
primary = profile.get("primary_task_family", {})
complexity = profile.get("complexity", {})
if primary.get("label"):
highlights.append(f"Primary prompt task family: {primary['label']}.")
if complexity.get("band"):
highlights.append(f"Complexity: {complexity['band']}{complexity.get('reason', '')}")
for item in profile.get("quality_matrix", [])[:2]:
highlights.append(f"{item.get('label', 'Quality')}: {item.get('score', 'n/a')}/100.")
return highlights[:4]
def system_model_highlights(model: dict) -> list[str]:
highlights = []
stability = model.get("stability", {})
if stability:
highlights.append(f"Stability: {stability.get('band', 'unknown')} ({stability.get('score', 'n/a')}/100).")
boundary = model.get("boundary_map", {})
if boundary.get("owned_job"):
highlights.append(f"Owned job: {boundary['owned_job']}")
for point in model.get("leverage_points", [])[:2]:
if point.get("point"):
highlights.append(f"Leverage: {point['point']}{point.get('move', '')}")
return highlights[:4]
def risk_governance(output_risk: dict, system_model: dict, scorecard: dict) -> dict:
risk_names = [
("误触发风险", "trigger_score"),
("输出漂移风险", "evidence_score"),
("证据不足风险", "evidence_score"),
("包体膨胀风险", "maintainability_score"),
("跨平台迁移风险", "portability_score"),
]
risks = []
for index, (name, metric_key) in enumerate(risk_names):
score = scorecard.get(metric_key, {}).get("score", 50)
probability = max(1, min(3, 4 - round(score / 34)))
impact = 3 if index in {0, 2, 4} else 2
risks.append(
{
"name": name,
"impact": impact,
"probability": probability,
"signal": scorecard.get(metric_key, {}).get("reasons", ["证据不足"])[0],
"response": "先补证据和边界,再增加包体复杂度。",
}
)
human_boundary = system_model.get("boundary_map", {}).get("human_judgment_boundary", [])
return {
"risks": risks,
"risk_families": output_risk.get("risk_families", []),
"human_judgment_boundary": human_boundary,
}
def quality_review(
strengths: list[str],
scorecard: dict,
artifact_design: dict,
prompt_quality: dict,
system_model: dict,
) -> dict:
gaps = []
for key, payload in scorecard.items():
if payload.get("score", 0) < 70:
gaps.append(f"{payload.get('label', key)}需要补强:{payload.get('reasons', ['证据不足'])[0]}")
return {
"strengths": strengths,
"gaps": gaps or ["当前关键证据较完整,优先保持轻量。"],
"recommendations": [
"先改触发边界,再扩展工作流。",
"只把重复且稳定的步骤沉淀为脚本。",
"每次升级后重新生成报告并检查分数原因。",
],
"artifact_design": {
"design_system": artifact_design.get("design_system", "content-led editorial"),
"highlights": artifact_design_highlights(artifact_design),
},
"prompt_quality": {
"overall_quality_score": prompt_quality.get("overall_quality_score", "n/a"),
"highlights": prompt_quality_highlights(prompt_quality),
},
"system_model": {
"stability": system_model.get("stability", {}),
"highlights": system_model_highlights(system_model),
},
}
def package_assets(package_map: list[dict]) -> dict:
files = sum(item.get("file_count", 0) for item in package_map if item.get("kind") == "file")
folders = [item for item in package_map if item.get("kind") == "folder"]
distribution = [{"label": item["path"], "value": max(1, item.get("file_count", 1))} for item in package_map]
return {
"entries": package_map,
"file_count": files + sum(item.get("file_count", 0) for item in folders),
"folder_count": len(folders),
"distribution": distribution,
}
+1
View File
@@ -222,6 +222,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
+1
View File
@@ -130,6 +130,7 @@
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skillops_opportunity.py",
+4 -2
View File
@@ -40,7 +40,7 @@ def main() -> None:
assert payload["summary"]["decision"] == "pass", payload["summary"]
assert payload["summary"]["early_watch_line_threshold"] == 600, payload["summary"]
assert payload["summary"]["watch_line_threshold"] == 720, payload["summary"]
assert payload["summary"]["early_watchlist_count"] >= 6, payload["summary"]
assert payload["summary"]["early_watchlist_count"] >= 5, payload["summary"]
assert payload["summary"]["watchlist_count"] == 0, payload["summary"]
assert payload["summary"]["hotspot_count"] == 0, payload["summary"]
assert payload["summary"]["blocker_count"] == 0, payload["summary"]
@@ -57,6 +57,7 @@ def main() -> None:
assert "scripts/render_skill_os2_coverage.py" not in early_watch_paths, payload["early_watchlist"]
assert "scripts/render_reference_synthesis.py" not in early_watch_paths, payload["early_watchlist"]
assert "scripts/build_skill_atlas.py" not in early_watch_paths, payload["early_watchlist"]
assert "scripts/skill_report_model.py" not in early_watch_paths, payload["early_watchlist"]
renderer_lines = len((ROOT / "scripts" / "render_review_studio.py").read_text(encoding="utf-8").splitlines())
action_module = (ROOT / "scripts" / "review_studio_actions.py").read_text(encoding="utf-8")
action_lines = len(action_module.splitlines())
@@ -74,12 +75,13 @@ def main() -> None:
assert "No file-size hotspots found." in markdown, markdown
assert "No near-threshold files found." in markdown, markdown
assert "## Early Watchlist" in markdown, markdown
assert "- early watchlist: `6`" in markdown, markdown
assert "- early watchlist: `5`" in markdown, markdown
early_watch_markdown = markdown.split("## Early Watchlist", 1)[1].split("## Largest Files", 1)[0]
assert "scripts/render_review_viewer.py" not in markdown, markdown
assert "scripts/render_skill_os2_coverage.py" not in markdown, markdown
assert "scripts/render_reference_synthesis.py" not in markdown, markdown
assert "scripts/build_skill_atlas.py" not in early_watch_markdown, early_watch_markdown
assert "scripts/skill_report_model.py" not in early_watch_markdown, early_watch_markdown
assert "Do not split a file only for line count" in markdown, markdown
blocker_proc = subprocess.run(
+1 -1
View File
@@ -236,7 +236,7 @@ def main() -> None:
assert full_payload["data"]["python_compatibility"]["summary"]["issue_count"] == 0, full_payload["data"]["python_compatibility"]
assert full_payload["data"]["architecture_maintainability"]["summary"]["hotspot_count"] == 0, full_payload["data"]["architecture_maintainability"]
assert full_payload["data"]["architecture_maintainability"]["summary"]["watchlist_count"] == 0, full_payload["data"]["architecture_maintainability"]
assert full_payload["data"]["architecture_maintainability"]["summary"]["early_watchlist_count"] >= 6, full_payload["data"]["architecture_maintainability"]
assert full_payload["data"]["architecture_maintainability"]["summary"]["early_watchlist_count"] >= 5, full_payload["data"]["architecture_maintainability"]
assert full_payload["data"]["architecture_maintainability"]["summary"]["blocker_count"] == 0, full_payload["data"]["architecture_maintainability"]
action_keys = {item["gate_key"] for item in full_payload["review_actions"]}
assert action_keys == {"output-lab", "review-waivers", "world-class-evidence"}, full_payload["review_actions"]
+2
View File
@@ -116,6 +116,7 @@ def main() -> None:
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
"scripts/skill_report_sections.py",
"scripts/skill_report_sources.py",
"scripts/skill_report_world_class.py",
"scripts/skill_os2_coverage_markdown.py",
@@ -155,6 +156,7 @@ def main() -> None:
assert "skill_report_layout.py" not in warning_text, payload["warnings"]
assert "skill_report_metrics.py" not in warning_text, payload["warnings"]
assert "skill_report_model.py" not in warning_text, payload["warnings"]
assert "skill_report_sections.py" not in warning_text, payload["warnings"]
assert "skill_report_sources.py" not in warning_text, payload["warnings"]
assert "skill_report_world_class.py" not in warning_text, payload["warnings"]
assert "skill_os2_coverage_markdown.py" not in warning_text, payload["warnings"]