From 038891715d7843daf7960c2ec61bf7d9ea91c9e4 Mon Sep 17 00:00:00 2001 From: yaojingang Date: Mon, 15 Jun 2026 21:34:45 +0800 Subject: [PATCH] Add first-class skill interpretation report --- Makefile | 9 +- README.md | 6 +- registry/index.json | 2 +- registry/packages/yao-meta-skill.json | 2 +- reports/adoption_drift_report.json | 2 +- reports/architecture_maintainability.json | 34 +- reports/architecture_maintainability.md | 22 +- reports/benchmark_reproducibility.json | 94 +- reports/benchmark_reproducibility.md | 53 +- reports/compiled_targets.json | 110 +- reports/context_budget.json | 20 +- reports/context_budget.md | 2 +- reports/context_budget_summary.json | 10 +- reports/install_simulation.json | 2 +- reports/output_execution_runs.json | 20 +- reports/output_execution_runs.md | 20 +- reports/python_compatibility.json | 14 +- reports/python_compatibility.md | 2 +- reports/registry_audit.json | 4 +- reports/registry_audit.md | 2 +- reports/review-studio.html | 18 +- reports/review-studio.json | 430 +++-- reports/review-viewer.json | 84 +- reports/security_trust_report.json | 43 +- reports/security_trust_report.md | 17 +- reports/skill-interpretation.html | 995 ++++++++++ reports/skill-interpretation.json | 2123 +++++++++++++++++++++ reports/skill-overview.html | 23 +- reports/skill-overview.json | 84 +- reports/skill_atlas.json | 1 + reports/skill_os2_audit.json | 2 +- reports/skill_os2_audit.md | 2 +- reports/skill_os2_coverage.json | 23 +- reports/skill_os2_coverage.md | 16 +- reports/upgrade_check.json | 2 +- reports/world_class_claim_guard.json | 6 +- reports/world_class_claim_guard.md | 2 +- schemas/skill-interpretation.schema.json | 115 ++ scripts/ci_test.py | 1 + scripts/init_skill.py | 41 +- scripts/render_review_studio.py | 1 + scripts/render_skill_interpretation.py | 108 ++ scripts/render_skill_os2_coverage.py | 38 +- scripts/render_skill_overview.py | 5 +- scripts/skill_report_i18n.py | 3 + scripts/skill_report_layout.py | 17 +- scripts/skill_report_model.py | 1 + scripts/yao.py | 4 + scripts/yao_cli_create_commands.py | 4 + scripts/yao_cli_parser.py | 9 + scripts/yao_cli_report_commands.py | 4 + skill-ir/examples/yao-meta-skill.json | 4 +- skill_atlas/catalog.json | 1 + tests/verify_review_studio.py | 8 +- tests/verify_skill_interpretation.py | 86 + tests/verify_skill_os2_coverage.py | 16 +- tests/verify_skill_overview.py | 7 +- tests/verify_yao_cli.py | 94 +- 58 files changed, 4255 insertions(+), 613 deletions(-) create mode 100644 reports/skill-interpretation.html create mode 100644 reports/skill-interpretation.json create mode 100644 schemas/skill-interpretation.schema.json create mode 100644 scripts/render_skill_interpretation.py create mode 100644 tests/verify_skill_interpretation.py diff --git a/Makefile b/Makefile index 88d3bb14..c920c599 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ PYTHON ?= python3 LOCAL_SKILL_INSTALL_DIR ?= $(HOME)/.agents/skills.disabled/yao-meta-skill ACTIVE_SKILL_INSTALL_DIR ?= $(HOME)/.agents/skills/yao-meta-skill -.PHONY: eval eval-suite route-scorecard route-confusion-check description-optimization judge-blind-eval description-optimization-check promotion-check python-compat-check architecture-maintainability-check yao-cli-check skill-overview-check skill-report-metrics-check skill-report-charts-check html-rendering-check skill-ir-check compiler-check output-eval-check output-execution-check output-review-kit-check output-review-adjudication-check runtime-conformance-check runtime-permission-check trust-check skill-atlas-check registry-audit-check package-verify-check install-simulation-check upgrade-check review-viewer-check review-studio-check skill-os2-audit-check skill-os2-coverage-check world-class-evidence-check world-class-ledger-check world-class-intake-check world-class-submission-review-check world-class-runbook-check world-class-claim-guard-check benchmark-reproducibility-check feedback-check adaptation-safety-check adoption-drift-check telemetry-import-check telemetry-emit-check telemetry-hooks-check telemetry-native-host-check review-waivers-check review-annotations-check baseline-compare-check reference-scan-check github-benchmark-scan-check intent-confidence-check reference-synthesis-check output-risk-profile-check artifact-design-profile-check prompt-quality-profile-check system-model-check iteration-directions-check description-drift-history iteration-ledger results-panel regression-history context-reports portability-report portability-check failure-regression-check package-check package-failure-check security-boundary-check local-install-sync-check snapshot-check validate lint governance-check resource-boundary-check quality-check sync-local-install sync-active-install test ci-test clean +.PHONY: eval eval-suite route-scorecard route-confusion-check description-optimization judge-blind-eval description-optimization-check promotion-check python-compat-check architecture-maintainability-check yao-cli-check skill-overview-check skill-interpretation-check skill-report-metrics-check skill-report-charts-check html-rendering-check skill-ir-check compiler-check output-eval-check output-execution-check output-review-kit-check output-review-adjudication-check runtime-conformance-check runtime-permission-check trust-check skill-atlas-check registry-audit-check package-verify-check install-simulation-check upgrade-check review-viewer-check review-studio-check skill-os2-audit-check skill-os2-coverage-check world-class-evidence-check world-class-ledger-check world-class-intake-check world-class-submission-review-check world-class-runbook-check world-class-claim-guard-check benchmark-reproducibility-check feedback-check adaptation-safety-check adoption-drift-check telemetry-import-check telemetry-emit-check telemetry-hooks-check telemetry-native-host-check review-waivers-check review-annotations-check baseline-compare-check reference-scan-check github-benchmark-scan-check intent-confidence-check reference-synthesis-check output-risk-profile-check artifact-design-profile-check prompt-quality-profile-check system-model-check iteration-directions-check description-drift-history iteration-ledger results-panel regression-history context-reports portability-report portability-check failure-regression-check package-check package-failure-check security-boundary-check local-install-sync-check snapshot-check validate lint governance-check resource-boundary-check quality-check sync-local-install sync-active-install test ci-test clean eval: $(PYTHON) scripts/trigger_eval.py --description-file evals/improved_description.txt --cases evals/trigger_cases.json --baseline-description-file evals/baseline_description.txt @@ -40,6 +40,9 @@ yao-cli-check: skill-overview-check: $(PYTHON) tests/verify_skill_overview.py +skill-interpretation-check: + $(PYTHON) tests/verify_skill_interpretation.py + skill-report-metrics-check: $(PYTHON) tests/verify_skill_report_metrics.py @@ -241,11 +244,11 @@ sync-local-install: package-check sync-active-install: package-check $(PYTHON) scripts/sync_local_install.py --install-dir "$(ACTIVE_SKILL_INSTALL_DIR)" -test: eval eval-suite route-scorecard route-confusion-check description-optimization description-optimization-check promotion-check python-compat-check architecture-maintainability-check yao-cli-check skill-overview-check skill-report-metrics-check skill-report-charts-check html-rendering-check skill-ir-check compiler-check output-eval-check output-execution-check output-review-adjudication-check runtime-conformance-check runtime-permission-check trust-check skill-atlas-check registry-audit-check package-verify-check install-simulation-check upgrade-check review-viewer-check review-studio-check skill-os2-audit-check skill-os2-coverage-check world-class-evidence-check world-class-ledger-check world-class-intake-check world-class-submission-review-check world-class-runbook-check world-class-claim-guard-check benchmark-reproducibility-check feedback-check adaptation-safety-check adoption-drift-check telemetry-import-check telemetry-emit-check telemetry-hooks-check telemetry-native-host-check review-waivers-check review-annotations-check baseline-compare-check reference-scan-check github-benchmark-scan-check intent-confidence-check reference-synthesis-check output-risk-profile-check artifact-design-profile-check prompt-quality-profile-check system-model-check iteration-directions-check description-drift-history iteration-ledger regression-history context-reports portability-report portability-check failure-regression-check package-check package-failure-check security-boundary-check local-install-sync-check snapshot-check validate lint governance-check resource-boundary-check quality-check +test: eval eval-suite route-scorecard route-confusion-check description-optimization description-optimization-check promotion-check python-compat-check architecture-maintainability-check yao-cli-check skill-overview-check skill-interpretation-check skill-report-metrics-check skill-report-charts-check html-rendering-check skill-ir-check compiler-check output-eval-check output-execution-check output-review-adjudication-check runtime-conformance-check runtime-permission-check trust-check skill-atlas-check registry-audit-check package-verify-check install-simulation-check upgrade-check review-viewer-check review-studio-check skill-os2-audit-check skill-os2-coverage-check world-class-evidence-check world-class-ledger-check world-class-intake-check world-class-submission-review-check world-class-runbook-check world-class-claim-guard-check benchmark-reproducibility-check feedback-check adaptation-safety-check adoption-drift-check telemetry-import-check telemetry-emit-check telemetry-hooks-check telemetry-native-host-check review-waivers-check review-annotations-check baseline-compare-check reference-scan-check github-benchmark-scan-check intent-confidence-check reference-synthesis-check output-risk-profile-check artifact-design-profile-check prompt-quality-profile-check system-model-check iteration-directions-check description-drift-history iteration-ledger regression-history context-reports portability-report portability-check failure-regression-check package-check package-failure-check security-boundary-check local-install-sync-check snapshot-check validate lint governance-check resource-boundary-check quality-check ci-test: $(PYTHON) scripts/ci_test.py clean: - rm -rf dist tests/tmp tests/tmp_snapshot tests/tmp_cli tests/tmp_python_compat tests/tmp_architecture_maintainability tests/tmp_skill_overview tests/tmp_skill_report_metrics tests/tmp_skill_report_charts tests/tmp_skill_ir tests/tmp_compile_skill tests/tmp_output_eval tests/tmp_output_execution tests/tmp_output_review_adjudication tests/tmp_conformance tests/tmp_runtime_permission tests/tmp_trust tests/tmp_skill_atlas tests/tmp_registry tests/tmp_package_verification tests/tmp_install_simulation tests/tmp_upgrade_check tests/tmp_reference_scan tests/tmp_iteration_directions tests/tmp_review_viewer tests/tmp_review_studio tests/tmp_skill_os2_audit tests/tmp_skill_os2_coverage tests/tmp_world_class_evidence tests/tmp_world_class_evidence_ledger tests/tmp_world_class_evidence_intake tests/tmp_world_class_submission_review tests/tmp_world_class_operator_runbook tests/tmp_world_class_claim_guard tests/tmp_benchmark_reproducibility tests/tmp_feedback tests/tmp_adoption_drift tests/tmp_telemetry_import tests/tmp_telemetry_emit tests/tmp_telemetry_hooks tests/tmp_telemetry_native_host tests/tmp_review_waivers tests/tmp_review_annotations tests/tmp_github_benchmark_scan tests/tmp_intent_confidence tests/tmp_reference_synthesis tests/tmp_output_risk_profile tests/tmp_artifact_design_profile tests/tmp_prompt_quality_profile tests/tmp_system_model tests/tmp_security tests/tmp_baseline_compare.json tests/tmp_baseline_compare.md + rm -rf dist tests/tmp tests/tmp_snapshot tests/tmp_cli tests/tmp_python_compat tests/tmp_architecture_maintainability tests/tmp_skill_overview tests/tmp_skill_interpretation tests/tmp_skill_report_metrics tests/tmp_skill_report_charts tests/tmp_skill_ir tests/tmp_compile_skill tests/tmp_output_eval tests/tmp_output_execution tests/tmp_output_review_adjudication tests/tmp_conformance tests/tmp_runtime_permission tests/tmp_trust tests/tmp_skill_atlas tests/tmp_registry tests/tmp_package_verification tests/tmp_install_simulation tests/tmp_upgrade_check tests/tmp_reference_scan tests/tmp_iteration_directions tests/tmp_review_viewer tests/tmp_review_studio tests/tmp_skill_os2_audit tests/tmp_skill_os2_coverage tests/tmp_world_class_evidence tests/tmp_world_class_evidence_ledger tests/tmp_world_class_evidence_intake tests/tmp_world_class_submission_review tests/tmp_world_class_operator_runbook tests/tmp_world_class_claim_guard tests/tmp_benchmark_reproducibility tests/tmp_feedback tests/tmp_adoption_drift tests/tmp_telemetry_import tests/tmp_telemetry_emit tests/tmp_telemetry_hooks tests/tmp_telemetry_native_host tests/tmp_review_waivers tests/tmp_review_annotations tests/tmp_github_benchmark_scan tests/tmp_intent_confidence tests/tmp_reference_synthesis tests/tmp_output_risk_profile tests/tmp_artifact_design_profile tests/tmp_prompt_quality_profile tests/tmp_system_model tests/tmp_security tests/tmp_baseline_compare.json tests/tmp_baseline_compare.md find . -type d -name __pycache__ -prune -exec rm -rf {} + diff --git a/README.md b/README.md index bf1adf19..14f2ecaf 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ Weighted score formula: `sum(score / 10 * weight)`. 2. Start with a short, human intent dialogue so the real job, outputs, exclusions, constraints, and standards are explicit. 3. Let `quickstart` clarify intent first, then run silent benchmark scan and reference synthesis; it only surfaces explicit questions when intent is still unclear or when there is a real design conflict. 4. Use the archetype-aware `quickstart` or the full authoring flow to generate or improve the package in scaffold, production, library, or governed mode. -5. Review the generated `reports/skill-overview.html` first for the bilingual HTML skill report. It defaults to Simplified Chinese and provides an English switch in the top right. Then open `reports/review-studio.html` to inspect release blockers, permission approvals, and evidence paths in one page before adding more structure. +5. Review the generated `reports/skill-interpretation.html` first for the bilingual interpretation report. It defaults to Simplified Chinese and provides an English switch in the top right. Then open `reports/skill-overview.html` for the audit scorecard and `reports/review-studio.html` to inspect release blockers, permission approvals, and evidence paths in one page before adding more structure. Or use the unified authoring CLI: @@ -113,6 +113,7 @@ python3 scripts/yao.py reference-scan my-skill \ --external-reference "World Class Method::method::Borrow a tight evaluation loop.::Do not copy heavy process." \ --user-reference "A product or repo I admire::taste::Learn the clarity and operating standard.::Do not copy wording." \ --local-constraint "Current Library Naming::structure::Keep naming aligned with the local skill library.::Do not inherit private references." +python3 scripts/yao.py skill-interpretation my-skill python3 scripts/yao.py review-viewer my-skill python3 scripts/yao.py review-studio my-skill python3 scripts/yao.py artifact-design-profile my-skill @@ -424,7 +425,7 @@ Utility scripts that make the meta-skill operational: - `run_description_optimization_suite.py`: runs description optimization across the root skill and governed examples, then writes reusable reports and optional drift snapshots with calibration and family summaries - `promotion_checker.py`: applies promotion policy to current description candidates, writes promotion decisions, builds candidate registries, and emits iteration bundles with review stubs - `create_iteration_snapshot.py`: freezes the current promotion decision into a versioned release snapshot with review, route, and context evidence -- `yao.py`: unified authoring CLI that exposes init, validate, optimize-description, promote-check, python-compat, review, release-snapshot, workspace-flow, report, skill-ir, compile-skill, output-exec, output-review, skill-os2-audit, skill-os2-coverage, world-class-evidence, world-class-ledger, world-class-intake, world-class-submission-kit, world-class-submission-review, world-class-runbook, world-class-claim-guard, benchmark-reproducibility, telemetry-emit, telemetry-hooks, telemetry-import, package, registry-audit, package-verify, install-simulate, upgrade-check, review-waivers, and test as one entrypoint +- `yao.py`: unified authoring CLI that exposes init, validate, optimize-description, promote-check, python-compat, review, release-snapshot, workspace-flow, report, skill-report, skill-interpretation, skill-ir, compile-skill, output-exec, output-review, skill-os2-audit, skill-os2-coverage, world-class-evidence, world-class-ledger, world-class-intake, world-class-submission-kit, world-class-submission-review, world-class-runbook, world-class-claim-guard, benchmark-reproducibility, telemetry-emit, telemetry-hooks, telemetry-import, package, registry-audit, package-verify, install-simulate, upgrade-check, review-waivers, and test as one entrypoint - `render_description_drift_history.py`: turns description-optimization snapshots into a readable drift-history report - `build_confusion_matrix.py`: scores route confusion across tracked sibling skills and `no_route` cases, then writes a route scorecard and optional milestone snapshot - `render_iteration_ledger.py`: compresses regression milestones, description optimization drift, and route scorecards into one iteration-facing ledger @@ -446,6 +447,7 @@ Utility scripts that make the meta-skill operational: - `cross_packager.py`: builds client-specific export artifacts from Skill IR plus neutral metadata, with explicit platform contracts and validation - `render_portability_report.py`: scores cross-environment portability from neutral metadata, degradation rules, and consumer validation coverage - `render_skill_overview.py`: generates the white-background bilingual HTML skill audit report with sticky four-character Chinese navigation, top-right language switch, v2 scorecard, inline SVG charts, contract boundary, quality review, risk governance, assets, and iteration roadmap +- `render_skill_interpretation.py`: renders `reports/skill-interpretation.html/json` as the first-class post-creation interpretation report while reusing the Skill Overview v2 model and Kami white layout - `export_skill_ir.py`: exports the 2.0 platform-neutral Skill IR contract from `SKILL.md`, manifest, interface metadata, evals, resources, and reports - `compile_skill.py`: compiles Skill IR into target-specific semantic contracts, generated-file maps, adapter modes, target-native behavior contracts, preserved semantics, warnings, and unsupported-feature notes - `run_output_eval.py`: runs the Output Eval Lab v0 with static with-skill vs baseline assertion grading, blind A/B review pack generation, and separate answer key artifacts diff --git a/registry/index.json b/registry/index.json index 65255181..cc05cc19 100644 --- a/registry/index.json +++ b/registry/index.json @@ -16,7 +16,7 @@ "vscode" ], "package_metadata": "registry/packages/yao-meta-skill.json", - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba" + "package_sha256": "652c3a4a1f091d875bfacdd44da9a91bc02fec90af3fe76cf3a71a6dc80aba58" } ] } diff --git a/registry/packages/yao-meta-skill.json b/registry/packages/yao-meta-skill.json index d371f99f..aa76fe8a 100644 --- a/registry/packages/yao-meta-skill.json +++ b/registry/packages/yao-meta-skill.json @@ -16,7 +16,7 @@ "trust_level": "local", "license": "MIT", "checksums": { - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba", + "package_sha256": "652c3a4a1f091d875bfacdd44da9a91bc02fec90af3fe76cf3a71a6dc80aba58", "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc" }, "compatibility": { diff --git a/reports/adoption_drift_report.json b/reports/adoption_drift_report.json index e3e48ec6..bbd0e51d 100644 --- a/reports/adoption_drift_report.json +++ b/reports/adoption_drift_report.json @@ -1,7 +1,7 @@ { "ok": true, "schema_version": "2.0", - "generated_at": "2026-06-15T13:08:50Z", + "generated_at": "2026-06-15T13:34:11Z", "skill_dir": ".", "privacy_contract": { "storage": "local-first", diff --git a/reports/architecture_maintainability.json b/reports/architecture_maintainability.json index f2754316..33df3875 100644 --- a/reports/architecture_maintainability.json +++ b/reports/architecture_maintainability.json @@ -4,58 +4,58 @@ "generated_at": "2026-06-13", "skill_dir": ".", "summary": { - "python_file_count": 166, - "script_file_count": 105, - "test_file_count": 61, + "python_file_count": 168, + "script_file_count": 106, + "test_file_count": 62, "internal_module_count": 29, - "cli_script_count": 78, + "cli_script_count": 79, "command_handler_count": 34, "warn_line_threshold": 900, "block_line_threshold": 1500, - "largest_file_lines": 894, + "largest_file_lines": 886, "hotspot_count": 0, "blocker_count": 0, "decision": "pass" }, "largest_files": [ - { - "path": "tests/verify_yao_cli.py", - "lines": 894, - "kind": "test", - "severity": "pass", - "recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands." - }, { "path": "scripts/yao.py", - "lines": 882, + "lines": 886, "kind": "cli-script", "severity": "pass", "recommendation": "Split command handlers by domain while keeping scripts/yao.py as the thin CLI orchestrator." }, + { + "path": "tests/verify_yao_cli.py", + "lines": 886, + "kind": "test", + "severity": "pass", + "recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands." + }, { "path": "scripts/skill_report_layout.py", - "lines": 805, + "lines": 808, "kind": "internal-module", "severity": "pass", "recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates." }, { "path": "scripts/skill_report_model.py", - "lines": 800, + "lines": 801, "kind": "internal-module", "severity": "pass", "recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates." }, { "path": "scripts/yao_cli_parser.py", - "lines": 765, + "lines": 774, "kind": "internal-module", "severity": "pass", "recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates." }, { "path": "tests/verify_review_studio.py", - "lines": 749, + "lines": 751, "kind": "test", "severity": "pass", "recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands." diff --git a/reports/architecture_maintainability.md b/reports/architecture_maintainability.md index 4ee0b8c0..7d847b7c 100644 --- a/reports/architecture_maintainability.md +++ b/reports/architecture_maintainability.md @@ -5,13 +5,13 @@ Generated at: `2026-06-13` ## Summary - decision: `pass` -- python files: `166` -- scripts: `105` -- tests: `61` +- python files: `168` +- scripts: `106` +- tests: `62` - internal modules: `29` -- CLI scripts: `78` +- CLI scripts: `79` - Yao CLI command handlers: `34` -- largest file lines: `894` +- largest file lines: `886` - hotspots: `0` - blockers: `0` @@ -25,12 +25,12 @@ No file-size hotspots found. | File | Lines | Kind | Severity | | --- | ---: | --- | --- | -| `tests/verify_yao_cli.py` | `894` | `test` | `pass` | -| `scripts/yao.py` | `882` | `cli-script` | `pass` | -| `scripts/skill_report_layout.py` | `805` | `internal-module` | `pass` | -| `scripts/skill_report_model.py` | `800` | `internal-module` | `pass` | -| `scripts/yao_cli_parser.py` | `765` | `internal-module` | `pass` | -| `tests/verify_review_studio.py` | `749` | `test` | `pass` | +| `scripts/yao.py` | `886` | `cli-script` | `pass` | +| `tests/verify_yao_cli.py` | `886` | `test` | `pass` | +| `scripts/skill_report_layout.py` | `808` | `internal-module` | `pass` | +| `scripts/skill_report_model.py` | `801` | `internal-module` | `pass` | +| `scripts/yao_cli_parser.py` | `774` | `internal-module` | `pass` | +| `tests/verify_review_studio.py` | `751` | `test` | `pass` | | `scripts/compile_skill.py` | `734` | `cli-script` | `pass` | | `scripts/build_skill_atlas.py` | `730` | `cli-script` | `pass` | | `scripts/optimize_description.py` | `723` | `cli-script` | `pass` | diff --git a/reports/benchmark_reproducibility.json b/reports/benchmark_reproducibility.json index 0d933da1..a224fb30 100644 --- a/reports/benchmark_reproducibility.json +++ b/reports/benchmark_reproducibility.json @@ -3,22 +3,35 @@ "ok": true, "generated_at": "2026-06-15", "skill_dir": ".", - "commit": "aacf3282f562414faf8cc6c68538d2d53c6b48e3", + "commit": "5495734e7e33b19b84a932626112d783a3edf271", "git_status": { "available": true, - "dirty": false, - "changed_file_count": 0, - "sample": [], + "dirty": true, + "changed_file_count": 73, + "sample": [ + " M Makefile", + " M README.md", + " M registry/index.json", + " M registry/packages/yao-meta-skill.json", + " M reports/adoption_drift_report.json", + " M reports/adoption_drift_report.md", + " M reports/architecture_maintainability.json", + " M reports/architecture_maintainability.md", + " M reports/benchmark_reproducibility.json", + " M reports/benchmark_reproducibility.md", + " M reports/compiled_targets.json", + " M reports/context_budget.json" + ], "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": 24, "missing_artifact_count": 0, - "evidence_bundle_sha256": "890927c5a98eb60b569171a7473c213a5094d3a8e9b84705d687c4f3335220fd", - "source_contract_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba", + "evidence_bundle_sha256": "60df1cebf40b1627f6d313c233f377d0d36228a9525b70099623563c7efb7804", + "source_contract_sha256": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af", "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc", "output_case_count": 5, "failure_disclosure_count": 3, @@ -34,29 +47,30 @@ "world_class_task_count": 4, "world_class_ledger_pending_count": 4, "world_class_source_check_count": 13, - "world_class_source_pass_count": 7, - "world_class_source_blocked_count": 6, + "world_class_source_pass_count": 6, + "world_class_source_blocked_count": 7, "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": 73 }, "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)", - "world-class source checks are not all accepted (7/13 pass, 6 blocked)" + "world-class source checks are not all accepted (6/13 pass, 7 blocked)" ], "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": "aacf3282f562414faf8cc6c68538d2d53c6b48e3", + "ready": false, + "commit": "5495734e7e33b19b84a932626112d783a3edf271", "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": 24, "missing_count": 0, "missing_paths": [], - "sha256": "890927c5a98eb60b569171a7473c213a5094d3a8e9b84705d687c4f3335220fd" + "sha256": "60df1cebf40b1627f6d313c233f377d0d36228a9525b70099623563c7efb7804" }, "methodology": { "path": "reports/benchmark_methodology.md", @@ -137,8 +151,8 @@ "label": "output_execution", "path": "reports/output_execution_runs.json", "exists": true, - "bytes": 7965, - "sha256": "f2e8168cc313a28f49e462be3db8dab0c084dbcc5c39175f488e6ec8538bddeb" + "bytes": 7966, + "sha256": "406fa9dd65ac5a870ff4678e05b9e145fff9eb8a37bdc5f7a2e556e1dcc0c369" }, { "label": "blind_review", @@ -172,22 +186,22 @@ "label": "trust_report", "path": "reports/security_trust_report.json", "exists": true, - "bytes": 104587, - "sha256": "00a557726381efed028a11fa563ce692956cd265391928ffbf68382218fe8e99" + "bytes": 105694, + "sha256": "cfabb1008f1ce3cd638c1f3251e860557102cd01963e58aa8cce2c4c92dfee33" }, { "label": "python_compatibility", "path": "reports/python_compatibility.json", "exists": true, - "bytes": 21994, - "sha256": "533cd8824a27329e5577598cdc4cf3327fcb153288f19bea45de9ea21a9e3c15" + "bytes": 22252, + "sha256": "fcf288346cb5159e070b2df75a8e371cca2501945c971aead521e7ac3557a4bc" }, { "label": "registry_audit", "path": "reports/registry_audit.json", "exists": true, "bytes": 3183, - "sha256": "9b54f3fd07680c2a9dd18ec9845e1faa1e19e8fbc854cd13a2d5bc1b84360f0e" + "sha256": "5765778984e60fd98c2459e5402bc7780391753c7353253701b279dd2b310eef" }, { "label": "package_verification", @@ -201,70 +215,70 @@ "path": "reports/install_simulation.json", "exists": true, "bytes": 8758, - "sha256": "9c2e297394f92a6b9a8826165ccb32e7eb970ce90b7312f5e125a7f95fe6724f" + "sha256": "46d0524a6968a1dadfd63988cd00b218323b42f4e7697fe427d8f160da72c252" }, { "label": "skill_os2_audit", "path": "reports/skill_os2_audit.json", "exists": true, "bytes": 14310, - "sha256": "47c5859d2a9c22c1a7c49381e363648e7ff09330ba62b2f2b27b0ab8aa4f4071" + "sha256": "8481f4d78f2ad4ff0e74936b58b643a91052a30b6d12bcbbf24e0b4291b8fb1f" }, { "label": "world_class_evidence_plan", "path": "reports/world_class_evidence_plan.json", "exists": true, "bytes": 19940, - "sha256": "b408af112c784fdc3e96ea9ecf374990b9f58a0ebfa4df18394ccd9e93dc5545" + "sha256": "933cdb0021818c0a8c5fc199af7dfa7879777ebf7959ed3a36bba52a0aed9c6c" }, { "label": "world_class_evidence_ledger", "path": "reports/world_class_evidence_ledger.json", "exists": true, - "bytes": 20003, - "sha256": "cc886713ba5b99bdb2f740217f0979a30312aef7539d2a22af0e96ec5c3e90bf" + "bytes": 20006, + "sha256": "5407409841eb8e1174a07ea0af17ddf709155f0c548c897b82c2f75b869b333a" }, { "label": "world_class_evidence_intake", "path": "reports/world_class_evidence_intake.json", "exists": true, "bytes": 18865, - "sha256": "2fbecc603d8dc6382fde6c61869aaf4b56fc9d1be5afcd07b345c419dce6d55a" + "sha256": "b10e1ce0a5a17df72462ce8f0c468356f58ff88bd7ceab349c82a1fb3b6697ef" }, { "label": "world_class_submission_review", "path": "reports/world_class_submission_review.json", "exists": true, - "bytes": 12410, - "sha256": "bc690472684dcdb8c77803b730857f98e6b6eb11f1e741d5fcc1aa9303b77e47" + "bytes": 12413, + "sha256": "3bce5f072d037a6c383cfd597f8530c2bc87ba31781fa90c843a9186dd2f8fea" }, { "label": "world_class_operator_runbook", "path": "reports/world_class_operator_runbook.json", "exists": true, - "bytes": 23957, - "sha256": "b4640688026ef9199e96f80bd2d9971aaca3ec6d092d8ecd052a5debc0aa94c7" + "bytes": 24021, + "sha256": "d377b8d99831ce297011e4e270fc7287a53727500f5d503dd3dc4b984d26f0ad" }, { "label": "world_class_operator_runbook_markdown", "path": "reports/world_class_operator_runbook.md", "exists": true, - "bytes": 15025, - "sha256": "3a916ac568377d8df7d612426f7358283eddfa2ab5fedb7ed12db0097a8b3c48" + "bytes": 15080, + "sha256": "9f141f09bf485a4299b37eb8c21ebab9f212ea130a0daea8b0d7d5bd7ab020aa" }, { "label": "world_class_operator_runbook_html", "path": "reports/world_class_operator_runbook.html", "exists": true, - "bytes": 20969, - "sha256": "886b915da0f27fb46f4d8cebb6211ab5066a9fd44e1ec2e3206487d9a8abfff2" + "bytes": 21030, + "sha256": "04cc091b113f018072d07a1d71ad142773c415a49e633493689903e7b399b5e6" }, { "label": "world_class_claim_guard", "path": "reports/world_class_claim_guard.json", "exists": true, - "bytes": 8634, - "sha256": "8817531d97d4f24ccc297956e71dbb4a8dbba24bf705f8a77b77e6b88097a03c" + "bytes": 8725, + "sha256": "7257fedb0a0407332265ef9ae7b1a6d789f4d2a075c6b62fc1a6f679b3a5a42d" } ], "missing_artifacts": [], diff --git a/reports/benchmark_reproducibility.md b/reports/benchmark_reproducibility.md index 93e4b032..d18c4fb2 100644 --- a/reports/benchmark_reproducibility.md +++ b/reports/benchmark_reproducibility.md @@ -1,18 +1,18 @@ # Benchmark Reproducibility Generated at: `2026-06-15` -Commit: `aacf3282f562414faf8cc6c68538d2d53c6b48e3` -Working tree dirty at generation: `false` -Evidence bundle SHA256: `890927c5a98eb60b569171a7473c213a5094d3a8e9b84705d687c4f3335220fd` +Commit: `5495734e7e33b19b84a932626112d783a3edf271` +Working tree dirty at generation: `true` +Evidence bundle SHA256: `60df1cebf40b1627f6d313c233f377d0d36228a9525b70099623563c7efb7804` ## Summary - reproducibility ready: `true` -- release lock ready: `true` +- release lock ready: `false` - methodology complete: `true` - required artifacts: `24` - missing artifacts: `0` -- source contract sha256: `37a1ec0f3532` +- source contract sha256: `c0fe8976bca1` - archive sha256: `6852cf91a74d` - output cases: `5` - disclosed failure cases: `3` @@ -20,10 +20,10 @@ Evidence bundle SHA256: `890927c5a98eb60b569171a7473c213a5094d3a8e9b84705d687c4f - provider evidence complete: `false` - human review complete: `false` - world-class ready: `false` -- world-class source checks: `7` pass / `13` total; `6` blocked +- world-class source checks: `6` pass / `13` total; `7` blocked - public claim ready: `false` -- public claim blockers: `4` -- changed files at generation: `0` +- public claim blockers: `5` +- changed files at generation: `73` 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,22 +35,23 @@ 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) | -| world-class source checks are not all accepted (7/13 pass, 6 blocked) | +| world-class source checks are not all accepted (6/13 pass, 7 blocked) | ## 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: `24` / `24` -- sha256: `890927c5a98eb60b569171a7473c213a5094d3a8e9b84705d687c4f3335220fd` +- sha256: `60df1cebf40b1627f6d313c233f377d0d36228a9525b70099623563c7efb7804` ## Methodology Sections @@ -72,25 +73,25 @@ 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 | `f2e8168cc313` | +| output_execution | `reports/output_execution_runs.json` | present | `406fa9dd65ac` | | blind_review | `reports/output_blind_review_pack.json` | present | `bbe2db8ec277` | | review_adjudication | `reports/output_review_adjudication.json` | present | `240485a721af` | | trigger_scorecard | `reports/route_scorecard.json` | present | `c164e83e36d0` | | runtime_conformance | `reports/conformance_matrix.json` | present | `8251329e663d` | -| trust_report | `reports/security_trust_report.json` | present | `00a557726381` | -| python_compatibility | `reports/python_compatibility.json` | present | `533cd8824a27` | -| registry_audit | `reports/registry_audit.json` | present | `9b54f3fd0768` | +| trust_report | `reports/security_trust_report.json` | present | `cfabb1008f1c` | +| python_compatibility | `reports/python_compatibility.json` | present | `fcf288346cb5` | +| registry_audit | `reports/registry_audit.json` | present | `5765778984e6` | | package_verification | `reports/package_verification.json` | present | `2476ae8ec9c4` | -| install_simulation | `reports/install_simulation.json` | present | `9c2e297394f9` | -| skill_os2_audit | `reports/skill_os2_audit.json` | present | `47c5859d2a9c` | -| world_class_evidence_plan | `reports/world_class_evidence_plan.json` | present | `b408af112c78` | -| world_class_evidence_ledger | `reports/world_class_evidence_ledger.json` | present | `cc886713ba5b` | -| world_class_evidence_intake | `reports/world_class_evidence_intake.json` | present | `2fbecc603d8d` | -| world_class_submission_review | `reports/world_class_submission_review.json` | present | `bc690472684d` | -| world_class_operator_runbook | `reports/world_class_operator_runbook.json` | present | `b4640688026e` | -| world_class_operator_runbook_markdown | `reports/world_class_operator_runbook.md` | present | `3a916ac56837` | -| world_class_operator_runbook_html | `reports/world_class_operator_runbook.html` | present | `886b915da0f2` | -| world_class_claim_guard | `reports/world_class_claim_guard.json` | present | `8817531d97d4` | +| install_simulation | `reports/install_simulation.json` | present | `46d0524a6968` | +| skill_os2_audit | `reports/skill_os2_audit.json` | present | `8481f4d78f2a` | +| world_class_evidence_plan | `reports/world_class_evidence_plan.json` | present | `933cdb002181` | +| world_class_evidence_ledger | `reports/world_class_evidence_ledger.json` | present | `5407409841eb` | +| world_class_evidence_intake | `reports/world_class_evidence_intake.json` | present | `b10e1ce0a5a1` | +| world_class_submission_review | `reports/world_class_submission_review.json` | present | `3bce5f072d03` | +| world_class_operator_runbook | `reports/world_class_operator_runbook.json` | present | `d377b8d99831` | +| world_class_operator_runbook_markdown | `reports/world_class_operator_runbook.md` | present | `9f141f09bf48` | +| world_class_operator_runbook_html | `reports/world_class_operator_runbook.html` | present | `04cc091b113f` | +| world_class_claim_guard | `reports/world_class_claim_guard.json` | present | `7257fedb0a04` | ## Reproduction Commands diff --git a/reports/compiled_targets.json b/reports/compiled_targets.json index a23e9888..f9fa4782 100644 --- a/reports/compiled_targets.json +++ b/reports/compiled_targets.json @@ -200,6 +200,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -226,8 +227,7 @@ "scripts/run_conformance_suite.py", "scripts/run_description_optimization_suite.py", "scripts/run_eval_suite.py", - "scripts/run_output_eval.py", - "scripts/run_output_execution.py" + "scripts/run_output_eval.py" ], "assets": [ "templates/basic_skill.md.j2", @@ -387,7 +387,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -432,6 +432,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -493,14 +494,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -522,7 +523,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -635,7 +636,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -680,6 +681,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -741,14 +743,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -768,7 +770,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -1057,6 +1059,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -1083,8 +1086,7 @@ "scripts/run_conformance_suite.py", "scripts/run_description_optimization_suite.py", "scripts/run_eval_suite.py", - "scripts/run_output_eval.py", - "scripts/run_output_execution.py" + "scripts/run_output_eval.py" ], "assets": [ "templates/basic_skill.md.j2", @@ -1244,7 +1246,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -1289,6 +1291,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -1350,14 +1353,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -1379,7 +1382,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -1492,7 +1495,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -1537,6 +1540,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -1598,14 +1602,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -1625,7 +1629,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -1914,6 +1918,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -1940,8 +1945,7 @@ "scripts/run_conformance_suite.py", "scripts/run_description_optimization_suite.py", "scripts/run_eval_suite.py", - "scripts/run_output_eval.py", - "scripts/run_output_execution.py" + "scripts/run_output_eval.py" ], "assets": [ "templates/basic_skill.md.j2", @@ -2101,7 +2105,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -2146,6 +2150,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -2207,14 +2212,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -2236,7 +2241,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -2342,7 +2347,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -2387,6 +2392,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -2448,14 +2454,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -2475,7 +2481,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -2755,6 +2761,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -2781,8 +2788,7 @@ "scripts/run_conformance_suite.py", "scripts/run_description_optimization_suite.py", "scripts/run_eval_suite.py", - "scripts/run_output_eval.py", - "scripts/run_output_execution.py" + "scripts/run_output_eval.py" ], "assets": [ "templates/basic_skill.md.j2", @@ -2942,7 +2948,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -2987,6 +2993,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -3048,14 +3055,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -3077,7 +3084,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -3183,7 +3190,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -3228,6 +3235,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -3289,14 +3297,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -3316,7 +3324,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -3596,6 +3604,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -3622,8 +3631,7 @@ "scripts/run_conformance_suite.py", "scripts/run_description_optimization_suite.py", "scripts/run_eval_suite.py", - "scripts/run_output_eval.py", - "scripts/run_output_execution.py" + "scripts/run_output_eval.py" ], "assets": [ "templates/basic_skill.md.j2", @@ -3783,7 +3791,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -3828,6 +3836,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -3889,14 +3898,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -3918,7 +3927,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -4028,7 +4037,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -4073,6 +4082,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -4134,14 +4144,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -4161,7 +4171,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, diff --git a/reports/context_budget.json b/reports/context_budget.json index 7f1a0f3b..2dc9c29a 100644 --- a/reports/context_budget.json +++ b/reports/context_budget.json @@ -6,16 +6,16 @@ "context_budget_tier": "production", "context_budget_limit": 1000, "skill_body_tokens": 767, - "other_text_tokens": 1283170, + "other_text_tokens": 1308653, "estimated_initial_load_tokens": 960, - "estimated_total_text_tokens": 1283937, - "deferred_resource_tokens": 414478, + "estimated_total_text_tokens": 1309420, + "deferred_resource_tokens": 416426, "deferred_resource_warn_threshold": 120000, "deferred_resource_dirs": [ { "path": "scripts", - "estimated_tokens": 365888, - "file_count": 105 + "estimated_tokens": 367836, + "file_count": 106 }, { "path": "references", @@ -31,8 +31,8 @@ "large_deferred_resource_dirs": [ { "path": "scripts", - "estimated_tokens": 365888, - "file_count": 105 + "estimated_tokens": 367836, + "file_count": 106 } ], "deferred_resource_governance": { @@ -54,14 +54,14 @@ ], "missing": [], "path": "scripts", - "estimated_tokens": 365888, - "file_count": 105, + "estimated_tokens": 367836, + "file_count": 106, "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": 537, + "relevant_file_count": 544, "unused_resource_dirs": [], "quality_signal_points": 130, "quality_density": 135.4 diff --git a/reports/context_budget.md b/reports/context_budget.md index 373065fa..ec387c7c 100644 --- a/reports/context_budget.md +++ b/reports/context_budget.md @@ -2,7 +2,7 @@ | Target | Path | Tier | Limit | Initial | SKILL | Deferred | Resource Governance | Large Deferred Dirs | Quality Density | Unused Dirs | Status | | --- | --- | --- | ---: | ---: | ---: | ---: | --- | --- | ---: | --- | --- | -| root | `.` | `production` | 1000 | 960 | 767 | 414478 | `governed` | scripts:365888 | 135.4 | - | ok | +| root | `.` | `production` | 1000 | 960 | 767 | 416426 | `governed` | scripts:367836 | 135.4 | - | ok | | complex-release-orchestrator | `examples/complex-release-orchestrator/generated-skill` | `production` | 1000 | 790 | 718 | 1657 | `not-required` | - | 164.6 | - | ok | | governed-incident-command | `examples/governed-incident-command/generated-skill` | `production` | 1000 | 760 | 658 | 1030 | `not-required` | - | 171.1 | - | ok | diff --git a/reports/context_budget_summary.json b/reports/context_budget_summary.json index 53c94ae8..0e008a8f 100644 --- a/reports/context_budget_summary.json +++ b/reports/context_budget_summary.json @@ -8,12 +8,12 @@ "budget_limit": 1000, "initial_tokens": 960, "skill_body_tokens": 767, - "deferred_resource_tokens": 414478, + "deferred_resource_tokens": 416426, "large_deferred_resource_dirs": [ { "path": "scripts", - "estimated_tokens": 365888, - "file_count": 105 + "estimated_tokens": 367836, + "file_count": 106 } ], "deferred_resource_governance": { @@ -35,8 +35,8 @@ ], "missing": [], "path": "scripts", - "estimated_tokens": 365888, - "file_count": 105, + "estimated_tokens": 367836, + "file_count": 106, "rationale": "Script resources are deterministic deferred tools, not initial-load prompt context." } ], diff --git a/reports/install_simulation.json b/reports/install_simulation.json index 77bda91b..f1b7e156 100644 --- a/reports/install_simulation.json +++ b/reports/install_simulation.json @@ -8,7 +8,7 @@ "installed_skill_dir": "tests/tmp_review_studio/install-root/simulate-yao-meta-skill/yao-meta-skill", "summary": { "archive_present": true, - "archive_entry_count": 598, + "archive_entry_count": 603, "archive_extracted": true, "entrypoint_loaded": true, "manifest_loaded": true, diff --git a/reports/output_execution_runs.json b/reports/output_execution_runs.json index ca23572d..ac946c92 100644 --- a/reports/output_execution_runs.json +++ b/reports/output_execution_runs.json @@ -34,7 +34,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 58.58, + "duration_ms": 33.86, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -62,7 +62,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 40.49, + "duration_ms": 34.88, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -85,7 +85,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 39.32, + "duration_ms": 42.96, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -113,7 +113,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 38.11, + "duration_ms": 40.67, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -136,7 +136,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 50.33, + "duration_ms": 41.06, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -164,7 +164,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 50.85, + "duration_ms": 39.95, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -187,7 +187,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 40.77, + "duration_ms": 42.05, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -214,7 +214,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 37.9, + "duration_ms": 41.65, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -237,7 +237,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 36.65, + "duration_ms": 43.42, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -266,7 +266,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 35.4, + "duration_ms": 44.08, "provider": "local-output-eval-runner", "model": "", "usage": { diff --git a/reports/output_execution_runs.md b/reports/output_execution_runs.md index 715ade7f..6903b0bb 100644 --- a/reports/output_execution_runs.md +++ b/reports/output_execution_runs.md @@ -23,16 +23,16 @@ Command runner evidence is present. This proves the eval harness executed an ext | Case | Variant | Mode | Model | Duration ms | Tokens | Score | Status | | --- | --- | --- | --- | ---: | ---: | ---: | --- | -| skill-package-contract | baseline | command | local-output-eval-runner | 58.58 | 33 | 0.0 | pass | -| skill-package-contract | with_skill | command | local-output-eval-runner | 40.49 | 73 | 100.0 | pass | -| output-eval-expectation | baseline | command | local-output-eval-runner | 39.32 | 36 | 0.0 | pass | -| output-eval-expectation | with_skill | command | local-output-eval-runner | 38.11 | 80 | 100.0 | pass | -| ir-before-packaging | baseline | command | local-output-eval-runner | 50.33 | 33 | 0.0 | pass | -| ir-before-packaging | with_skill | command | local-output-eval-runner | 50.85 | 80 | 100.0 | pass | -| near-neighbor-boundary | baseline | command | local-output-eval-runner | 40.77 | 36 | 0.0 | pass | -| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 37.9 | 65 | 100.0 | pass | -| file-backed-governed-package | baseline | command | local-output-eval-runner | 36.65 | 37 | 0.0 | pass | -| file-backed-governed-package | with_skill | command | local-output-eval-runner | 35.4 | 98 | 100.0 | pass | +| skill-package-contract | baseline | command | local-output-eval-runner | 33.86 | 33 | 0.0 | pass | +| skill-package-contract | with_skill | command | local-output-eval-runner | 34.88 | 73 | 100.0 | pass | +| output-eval-expectation | baseline | command | local-output-eval-runner | 42.96 | 36 | 0.0 | pass | +| output-eval-expectation | with_skill | command | local-output-eval-runner | 40.67 | 80 | 100.0 | pass | +| ir-before-packaging | baseline | command | local-output-eval-runner | 41.06 | 33 | 0.0 | pass | +| ir-before-packaging | with_skill | command | local-output-eval-runner | 39.95 | 80 | 100.0 | pass | +| near-neighbor-boundary | baseline | command | local-output-eval-runner | 42.05 | 36 | 0.0 | pass | +| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 41.65 | 65 | 100.0 | pass | +| file-backed-governed-package | baseline | command | local-output-eval-runner | 43.42 | 37 | 0.0 | pass | +| file-backed-governed-package | with_skill | command | local-output-eval-runner | 44.08 | 98 | 100.0 | pass | ## Next Fixes diff --git a/reports/python_compatibility.json b/reports/python_compatibility.json index 570615e1..010042be 100644 --- a/reports/python_compatibility.json +++ b/reports/python_compatibility.json @@ -5,7 +5,7 @@ "root": ".", "summary": { "target_python": "3.11", - "file_count": 169, + "file_count": 171, "issue_count": 0, "syntax_error_count": 0, "fstring_311_violation_count": 0, @@ -352,6 +352,12 @@ "issue_count": 0, "issues": [] }, + { + "path": "scripts/render_skill_interpretation.py", + "ok": true, + "issue_count": 0, + "issues": [] + }, { "path": "scripts/render_skill_os2_audit.py", "ok": true, @@ -916,6 +922,12 @@ "issue_count": 0, "issues": [] }, + { + "path": "tests/verify_skill_interpretation.py", + "ok": true, + "issue_count": 0, + "issues": [] + }, { "path": "tests/verify_skill_ir.py", "ok": true, diff --git a/reports/python_compatibility.md b/reports/python_compatibility.md index 963df5ed..e5e40c4e 100644 --- a/reports/python_compatibility.md +++ b/reports/python_compatibility.md @@ -6,7 +6,7 @@ Generated at: `2026-06-13` - decision: `pass` - target python: `3.11` -- files scanned: `169` +- files scanned: `171` - issues: `0` - syntax errors: `0` - f-string 3.11 violations: `0` diff --git a/reports/registry_audit.json b/reports/registry_audit.json index 41b6aa41..76caad75 100644 --- a/reports/registry_audit.json +++ b/reports/registry_audit.json @@ -21,7 +21,7 @@ "trust_level": "local", "license": "MIT", "checksums": { - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba", + "package_sha256": "652c3a4a1f091d875bfacdd44da9a91bc02fec90af3fe76cf3a71a6dc80aba58", "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc" }, "compatibility": { @@ -78,7 +78,7 @@ "vscode" ], "package_metadata": "registry/packages/yao-meta-skill.json", - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba" + "package_sha256": "652c3a4a1f091d875bfacdd44da9a91bc02fec90af3fe76cf3a71a6dc80aba58" } ] }, diff --git a/reports/registry_audit.md b/reports/registry_audit.md index e60add1e..3db9e71b 100644 --- a/reports/registry_audit.md +++ b/reports/registry_audit.md @@ -6,7 +6,7 @@ - Maturity: `governed` - Owner: `Yao Team` - License: `MIT` -- Package SHA256: `37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba` +- Package SHA256: `652c3a4a1f091d875bfacdd44da9a91bc02fec90af3fe76cf3a71a6dc80aba58` - Archive SHA256: `6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc` - Install simulated: `True` diff --git a/reports/review-studio.html b/reports/review-studio.html index 563fc026..10a710a5 100644 --- a/reports/review-studio.html +++ b/reports/review-studio.html @@ -676,12 +676,12 @@

核心指标

-
Skill IR2.0.0

5 targets in platform-neutral contract

Compiler5/5

target contracts compiled from Skill IR

Output Delta100.0

5 cases; 1 file-backed

Exec Runs10

command 10; model 0; recorded 0

Blind A/B5

review pairs hide baseline vs with-skill labels

Review Kit0/5

pending 5; answer key hidden

Review A/B0/5

adjudication decisions; pending 5

Public Claimblocked

4 blockers; local reproducible true

Blueprint20/20

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

Runtime5/5

target conformance pass rate

Perm Probe4/4

0 native; 4 installer-enforced

Trust0

105 scripts scanned; secrets found

Py Compat0

169 files scanned for Python 3.11

Arch Debt0

894 largest lines; 34 CLI handlers

Atlas5

12 scanned skills; route collisions

Driftlow

1 metadata events; 0 missed triggers

Waivers0

0 gates covered; human risk decisions

Intake4/4

0 valid submissions; 0 invalid

Claim Guard0

75 public surfaces scanned

Notes0/0

0 open blocker annotations

Registry1.1.0

5 targets; MIT license

Archivepass

586 zip entries; package verification

Installpass

4 adapters; 12 permissions enforced; 0 permission failures

Upgrademinor

declared minor; 0 breaking changes

+
Skill IR2.0.0

5 targets in platform-neutral contract

Compiler5/5

target contracts compiled from Skill IR

Output Delta100.0

5 cases; 1 file-backed

Exec Runs10

command 10; model 0; recorded 0

Blind A/B5

review pairs hide baseline vs with-skill labels

Review Kit0/5

pending 5; answer key hidden

Review A/B0/5

adjudication decisions; pending 5

Public Claimblocked

5 blockers; local reproducible true

Blueprint20/20

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

Runtime5/5

target conformance pass rate

Perm Probe4/4

0 native; 4 installer-enforced

Trust0

106 scripts scanned; secrets found

Py Compat0

171 files scanned for Python 3.11

Arch Debt0

886 largest lines; 34 CLI handlers

Atlas5

12 scanned skills; route collisions

Driftlow

1 metadata events; 0 missed triggers

Waivers0

0 gates covered; human risk decisions

Intake4/4

0 valid submissions; 0 invalid

Claim Guard0

76 public surfaces scanned

Notes0/0

0 open blocker annotations

Registry1.1.0

5 targets; MIT license

Archivepass

586 zip entries; package verification

Installpass

4 adapters; 12 permissions enforced; 0 permission failures

Upgrademinor

declared minor; 0 breaking changes

审查闸门

-
通过

意图画布

intent confidence 100/100; Intent is clear enough to package the first routeable version.

reports/intent-confidence.json 证据
通过

触发实验

13 trigger cases; 0 misroutes; 0 ambiguous

reports/route_scorecard.json 证据
关注

输出实验

5/5 cases; with-skill 100.0; baseline 0.0; file-backed 1; near-neighbor 1; blind A/B 5; exec 10; command 10; model 0; recorded 0; reviewed 0/5; review pending 5

reports/output_quality_scorecard.json 证据
通过

上下文

initial load 960/1000; deferred 414478/120000; top deferred scripts 365888; resource governance governed; quality density 135.4

reports/context_budget.json 证据
通过

运行矩阵

5 / 5 targets pass

reports/conformance_matrix.json 证据
通过

信任报告

0 secrets; 105 scripts; 3 network-capable scripts; 0 help smoke failures

reports/security_trust_report.json 证据
通过

Python 兼容

Python 3.11; 169 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards

reports/python_compatibility.json 证据
通过

架构维护

166 Python files; 0 hotspots; 0 blockers; largest 894 lines; 34 CLI handlers

reports/architecture_maintainability.json 证据
通过

权限批准

3/3 permissions approved; gaps 0; required file_write, network, subprocess

reports/security_trust_report.json + security/permission_policy.json 证据
通过

权限探针

4/4 targets probed; native 0; metadata fallback 4; installer 4; residual risks 4

reports/runtime_permission_probes.json 证据
通过

组合治理

12 skills, 1 actionable; 0 actionable route collisions; 0 actionable owner gaps; 0 actionable stale; 0 actionable drift; 24 scoped non-actionable issues

reports/skill_atlas.json 证据
通过

运营回路

1 metadata events; adoption 100.0; missed 0; bad-output 0; risk low

reports/adoption_drift_report.json 证据
关注

人工批准

0 active waivers; 1 warning gates still need reviewer decision

reports/review_waivers.json 证据
关注

世界证据

4 pending world-class evidence entries; 1 human pending; 3 external pending; source checks 7/13 pass; 6 blocked; overclaim guard true

reports/world_class_evidence_ledger.json 证据
通过

注册审计

yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures

reports/registry_audit.json + reports/install_simulation.json 证据
通过

发布路线

0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended

reports/promotion_decisions.json + reports/upgrade_check.json + docs/migration-v2.md 证据
+
通过

意图画布

intent confidence 100/100; Intent is clear enough to package the first routeable version.

reports/intent-confidence.json 证据
通过

触发实验

13 trigger cases; 0 misroutes; 0 ambiguous

reports/route_scorecard.json 证据
关注

输出实验

5/5 cases; with-skill 100.0; baseline 0.0; file-backed 1; near-neighbor 1; blind A/B 5; exec 10; command 10; model 0; recorded 0; reviewed 0/5; review pending 5

reports/output_quality_scorecard.json 证据
通过

上下文

initial load 960/1000; deferred 416415/120000; top deferred scripts 367825; resource governance governed; quality density 135.4

reports/context_budget.json 证据
通过

运行矩阵

5 / 5 targets pass

reports/conformance_matrix.json 证据
通过

信任报告

0 secrets; 106 scripts; 3 network-capable scripts; 0 help smoke failures

reports/security_trust_report.json 证据
通过

Python 兼容

Python 3.11; 171 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards

reports/python_compatibility.json 证据
通过

架构维护

168 Python files; 0 hotspots; 0 blockers; largest 886 lines; 34 CLI handlers

reports/architecture_maintainability.json 证据
通过

权限批准

3/3 permissions approved; gaps 0; required file_write, network, subprocess

reports/security_trust_report.json + security/permission_policy.json 证据
通过

权限探针

4/4 targets probed; native 0; metadata fallback 4; installer 4; residual risks 4

reports/runtime_permission_probes.json 证据
通过

组合治理

12 skills, 1 actionable; 0 actionable route collisions; 0 actionable owner gaps; 0 actionable stale; 0 actionable drift; 24 scoped non-actionable issues

reports/skill_atlas.json 证据
通过

运营回路

1 metadata events; adoption 100.0; missed 0; bad-output 0; risk low

reports/adoption_drift_report.json 证据
关注

人工批准

0 active waivers; 1 warning gates still need reviewer decision

reports/review_waivers.json 证据
关注

世界证据

4 pending world-class evidence entries; 1 human pending; 3 external pending; source checks 7/13 pass; 6 blocked; overclaim guard true

reports/world_class_evidence_ledger.json 证据
通过

注册审计

yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures

reports/registry_audit.json + reports/install_simulation.json 证据
通过

发布路线

0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended

reports/promotion_decisions.json + reports/upgrade_check.json + docs/migration-v2.md 证据
@@ -743,17 +743,17 @@
-

上下文

initial load 960/1000; deferred 414478/120000; top deferred scripts 365888; resource governance governed; quality density 135.4

+

上下文

initial load 960/1000; deferred 416415/120000; top deferred scripts 367825; resource governance governed; quality density 135.4

编译证据

Review reports/compiled_targets.md before packaging to inspect target adapter modes, generated files, preserved semantics, warnings, and unsupported features.

-

信任报告

Secret
0
脚本数
105
网络脚本
3
Help 失败
0
包体哈希
37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba
+

信任报告

Secret
0
脚本数
106
网络脚本
3
Help 失败
0
包体哈希
28625ce8b3fcb3e214ef3b8ffc748d9cff551e4c5a1b78786c1a2b7d7005f679

安全边界

高风险 secret、远程 inline execution、缺失依赖策略或无法解释的脚本接口应阻断 governed release。

-

Python 兼容

目标 Python
3.11
文件数
169
问题数
0
语法错误
0
F-string 3.11
0
+

Python 兼容

目标 Python
3.11
文件数
171
问题数
0
语法错误
0
F-string 3.11
0

解释器边界

CI 和发布审查以 Python 3.11 兼容为底线;本地更高版本允许的新语法不能绕过兼容门禁。

@@ -801,13 +801,13 @@
-

蓝图覆盖

项目数
20
模块数
8
建议 PR
12
通过数
20
Warn Count
0
缺失数
0
Extension Track Count
2
Extension Partial Count
2
Extension Planned Count
0
Adaptive Extension Ready
本地蓝图
世界级
待补证据
4
+

蓝图覆盖

项目数
20
模块数
8
建议 PR
12
通过数
20
Warn Count
0
缺失数
0
Extension Track Count
2
Extension Covered Count
1
Extension Partial Count
1
Extension Planned Count
0
Adaptive Extension Ready
本地蓝图
世界级
待补证据
4

覆盖边界

蓝图覆盖只证明 2.0 模块、建议 PR、脚本、报告和测试在本地闭环;public world-class 仍以 world-class evidence ledger 的真人和外部证据为准。

-

公开声明

本地复现
发布锁
可公开声明
声明阻断
4
Provider 证据
人审完成
世界级就绪
-

声明阻断

  • 阻断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)
  • 阻断world-class source checks are not all accepted (7/13 pass, 6 blocked)
+

公开声明

本地复现
发布锁
可公开声明
声明阻断
5
Provider 证据
人审完成
世界级就绪
+

声明阻断

  • 阻断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)
  • 阻断world-class source checks are not all accepted (6/13 pass, 7 blocked)
@@ -821,7 +821,7 @@
-

声明守卫

台账可声明
台账待补
4
声明面
75
违规数
0
Overclaim Guard Active
+

声明守卫

台账可声明
台账待补
4
声明面
76
违规数
0
Overclaim Guard Active

声明边界

claim guard 扫描 README、docs 和 reports 中的完成态表述;ledger 未 ready 时,任何英文完成断言、true 状态声明或中文完成态都会阻断发布审查。

diff --git a/reports/review-studio.json b/reports/review-studio.json index c050471a..9acc5231 100644 --- a/reports/review-studio.json +++ b/reports/review-studio.json @@ -43,7 +43,7 @@ "key": "context-budget", "label": "上下文", "status": "pass", - "detail": "initial load 960/1000; deferred 414478/120000; top deferred scripts 365888; resource governance governed; quality density 135.4", + "detail": "initial load 960/1000; deferred 416415/120000; top deferred scripts 367825; resource governance governed; quality density 135.4", "evidence": "reports/context_budget.json", "link": "context_budget.md" }, @@ -59,7 +59,7 @@ "key": "trust-report", "label": "信任报告", "status": "pass", - "detail": "0 secrets; 105 scripts; 3 network-capable scripts; 0 help smoke failures", + "detail": "0 secrets; 106 scripts; 3 network-capable scripts; 0 help smoke failures", "evidence": "reports/security_trust_report.json", "link": "security_trust_report.md" }, @@ -67,7 +67,7 @@ "key": "python-compat", "label": "Python 兼容", "status": "pass", - "detail": "Python 3.11; 169 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards", + "detail": "Python 3.11; 171 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards", "evidence": "reports/python_compatibility.json", "link": "python_compatibility.md" }, @@ -75,7 +75,7 @@ "key": "architecture-maintainability", "label": "架构维护", "status": "pass", - "detail": "166 Python files; 0 hotspots; 0 blockers; largest 894 lines; 34 CLI handlers", + "detail": "168 Python files; 0 hotspots; 0 blockers; largest 886 lines; 34 CLI handlers", "evidence": "reports/architecture_maintainability.json", "link": "architecture_maintainability.md" }, @@ -1080,7 +1080,7 @@ "external_pending_count": 3, "human_pending_count": 1, "source_check_count": 13, - "source_pass_count": 7, + "source_pass_count": 6, "conclusion_zh": "世界级证据尚未完成:4 项待补,0 项已接受。", "conclusion_en": "World-class evidence is not complete: 4 pending, 0 accepted.", "entries": [ @@ -1139,7 +1139,8 @@ "summary_zh": "真实外部客户端 metadata-only 事件仍未导入。", "summary_en": "Real external-client metadata-only events have not been imported yet.", "blocked_checks": [ - "External events" + "External events", + "Adoption sample" ] } ] @@ -1180,7 +1181,7 @@ "path": "scripts", "label": "Deterministic helpers or local tooling", "kind": "folder", - "file_count": 105 + "file_count": 106 }, { "path": "evals", @@ -1195,7 +1196,7 @@ "file_count": 211 } ], - "file_count": 383, + "file_count": 384, "folder_count": 4, "distribution": [ { @@ -1220,7 +1221,7 @@ }, { "label": "scripts", - "value": 105 + "value": 106 }, { "label": "evals", @@ -1350,7 +1351,7 @@ "path": "scripts", "label": "Deterministic helpers or local tooling", "kind": "folder", - "file_count": 105 + "file_count": 106 }, { "path": "evals", @@ -1663,12 +1664,12 @@ "ok": true, "summary": { "reproducibility_ready": true, - "release_lock_ready": true, + "release_lock_ready": false, "methodology_complete": true, "required_artifact_count": 24, "missing_artifact_count": 0, - "evidence_bundle_sha256": "890927c5a98eb60b569171a7473c213a5094d3a8e9b84705d687c4f3335220fd", - "source_contract_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba", + "evidence_bundle_sha256": "119f209f1d4665b38a489cc372140ec9f01c663c4d2637048e82b924cfadb6c5", + "source_contract_sha256": "ecb6c742c79077b26d1f9e61ede1b1c4c078b485fc57467b969d9c1744bc91b6", "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc", "output_case_count": 5, "failure_disclosure_count": 3, @@ -1684,14 +1685,14 @@ "world_class_task_count": 4, "world_class_ledger_pending_count": 4, "world_class_source_check_count": 13, - "world_class_source_pass_count": 7, - "world_class_source_blocked_count": 6, + "world_class_source_pass_count": 6, + "world_class_source_blocked_count": 7, "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": 61 }, - "commit": "aacf3282f562414faf8cc6c68538d2d53c6b48e3", + "commit": "5495734e7e33b19b84a932626112d783a3edf271", "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.", @@ -1775,8 +1776,8 @@ "failures": [] }, "trust_security": { - "scanned_files": 192, - "script_count": 105, + "scanned_files": 193, + "script_count": 106, "internal_module_count": 26, "secret_findings": 0, "dependency_files": [ @@ -1785,18 +1786,18 @@ "network_script_count": 3, "network_policy_covered_count": 3, "network_policy_missing_count": 0, - "file_write_script_count": 66, + "file_write_script_count": 67, "permission_required_count": 3, "permission_approved_count": 3, "permission_missing_count": 0, "permission_invalid_count": 0, "permission_expired_count": 0, - "help_smoke_checked_count": 79, + "help_smoke_checked_count": 80, "help_smoke_failed_count": 0, "interactive_script_count": 0, "package_hash_scope": "source-contract-without-generated-reports", - "package_hash_file_count": 192, - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba" + "package_hash_file_count": 193, + "package_sha256": "ecb6c742c79077b26d1f9e61ede1b1c4c078b485fc57467b969d9c1744bc91b6" }, "skill_atlas": { "skill_count": 12, @@ -1894,7 +1895,7 @@ "ok": true, "summary": { "archive_present": true, - "archive_entry_count": 598, + "archive_entry_count": 601, "archive_extracted": true, "entrypoint_loaded": true, "manifest_loaded": true, @@ -1983,14 +1984,14 @@ "ok": true, "summary": { "event_count": 1, - "adoption_sample_count": 1, - "activation_count": 1, - "accepted_count": 1, + "adoption_sample_count": 0, + "activation_count": 0, + "accepted_count": 0, "edited_count": 0, "rejected_count": 0, "missed_count": 0, "failed_count": 0, - "adoption_rate": 100.0, + "adoption_rate": 0, "missed_trigger_count": 0, "wrong_trigger_count": 0, "bad_output_count": 0, @@ -1999,7 +2000,7 @@ "review_overdue_count": 0, "risk_band": "low", "event_types": { - "skill_activation": 1 + "review_event": 1 }, "failure_types": {}, "source_types": { @@ -2221,7 +2222,7 @@ "status": "external_required", "category": "external", "owner": "Browser/Chrome/IDE/provider client integrator", - "current": "external source events 0; adoption samples 1", + "current": "external source events 0; adoption samples 0", "objective": "Import production metadata-only events from a real external client into the local drift loop.", "runbook": [ "python3 scripts/telemetry_native_host.py . --write-launcher /tmp/yao-telemetry-host.sh --write-manifest /tmp/yao-telemetry-host.json --allowed-origin chrome-extension:///", @@ -2273,8 +2274,8 @@ "missing_submission_count": 4, "invalid_submission_count": 0, "source_check_count": 13, - "source_pass_count": 7, - "source_blocked_count": 6, + "source_pass_count": 6, + "source_blocked_count": 7, "submitted_but_pending_count": 0, "source_accepted_without_valid_submission_count": 0, "overclaim_guard_active": true, @@ -2610,7 +2611,7 @@ "status": "pending", "source_status": "external_required", "source_accepted": false, - "current": "external source events 0; adoption samples 1", + "current": "external source events 0; adoption samples 0", "objective": "Import production metadata-only events from a real external client into the local drift loop.", "runbook": [ "python3 scripts/telemetry_native_host.py . --write-launcher /tmp/yao-telemetry-host.sh --write-manifest /tmp/yao-telemetry-host.json --allowed-origin chrome-extension:///", @@ -2647,7 +2648,7 @@ ], "observed_state": { "external_source_events": 0, - "adoption_sample_count": 1, + "adoption_sample_count": 0, "raw_content_allowed": false, "risk_band": "low", "accepted": false @@ -2668,8 +2669,8 @@ "label": "Adoption sample", "field": "adoption_sample_count", "expected": ">0", - "actual": 1, - "status": "pass", + "actual": 0, + "status": "blocked", "source_accepted": false, "next_action": "Telemetry must include adoption outcome evidence." }, @@ -2685,8 +2686,8 @@ } ], "source_check_count": 3, - "source_pass_count": 2, - "source_blocked_count": 1, + "source_pass_count": 1, + "source_blocked_count": 2, "submission_state": { "status": "missing", "path": "evidence/world_class/submissions/native-client-telemetry.json", @@ -4333,7 +4334,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 58.58, + "duration_ms": 42.05, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -4361,7 +4362,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 40.49, + "duration_ms": 36.82, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -4384,7 +4385,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 39.32, + "duration_ms": 38.87, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -4412,7 +4413,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 38.11, + "duration_ms": 35.73, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -4435,7 +4436,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 50.33, + "duration_ms": 35.53, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -4463,7 +4464,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 50.85, + "duration_ms": 48.73, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -4486,7 +4487,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 40.77, + "duration_ms": 65.97, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -4513,7 +4514,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 37.9, + "duration_ms": 60.32, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -4536,7 +4537,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 36.65, + "duration_ms": 50.55, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -4565,7 +4566,7 @@ "execution_mode": "command", "model_executed": false, "command_executed": true, - "duration_ms": 35.4, + "duration_ms": 44.37, "provider": "local-output-eval-runner", "model": "", "usage": { @@ -5286,22 +5287,35 @@ "ok": true, "generated_at": "2026-06-15", "skill_dir": ".", - "commit": "aacf3282f562414faf8cc6c68538d2d53c6b48e3", + "commit": "5495734e7e33b19b84a932626112d783a3edf271", "git_status": { "available": true, - "dirty": false, - "changed_file_count": 0, - "sample": [], + "dirty": true, + "changed_file_count": 61, + "sample": [ + " M Makefile", + " M README.md", + " M reports/adoption_drift_report.json", + " M reports/adoption_drift_report.md", + " M reports/architecture_maintainability.json", + " M reports/architecture_maintainability.md", + " M reports/benchmark_reproducibility.json", + " M reports/benchmark_reproducibility.md", + " M reports/compiled_targets.json", + " M reports/context_budget.json", + " M reports/context_budget.md", + " M reports/context_budget_summary.json" + ], "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": 24, "missing_artifact_count": 0, - "evidence_bundle_sha256": "890927c5a98eb60b569171a7473c213a5094d3a8e9b84705d687c4f3335220fd", - "source_contract_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba", + "evidence_bundle_sha256": "119f209f1d4665b38a489cc372140ec9f01c663c4d2637048e82b924cfadb6c5", + "source_contract_sha256": "ecb6c742c79077b26d1f9e61ede1b1c4c078b485fc57467b969d9c1744bc91b6", "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc", "output_case_count": 5, "failure_disclosure_count": 3, @@ -5317,29 +5331,30 @@ "world_class_task_count": 4, "world_class_ledger_pending_count": 4, "world_class_source_check_count": 13, - "world_class_source_pass_count": 7, - "world_class_source_blocked_count": 6, + "world_class_source_pass_count": 6, + "world_class_source_blocked_count": 7, "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": 61 }, "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)", - "world-class source checks are not all accepted (7/13 pass, 6 blocked)" + "world-class source checks are not all accepted (6/13 pass, 7 blocked)" ], "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": "aacf3282f562414faf8cc6c68538d2d53c6b48e3", + "ready": false, + "commit": "5495734e7e33b19b84a932626112d783a3edf271", "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)", @@ -5347,7 +5362,7 @@ "existing_count": 24, "missing_count": 0, "missing_paths": [], - "sha256": "890927c5a98eb60b569171a7473c213a5094d3a8e9b84705d687c4f3335220fd" + "sha256": "119f209f1d4665b38a489cc372140ec9f01c663c4d2637048e82b924cfadb6c5" }, "methodology": { "path": "reports/benchmark_methodology.md", @@ -5421,7 +5436,7 @@ "path": "reports/output_execution_runs.json", "exists": true, "bytes": 7965, - "sha256": "f2e8168cc313a28f49e462be3db8dab0c084dbcc5c39175f488e6ec8538bddeb" + "sha256": "e559e6acf9f2e709f65dc36ea5646199a367fb760d7b7e6014570c59d3f46a55" }, { "label": "blind_review", @@ -5455,15 +5470,15 @@ "label": "trust_report", "path": "reports/security_trust_report.json", "exists": true, - "bytes": 104587, - "sha256": "00a557726381efed028a11fa563ce692956cd265391928ffbf68382218fe8e99" + "bytes": 105694, + "sha256": "5c1cc74ef5306f2959c7bc4d01068dd2cc36a840500724922f2fb346e63ddbc5" }, { "label": "python_compatibility", "path": "reports/python_compatibility.json", "exists": true, - "bytes": 21994, - "sha256": "533cd8824a27329e5577598cdc4cf3327fcb153288f19bea45de9ea21a9e3c15" + "bytes": 22252, + "sha256": "fcf288346cb5159e070b2df75a8e371cca2501945c971aead521e7ac3557a4bc" }, { "label": "registry_audit", @@ -5484,70 +5499,70 @@ "path": "reports/install_simulation.json", "exists": true, "bytes": 8758, - "sha256": "9c2e297394f92a6b9a8826165ccb32e7eb970ce90b7312f5e125a7f95fe6724f" + "sha256": "491fabea4624d41967ff04952b72e0b165882c1b3b276124047c921daea4f3b7" }, { "label": "skill_os2_audit", "path": "reports/skill_os2_audit.json", "exists": true, "bytes": 14310, - "sha256": "47c5859d2a9c22c1a7c49381e363648e7ff09330ba62b2f2b27b0ab8aa4f4071" + "sha256": "8481f4d78f2ad4ff0e74936b58b643a91052a30b6d12bcbbf24e0b4291b8fb1f" }, { "label": "world_class_evidence_plan", "path": "reports/world_class_evidence_plan.json", "exists": true, "bytes": 19940, - "sha256": "b408af112c784fdc3e96ea9ecf374990b9f58a0ebfa4df18394ccd9e93dc5545" + "sha256": "933cdb0021818c0a8c5fc199af7dfa7879777ebf7959ed3a36bba52a0aed9c6c" }, { "label": "world_class_evidence_ledger", "path": "reports/world_class_evidence_ledger.json", "exists": true, - "bytes": 20003, - "sha256": "cc886713ba5b99bdb2f740217f0979a30312aef7539d2a22af0e96ec5c3e90bf" + "bytes": 20006, + "sha256": "5407409841eb8e1174a07ea0af17ddf709155f0c548c897b82c2f75b869b333a" }, { "label": "world_class_evidence_intake", "path": "reports/world_class_evidence_intake.json", "exists": true, "bytes": 18865, - "sha256": "2fbecc603d8dc6382fde6c61869aaf4b56fc9d1be5afcd07b345c419dce6d55a" + "sha256": "b10e1ce0a5a17df72462ce8f0c468356f58ff88bd7ceab349c82a1fb3b6697ef" }, { "label": "world_class_submission_review", "path": "reports/world_class_submission_review.json", "exists": true, - "bytes": 12410, - "sha256": "bc690472684dcdb8c77803b730857f98e6b6eb11f1e741d5fcc1aa9303b77e47" + "bytes": 12413, + "sha256": "3bce5f072d037a6c383cfd597f8530c2bc87ba31781fa90c843a9186dd2f8fea" }, { "label": "world_class_operator_runbook", "path": "reports/world_class_operator_runbook.json", "exists": true, - "bytes": 23957, - "sha256": "b4640688026ef9199e96f80bd2d9971aaca3ec6d092d8ecd052a5debc0aa94c7" + "bytes": 24021, + "sha256": "d377b8d99831ce297011e4e270fc7287a53727500f5d503dd3dc4b984d26f0ad" }, { "label": "world_class_operator_runbook_markdown", "path": "reports/world_class_operator_runbook.md", "exists": true, - "bytes": 15025, - "sha256": "3a916ac568377d8df7d612426f7358283eddfa2ab5fedb7ed12db0097a8b3c48" + "bytes": 15080, + "sha256": "9f141f09bf485a4299b37eb8c21ebab9f212ea130a0daea8b0d7d5bd7ab020aa" }, { "label": "world_class_operator_runbook_html", "path": "reports/world_class_operator_runbook.html", "exists": true, - "bytes": 20969, - "sha256": "886b915da0f27fb46f4d8cebb6211ab5066a9fd44e1ec2e3206487d9a8abfff2" + "bytes": 21030, + "sha256": "04cc091b113f018072d07a1d71ad142773c415a49e633493689903e7b399b5e6" }, { "label": "world_class_claim_guard", "path": "reports/world_class_claim_guard.json", "exists": true, "bytes": 8634, - "sha256": "8817531d97d4f24ccc297956e71dbb4a8dbba24bf705f8a77b77e6b88097a03c" + "sha256": "a2e6953e92e667cc0913c08e48b6954ea48420ad3a4056ed15eb19a183825e67" } ], "missing_artifacts": [], @@ -5677,7 +5692,7 @@ "skill_os2_coverage": { "schema_version": "1.0", "ok": true, - "generated_at": "2026-06-13", + "generated_at": "2026-06-15", "skill_dir": ".", "summary": { "item_count": 20, @@ -5687,9 +5702,9 @@ "warn_count": 0, "missing_count": 0, "extension_track_count": 2, - "extension_partial_count": 2, + "extension_partial_count": 1, "extension_planned_count": 0, - "extension_covered_count": 0, + "extension_covered_count": 1, "adaptive_extension_ready": false, "local_blueprint_ready": true, "public_world_class_ready": false, @@ -5702,7 +5717,8 @@ "missing": 0 }, "extension_status_counts": { - "partial": 2 + "covered": 1, + "partial": 1 }, "modules": [ { @@ -5806,7 +5822,7 @@ "label": "Trust Security", "status": "pass", "objective": "Scripts, dependencies, permissions, secrets, and package hash are reviewable for team distribution.", - "current": "105 scripts; secrets 0; help failures 0", + "current": "106 scripts; secrets 0; help failures 0", "command": "python3 scripts/yao.py trust .", "test": "python3 tests/verify_trust_check.py", "evidence": [ @@ -6288,9 +6304,9 @@ { "key": "skill-interpretation-report", "label": "Skill Interpretation Report", - "status": "partial", + "status": "covered", "objective": "User-facing deep interpretation report explains use cases, triggers, inputs, outputs, workflow, principles, boundaries, quality gates, examples, and next iterations.", - "current": "Skill Overview v2 already covers much of the explainer experience, but dedicated skill-interpretation JSON/MD/HTML artifacts are not first-class yet.", + "current": "Skill Overview v2 is canonical and mirrored as first-class skill-interpretation HTML/JSON with schema and tests.", "target": "Either keep skill-overview as the canonical interpretation report with an explicit contract, or split a dedicated reports/skill-interpretation.* renderer and tests.", "evidence": [ { @@ -6307,18 +6323,18 @@ }, { "path": "scripts/render_skill_interpretation.py", - "exists": false + "exists": true }, { "path": "schemas/skill-interpretation.schema.json", - "exists": false + "exists": true }, { "path": "tests/verify_skill_interpretation.py", - "exists": false + "exists": true } ], - "next_action": "Decide whether overview v2 is the canonical interpretation surface; if not, add a dedicated schema, renderer, and CJK/path-safety tests." + "next_action": "Keep overview and interpretation contracts in lockstep when report sections, metrics, or layout semantics change." }, { "key": "adaptive-self-iteration", @@ -6386,7 +6402,7 @@ ], "next_highest_leverage": [ "Close the four world-class evidence ledger entries with accepted human or external evidence.", - "Clarify whether Skill Overview v2 is the canonical interpretation report or split a dedicated skill-interpretation renderer.", + "Keep the first-class skill interpretation report and Skill Overview v2 contract synchronized as the report model evolves.", "Start adaptive self-iteration as explicit-source, proposal-only, approval-gated work; do not scan private logs by default.", "Keep the blueprint coverage report in CI so 2.0 plan drift is visible." ], @@ -6794,7 +6810,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -6839,6 +6855,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -6900,14 +6917,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -6929,7 +6946,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -7042,7 +7059,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -7087,6 +7104,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -7148,14 +7166,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -7175,7 +7193,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -7651,7 +7669,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -7696,6 +7714,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -7757,14 +7776,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -7786,7 +7805,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -7899,7 +7918,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -7944,6 +7963,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -8005,14 +8025,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -8032,7 +8052,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -8508,7 +8528,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -8553,6 +8573,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -8614,14 +8635,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -8643,7 +8664,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -8749,7 +8770,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -8794,6 +8815,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -8855,14 +8877,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -8882,7 +8904,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -9349,7 +9371,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -9394,6 +9416,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -9455,14 +9478,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -9484,7 +9507,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -9590,7 +9613,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -9635,6 +9658,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -9696,14 +9720,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -9723,7 +9747,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -10190,7 +10214,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -10235,6 +10259,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -10296,14 +10321,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -10325,7 +10350,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -10435,7 +10460,7 @@ }, "file_write": { "required": true, - "script_count": 66, + "script_count": 67, "scripts": [ "scripts/adjudicate_output_review.py", "scripts/build_confusion_matrix.py", @@ -10480,6 +10505,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -10541,14 +10567,14 @@ }, "help_smoke": { "enabled": true, - "checked_count": 79, + "checked_count": 80, "failed_count": 0, "failed_scripts": [] }, "trust_summary": { "secret_findings": 0, "network_script_count": 3, - "file_write_script_count": 66, + "file_write_script_count": 67, "subprocess_script_count": 9, "interactive_script_count": 0, "help_smoke_failed_count": 0 @@ -10568,7 +10594,7 @@ ], "capability_counts": { "network": 3, - "file_write": 66, + "file_write": 67, "subprocess": 9, "interactive": 0 }, @@ -11308,8 +11334,8 @@ "ok": true, "skill_dir": ".", "summary": { - "scanned_files": 192, - "script_count": 105, + "scanned_files": 193, + "script_count": 106, "internal_module_count": 26, "secret_findings": 0, "dependency_files": [ @@ -11318,18 +11344,18 @@ "network_script_count": 3, "network_policy_covered_count": 3, "network_policy_missing_count": 0, - "file_write_script_count": 66, + "file_write_script_count": 67, "permission_required_count": 3, "permission_approved_count": 3, "permission_missing_count": 0, "permission_invalid_count": 0, "permission_expired_count": 0, - "help_smoke_checked_count": 79, + "help_smoke_checked_count": 80, "help_smoke_failed_count": 0, "interactive_script_count": 0, "package_hash_scope": "source-contract-without-generated-reports", - "package_hash_file_count": 192, - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba" + "package_hash_file_count": 193, + "package_sha256": "28625ce8b3fcb3e214ef3b8ffc748d9cff551e4c5a1b78786c1a2b7d7005f679" }, "failures": [], "warnings": [], @@ -12076,6 +12102,20 @@ "network_urls": [], "network_hosts": [] }, + { + "path": "scripts/render_skill_interpretation.py", + "interface": "cli", + "interface_declared": true, + "interface_reason": "Renders the first-class skill interpretation report while reusing the Skill Overview v2 model and layout.", + "has_argparse": true, + "has_main_guard": true, + "uses_input": false, + "uses_network": false, + "uses_file_write": true, + "uses_subprocess": false, + "network_urls": [], + "network_hosts": [] + }, { "path": "scripts/render_skill_os2_audit.py", "interface": "cli", @@ -12853,9 +12893,9 @@ "help_smoke": { "enabled": true, "timeout_seconds": 5.0, - "candidate_count": 79, - "checked_count": 79, - "passed_count": 79, + "candidate_count": 80, + "checked_count": 80, + "passed_count": 80, "failed_count": 0, "skipped_count": 26, "failed_scripts": [], @@ -13370,6 +13410,16 @@ "stdout_excerpt": "usage: render_review_waivers.py [-h] [--waivers-json WAIVERS_JSON]\n [--output-json OUTPUT_JSON]\n [--output-md OUTPUT_MD]\n [--generated-at GENERATED", "stderr_excerpt": "" }, + { + "path": "scripts/render_skill_interpretation.py", + "command": "python3 scripts/render_skill_interpretation.py --help", + "returncode": 0, + "timed_out": false, + "passed": true, + "has_help_text": true, + "stdout_excerpt": "usage: render_skill_interpretation.py [-h] [--output-html OUTPUT_HTML]\n [--output-json OUTPUT_JSON]\n [skill_dir]\n\nRender the first-class HTML skill interpretation rep", + "stderr_excerpt": "" + }, { "path": "scripts/render_skill_os2_audit.py", "command": "python3 scripts/render_skill_os2_audit.py --help", @@ -13853,6 +13903,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -13943,7 +13994,7 @@ "root": ".", "summary": { "target_python": "3.11", - "file_count": 169, + "file_count": 171, "issue_count": 0, "syntax_error_count": 0, "fstring_311_violation_count": 0, @@ -14290,6 +14341,12 @@ "issue_count": 0, "issues": [] }, + { + "path": "scripts/render_skill_interpretation.py", + "ok": true, + "issue_count": 0, + "issues": [] + }, { "path": "scripts/render_skill_os2_audit.py", "ok": true, @@ -14854,6 +14911,12 @@ "issue_count": 0, "issues": [] }, + { + "path": "tests/verify_skill_interpretation.py", + "ok": true, + "issue_count": 0, + "issues": [] + }, { "path": "tests/verify_skill_ir.py", "ok": true, @@ -14987,37 +15050,37 @@ "generated_at": "2026-06-13", "skill_dir": ".", "summary": { - "python_file_count": 166, - "script_file_count": 105, - "test_file_count": 61, + "python_file_count": 168, + "script_file_count": 106, + "test_file_count": 62, "internal_module_count": 29, - "cli_script_count": 78, + "cli_script_count": 79, "command_handler_count": 34, "warn_line_threshold": 900, "block_line_threshold": 1500, - "largest_file_lines": 894, + "largest_file_lines": 886, "hotspot_count": 0, "blocker_count": 0, "decision": "pass" }, "largest_files": [ - { - "path": "tests/verify_yao_cli.py", - "lines": 894, - "kind": "test", - "severity": "pass", - "recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands." - }, { "path": "scripts/yao.py", - "lines": 882, + "lines": 886, "kind": "cli-script", "severity": "pass", "recommendation": "Split command handlers by domain while keeping scripts/yao.py as the thin CLI orchestrator." }, + { + "path": "tests/verify_yao_cli.py", + "lines": 886, + "kind": "test", + "severity": "pass", + "recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands." + }, { "path": "scripts/skill_report_layout.py", - "lines": 805, + "lines": 808, "kind": "internal-module", "severity": "pass", "recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates." @@ -15031,14 +15094,14 @@ }, { "path": "scripts/yao_cli_parser.py", - "lines": 765, + "lines": 774, "kind": "internal-module", "severity": "pass", "recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates." }, { "path": "tests/verify_review_studio.py", - "lines": 749, + "lines": 751, "kind": "test", "severity": "pass", "recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands." @@ -15101,16 +15164,16 @@ "context_budget_tier": "production", "context_budget_limit": 1000, "skill_body_tokens": 767, - "other_text_tokens": 1283170, + "other_text_tokens": 1307850, "estimated_initial_load_tokens": 960, - "estimated_total_text_tokens": 1283937, - "deferred_resource_tokens": 414478, + "estimated_total_text_tokens": 1308617, + "deferred_resource_tokens": 416415, "deferred_resource_warn_threshold": 120000, "deferred_resource_dirs": [ { "path": "scripts", - "estimated_tokens": 365888, - "file_count": 105 + "estimated_tokens": 367825, + "file_count": 106 }, { "path": "references", @@ -15126,8 +15189,8 @@ "large_deferred_resource_dirs": [ { "path": "scripts", - "estimated_tokens": 365888, - "file_count": 105 + "estimated_tokens": 367825, + "file_count": 106 } ], "deferred_resource_governance": { @@ -15149,14 +15212,14 @@ ], "missing": [], "path": "scripts", - "estimated_tokens": 365888, - "file_count": 105, + "estimated_tokens": 367825, + "file_count": 106, "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": 537, + "relevant_file_count": 544, "unused_resource_dirs": [], "quality_signal_points": 130, "quality_density": 135.4 @@ -16072,6 +16135,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -17022,7 +17086,7 @@ "adoption_drift": { "ok": true, "schema_version": "2.0", - "generated_at": "2026-06-15T13:08:50Z", + "generated_at": "2026-06-15T13:28:42Z", "skill_dir": ".", "privacy_contract": { "storage": "local-first", @@ -18898,7 +18962,7 @@ "summary": { "ledger_ready_to_claim_world_class": false, "ledger_pending_count": 4, - "claim_surface_count": 75, + "claim_surface_count": 76, "violation_count": 0, "overclaim_guard_active": true, "decision": "claim-guard-pass-evidence-pending" @@ -19163,6 +19227,10 @@ "path": "reports/security_trust_report.md", "violation_count": 0 }, + { + "path": "reports/skill-interpretation.html", + "violation_count": 0 + }, { "path": "reports/skill-os-2-review.md", "violation_count": 0 @@ -19265,7 +19333,7 @@ "trust_level": "local", "license": "MIT", "checksums": { - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba", + "package_sha256": "ecb6c742c79077b26d1f9e61ede1b1c4c078b485fc57467b969d9c1744bc91b6", "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc" }, "compatibility": { @@ -19322,7 +19390,7 @@ "vscode" ], "package_metadata": "registry/packages/yao-meta-skill.json", - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba" + "package_sha256": "ecb6c742c79077b26d1f9e61ede1b1c4c078b485fc57467b969d9c1744bc91b6" } ] }, @@ -20011,7 +20079,7 @@ "installed_skill_dir": "tests/tmp_review_studio/install-root/simulate-yao-meta-skill/yao-meta-skill", "summary": { "archive_present": true, - "archive_entry_count": 598, + "archive_entry_count": 603, "archive_extracted": true, "entrypoint_loaded": true, "manifest_loaded": true, @@ -20358,7 +20426,7 @@ { "field": "package_sha256", "from": "0000000000000000000000000000000000000000000000000000000000000000", - "to": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba" + "to": "ecb6c742c79077b26d1f9e61ede1b1c4c078b485fc57467b969d9c1744bc91b6" } ] }, diff --git a/reports/review-viewer.json b/reports/review-viewer.json index a6e6e948..c5057252 100644 --- a/reports/review-viewer.json +++ b/reports/review-viewer.json @@ -35,6 +35,7 @@ "reports/world_class_evidence_ledger.md", "reports/review_annotations.md", "reports/review-studio.html", + "reports/skill-interpretation.html", "reports/skill-overview.html" ], "flow": [ @@ -411,7 +412,7 @@ "external_pending_count": 3, "human_pending_count": 1, "source_check_count": 13, - "source_pass_count": 7, + "source_pass_count": 6, "conclusion_zh": "世界级证据尚未完成:4 项待补,0 项已接受。", "conclusion_en": "World-class evidence is not complete: 4 pending, 0 accepted.", "entries": [ @@ -470,7 +471,8 @@ "summary_zh": "真实外部客户端 metadata-only 事件仍未导入。", "summary_en": "Real external-client metadata-only events have not been imported yet.", "blocked_checks": [ - "External events" + "External events", + "Adoption sample" ] } ] @@ -511,7 +513,7 @@ "path": "scripts", "label": "Deterministic helpers or local tooling", "kind": "folder", - "file_count": 105 + "file_count": 106 }, { "path": "evals", @@ -523,10 +525,10 @@ "path": "reports", "label": "Generated evidence and overview artifacts", "kind": "folder", - "file_count": 211 + "file_count": 213 } ], - "file_count": 383, + "file_count": 386, "folder_count": 4, "distribution": [ { @@ -551,7 +553,7 @@ }, { "label": "scripts", - "value": 105 + "value": 106 }, { "label": "evals", @@ -559,7 +561,7 @@ }, { "label": "reports", - "value": 211 + "value": 213 } ] }, @@ -681,7 +683,7 @@ "path": "scripts", "label": "Deterministic helpers or local tooling", "kind": "folder", - "file_count": 105 + "file_count": 106 }, { "path": "evals", @@ -693,7 +695,7 @@ "path": "reports", "label": "Generated evidence and overview artifacts", "kind": "folder", - "file_count": 211 + "file_count": 213 } ], "strengths": [ @@ -994,12 +996,12 @@ "ok": true, "summary": { "reproducibility_ready": true, - "release_lock_ready": true, + "release_lock_ready": false, "methodology_complete": true, "required_artifact_count": 24, "missing_artifact_count": 0, - "evidence_bundle_sha256": "890927c5a98eb60b569171a7473c213a5094d3a8e9b84705d687c4f3335220fd", - "source_contract_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba", + "evidence_bundle_sha256": "60df1cebf40b1627f6d313c233f377d0d36228a9525b70099623563c7efb7804", + "source_contract_sha256": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af", "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc", "output_case_count": 5, "failure_disclosure_count": 3, @@ -1015,14 +1017,14 @@ "world_class_task_count": 4, "world_class_ledger_pending_count": 4, "world_class_source_check_count": 13, - "world_class_source_pass_count": 7, - "world_class_source_blocked_count": 6, + "world_class_source_pass_count": 6, + "world_class_source_blocked_count": 7, "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": 73 }, - "commit": "aacf3282f562414faf8cc6c68538d2d53c6b48e3", + "commit": "5495734e7e33b19b84a932626112d783a3edf271", "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.", @@ -1106,8 +1108,8 @@ "failures": [] }, "trust_security": { - "scanned_files": 192, - "script_count": 105, + "scanned_files": 193, + "script_count": 106, "internal_module_count": 26, "secret_findings": 0, "dependency_files": [ @@ -1116,18 +1118,18 @@ "network_script_count": 3, "network_policy_covered_count": 3, "network_policy_missing_count": 0, - "file_write_script_count": 66, + "file_write_script_count": 67, "permission_required_count": 3, "permission_approved_count": 3, "permission_missing_count": 0, "permission_invalid_count": 0, "permission_expired_count": 0, - "help_smoke_checked_count": 79, + "help_smoke_checked_count": 80, "help_smoke_failed_count": 0, "interactive_script_count": 0, "package_hash_scope": "source-contract-without-generated-reports", - "package_hash_file_count": 192, - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba" + "package_hash_file_count": 193, + "package_sha256": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af" }, "skill_atlas": { "skill_count": 12, @@ -1165,7 +1167,7 @@ "trust_level": "local", "license": "MIT", "checksums": { - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba", + "package_sha256": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af", "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc" }, "compatibility": { @@ -1225,7 +1227,7 @@ "ok": true, "summary": { "archive_present": true, - "archive_entry_count": 598, + "archive_entry_count": 603, "archive_extracted": true, "entrypoint_loaded": true, "manifest_loaded": true, @@ -1297,7 +1299,7 @@ { "field": "package_sha256", "from": "0000000000000000000000000000000000000000000000000000000000000000", - "to": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba" + "to": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af" } ] }, @@ -1314,14 +1316,14 @@ "ok": true, "summary": { "event_count": 1, - "adoption_sample_count": 1, - "activation_count": 1, - "accepted_count": 1, + "adoption_sample_count": 0, + "activation_count": 0, + "accepted_count": 0, "edited_count": 0, "rejected_count": 0, "missed_count": 0, "failed_count": 0, - "adoption_rate": 100.0, + "adoption_rate": 0, "missed_trigger_count": 0, "wrong_trigger_count": 0, "bad_output_count": 0, @@ -1330,7 +1332,7 @@ "review_overdue_count": 0, "risk_band": "low", "event_types": { - "skill_activation": 1 + "review_event": 1 }, "failure_types": {}, "source_types": { @@ -1552,7 +1554,7 @@ "status": "external_required", "category": "external", "owner": "Browser/Chrome/IDE/provider client integrator", - "current": "external source events 0; adoption samples 1", + "current": "external source events 0; adoption samples 0", "objective": "Import production metadata-only events from a real external client into the local drift loop.", "runbook": [ "python3 scripts/telemetry_native_host.py . --write-launcher /tmp/yao-telemetry-host.sh --write-manifest /tmp/yao-telemetry-host.json --allowed-origin chrome-extension:///", @@ -1604,8 +1606,8 @@ "missing_submission_count": 4, "invalid_submission_count": 0, "source_check_count": 13, - "source_pass_count": 7, - "source_blocked_count": 6, + "source_pass_count": 6, + "source_blocked_count": 7, "submitted_but_pending_count": 0, "source_accepted_without_valid_submission_count": 0, "overclaim_guard_active": true, @@ -1941,7 +1943,7 @@ "status": "pending", "source_status": "external_required", "source_accepted": false, - "current": "external source events 0; adoption samples 1", + "current": "external source events 0; adoption samples 0", "objective": "Import production metadata-only events from a real external client into the local drift loop.", "runbook": [ "python3 scripts/telemetry_native_host.py . --write-launcher /tmp/yao-telemetry-host.sh --write-manifest /tmp/yao-telemetry-host.json --allowed-origin chrome-extension:///", @@ -1978,7 +1980,7 @@ ], "observed_state": { "external_source_events": 0, - "adoption_sample_count": 1, + "adoption_sample_count": 0, "raw_content_allowed": false, "risk_band": "low", "accepted": false @@ -1999,8 +2001,8 @@ "label": "Adoption sample", "field": "adoption_sample_count", "expected": ">0", - "actual": 1, - "status": "pass", + "actual": 0, + "status": "blocked", "source_accepted": false, "next_action": "Telemetry must include adoption outcome evidence." }, @@ -2016,8 +2018,8 @@ } ], "source_check_count": 3, - "source_pass_count": 2, - "source_blocked_count": 1, + "source_pass_count": 1, + "source_blocked_count": 2, "submission_state": { "status": "missing", "path": "evidence/world_class/submissions/native-client-telemetry.json", diff --git a/reports/security_trust_report.json b/reports/security_trust_report.json index 338e8e02..a7b32de5 100644 --- a/reports/security_trust_report.json +++ b/reports/security_trust_report.json @@ -2,8 +2,8 @@ "ok": true, "skill_dir": ".", "summary": { - "scanned_files": 192, - "script_count": 105, + "scanned_files": 193, + "script_count": 106, "internal_module_count": 26, "secret_findings": 0, "dependency_files": [ @@ -12,18 +12,18 @@ "network_script_count": 3, "network_policy_covered_count": 3, "network_policy_missing_count": 0, - "file_write_script_count": 66, + "file_write_script_count": 67, "permission_required_count": 3, "permission_approved_count": 3, "permission_missing_count": 0, "permission_invalid_count": 0, "permission_expired_count": 0, - "help_smoke_checked_count": 79, + "help_smoke_checked_count": 80, "help_smoke_failed_count": 0, "interactive_script_count": 0, "package_hash_scope": "source-contract-without-generated-reports", - "package_hash_file_count": 192, - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba" + "package_hash_file_count": 193, + "package_sha256": "652c3a4a1f091d875bfacdd44da9a91bc02fec90af3fe76cf3a71a6dc80aba58" }, "failures": [], "warnings": [], @@ -770,6 +770,20 @@ "network_urls": [], "network_hosts": [] }, + { + "path": "scripts/render_skill_interpretation.py", + "interface": "cli", + "interface_declared": true, + "interface_reason": "Renders the first-class skill interpretation report while reusing the Skill Overview v2 model and layout.", + "has_argparse": true, + "has_main_guard": true, + "uses_input": false, + "uses_network": false, + "uses_file_write": true, + "uses_subprocess": false, + "network_urls": [], + "network_hosts": [] + }, { "path": "scripts/render_skill_os2_audit.py", "interface": "cli", @@ -1547,9 +1561,9 @@ "help_smoke": { "enabled": true, "timeout_seconds": 5.0, - "candidate_count": 79, - "checked_count": 79, - "passed_count": 79, + "candidate_count": 80, + "checked_count": 80, + "passed_count": 80, "failed_count": 0, "skipped_count": 26, "failed_scripts": [], @@ -2064,6 +2078,16 @@ "stdout_excerpt": "usage: render_review_waivers.py [-h] [--waivers-json WAIVERS_JSON]\n [--output-json OUTPUT_JSON]\n [--output-md OUTPUT_MD]\n [--generated-at GENERATED", "stderr_excerpt": "" }, + { + "path": "scripts/render_skill_interpretation.py", + "command": "python3 scripts/render_skill_interpretation.py --help", + "returncode": 0, + "timed_out": false, + "passed": true, + "has_help_text": true, + "stdout_excerpt": "usage: render_skill_interpretation.py [-h] [--output-html OUTPUT_HTML]\n [--output-json OUTPUT_JSON]\n [skill_dir]\n\nRender the first-class HTML skill interpretation rep", + "stderr_excerpt": "" + }, { "path": "scripts/render_skill_os2_audit.py", "command": "python3 scripts/render_skill_os2_audit.py --help", @@ -2547,6 +2571,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", diff --git a/reports/security_trust_report.md b/reports/security_trust_report.md index f813033f..75e8eaca 100644 --- a/reports/security_trust_report.md +++ b/reports/security_trust_report.md @@ -1,22 +1,22 @@ # Security Trust Report - OK: `True` -- Scanned files: `192` -- Scripts: `105` +- Scanned files: `193` +- Scripts: `106` - Internal script modules: `26` - Secret findings: `0` - Network-capable scripts: `3` - Network policy covered scripts: `3` - Network policy missing scripts: `0` -- File-write scripts: `66` +- File-write scripts: `67` - Permission approvals: `3 / 3` - Permission approval gaps: `0` -- CLI help smoke checked: `79` +- CLI help smoke checked: `80` - CLI help smoke failures: `0` - Interactive scripts: `0` - Package hash scope: `source-contract-without-generated-reports` -- Package hash files: `192` -- Package SHA256: `37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba` +- Package hash files: `193` +- Package SHA256: `652c3a4a1f091d875bfacdd44da9a91bc02fec90af3fe76cf3a71a6dc80aba58` ## Failures @@ -54,8 +54,8 @@ - Enabled: `True` - Timeout seconds: `5.0` -- Checked scripts: `79` -- Passed scripts: `79` +- Checked scripts: `80` +- Passed scripts: `80` - Failed scripts: `none` ## Script Surface @@ -114,6 +114,7 @@ | scripts/render_review_studio.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. | | scripts/render_review_viewer.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. | | scripts/render_review_waivers.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. | +| scripts/render_skill_interpretation.py | cli | True | True | True | False | False | True | False | Renders the first-class skill interpretation report while reusing the Skill Overview v2 model and layout. | | scripts/render_skill_os2_audit.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. | | scripts/render_skill_os2_coverage.py | cli | True | True | True | False | False | True | False | Renders a Skill OS 2.0 blueprint-to-evidence coverage audit. | | scripts/render_skill_overview.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. | diff --git a/reports/skill-interpretation.html b/reports/skill-interpretation.html new file mode 100644 index 00000000..3e58445a --- /dev/null +++ b/reports/skill-interpretation.html @@ -0,0 +1,995 @@ + + + + + + yao-meta-skill Skill 生成审计报告 + + + + +
+ + +
+
+
+
+
+

YAO Skill 生成审计报告YAO Skill Generation Audit

+

yao-meta-skill

+

技能审计报告Yao Meta Skill Audit Report

+

这份报告默认使用中文简体,把新 Skill 的定位、指标、原理、契约、质量、风险、资产和迭代路线整理为一份可审计的 HTML 报告。Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.

+
技能名称:yao-meta-skillSkill name: yao-meta-skill成熟度:治理Maturity: governed格式:Agent SkillsFormat: agent-skills更新时间:2026-03-31Updated: 2026-03-31
+
openaiopenaiclaudeclaudegenericgenericvscodevscode
+
+ +
+
完整度Completeness100SKILL.md 已存在,是 Skill 的入口。SKILL.md exists and acts as the skill entrypoint.
触发清晰Trigger clarity100frontmatter description 已存在,具备基础路由面。The frontmatter description exists, giving the skill a basic routing surface.
证据充分Evidence depth100已生成 20 / 20 类报告证据。Generated 20 / 20 evidence report types.
上下文成本Context cost42入口约 356 个词/字,references 约 16045 个词/字。Entrypoint is about 356 words/characters; references are about 16045.
+
+ +
+
+
+

技能概述Overview

+

先用一屏说明这个 Skill 是什么、给谁用、交付什么。A first-screen explanation of what this skill is, who it serves, and what it delivers.

+
+
+
+

作用定位Role

+
  • 从工作流、提示词、对话记录、文档或笔记中创建、重构、评估和打包 agent skill;适用于新建 Skill、沉淀重复流程、改进现有 Skill、补充 eval 或团队复用打包。Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.
  • 把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。Turn one-off experience into a reusable, evaluable, and portable skill package.
  • 交付结果:SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/output_execution_runs.md, reports/output_blind_review_pack.md, reports/output_review_kit.md, reports/output_review_adjudication.md, reports/benchmark_reproducibility.md, reports/output_blind_answer_key.json, reports/conformance_matrix.md, reports/security_trust_report.md, reports/runtime_permission_probes.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/world_class_evidence_plan.md, reports/world_class_evidence_ledger.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-interpretation.html, reports/skill-overview.html, reports/skill-interpretation.jsonDeliverables: SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/output_execution_runs.md, reports/output_blind_review_pack.md, reports/output_review_kit.md, reports/output_review_adjudication.md, reports/benchmark_reproducibility.md, reports/output_blind_answer_key.json, reports/conformance_matrix.md, reports/security_trust_report.md, reports/runtime_permission_probes.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/world_class_evidence_plan.md, reports/world_class_evidence_ledger.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-interpretation.html, reports/skill-overview.html, reports/skill-interpretation.json
+
+
交付流程Delivery Flow输入材料Input materialSkill 包体Skill package可复用能力Reusable capability
交付流程把用户输入、生成的包体和可复用能力放在一条线上。The delivery flow places user input, generated package, and reusable capability on one path.
+
+
+
+ +
+
+
+

总览指标Metrics

+

分数来自本地文件和 reports 证据,缺失时明确标为证据不足。Scores are derived from package files and reports; missing inputs are shown as evidence gaps.

+
+
+

指标判读Reading

+

先看雷达图判断能力短板,再看每项分数的证据原因。分数不是装饰数字,必须和本地文件、reports 证据或证据不足提示对应。Read the radar first for weak spots, then inspect each score with its evidence. Scores must map to local files, reports, or explicit evidence gaps.

+
+
+
+
+
+
评分雷达Rating Radar完整度Completeness触发清晰Trigger clarity证据充分Evidence depth可维护性Maintainability可迁移性Portability
评分雷达展示结构完整度、触发边界、证据、维护和迁移的相对强弱。The radar chart compares completeness, trigger clarity, evidence, maintainability, and portability.
+
+

成熟度条Maturity Bar

+
  1. 稳定Stable完整度Completeness100SKILL.md 已存在,是 Skill 的入口。SKILL.md exists and acts as the skill entrypoint.
  2. 稳定Stable触发清晰Trigger clarity100frontmatter description 已存在,具备基础路由面。The frontmatter description exists, giving the skill a basic routing surface.
  3. 稳定Stable证据充分Evidence depth100已生成 20 / 20 类报告证据。Generated 20 / 20 evidence report types.
  4. 稳定Stable可维护性Maintainability100SKILL.md 约 356 个词/字。SKILL.md is about 356 words/characters.
  5. 稳定Stable可迁移性Portability100agents/interface.yaml 已存在。agents/interface.yaml exists.
  6. 关注Watch上下文成本Context cost42入口约 356 个词/字,references 约 16045 个词/字。Entrypoint is about 356 words/characters; references are about 16045.
+
+
+
完整度Completeness100
  • SKILL.md 已存在,是 Skill 的入口。SKILL.md exists and acts as the skill entrypoint.
  • README.md 已存在,便于人工阅读。README.md exists for human-readable usage.
  • agents/interface.yaml 已存在,便于跨平台适配。agents/interface.yaml exists for cross-platform adaptation.
触发清晰Trigger clarity100
  • frontmatter description 已存在,具备基础路由面。The frontmatter description exists, giving the skill a basic routing surface.
  • description 有足够长度说明任务边界。The description is long enough to explain the task boundary.
  • description 已包含使用场景或排除边界信号。The description includes usage-scenario or exclusion-boundary signals.
证据充分Evidence depth100
  • 已生成 20 / 20 类报告证据。Generated 20 / 20 evidence report types.
  • skill-ir.json 已存在。Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.
  • compiled_targets.json 已存在。Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.
可维护性Maintainability100
  • SKILL.md 约 356 个词/字。SKILL.md is about 356 words/characters.
  • 入口文件保持克制,可维护性较好。The entrypoint stays restrained, which supports maintainability.
  • references/ 已承载扩展指导。references/ carries extended guidance.
可迁移性Portability100
  • agents/interface.yaml 已存在。agents/interface.yaml exists.
  • manifest.json 已存在。manifest.json exists.
  • 目标平台或 adapter target 已声明。Target platforms or adapter targets are declared.
上下文成本Context cost42
  • 入口约 356 个词/字,references 约 16045 个词/字。Entrypoint is about 356 words/characters; references are about 16045.
  • 分数越高代表上下文成本越低。A higher score means lower context cost.
  • 上下文成本偏高,建议压缩入口或拆分 references。Context cost is high; compress the entrypoint or split references further.
+
+
+
+ +
+
+
+

能力画像Capability

+

判断这个 Skill 在能力地图中的位置和复用范围。Places this skill on a capability map and clarifies reuse scope.

+
+
+
能力矩阵Capability Matrix执行确定性Execution certainty知识密度Knowledge densityExecution operationExecution operation
能力矩阵说明这个 Skill 更偏知识密集还是执行确定。The capability matrix shows whether the skill leans toward knowledge density or execution certainty.
+
+

画像摘要Profile

+
  • 能力类型:Execution operationCapability type: Execution operation
  • 成熟度:governedMaturity: governed
  • 触发强度:手动触发 + description 路由Trigger strength: Manual activation plus description-based routing
  • 复用范围:跨平台Reuse scope: Cross-platform
+
+
+
+
+ +
+
+
+

原理结构Principle

+

说明入口、参考、脚本、评估和报告如何组成一个稳定闭环。Explains how entrypoint, references, scripts, evals, and reports form a stable loop.

+
+
+
分层结构Layered Structure入口层Entrypoint layer参考层Reference layer脚本层Script layer评估层Evaluation layer报告层Report layer
分层结构展示入口、参考、脚本、评估和报告如何各司其职。The layered structure shows how entrypoint, references, scripts, evals, and reports each carry a distinct role.
+
+
+

执行流程Execution Flow

+
  1. 判断请求是否应该沉淀为 Skill,并选择最轻量可靠的模式。Decide whether the request should become a skill and choose the lightest fit.
  2. 捕捉任务、输出、排除项、约束和质量标准。Capture job, output, exclusions, constraints, and standards.
  3. 运行参考扫描:先看外部 benchmark,再看用户材料,最后校验本地适配;只暴露不确定性或冲突。Run reference scan: external benchmarks first, user references second, local fit third; surface only uncertainty or conflict.
  4. 尽早写出 `description`,先测试路由质量,再扩展包体。Write the `description` early and test route quality before expanding the package.
  5. 只在确有价值时添加 output-risk、artifact-design、prompt-quality 和 system-model 报告。Add output-risk, artifact-design, prompt-quality, and system-model reports only when they matter.
+
+
+

调用方式How To Use

+
  1. 当你需要把工作流或笔记沉淀成结构精简、触发清晰且带必要 eval 的可复用 Skill 时使用 $yao-meta-skill。Use $yao-meta-skill to turn my workflow or notes into a reusable skill with lean structure, clear triggering, and the right evals.
  2. 当用户请求与该 Skill 的触发描述匹配时使用。Use this skill when the request matches the frontmatter description.
+
+
+
+
+
+ +
+
+
+

契约边界Contract

+

把触发、输入、输出和排除场景放在同一屏。Keeps trigger, inputs, outputs, and exclusions on the same screen.

+
+
+
+

触发描述Trigger

+

该 Skill 的触发描述来自 SKILL.md frontmatter;默认中文报告先呈现能力边界,原始英文描述可切换到英文查看。Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.

+

输入材料Inputs

+
  • 原始说明可切换到英文查看;默认中文报告保留结论与结构说明。rough workflow notes, SOPs, runbooks, prompts, transcripts, documents, or repeated task descriptions
  • 原始说明可切换到英文查看;默认中文报告保留结论与结构说明。an existing skill directory that needs refactor, evaluation, packaging, or governance hardening
  • 原始说明可切换到英文查看;默认中文报告保留结论与结构说明。target platform requirements such as OpenAI, Claude, generic Agent Skills, or team distribution
  • 原始说明可切换到英文查看;默认中文报告保留结论与结构说明。benchmark references, local constraints, desired maturity tier, and review standards
+
+
+

输出结果Outputs

+
  • 原始说明可切换到英文查看;默认中文报告保留结论与结构说明。A working skill package with lean SKILL.md, aligned agents/interface.yaml, justified references, scripts only when useful, eval evidence, reports, packaging metadata, and clear next iteration recommendations.
  • 结构化 Skill 目录,共 8 类关键资产。Structured skill directory with 8 key asset groups.
+

不应触发Should Not Trigger

+
  • 只需要一次性回答、没有复用价值的临时请求。One-off requests that do not need reusable skill behavior.
  • 要求直接执行相邻任务,而不是沉淀或使用这个 Skill。Requests to perform an adjacent task directly rather than create or use this skill.
  • 缺少必要事实且用户不允许澄清的场景。Cases that lack required facts and do not allow clarification.
+
+
+
+
+ +
+
+
+

质量评估Quality

+

展示强项、缺口和建议,避免只给分不解释。Shows strengths, gaps, and recommendations instead of scores without explanation.

+
+
+ + + +
类型Type证据Evidence建议Action
强项Strength触发面保持精简,并锚定在 frontmatter description。The trigger surface stays lean and anchored in the frontmatter description.保留并复用Keep
强项Strength已生成 Skill IR,核心语义可先于平台打包被审查和迁移。Skill IR is generated so core semantics can be reviewed and migrated before platform packaging.保留并复用Keep
强项Strength已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。Target compilation evidence is generated to review how IR maps to OpenAI, Claude, generic, and other target contracts.保留并复用Keep
缺口Gap上下文成本需要补强:入口约 356 个词/字,references 约 16045 个词/字。Context cost needs improvement: Entrypoint is about 356 words/characters; references are about 16045.纳入下一轮修复Fix next
+
+
+

执行证据Execution Evidence

+
  • 变体运行:10Variant runs: 10
  • 模型执行:0Model executions: 0
  • 记录样本:0Recorded fixtures: 0
  • Token 估算:10Token estimates: 10
+
+
+

盲评审定Blind Adjudication

+
  • 评审进度:0 / 5Review progress: 0 / 5
  • 待评审:5Pending review: 5
  • 一致率:暂无Agreement rate: not available yet
  • 非法决策:0Invalid decisions: 0
+
+
+
+
+

评审原则Review Rule

+
  • 先记录 reviewer 对 A/B 的选择,再打开答案 key 计算一致率。Record the reviewer's A/B choice before opening the answer key and calculating agreement.
  • 缺少真实 reviewer 决策时只显示待评审,不伪造人工结论。When real reviewer decisions are missing, show pending status instead of fabricating human conclusions.
+
+
+

运行原则Run Rule

+
  • recorded fixture 只能证明可复现样本,不等同于模型执行。A recorded fixture proves reproducible samples only; it is not model execution.
  • 只有 provider runner 返回 model metadata 时才计入 model-executed。Only provider runners that return model metadata count as model-executed.
+
+
+
+
+
+ +
+
+
+

风险治理Risk

+

提前暴露误触发、漂移、证据不足和迁移风险。Surfaces trigger, drift, evidence, and portability risks before the package grows.

+
+
+
风险热力Risk Heatmap000200300发生概率Probability影响程度Impact
风险热力图用影响程度和发生概率标出当前治理重点。The risk heatmap marks governance priorities by impact and probability.
+
+ + + +
风险Risk信号Signal应对Response
误触发风险Trigger riskfrontmatter description 已存在,具备基础路由面。The frontmatter description exists, giving the skill a basic routing surface.先补证据和边界,再增加包体复杂度。Improve evidence and boundaries before adding package complexity.
输出漂移风险Output drift risk已生成 20 / 20 类报告证据。Generated 20 / 20 evidence report types.先补证据和边界,再增加包体复杂度。Improve evidence and boundaries before adding package complexity.
证据不足风险Evidence gap risk已生成 20 / 20 类报告证据。Generated 20 / 20 evidence report types.先补证据和边界,再增加包体复杂度。Improve evidence and boundaries before adding package complexity.
包体膨胀风险Package bloat riskSKILL.md 约 356 个词/字。SKILL.md is about 356 words/characters.先补证据和边界,再增加包体复杂度。Improve evidence and boundaries before adding package complexity.
跨平台迁移风险Portability riskagents/interface.yaml 已存在。agents/interface.yaml exists.先补证据和边界,再增加包体复杂度。Improve evidence and boundaries before adding package complexity.
+
+
+

世界证据World Evidence

世界级证据尚未完成:4 项待补,0 项已接受。World-class evidence is not complete: 4 pending, 0 accepted.

证据待补Evidence pending
待补证据Pending4仍需外部或人工证据接受。External or human evidence still needs acceptance.
已接受Accepted0已通过 source check 与提交契约。Passed source checks and submission contract.
源检查Source Checks6 / 13通过数 / 总检查数。Passed checks / total checks.
外部证据External evidence

提供商留出Provider Holdout

缺少真实 provider 模型运行和 token metadata。Missing a real provider model run and token metadata.

阻塞检查Blocked Checks
  • 提供商实跑Provider model run
  • Token 用量Token usage observed
人工证据Human evidence

人工盲评Human Adjudication

盲评 pair 仍待真实 reviewer 决策。Blind-review pairs still need real reviewer decisions.

阻塞检查Blocked Checks
  • 无待判定No pending decisions
  • 盲评完成Judgments complete
外部证据External evidence

原生权限Native Permission

原生 runtime enforcement 仍待目标客户端或外部安装器证明。Native runtime enforcement still needs target-client or external-installer proof.

阻塞检查Blocked Checks
  • 原生执行Native enforcement
外部证据External evidence

原生遥测Native Telemetry

真实外部客户端 metadata-only 事件仍未导入。Real external-client metadata-only events have not been imported yet.

阻塞检查Blocked Checks
  • 外部事件External events
  • 采用样本Adoption sample
+
+
+ +
+
+
+

包体资产Assets

+

让 reviewer 快速确认关键文件、目录和资产分布。Lets reviewers confirm key files, directories, and asset distribution quickly.

+
+
+
资产分布Asset Distribution386项386 itemsSKILL.mdSKILL.mdREADME.mdREADME.mdagents/interface.yamlagents/interface.yamlmanifest.jsonmanifest.jsonreferencesreferencesscriptsscripts
资产分布图展示当前包体的文件和目录重心。The asset distribution chart shows where files and directories are concentrated.
+ + + +
路径Path作用Role类型Type
SKILL.mdSkill 入口文件Skill entrypoint文件file
README.md人类可读使用说明Human-readable usage guide文件file
agents/interface.yaml跨平台接口元数据Neutral interface metadata文件file
manifest.json生命周期与打包元数据Lifecycle and portability metadata文件file
references扩展指导与复用资料Extended guidance and reusable notes目录folder
scripts确定性脚本或本地工具Deterministic helpers or local tooling目录folder
evals触发与质量检查Trigger and quality checks目录folder
reports生成的证据与总结报告Generated evidence and overview artifacts目录folder
+
+
+
+ +
+
+
+

迭代路线Roadmap

+

把下一步升级收束为少数高价值动作。Keeps next iteration moves focused and actionable.

+
+
+
迭代时间Iteration Timeline下一步 1Next 1补齐世界证据Close world-class evide...下一步 2Next 2Borrow one proven…Borrow one proven…下一步 3Next 3Harden portabilit…Harden portabilit…
迭代时间线把下一步升级收束成少数可执行动作。The iteration timeline narrows the next upgrade into a few executable moves.
+
下一步 1Next 1

补齐世界证据Close world-class evidence

世界级证据仍有 4 项待补;公开完成态 claim 必须继续保持阻塞。World-class evidence still has 4 pending item(s); public completion claims must stay blocked.

  • 补齐提供商留出证据:缺少真实 provider 模型运行和 token metadata。Close provider holdout evidence: Missing a real provider model run and token metadata.
  • 补齐人工盲评证据:盲评 pair 仍待真实 reviewer 决策。Close human adjudication evidence: Blind-review pairs still need real reviewer decisions.
  • 继续补齐剩余 2 项外部/人工证据,并保持 claim guard 为 pending 状态。Close the remaining 2 external or human evidence item(s) and keep the claim guard pending.

全部外部/人工证据被 ledger 接受后,才能进入公开 world-class claim 复核。Only after the ledger accepts all external and human evidence should the public world-class claim move to review.

下一步 2Next 2

有选择地借鉴一个成熟模式Borrow one proven pattern on purpose

已经有公开 benchmark 对象,下一步应主动选择一个模式借鉴,而不是松散吸收所有做法。You already have public benchmark objects. The next gain is to choose one pattern intentionally instead of absorbing everything loosely.

  • 阅读 `obra/superpowers` 中最值得借鉴的模式。Read the strongest pattern from obra/superpowers.
  • 先判断要借鉴的是方法、结构、执行方式还是可迁移性,并且第一轮只借鉴其中一个。Decide whether to borrow method, structure, execution, or portability, but only one of them first.
  • 记录本轮不借鉴的内容,避免包体过重。Record what you will not borrow so the package stays light.

包体形态更清晰,也减少偶然过度设计。A cleaner package shape with less accidental over-design.

下一步 3Next 3

加固跨环境语义Harden portability semantics

这个 Skill 已经面向跨环境复用,因此早期就需要把契约语义说清楚。The skill already signals reuse across environments, so contract clarity matters early.

  • 确认激活模式、执行上下文和信任假设。Confirm activation mode, execution context, and trust assumptions.
  • 补充或复核非原生目标端的降级策略。Add or review degradation strategy for non-native targets.
  • 至少打包一次 Skill,用来验证 adapter 预期。Package the skill once to verify adapter expectations.

跨环境复用更安全,目标漂移更少。Safer cross-environment reuse with less target drift.

+
+
+
+
+ + + diff --git a/reports/skill-interpretation.json b/reports/skill-interpretation.json new file mode 100644 index 00000000..78ecc880 --- /dev/null +++ b/reports/skill-interpretation.json @@ -0,0 +1,2123 @@ +{ + "skill_summary": { + "name": "yao-meta-skill", + "title": "Yao Meta Skill", + "display_name": "Yao Meta Skill", + "description": "Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.", + "maturity": "governed", + "updated_at": "2026-03-31", + "core_value": "把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。", + "audience": "Skill 作者、复用团队和后续 reviewer。", + "deliverables": [ + "SKILL.md", + "agents/interface.yaml", + "reports/skill-ir.json", + "reports/compiled_targets.md", + "reports/output_quality_scorecard.md", + "reports/output_execution_runs.md", + "reports/output_blind_review_pack.md", + "reports/output_review_kit.md", + "reports/output_review_adjudication.md", + "reports/benchmark_reproducibility.md", + "reports/output_blind_answer_key.json", + "reports/conformance_matrix.md", + "reports/security_trust_report.md", + "reports/runtime_permission_probes.md", + "reports/skill_atlas.html", + "reports/registry_audit.md", + "reports/package_verification.md", + "reports/install_simulation.md", + "reports/upgrade_check.md", + "reports/adoption_drift_report.md", + "reports/review_waivers.md", + "reports/world_class_evidence_plan.md", + "reports/world_class_evidence_ledger.md", + "reports/review_annotations.md", + "reports/review-studio.html", + "reports/skill-interpretation.html", + "reports/skill-overview.html", + "reports/skill-interpretation.json" + ], + "flow": [ + "输入材料", + "Skill 包体", + "可复用能力" + ] + }, + "scorecard": { + "completeness_score": { + "label": "完整度", + "score": 100, + "reasons": [ + "SKILL.md 已存在,是 Skill 的入口。", + "README.md 已存在,便于人工阅读。", + "agents/interface.yaml 已存在,便于跨平台适配。", + "manifest.json 已存在,生命周期信息可追踪。", + "reports/ 已存在,生成证据可以随包体迁移。" + ] + }, + "trigger_score": { + "label": "触发清晰", + "score": 100, + "reasons": [ + "frontmatter description 已存在,具备基础路由面。", + "description 有足够长度说明任务边界。", + "description 已包含使用场景或排除边界信号。", + "evals/ 已存在,可承载触发样例或质量检查。", + "intent-confidence 报告已生成,可辅助判断触发稳定性。" + ] + }, + "evidence_score": { + "label": "证据充分", + "score": 100, + "reasons": [ + "已生成 20 / 20 类报告证据。", + "skill-ir.json 已存在。", + "compiled_targets.json 已存在。", + "intent-dialogue.json 已存在。" + ] + }, + "maintainability_score": { + "label": "可维护性", + "score": 100, + "reasons": [ + "SKILL.md 约 356 个词/字。", + "入口文件保持克制,可维护性较好。", + "references/ 已承载扩展指导。", + "scripts/ 已承载确定性逻辑。", + "evals/ 已承载可迁移检查。" + ] + }, + "portability_score": { + "label": "可迁移性", + "score": 100, + "reasons": [ + "agents/interface.yaml 已存在。", + "manifest.json 已存在。", + "目标平台或 adapter target 已声明。", + "入口文件未发现明显私有绝对路径。" + ] + }, + "context_cost": { + "label": "上下文成本", + "score": 42, + "reasons": [ + "入口约 356 个词/字,references 约 16045 个词/字。", + "分数越高代表上下文成本越低。", + "上下文成本偏高,建议压缩入口或拆分 references。" + ] + } + }, + "capability_profile": { + "archetype": "governed", + "task_family": "Execution operation", + "maturity": "governed", + "trigger_strength": "手动触发 + description 路由", + "reuse_scope": "跨平台", + "matrix": { + "execution_certainty": 72, + "knowledge_density": 80 + } + }, + "principle_model": { + "nodes": [ + { + "title": "意图澄清", + "body": "Turn repeated workflows, prompts, transcripts, runbooks, documents, or existing skill packages into routeable, evaluable, packageable, and governable agent skills for personal, team, library, or governed reuse." + }, + { + "title": "边界路由", + "body": "用 frontmatter description 决定是否触发,并写明相邻非目标。" + }, + { + "title": "资产分层", + "body": "把入口、参考、脚本、评估和报告拆到各自目录,避免 SKILL.md 膨胀。" + }, + { + "title": "证据回路", + "body": "Ask only the highest-leverage clarification before adding package weight." + }, + { + "title": "漂移观察", + "body": "Add near-neighbor exclusions and route evals before expanding workflow steps." + }, + { + "title": "杠杆升级", + "body": "Name the recurring job, expected input, output, and strongest non-goal in compact language." + } + ], + "layers": [ + "入口层", + "参考层", + "脚本层", + "评估层", + "报告层" + ] + }, + "contract_boundary": { + "trigger": { + "description": "Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.", + "activation": "manual", + "execution": "inline", + "shell": "bash" + }, + "inputs": [ + "rough workflow notes, SOPs, runbooks, prompts, transcripts, documents, or repeated task descriptions", + "an existing skill directory that needs refactor, evaluation, packaging, or governance hardening", + "target platform requirements such as OpenAI, Claude, generic Agent Skills, or team distribution", + "benchmark references, local constraints, desired maturity tier, and review standards" + ], + "outputs": [ + "A working skill package with lean SKILL.md, aligned agents/interface.yaml, justified references, scripts only when useful, eval evidence, reports, packaging metadata, and clear next iteration recommendations.", + "结构化 Skill 目录,共 8 类关键资产。" + ], + "should_trigger": [ + "把重复流程沉淀为可复用的 agent skill。", + "把分散提示词、对话记录或操作规范整理为稳定能力。", + "团队复用前,需要明确触发边界、质量证据和维护责任。" + ], + "should_not_trigger": [ + "只需要一次性回答、没有复用价值的临时请求。", + "要求直接执行相邻任务,而不是沉淀或使用这个 Skill。", + "缺少必要事实且用户不允许澄清的场景。" + ], + "boundary_cards": [ + { + "label": "Owned", + "body": "Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse." + }, + { + "label": "Adjacent", + "body": "相邻任务需要先确认是否应转为独立 Skill。" + }, + { + "label": "Excluded", + "body": "不替代人工事实核查,也不静默扩大职责。" + } + ] + }, + "quality_review": { + "strengths": [ + "触发面保持精简,并锚定在 frontmatter description。", + "已生成 Skill IR,核心语义可先于平台打包被审查和迁移。", + "已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。", + "已生成 Output Eval Lab scorecard,可比较 with-skill 与 baseline 输出质量。", + "已生成 Output Execution Runs,可区分记录样本、命令执行和模型执行证据。", + "已生成 Output Review Adjudication,可记录盲评决策、一致率和待评审项。" + ], + "gaps": [ + "上下文成本需要补强:入口约 356 个词/字,references 约 16045 个词/字。" + ], + "recommendations": [ + "先改触发边界,再扩展工作流。", + "只把重复且稳定的步骤沉淀为脚本。", + "每次升级后重新生成报告并检查分数原因。" + ], + "artifact_design": { + "design_system": "metric editorial", + "highlights": [ + "Execution-focused technical artifact with environment assumptions, copyable commands, expected outputs, and side effects made explicit.", + "Name the working directory and required inputs for commands.", + "Mark destructive, networked, or external side-effect operations.", + "Prefer the smallest runnable snippet over broad framework scaffolding." + ] + }, + "prompt_quality": { + "overall_quality_score": 89.0, + "highlights": [ + "Primary prompt task family: Execution operation.", + "Complexity: expert — multiple task families plus governance, evaluation, or expert-level constraints", + "Completeness: 100/100.", + "Clarity: 85/100." + ] + }, + "system_model": { + "stability": { + "score": 100, + "band": "system-ready" + }, + "highlights": [ + "Stability: system-ready (100/100).", + "Owned job: Turn repeated workflows, prompts, transcripts, runbooks, documents, or existing skill packages into routeable, evaluable, packageable, and governable agent skills for personal, team, library, or governed reuse.", + "Leverage: Tune the frontmatter description — Name the recurring job, expected input, output, and strongest non-goal in compact language.", + "Leverage: Install output self-repair checks — Add only the checks that prevent recurring output mistakes." + ] + } + }, + "risk_governance": { + "risks": [ + { + "name": "误触发风险", + "impact": 3, + "probability": 1, + "signal": "frontmatter description 已存在,具备基础路由面。", + "response": "先补证据和边界,再增加包体复杂度。" + }, + { + "name": "输出漂移风险", + "impact": 2, + "probability": 1, + "signal": "已生成 20 / 20 类报告证据。", + "response": "先补证据和边界,再增加包体复杂度。" + }, + { + "name": "证据不足风险", + "impact": 3, + "probability": 1, + "signal": "已生成 20 / 20 类报告证据。", + "response": "先补证据和边界,再增加包体复杂度。" + }, + { + "name": "包体膨胀风险", + "impact": 2, + "probability": 1, + "signal": "SKILL.md 约 356 个词/字。", + "response": "先补证据和边界,再增加包体复杂度。" + }, + { + "name": "跨平台迁移风险", + "impact": 3, + "probability": 1, + "signal": "agents/interface.yaml 已存在。", + "response": "先补证据和边界,再增加包体复杂度。" + } + ], + "risk_families": [ + { + "key": "markdown_readability", + "label": "Markdown readability", + "matched_keywords": [ + "md", + "report", + "doc" + ], + "score": 3, + "risks": [ + "Tables can render as dense grids with weak hierarchy or poor mobile readability.", + "Long bullets can make the output look complete while hiding the actual decision logic.", + "Mixed heading levels can reduce scanability." + ], + "constraints": [ + "Use tables only when comparison is the main job; otherwise prefer compact cards or grouped bullets.", + "Keep table cells short and move explanations below the table.", + "Use heading levels consistently and keep each section anchored to a user-facing outcome." + ], + "self_repair": [ + "Preview whether each table still reads well when columns are narrow.", + "Convert any table with paragraph-length cells into bullets or cards." + ] + }, + { + "key": "citation_clutter", + "label": "Citation and footnote clutter", + "matched_keywords": [ + "source", + "reference" + ], + "score": 2, + "risks": [ + "Footnote markers or dense citation notes can interrupt the reading flow.", + "Evidence can be over-attached to obvious statements and under-attached to risky claims.", + "Source notes may become more prominent than the tutorial itself." + ], + "constraints": [ + "Attach citations only to claims that need evidence, not to every sentence.", + "Group source notes at the end of a section when inline markers would hurt readability.", + "Keep the main sentence readable without requiring the reader to chase a footnote." + ], + "self_repair": [ + "Remove decorative citations that do not support a material claim.", + "Move repeated source explanations into one compact source note." + ] + }, + { + "key": "visual_capture", + "label": "Screenshot and visual capture", + "matched_keywords": [ + "capture" + ], + "score": 1, + "risks": [ + "Screenshots can be captured from the wrong state, wrong viewport, or wrong crop.", + "Missing screenshots can cause the skill to invent visual references instead of declaring the gap.", + "Image descriptions can omit the action-relevant region." + ], + "constraints": [ + "Never invent a screenshot; state when visual evidence is missing.", + "Record the source, viewport, and crop intent for any screenshot-dependent output.", + "Describe what the reader should inspect in the image, not just that an image exists." + ], + "self_repair": [ + "Check that every screenshot reference points to a real provided or generated asset.", + "Reword any visual instruction that depends on an unseen screen state." + ] + }, + { + "key": "code_or_command_safety", + "label": "Code and command safety", + "matched_keywords": [ + "script" + ], + "score": 1, + "risks": [ + "Commands can omit environment assumptions, working directory, or rollback notes.", + "Code snippets can look runnable while missing required inputs.", + "Error handling can be either absent or over-engineered." + ], + "constraints": [ + "Name the working directory, required inputs, and expected output for each command.", + "Mark destructive or external side-effect operations explicitly.", + "Prefer the smallest runnable snippet over broad framework code." + ], + "self_repair": [ + "Scan each command for cwd, input, output, and side-effect assumptions.", + "Remove speculative error handling that is not tied to a real failure mode." + ] + }, + { + "key": "tone_and_specificity", + "label": "Tone and specificity", + "matched_keywords": [ + "summary" + ], + "score": 1, + "risks": [ + "Headings and summaries can drift into generic, interchangeable language.", + "The output can sound polished but lose the user's actual taste, audience, or scenario.", + "Strong claims can appear without examples or constraints." + ], + "constraints": [ + "Anchor titles and summaries in the user's audience, object, and concrete outcome.", + "Avoid placeholder phrases such as comprehensive guide, ultimate solution, or key insights unless the source demands them.", + "Preserve one distinctive phrase, constraint, or standard from the user's input." + ], + "self_repair": [ + "Replace generic title candidates with scenario-specific alternatives.", + "Delete any polished sentence that could fit almost any project unchanged." + ] + } + ], + "human_judgment_boundary": [ + "Ask one focused clarification when the real job, output, or exclusion boundary is unclear.", + "Escalate visible tradeoffs when benchmark patterns conflict with local privacy, naming, or governance constraints.", + "Do not silently broaden the skill into adjacent jobs just because the examples are nearby." + ] + }, + "world_class_readiness": { + "ready": false, + "decision": "evidence-pending", + "entry_count": 4, + "pending_count": 4, + "accepted_count": 0, + "external_pending_count": 3, + "human_pending_count": 1, + "source_check_count": 13, + "source_pass_count": 6, + "conclusion_zh": "世界级证据尚未完成:4 项待补,0 项已接受。", + "conclusion_en": "World-class evidence is not complete: 4 pending, 0 accepted.", + "entries": [ + { + "key": "provider-holdout", + "label_zh": "提供商留出", + "label_en": "Provider Holdout", + "category": "external", + "category_zh": "外部证据", + "category_en": "External evidence", + "status": "pending", + "summary_zh": "缺少真实 provider 模型运行和 token metadata。", + "summary_en": "Missing a real provider model run and token metadata.", + "blocked_checks": [ + "Provider model run", + "Token usage observed" + ] + }, + { + "key": "human-adjudication", + "label_zh": "人工盲评", + "label_en": "Human Adjudication", + "category": "human", + "category_zh": "人工证据", + "category_en": "Human evidence", + "status": "pending", + "summary_zh": "盲评 pair 仍待真实 reviewer 决策。", + "summary_en": "Blind-review pairs still need real reviewer decisions.", + "blocked_checks": [ + "No pending decisions", + "Judgments complete" + ] + }, + { + "key": "native-permission-enforcement", + "label_zh": "原生权限", + "label_en": "Native Permission", + "category": "external", + "category_zh": "外部证据", + "category_en": "External evidence", + "status": "pending", + "summary_zh": "原生 runtime enforcement 仍待目标客户端或外部安装器证明。", + "summary_en": "Native runtime enforcement still needs target-client or external-installer proof.", + "blocked_checks": [ + "Native enforcement" + ] + }, + { + "key": "native-client-telemetry", + "label_zh": "原生遥测", + "label_en": "Native Telemetry", + "category": "external", + "category_zh": "外部证据", + "category_en": "External evidence", + "status": "pending", + "summary_zh": "真实外部客户端 metadata-only 事件仍未导入。", + "summary_en": "Real external-client metadata-only events have not been imported yet.", + "blocked_checks": [ + "External events", + "Adoption sample" + ] + } + ] + }, + "package_assets": { + "entries": [ + { + "path": "SKILL.md", + "label": "Skill entrypoint", + "kind": "file", + "file_count": 1 + }, + { + "path": "README.md", + "label": "Human-readable usage guide", + "kind": "file", + "file_count": 1 + }, + { + "path": "agents/interface.yaml", + "label": "Neutral interface metadata", + "kind": "file", + "file_count": 1 + }, + { + "path": "manifest.json", + "label": "Lifecycle and portability metadata", + "kind": "file", + "file_count": 1 + }, + { + "path": "references", + "label": "Extended guidance and reusable notes", + "kind": "folder", + "file_count": 34 + }, + { + "path": "scripts", + "label": "Deterministic helpers or local tooling", + "kind": "folder", + "file_count": 106 + }, + { + "path": "evals", + "label": "Trigger and quality checks", + "kind": "folder", + "file_count": 29 + }, + { + "path": "reports", + "label": "Generated evidence and overview artifacts", + "kind": "folder", + "file_count": 213 + } + ], + "file_count": 386, + "folder_count": 4, + "distribution": [ + { + "label": "SKILL.md", + "value": 1 + }, + { + "label": "README.md", + "value": 1 + }, + { + "label": "agents/interface.yaml", + "value": 1 + }, + { + "label": "manifest.json", + "value": 1 + }, + { + "label": "references", + "value": 34 + }, + { + "label": "scripts", + "value": 106 + }, + { + "label": "evals", + "value": 29 + }, + { + "label": "reports", + "value": 213 + } + ] + }, + "iteration_roadmap": { + "items": [ + { + "title": "补齐世界证据", + "why": "世界级证据仍有 4 项待补;公开完成态 claim 必须继续保持阻塞。", + "actions": [ + "补齐提供商留出证据:缺少真实 provider 模型运行和 token metadata。", + "补齐人工盲评证据:盲评 pair 仍待真实 reviewer 决策。", + "继续补齐剩余 2 项外部/人工证据,并保持 claim guard 为 pending 状态。" + ], + "unlocks": "全部外部/人工证据被 ledger 接受后,才能进入公开 world-class claim 复核。", + "source": "world_class_evidence_ledger" + }, + { + "title": "Borrow one proven pattern on purpose", + "why": "You already have public benchmark objects. The next gain is to choose one pattern intentionally instead of absorbing everything loosely.", + "actions": [ + "Read the strongest pattern from obra/superpowers.", + "Decide whether to borrow method, structure, execution, or portability, but only one of them first.", + "Record what you will not borrow so the package stays light." + ], + "unlocks": "A cleaner package shape with less accidental over-design." + }, + { + "title": "Harden portability semantics", + "why": "The skill already signals reuse across environments, so contract clarity matters early.", + "actions": [ + "Confirm activation mode, execution context, and trust assumptions.", + "Add or review degradation strategy for non-native targets.", + "Package the skill once to verify adapter expectations." + ], + "unlocks": "Safer cross-environment reuse with less target drift." + } + ] + }, + "report_contract": { + "schema_version": "2.0", + "html_report": "reports/skill-interpretation.html", + "language": "zh-CN", + "default_language": "zh-CN", + "languages": [ + "zh-CN", + "en" + ], + "layout": "kami-white-audit-v2", + "nav_labels": [ + "技能概述", + "总览指标", + "能力画像", + "原理结构", + "契约边界", + "质量评估", + "风险治理", + "包体资产", + "迭代路线" + ], + "nav_labels_en": [ + "Overview", + "Metrics", + "Profile", + "Principle", + "Contract", + "Quality", + "Risk", + "Assets", + "Roadmap" + ], + "report_kind": "skill-interpretation", + "canonical_overview_report": "reports/skill-overview.html", + "json_report": "reports/skill-interpretation.json", + "purpose": "Explain the generated skill's role, principles, usage scenarios, trigger contract, inputs, outputs, quality evidence, risks, assets, highlights, and next upgrade directions." + }, + "name": "yao-meta-skill", + "title": "Yao Meta Skill", + "display_name": "Yao Meta Skill", + "description": "Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.", + "logic_steps": [ + "Decide whether the request should become a skill and choose the lightest fit.", + "Capture job, output, exclusions, constraints, and standards.", + "Run reference scan: external benchmarks first, user references second, local fit third; surface only uncertainty or conflict.", + "Write the `description` early and test route quality before expanding the package.", + "Add output-risk, artifact-design, prompt-quality, and system-model reports only when they matter." + ], + "usage_steps": [ + "Use $yao-meta-skill to turn my workflow or notes into a reusable skill with lean structure, clear triggering, and the right evals.", + "Use this skill when the request matches: Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse." + ], + "package_map": [ + { + "path": "SKILL.md", + "label": "Skill entrypoint", + "kind": "file", + "file_count": 1 + }, + { + "path": "README.md", + "label": "Human-readable usage guide", + "kind": "file", + "file_count": 1 + }, + { + "path": "agents/interface.yaml", + "label": "Neutral interface metadata", + "kind": "file", + "file_count": 1 + }, + { + "path": "manifest.json", + "label": "Lifecycle and portability metadata", + "kind": "file", + "file_count": 1 + }, + { + "path": "references", + "label": "Extended guidance and reusable notes", + "kind": "folder", + "file_count": 34 + }, + { + "path": "scripts", + "label": "Deterministic helpers or local tooling", + "kind": "folder", + "file_count": 106 + }, + { + "path": "evals", + "label": "Trigger and quality checks", + "kind": "folder", + "file_count": 29 + }, + { + "path": "reports", + "label": "Generated evidence and overview artifacts", + "kind": "folder", + "file_count": 213 + } + ], + "strengths": [ + "触发面保持精简,并锚定在 frontmatter description。", + "已生成 Skill IR,核心语义可先于平台打包被审查和迁移。", + "已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。", + "已生成 Output Eval Lab scorecard,可比较 with-skill 与 baseline 输出质量。", + "已生成 Output Execution Runs,可区分记录样本、命令执行和模型执行证据。", + "已生成 Output Review Adjudication,可记录盲评决策、一致率和待评审项。" + ], + "scenarios": [ + "把重复流程沉淀为可复用的 agent skill。", + "把分散提示词、对话记录或操作规范整理为稳定能力。", + "团队复用前,需要明确触发边界、质量证据和维护责任。", + "用户说出类似需求时:Use $yao-meta-skill to turn my workflow or notes into a reusable skill with lean structure, clear triggering, and the right evals." + ], + "trigger_contract": { + "description": "Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.", + "activation": "manual", + "execution": "inline", + "shell": "bash" + }, + "io_contract": { + "inputs": [ + "rough workflow notes, SOPs, runbooks, prompts, transcripts, documents, or repeated task descriptions", + "an existing skill directory that needs refactor, evaluation, packaging, or governance hardening", + "target platform requirements such as OpenAI, Claude, generic Agent Skills, or team distribution", + "benchmark references, local constraints, desired maturity tier, and review standards" + ], + "outputs": [ + "A working skill package with lean SKILL.md, aligned agents/interface.yaml, justified references, scripts only when useful, eval evidence, reports, packaging metadata, and clear next iteration recommendations.", + "结构化 Skill 目录,共 8 类关键资产。" + ] + }, + "principles": [ + { + "title": "意图澄清", + "body": "Turn repeated workflows, prompts, transcripts, runbooks, documents, or existing skill packages into routeable, evaluable, packageable, and governable agent skills for personal, team, library, or governed reuse." + }, + { + "title": "边界路由", + "body": "用 frontmatter description 决定是否触发,并写明相邻非目标。" + }, + { + "title": "资产分层", + "body": "把入口、参考、脚本、评估和报告拆到各自目录,避免 SKILL.md 膨胀。" + }, + { + "title": "证据回路", + "body": "Ask only the highest-leverage clarification before adding package weight." + }, + { + "title": "漂移观察", + "body": "Add near-neighbor exclusions and route evals before expanding workflow steps." + }, + { + "title": "杠杆升级", + "body": "Name the recurring job, expected input, output, and strongest non-goal in compact language." + } + ], + "roadmap": [ + { + "title": "补齐世界证据", + "why": "世界级证据仍有 4 项待补;公开完成态 claim 必须继续保持阻塞。", + "actions": [ + "补齐提供商留出证据:缺少真实 provider 模型运行和 token metadata。", + "补齐人工盲评证据:盲评 pair 仍待真实 reviewer 决策。", + "继续补齐剩余 2 项外部/人工证据,并保持 claim guard 为 pending 状态。" + ], + "unlocks": "全部外部/人工证据被 ledger 接受后,才能进入公开 world-class claim 复核。", + "source": "world_class_evidence_ledger" + }, + { + "title": "Borrow one proven pattern on purpose", + "why": "You already have public benchmark objects. The next gain is to choose one pattern intentionally instead of absorbing everything loosely.", + "actions": [ + "Read the strongest pattern from obra/superpowers.", + "Decide whether to borrow method, structure, execution, or portability, but only one of them first.", + "Record what you will not borrow so the package stays light." + ], + "unlocks": "A cleaner package shape with less accidental over-design." + }, + { + "title": "Harden portability semantics", + "why": "The skill already signals reuse across environments, so contract clarity matters early.", + "actions": [ + "Confirm activation mode, execution context, and trust assumptions.", + "Add or review degradation strategy for non-native targets.", + "Package the skill once to verify adapter expectations." + ], + "unlocks": "Safer cross-environment reuse with less target drift." + } + ], + "cards": [], + "introduction": [ + "这份报告用于快速理解新生成 Skill 的定位、原理、触发边界和交付内容。", + "先确认重复任务、真实输入形态和可交付输出,再决定是否继续加 references、scripts 或 evals。", + "如果需求仍然模糊,优先回到 intent dialogue 收紧边界,再扩展包体结构。" + ], + "benchmark_highlights": [], + "skill_ir": { + "schema_version": "2.0.0", + "target_count": 5, + "trigger_samples": 8, + "output_eval_cases": 3 + }, + "compiled_targets": { + "ok": true, + "schema_version": "1.0", + "summary": { + "target_count": 5, + "pass_count": 5, + "warn_count": 0, + "block_count": 0, + "failure_count": 0, + "warning_count": 0 + }, + "targets": [ + { + "target": "openai", + "status": "pass", + "adapter_mode": "metadata-adapter", + "degradation_strategy": "metadata-adapter", + "native_surface": "OpenAI-style interface metadata plus neutral Agent Skills source", + "permission_enforcement": "metadata-only", + "generated_files": [ + "targets/openai/adapter.json", + "targets/openai/agents/openai.yaml" + ], + "unsupported_features": [ + "client-native script permission prompts are represented as permission contract metadata" + ], + "warnings": [] + }, + { + "target": "claude", + "status": "pass", + "adapter_mode": "neutral-source-plus-adapter", + "degradation_strategy": "neutral-source-plus-adapter", + "native_surface": "Claude-compatible neutral source folder with adapter notes", + "permission_enforcement": "metadata-fallback", + "generated_files": [ + "targets/claude/adapter.json", + "targets/claude/README.md" + ], + "unsupported_features": [ + "vendor-native metadata fields are carried as adapter JSON and README notes" + ], + "warnings": [] + }, + { + "target": "generic", + "status": "pass", + "adapter_mode": "agent-skills-compatible", + "degradation_strategy": "neutral-source", + "native_surface": "Agent Skills compatible neutral package", + "permission_enforcement": "consumer-enforced-or-metadata-only", + "generated_files": [ + "targets/generic/adapter.json" + ], + "unsupported_features": [], + "warnings": [] + }, + { + "target": "agent-skills-compatible", + "status": "pass", + "adapter_mode": "neutral-agent-skills-source", + "degradation_strategy": "neutral-source", + "native_surface": "Agent Skills standard source tree", + "permission_enforcement": "consumer-enforced-or-metadata-only", + "generated_files": [ + "SKILL.md", + "agents/interface.yaml" + ], + "unsupported_features": [], + "warnings": [] + }, + { + "target": "vscode", + "status": "pass", + "adapter_mode": "vscode-agent-skills-adapter", + "degradation_strategy": "agent-skills-source-with-vscode-notes", + "native_surface": "VS Code/Copilot Agent Skills project or user scope", + "permission_enforcement": "client-or-workspace-trust", + "generated_files": [ + "targets/vscode/adapter.json", + "targets/vscode/README.md" + ], + "unsupported_features": [ + "VS Code installation scope is documented but not installed by this compiler" + ], + "warnings": [] + } + ], + "failures": [], + "warnings": [] + }, + "output_quality": { + "case_count": 5, + "file_backed_case_count": 1, + "near_neighbor_case_count": 1, + "boundary_case_count": 1, + "baseline_pass_rate": 0.0, + "with_skill_pass_rate": 100.0, + "delta": 100.0, + "regression_count": 0, + "gate_pass": true, + "failure_taxonomy": [], + "blind_pair_count": 5 + }, + "output_execution": { + "ok": true, + "summary": { + "case_count": 5, + "variant_run_count": 10, + "command_executed_count": 10, + "model_executed_count": 0, + "recorded_fixture_count": 0, + "timing_observed_count": 10, + "token_observed_count": 0, + "token_estimated_count": 10, + "baseline_pass_rate": 0.0, + "with_skill_pass_rate": 100.0, + "delta": 100.0, + "regression_count": 0, + "failure_count": 0, + "gate_pass": true + }, + "runner": { + "mode": "command", + "command": [ + "python3", + "scripts/local_output_eval_runner.py" + ], + "timeout_seconds": 30.0 + }, + "failures": [] + }, + "output_blind_review": { + "summary": { + "pair_count": 5, + "answer_key_separate": true, + "with_skill_hidden_count": 5 + }, + "seed": "yao-output-eval-blind-v1", + "pair_count": 5, + "answer_key_separate": true + }, + "output_review_kit": { + "ok": true, + "summary": { + "case_count": 5, + "ready_for_adjudication_count": 0, + "pending_decision_count": 5, + "invalid_decision_count": 0, + "reviewer_metadata_present": false, + "answer_key_hidden": true, + "answer_key_path_exposed": false, + "ready_to_run_adjudication": false, + "failure_count": 0 + }, + "artifacts": { + "reviewer_kit_json": "reports/output_review_kit.json", + "reviewer_kit_markdown": "reports/output_review_kit.md", + "reviewer_kit_html": "reports/output_review_kit.html", + "blind_pack_json": "reports/output_blind_review_pack.json", + "blind_pack_markdown": "reports/output_blind_review_pack.md", + "decisions": "reports/output_review_decisions.json", + "adjudication_json": "reports/output_review_adjudication.json", + "adjudication_markdown": "reports/output_review_adjudication.md" + }, + "failures": [] + }, + "output_review_adjudication": { + "ok": true, + "summary": { + "pair_count": 5, + "judgment_count": 0, + "pending_count": 5, + "agreement_count": 0, + "disagreement_count": 0, + "invalid_decision_count": 0, + "answer_revealed_count": 0, + "pending_answer_hidden_count": 5, + "agreement_rate": null, + "needs_review": true, + "failure_count": 0, + "reviewer_checklist_count": 5, + "reviewer_checklist_pending_count": 5, + "reviewer_checklist_invalid_count": 0, + "reviewer_checklist_ready_count": 0 + }, + "reviewer": "", + "reviewed_at": "", + "failures": [] + }, + "benchmark_reproducibility": { + "ok": true, + "summary": { + "reproducibility_ready": true, + "release_lock_ready": false, + "methodology_complete": true, + "required_artifact_count": 24, + "missing_artifact_count": 0, + "evidence_bundle_sha256": "60df1cebf40b1627f6d313c233f377d0d36228a9525b70099623563c7efb7804", + "source_contract_sha256": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af", + "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc", + "output_case_count": 5, + "failure_disclosure_count": 3, + "command_count": 21, + "command_executed_count": 10, + "timing_observed_count": 10, + "model_executed_count": 0, + "token_observed_count": 0, + "human_review_complete": false, + "provider_evidence_complete": false, + "world_class_ready": false, + "world_class_open_gap_count": 4, + "world_class_task_count": 4, + "world_class_ledger_pending_count": 4, + "world_class_source_check_count": 13, + "world_class_source_pass_count": 6, + "world_class_source_blocked_count": 7, + "public_claim_ready": false, + "public_claim_blocker_count": 5, + "working_tree_dirty": true, + "changed_file_count": 73 + }, + "commit": "5495734e7e33b19b84a932626112d783a3edf271", + "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.", + "Local command-runner evidence is reproducible but does not replace provider-backed model holdout evidence.", + "Pending blind-review decisions are visible but do not count as human adjudication.", + "World-class readiness remains false until external and human evidence gaps close." + ] + }, + "runtime_conformance": { + "target_count": 5, + "pass_count": 5, + "fail_count": 0 + }, + "runtime_permissions": { + "ok": true, + "summary": { + "target_count": 4, + "pass_count": 4, + "fail_count": 0, + "native_enforcement_count": 0, + "metadata_fallback_count": 4, + "residual_risk_count": 4, + "required_capability_count": 3, + "failure_count": 0, + "installer_enforcement_source_status": "present", + "installer_enforcement_target_count": 4, + "installer_enforcement_pass_count": 4, + "installer_permission_enforced_count": 12, + "installer_permission_failure_count": 0, + "installer_permission_capability_count": 3, + "world_class_native_evidence_ready": false, + "installer_enforcement_ready": true + }, + "expected_capabilities": [ + "file_write", + "network", + "subprocess" + ], + "targets": [ + { + "target": "openai", + "status": "pass", + "assurance": "metadata-fallback-explicit", + "native_enforcement": false, + "metadata_fallback_explicit": true, + "residual_risks": [ + "Client-native permission enforcement is not provided by this target; installer or operator must honor metadata." + ] + }, + { + "target": "claude", + "status": "pass", + "assurance": "metadata-fallback-explicit", + "native_enforcement": false, + "metadata_fallback_explicit": true, + "residual_risks": [ + "Client-native permission enforcement is not provided by this target; installer or operator must honor metadata." + ] + }, + { + "target": "generic", + "status": "pass", + "assurance": "metadata-fallback-explicit", + "native_enforcement": false, + "metadata_fallback_explicit": true, + "residual_risks": [ + "Client-native permission enforcement is not provided by this target; installer or operator must honor metadata." + ] + }, + { + "target": "vscode", + "status": "pass", + "assurance": "metadata-fallback-explicit", + "native_enforcement": false, + "metadata_fallback_explicit": true, + "residual_risks": [ + "Client-native permission enforcement is not provided by this target; installer or operator must honor metadata." + ] + } + ], + "failures": [] + }, + "trust_security": { + "scanned_files": 193, + "script_count": 106, + "internal_module_count": 26, + "secret_findings": 0, + "dependency_files": [ + "requirements-ci.txt" + ], + "network_script_count": 3, + "network_policy_covered_count": 3, + "network_policy_missing_count": 0, + "file_write_script_count": 67, + "permission_required_count": 3, + "permission_approved_count": 3, + "permission_missing_count": 0, + "permission_invalid_count": 0, + "permission_expired_count": 0, + "help_smoke_checked_count": 80, + "help_smoke_failed_count": 0, + "interactive_script_count": 0, + "package_hash_scope": "source-contract-without-generated-reports", + "package_hash_file_count": 193, + "package_sha256": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af" + }, + "skill_atlas": { + "skill_count": 12, + "actionable_skill_count": 1, + "route_collision_count": 5, + "actionable_route_collision_count": 0, + "owner_gap_count": 9, + "actionable_owner_gap_count": 0, + "stale_count": 10, + "actionable_stale_count": 0, + "shared_resource_count": 0, + "no_route_opportunity_count": 0, + "telemetry_report_count": 1, + "drift_signal_count": 0, + "actionable_drift_signal_count": 0, + "non_actionable_issue_count": 24 + }, + "registry_distribution": { + "ok": true, + "package": { + "schema_version": "2.0", + "name": "yao-meta-skill", + "version": "1.1.0", + "description": "Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.", + "targets": [ + "openai", + "claude", + "generic", + "agent-skills-compatible", + "vscode" + ], + "maturity": "governed", + "owner": "Yao Team", + "review_cadence": "quarterly", + "trust_level": "local", + "license": "MIT", + "checksums": { + "package_sha256": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af", + "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc" + }, + "compatibility": { + "openai": "pass", + "claude": "pass", + "agent-skills": "pass", + "vscode": "pass", + "generic": "pass", + "agent-skills-compatible": "pass" + }, + "source": { + "skill_dir": ".", + "skill_ir": "skill-ir/examples/yao-meta-skill.json", + "ir_schema_version": "2.0.0", + "canonical_metadata": "agents/interface.yaml" + }, + "artifacts": { + "overview_html": "reports/skill-overview.html", + "review_studio_html": "reports/review-studio.html", + "trust_report": "reports/security_trust_report.md", + "conformance_matrix": "reports/conformance_matrix.md", + "compiled_targets": "reports/compiled_targets.md", + "package_verification": "reports/package_verification.md", + "install_simulation": "reports/install_simulation.md", + "adoption_drift": "reports/adoption_drift_report.md", + "review_waivers": "reports/review_waivers.md", + "review_annotations": "reports/review_annotations.md", + "package_metadata": "registry/packages/yao-meta-skill.json" + }, + "distribution": { + "archive_verified": true, + "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc", + "package_verification": "reports/package_verification.json", + "install_simulated": true, + "install_simulation": "reports/install_simulation.json" + }, + "generated_at": "2026-06-13" + }, + "failures": [], + "warnings": [] + }, + "package_verification": { + "ok": true, + "summary": { + "target_count": 4, + "adapter_count": 4, + "archive_present": true, + "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc", + "archive_entry_count": 586, + "failure_count": 0, + "warning_count": 0 + }, + "failures": [], + "warnings": [] + }, + "install_simulation": { + "ok": true, + "summary": { + "archive_present": true, + "archive_entry_count": 603, + "archive_extracted": true, + "entrypoint_loaded": true, + "manifest_loaded": true, + "interface_loaded": true, + "adapter_count": 4, + "installer_permission_enforced_count": 12, + "installer_permission_failure_count": 0, + "permission_target_count": 4, + "permission_capability_count": 3, + "install_root_is_temp": false, + "failure_count": 0, + "warning_count": 0 + }, + "failures": [], + "warnings": [] + }, + "upgrade_check": { + "ok": true, + "summary": { + "declared_bump": "minor", + "recommended_bump": "minor", + "breaking_change_count": 0, + "added_target_count": 2, + "metadata_change_count": 1, + "checksum_change_count": 2, + "failure_count": 0, + "warning_count": 0 + }, + "upgrade_diff": { + "name_changed": false, + "added_targets": [ + "agent-skills-compatible", + "vscode" + ], + "removed_targets": [], + "compatibility_changes": [ + { + "target": "agent-skills", + "from": "missing", + "to": "pass", + "direction": "improved" + }, + { + "target": "agent-skills-compatible", + "from": "missing", + "to": "pass", + "direction": "improved" + }, + { + "target": "vscode", + "from": "missing", + "to": "pass", + "direction": "improved" + } + ], + "metadata_changes": [ + { + "field": "description", + "from": "Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes.", + "to": "Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse." + } + ], + "checksum_changes": [ + { + "field": "archive_sha256", + "from": "", + "to": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc" + }, + { + "field": "package_sha256", + "from": "0000000000000000000000000000000000000000000000000000000000000000", + "to": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af" + } + ] + }, + "release_notes": [ + "Recommended version bump: minor.", + "Added targets: agent-skills-compatible, vscode.", + "Package or archive checksum changed; reviewers should verify package artifacts before release.", + "Package verification evidence: reports/package_verification.md." + ], + "failures": [], + "warnings": [] + }, + "adoption_drift": { + "ok": true, + "summary": { + "event_count": 1, + "adoption_sample_count": 0, + "activation_count": 0, + "accepted_count": 0, + "edited_count": 0, + "rejected_count": 0, + "missed_count": 0, + "failed_count": 0, + "adoption_rate": 0, + "missed_trigger_count": 0, + "wrong_trigger_count": 0, + "bad_output_count": 0, + "script_error_count": 0, + "missing_resource_count": 0, + "review_overdue_count": 0, + "risk_band": "low", + "event_types": { + "review_event": 1 + }, + "failure_types": {}, + "source_types": { + "manual": 1 + }, + "command_counts": {} + }, + "next_iteration_candidates": [], + "privacy_contract": { + "storage": "local-first", + "event_scope": "metadata-only", + "raw_content_allowed": false, + "raw_event_log_packaged": false, + "blocked_fields": [ + "content", + "input", + "inputs", + "message", + "messages", + "note", + "output", + "outputs", + "prompt", + "raw", + "text", + "transcript" + ] + }, + "failures": [] + }, + "review_waivers": { + "ok": true, + "summary": { + "waiver_count": 0, + "active_count": 0, + "expired_count": 0, + "invalid_count": 0, + "covered_gate_count": 0, + "covered_gate_keys": [], + "waiver_candidate_count": 2, + "waiverable_open_count": 1, + "non_waivable_count": 1 + }, + "policy": { + "blocker_waivers_allowed": false, + "minimum_reason_chars": 20, + "expires_required": true, + "known_gate_keys": [ + "context-budget", + "intent-canvas", + "operations-loop", + "output-lab", + "permission-gates", + "permission-runtime", + "registry-audit", + "release-notes", + "runtime-matrix", + "skill-atlas", + "trigger-lab", + "trust-report" + ] + }, + "failures": [], + "warnings": [] + }, + "review_annotations": { + "ok": true, + "summary": { + "annotation_count": 0, + "open_count": 0, + "resolved_count": 0, + "deferred_count": 0, + "open_blocker_count": 0, + "open_warning_count": 0, + "linked_gate_count": 0, + "target_missing_count": 0, + "failure_count": 0 + }, + "annotations": [], + "failures": [] + }, + "world_class_evidence_plan": { + "ok": true, + "summary": { + "audit_decision": "continue-iteration", + "world_class_ready": false, + "audit_world_class_ready": false, + "ready_to_claim_world_class": false, + "ledger_completion_required": true, + "evidence_requirement_count": 4, + "task_count": 4, + "human_task_count": 1, + "external_task_count": 3, + "review_task_count": 0, + "decision": "collect-external-evidence" + }, + "tasks": [ + { + "key": "provider-holdout", + "label": "Provider Holdout", + "status": "external_required", + "category": "external", + "owner": "operator with provider credentials", + "current": "model-executed 0; token-observed 0", + "objective": "Collect at least one provider-backed output-eval holdout run with model, timing, and token metadata.", + "runbook": [ + "YAO_OUTPUT_EVAL_MODEL=gpt-4.1-mini OPENAI_API_KEY= python3 scripts/yao.py output-exec --provider-runner openai --timeout-seconds 60", + "python3 scripts/yao.py skill-os2-audit . --generated-at ", + "Copy evidence/world_class/templates/provider-holdout.intake.json to evidence/world_class/submissions/provider-holdout.json and fill only real evidence fields.", + "python3 scripts/yao.py world-class-intake . --submissions-dir evidence/world_class/submissions" + ], + "success_checks": [ + "reports/output_execution_runs.json summary.model_executed_count > 0", + "reports/output_execution_runs.json summary.timing_observed_count > 0", + "reports/output_execution_runs.json summary.token_observed_count > 0", + "reports/skill_os2_audit.json item provider-holdout status becomes pass" + ], + "evidence_artifacts": [ + "reports/output_execution_runs.json", + "reports/output_execution_runs.md", + "reports/skill_os2_audit.json", + "evidence/world_class/intake.schema.json", + "evidence/world_class/templates/provider-holdout.intake.json", + "reports/world_class_evidence_intake.json", + "reports/world_class_evidence_intake.md" + ], + "privacy_contract": [ + "Do not commit provider credentials or environment dumps.", + "The output execution report records output hashes and aggregate run metadata, not raw provider prompts." + ], + "audit_next_action": "Run provider-backed holdout cases with real credentials and commit only aggregate evidence." + }, + { + "key": "human-adjudication", + "label": "Human Adjudication", + "status": "human_required", + "category": "human", + "owner": "human reviewer", + "current": "0/5 decisions; pending 5", + "objective": "Record real blind A/B reviewer decisions before claiming human output review completion.", + "runbook": [ + "python3 scripts/yao.py output-review-kit --write-template", + "Open reports/output_review_kit.md and choose A or B for each pair without opening the answer key.", + "python3 scripts/adjudicate_output_review.py --write-template", + "Edit reports/output_review_decisions.json with winner_variant values and reviewer metadata.", + "python3 scripts/yao.py output-review", + "python3 scripts/yao.py skill-os2-audit . --generated-at ", + "Copy evidence/world_class/templates/human-adjudication.intake.json to evidence/world_class/submissions/human-adjudication.json and fill only real evidence fields.", + "python3 scripts/yao.py world-class-intake . --submissions-dir evidence/world_class/submissions" + ], + "success_checks": [ + "reports/output_review_adjudication.json summary.pending_count == 0", + "reports/output_review_adjudication.json summary.judgment_count == summary.pair_count", + "reports/output_review_adjudication.json summary.invalid_decision_count == 0", + "reports/skill_os2_audit.json item human-adjudication status becomes pass" + ], + "evidence_artifacts": [ + "reports/output_blind_review_pack.md", + "reports/output_review_kit.md", + "reports/output_review_decisions.json", + "reports/output_review_adjudication.json", + "reports/output_review_adjudication.md", + "evidence/world_class/intake.schema.json", + "evidence/world_class/templates/human-adjudication.intake.json", + "reports/world_class_evidence_intake.json", + "reports/world_class_evidence_intake.md" + ], + "privacy_contract": [ + "Reviewer decisions should not include raw user data or private customer detail.", + "Keep the answer key separate until after decisions are recorded." + ], + "audit_next_action": "Record real A/B choices in the decision template, then regenerate adjudication." + }, + { + "key": "native-permission-enforcement", + "label": "Native Permission Enforcement", + "status": "external_required", + "category": "external", + "owner": "target client or installer integrator", + "current": "native-enforced targets 0; installer-enforced targets 4", + "objective": "Prove at least one real target client or external installer runtime guard enforces approved high-permission capabilities.", + "runbook": [ + "Implement or connect a real target client or external installer runtime guard that blocks undeclared network, file_write, or subprocess capabilities.", + "Update the generated target adapter only when the guard is actually enforced by that target.", + "python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip", + "python3 scripts/yao.py install-simulate . --package-dir dist --install-root dist/install-simulation", + "python3 scripts/yao.py runtime-permissions . --package-dir dist", + "python3 scripts/yao.py skill-os2-audit . --generated-at ", + "Copy evidence/world_class/templates/native-permission-enforcement.intake.json to evidence/world_class/submissions/native-permission-enforcement.json and fill only real evidence fields.", + "python3 scripts/yao.py world-class-intake . --submissions-dir evidence/world_class/submissions" + ], + "success_checks": [ + "reports/runtime_permission_probes.json summary.native_enforcement_count > 0", + "reports/runtime_permission_probes.json summary.failure_count == 0", + "reports/runtime_permission_probes.json summary.installer_enforcement_pass_count records local installer enforcement but does not replace native evidence", + "reports/skill_os2_audit.json item native-permission-enforcement status becomes pass" + ], + "evidence_artifacts": [ + "dist/targets/*/adapter.json", + "reports/runtime_permission_probes.json", + "reports/runtime_permission_probes.md", + "reports/install_simulation.json", + "reports/install_simulation.md", + "security/permission_policy.json", + "evidence/world_class/intake.schema.json", + "evidence/world_class/templates/native-permission-enforcement.intake.json", + "reports/world_class_evidence_intake.json", + "reports/world_class_evidence_intake.md" + ], + "privacy_contract": [ + "Do not mark native_enforcement true for metadata-only fallbacks.", + "Keep residual risks visible for targets that still rely on operator enforcement." + ], + "audit_next_action": "Integrate a real target-client or external installer runtime guard before claiming native permission enforcement." + }, + { + "key": "native-client-telemetry", + "label": "Native Client Telemetry", + "status": "external_required", + "category": "external", + "owner": "Browser/Chrome/IDE/provider client integrator", + "current": "external source events 0; adoption samples 0", + "objective": "Import production metadata-only events from a real external client into the local drift loop.", + "runbook": [ + "python3 scripts/telemetry_native_host.py . --write-launcher /tmp/yao-telemetry-host.sh --write-manifest /tmp/yao-telemetry-host.json --allowed-origin chrome-extension:///", + "Install the generated native messaging manifest for the real client and send at least one accepted skill_activation or skill_output event.", + "python3 scripts/yao.py telemetry-import . --input-jsonl .yao/telemetry_spool/external_events.jsonl", + "python3 scripts/yao.py skill-atlas --workspace-root .", + "python3 scripts/yao.py skill-os2-audit . --generated-at ", + "Copy evidence/world_class/templates/native-client-telemetry.intake.json to evidence/world_class/submissions/native-client-telemetry.json and fill only real evidence fields.", + "python3 scripts/yao.py world-class-intake . --submissions-dir evidence/world_class/submissions" + ], + "success_checks": [ + "reports/adoption_drift_report.json summary.source_types.external > 0", + "reports/adoption_drift_report.json summary.adoption_sample_count > 0", + "reports/skill_os2_audit.json item native-client-telemetry status becomes pass" + ], + "evidence_artifacts": [ + "reports/adoption_drift_report.json", + "reports/adoption_drift_report.md", + "reports/telemetry_hook_recipes.json", + "scripts/telemetry_native_host.py", + "evidence/world_class/intake.schema.json", + "evidence/world_class/templates/native-client-telemetry.intake.json", + "reports/world_class_evidence_intake.json", + "reports/world_class_evidence_intake.md" + ], + "privacy_contract": [ + "Telemetry must remain metadata-only and local-first.", + "Do not package reports/telemetry_events.jsonl or any raw prompt, output, transcript, note, or message field." + ], + "audit_next_action": "Install a real client against the native host and import production metadata-only events." + } + ], + "source_audit": { + "json": "reports/skill_os2_audit.json", + "markdown": "reports/skill_os2_audit.md", + "open_gap_count": 4 + } + }, + "world_class_evidence_ledger": { + "ok": true, + "summary": { + "ledger_entry_count": 4, + "source_accepted_count": 0, + "accepted_count": 0, + "pending_count": 4, + "human_pending_count": 1, + "external_pending_count": 3, + "submitted_entry_count": 0, + "missing_submission_count": 4, + "invalid_submission_count": 0, + "source_check_count": 13, + "source_pass_count": 6, + "source_blocked_count": 7, + "submitted_but_pending_count": 0, + "source_accepted_without_valid_submission_count": 0, + "overclaim_guard_active": true, + "ready_to_claim_world_class": false, + "decision": "evidence-pending" + }, + "entries": [ + { + "key": "provider-holdout", + "label": "Provider Holdout", + "category": "external", + "owner": "operator with provider credentials", + "status": "pending", + "source_status": "external_required", + "source_accepted": false, + "current": "model-executed 0; token-observed 0", + "objective": "Collect at least one provider-backed output-eval holdout run with model, timing, and token metadata.", + "runbook": [ + "YAO_OUTPUT_EVAL_MODEL=gpt-4.1-mini OPENAI_API_KEY= python3 scripts/yao.py output-exec --provider-runner openai --timeout-seconds 60", + "python3 scripts/yao.py skill-os2-audit . --generated-at ", + "Copy evidence/world_class/templates/provider-holdout.intake.json to evidence/world_class/submissions/provider-holdout.json and fill only real evidence fields.", + "python3 scripts/yao.py world-class-intake . --submissions-dir evidence/world_class/submissions" + ], + "provenance_requirements": [ + "provider-backed model run", + "observed timing", + "observed token metadata" + ], + "success_checks": [ + "reports/output_execution_runs.json summary.model_executed_count > 0", + "reports/output_execution_runs.json summary.timing_observed_count > 0", + "reports/output_execution_runs.json summary.token_observed_count > 0", + "reports/skill_os2_audit.json item provider-holdout status becomes pass" + ], + "evidence_artifacts": [ + "reports/output_execution_runs.json", + "reports/output_execution_runs.md", + "reports/skill_os2_audit.json", + "evidence/world_class/intake.schema.json", + "evidence/world_class/templates/provider-holdout.intake.json", + "reports/world_class_evidence_intake.json", + "reports/world_class_evidence_intake.md" + ], + "privacy_contract": [ + "Do not commit provider credentials or environment dumps.", + "The output execution report records output hashes and aggregate run metadata, not raw provider prompts." + ], + "observed_state": { + "model_executed_count": 0, + "timing_observed_count": 10, + "token_observed_count": 0, + "accepted": false + }, + "source_checklist": [ + { + "evidence_key": "provider-holdout", + "label": "Provider model run", + "field": "model_executed_count", + "expected": ">0", + "actual": 0, + "status": "blocked", + "source_accepted": false, + "next_action": "Run provider-backed output-exec with real credentials." + }, + { + "evidence_key": "provider-holdout", + "label": "Timing observed", + "field": "timing_observed_count", + "expected": ">0", + "actual": 10, + "status": "pass", + "source_accepted": false, + "next_action": "Provider execution should record timing metadata." + }, + { + "evidence_key": "provider-holdout", + "label": "Token usage observed", + "field": "token_observed_count", + "expected": ">0", + "actual": 0, + "status": "blocked", + "source_accepted": false, + "next_action": "Provider execution should return non-estimated token usage." + } + ], + "source_check_count": 3, + "source_pass_count": 1, + "source_blocked_count": 2, + "submission_state": { + "status": "missing", + "path": "evidence/world_class/submissions/provider-holdout.json", + "artifact_ref_count": 0, + "attested_real_evidence": false, + "privacy_contract_satisfied": false, + "ledger_counts_as_completion": false + }, + "anti_overclaim": { + "planned_work_counts_as_evidence": false, + "metadata_fallback_counts_as_native_enforcement": false, + "pending_review_counts_as_human_decision": false, + "local_command_runner_counts_as_provider_model": false + }, + "next_action": "Run provider-backed holdout cases with real credentials and commit only aggregate evidence." + }, + { + "key": "human-adjudication", + "label": "Human Adjudication", + "category": "human", + "owner": "human reviewer", + "status": "pending", + "source_status": "human_required", + "source_accepted": false, + "current": "0/5 decisions; pending 5", + "objective": "Record real blind A/B reviewer decisions before claiming human output review completion.", + "runbook": [ + "python3 scripts/yao.py output-review-kit --write-template", + "Open reports/output_review_kit.md and choose A or B for each pair without opening the answer key.", + "python3 scripts/adjudicate_output_review.py --write-template", + "Edit reports/output_review_decisions.json with winner_variant values and reviewer metadata.", + "python3 scripts/yao.py output-review", + "python3 scripts/yao.py skill-os2-audit . --generated-at ", + "Copy evidence/world_class/templates/human-adjudication.intake.json to evidence/world_class/submissions/human-adjudication.json and fill only real evidence fields.", + "python3 scripts/yao.py world-class-intake . --submissions-dir evidence/world_class/submissions" + ], + "provenance_requirements": [ + "real reviewer identity", + "blind A/B decisions", + "answer key unopened until decisions exist" + ], + "success_checks": [ + "reports/output_review_adjudication.json summary.pending_count == 0", + "reports/output_review_adjudication.json summary.judgment_count == summary.pair_count", + "reports/output_review_adjudication.json summary.invalid_decision_count == 0", + "reports/skill_os2_audit.json item human-adjudication status becomes pass" + ], + "evidence_artifacts": [ + "reports/output_blind_review_pack.md", + "reports/output_review_kit.md", + "reports/output_review_decisions.json", + "reports/output_review_adjudication.json", + "reports/output_review_adjudication.md", + "evidence/world_class/intake.schema.json", + "evidence/world_class/templates/human-adjudication.intake.json", + "reports/world_class_evidence_intake.json", + "reports/world_class_evidence_intake.md" + ], + "privacy_contract": [ + "Reviewer decisions should not include raw user data or private customer detail.", + "Keep the answer key separate until after decisions are recorded." + ], + "observed_state": { + "pair_count": 5, + "judgment_count": 0, + "pending_count": 5, + "invalid_decision_count": 0, + "answer_revealed_count": 0, + "accepted": false + }, + "source_checklist": [ + { + "evidence_key": "human-adjudication", + "label": "Review pairs exist", + "field": "pair_count", + "expected": ">0", + "actual": 5, + "status": "pass", + "source_accepted": false, + "next_action": "Generate the blind A/B review pack." + }, + { + "evidence_key": "human-adjudication", + "label": "No pending decisions", + "field": "pending_count", + "expected": "==0", + "actual": 5, + "status": "blocked", + "source_accepted": false, + "next_action": "Record a reviewer choice for every pair." + }, + { + "evidence_key": "human-adjudication", + "label": "Judgments complete", + "field": "judgment_count", + "expected": "==pair_count", + "actual": 0, + "status": "blocked", + "source_accepted": false, + "next_action": "Every pair needs one valid human judgment." + }, + { + "evidence_key": "human-adjudication", + "label": "No invalid decisions", + "field": "invalid_decision_count", + "expected": "==0", + "actual": 0, + "status": "pass", + "source_accepted": false, + "next_action": "Fix malformed winner/confidence entries." + } + ], + "source_check_count": 4, + "source_pass_count": 2, + "source_blocked_count": 2, + "submission_state": { + "status": "missing", + "path": "evidence/world_class/submissions/human-adjudication.json", + "artifact_ref_count": 0, + "attested_real_evidence": false, + "privacy_contract_satisfied": false, + "ledger_counts_as_completion": false + }, + "anti_overclaim": { + "planned_work_counts_as_evidence": false, + "metadata_fallback_counts_as_native_enforcement": false, + "pending_review_counts_as_human_decision": false, + "local_command_runner_counts_as_provider_model": false + }, + "next_action": "Record real A/B choices in the decision template, then regenerate adjudication." + }, + { + "key": "native-permission-enforcement", + "label": "Native Permission Enforcement", + "category": "external", + "owner": "target client or installer integrator", + "status": "pending", + "source_status": "external_required", + "source_accepted": false, + "current": "native-enforced targets 0; installer-enforced targets 4", + "objective": "Prove at least one real target client or external installer runtime guard enforces approved high-permission capabilities.", + "runbook": [ + "Implement or connect a real target client or external installer runtime guard that blocks undeclared network, file_write, or subprocess capabilities.", + "Update the generated target adapter only when the guard is actually enforced by that target.", + "python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip", + "python3 scripts/yao.py install-simulate . --package-dir dist --install-root dist/install-simulation", + "python3 scripts/yao.py runtime-permissions . --package-dir dist", + "python3 scripts/yao.py skill-os2-audit . --generated-at ", + "Copy evidence/world_class/templates/native-permission-enforcement.intake.json to evidence/world_class/submissions/native-permission-enforcement.json and fill only real evidence fields.", + "python3 scripts/yao.py world-class-intake . --submissions-dir evidence/world_class/submissions" + ], + "provenance_requirements": [ + "real target client or external installer runtime guard", + "native enforcement flag or externally accepted guard proof", + "residual risk retained for fallback targets" + ], + "success_checks": [ + "reports/runtime_permission_probes.json summary.native_enforcement_count > 0", + "reports/runtime_permission_probes.json summary.failure_count == 0", + "reports/runtime_permission_probes.json summary.installer_enforcement_pass_count records local installer enforcement but does not replace native evidence", + "reports/skill_os2_audit.json item native-permission-enforcement status becomes pass" + ], + "evidence_artifacts": [ + "dist/targets/*/adapter.json", + "reports/runtime_permission_probes.json", + "reports/runtime_permission_probes.md", + "reports/install_simulation.json", + "reports/install_simulation.md", + "security/permission_policy.json", + "evidence/world_class/intake.schema.json", + "evidence/world_class/templates/native-permission-enforcement.intake.json", + "reports/world_class_evidence_intake.json", + "reports/world_class_evidence_intake.md" + ], + "privacy_contract": [ + "Do not mark native_enforcement true for metadata-only fallbacks.", + "Keep residual risks visible for targets that still rely on operator enforcement." + ], + "observed_state": { + "native_enforcement_count": 0, + "metadata_fallback_count": 4, + "installer_enforcement_pass_count": 4, + "installer_permission_failure_count": 0, + "installer_enforcement_ready": true, + "residual_risk_count": 4, + "failure_count": 0, + "accepted": false + }, + "source_checklist": [ + { + "evidence_key": "native-permission-enforcement", + "label": "Native enforcement", + "field": "native_enforcement_count", + "expected": ">0", + "actual": 0, + "status": "blocked", + "source_accepted": false, + "next_action": "Collect real target-client or external runtime guard proof." + }, + { + "evidence_key": "native-permission-enforcement", + "label": "Probe failures", + "field": "failure_count", + "expected": "==0", + "actual": 0, + "status": "pass", + "source_accepted": false, + "next_action": "Runtime permission probes must stay clean." + }, + { + "evidence_key": "native-permission-enforcement", + "label": "Installer support", + "field": "installer_enforcement_ready", + "expected": "true", + "actual": true, + "status": "pass", + "source_accepted": false, + "next_action": "Installer enforcement is supporting evidence, not native proof." + } + ], + "source_check_count": 3, + "source_pass_count": 2, + "source_blocked_count": 1, + "submission_state": { + "status": "missing", + "path": "evidence/world_class/submissions/native-permission-enforcement.json", + "artifact_ref_count": 0, + "attested_real_evidence": false, + "privacy_contract_satisfied": false, + "ledger_counts_as_completion": false + }, + "anti_overclaim": { + "planned_work_counts_as_evidence": false, + "metadata_fallback_counts_as_native_enforcement": false, + "pending_review_counts_as_human_decision": false, + "local_command_runner_counts_as_provider_model": false + }, + "next_action": "Integrate a real target-client or external installer runtime guard before claiming native permission enforcement." + }, + { + "key": "native-client-telemetry", + "label": "Native Client Telemetry", + "category": "external", + "owner": "Browser/Chrome/IDE/provider client integrator", + "status": "pending", + "source_status": "external_required", + "source_accepted": false, + "current": "external source events 0; adoption samples 0", + "objective": "Import production metadata-only events from a real external client into the local drift loop.", + "runbook": [ + "python3 scripts/telemetry_native_host.py . --write-launcher /tmp/yao-telemetry-host.sh --write-manifest /tmp/yao-telemetry-host.json --allowed-origin chrome-extension:///", + "Install the generated native messaging manifest for the real client and send at least one accepted skill_activation or skill_output event.", + "python3 scripts/yao.py telemetry-import . --input-jsonl .yao/telemetry_spool/external_events.jsonl", + "python3 scripts/yao.py skill-atlas --workspace-root .", + "python3 scripts/yao.py skill-os2-audit . --generated-at ", + "Copy evidence/world_class/templates/native-client-telemetry.intake.json to evidence/world_class/submissions/native-client-telemetry.json and fill only real evidence fields.", + "python3 scripts/yao.py world-class-intake . --submissions-dir evidence/world_class/submissions" + ], + "provenance_requirements": [ + "real external client source", + "metadata-only event", + "local-first import path" + ], + "success_checks": [ + "reports/adoption_drift_report.json summary.source_types.external > 0", + "reports/adoption_drift_report.json summary.adoption_sample_count > 0", + "reports/skill_os2_audit.json item native-client-telemetry status becomes pass" + ], + "evidence_artifacts": [ + "reports/adoption_drift_report.json", + "reports/adoption_drift_report.md", + "reports/telemetry_hook_recipes.json", + "scripts/telemetry_native_host.py", + "evidence/world_class/intake.schema.json", + "evidence/world_class/templates/native-client-telemetry.intake.json", + "reports/world_class_evidence_intake.json", + "reports/world_class_evidence_intake.md" + ], + "privacy_contract": [ + "Telemetry must remain metadata-only and local-first.", + "Do not package reports/telemetry_events.jsonl or any raw prompt, output, transcript, note, or message field." + ], + "observed_state": { + "external_source_events": 0, + "adoption_sample_count": 0, + "raw_content_allowed": false, + "risk_band": "low", + "accepted": false + }, + "source_checklist": [ + { + "evidence_key": "native-client-telemetry", + "label": "External events", + "field": "external_source_events", + "expected": ">0", + "actual": 0, + "status": "blocked", + "source_accepted": false, + "next_action": "Import at least one metadata-only event from a real client." + }, + { + "evidence_key": "native-client-telemetry", + "label": "Adoption sample", + "field": "adoption_sample_count", + "expected": ">0", + "actual": 0, + "status": "blocked", + "source_accepted": false, + "next_action": "Telemetry must include adoption outcome evidence." + }, + { + "evidence_key": "native-client-telemetry", + "label": "Raw content blocked", + "field": "raw_content_allowed", + "expected": "false", + "actual": false, + "status": "pass", + "source_accepted": false, + "next_action": "Telemetry must stay metadata-only." + } + ], + "source_check_count": 3, + "source_pass_count": 1, + "source_blocked_count": 2, + "submission_state": { + "status": "missing", + "path": "evidence/world_class/submissions/native-client-telemetry.json", + "artifact_ref_count": 0, + "attested_real_evidence": false, + "privacy_contract_satisfied": false, + "ledger_counts_as_completion": false + }, + "anti_overclaim": { + "planned_work_counts_as_evidence": false, + "metadata_fallback_counts_as_native_enforcement": false, + "pending_review_counts_as_human_decision": false, + "local_command_runner_counts_as_provider_model": false + }, + "next_action": "Install a real client against the native host and import production metadata-only events." + } + ], + "source_plan": { + "json": "reports/world_class_evidence_plan.json", + "markdown": "reports/world_class_evidence_plan.md", + "task_count": 4, + "evidence_requirement_count": 4 + } + }, + "synthesis_highlights": [ + "Borrow progressive disclosure: keep the entrypoint lean and move depth into references or scripts.", + "Borrow a review checkpoint wherever trust matters more than raw speed.", + "Borrow the discipline of defining what the skill should not own before growing the package." + ], + "artifact_design": { + "design_system": "metric editorial", + "highlights": [ + "Execution-focused technical artifact with environment assumptions, copyable commands, expected outputs, and side effects made explicit.", + "Name the working directory and required inputs for commands.", + "Mark destructive, networked, or external side-effect operations.", + "Prefer the smallest runnable snippet over broad framework scaffolding." + ] + }, + "prompt_quality": { + "overall_quality_score": 89.0, + "highlights": [ + "Primary prompt task family: Execution operation.", + "Complexity: expert — multiple task families plus governance, evaluation, or expert-level constraints", + "Completeness: 100/100.", + "Clarity: 85/100." + ] + }, + "system_model": { + "stability": { + "score": 100, + "band": "system-ready" + }, + "highlights": [ + "Stability: system-ready (100/100).", + "Owned job: Turn repeated workflows, prompts, transcripts, runbooks, documents, or existing skill packages into routeable, evaluable, packageable, and governable agent skills for personal, team, library, or governed reuse.", + "Leverage: Tune the frontmatter description — Name the recurring job, expected input, output, and strongest non-goal in compact language.", + "Leverage: Install output self-repair checks — Add only the checks that prevent recurring output mistakes." + ] + }, + "metadata": { + "canonical_format": "agent-skills", + "targets": [ + "openai", + "claude", + "generic", + "vscode" + ], + "maturity_tier": "governed", + "skill_archetype": "governed", + "updated_at": "2026-03-31" + }, + "interpretation_contract": { + "schema_version": "2.0", + "source_model": "skill-overview-v2", + "source_model_reused": true, + "overview_report": "reports/skill-overview.html", + "html_report": "reports/skill-interpretation.html", + "json_report": "reports/skill-interpretation.json", + "default_language": "zh-CN", + "languages": [ + "zh-CN", + "en" + ], + "includes": [ + "skill role", + "principles", + "usage scenarios", + "trigger contract", + "inputs and outputs", + "quality evidence", + "risk governance", + "package assets", + "highlights", + "upgrade roadmap" + ] + } +} \ No newline at end of file diff --git a/reports/skill-overview.html b/reports/skill-overview.html index 02ebec05..c3b2dfe6 100644 --- a/reports/skill-overview.html +++ b/reports/skill-overview.html @@ -358,7 +358,7 @@ } .metrics-primary { display: grid; - grid-template-columns: minmax(420px, 1fr) minmax(360px, 0.88fr); + grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr); gap: 22px; align-items: start; } @@ -426,7 +426,7 @@ margin-top: 2px; } .metric-detail-grid { - grid-template-columns: repeat(2, minmax(0, 1fr)); + grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); align-items: stretch; } .list, .compact-list, .step-list { @@ -456,18 +456,20 @@ } .metric-card { display: grid; - grid-template-columns: minmax(96px, 118px) minmax(0, 1fr); - gap: 18px; + grid-template-columns: 1fr; + gap: 14px; align-content: start; min-height: 0; } .metric-card-head { - display: grid; - align-content: start; + display: flex; + gap: 14px; + align-items: flex-start; + justify-content: space-between; } .metric-card strong { display: block; - margin: 8px 0 10px; + margin: 0; color: var(--brand); font-family: var(--mono); font-size: 2rem; @@ -478,6 +480,7 @@ .metric-label { color: var(--muted); font-size: 13px; + line-height: 1.45; } .metric-card-body { min-width: 0; @@ -773,7 +776,7 @@

作用定位Role

-
  • 从工作流、提示词、对话记录、文档或笔记中创建、重构、评估和打包 agent skill;适用于新建 Skill、沉淀重复流程、改进现有 Skill、补充 eval 或团队复用打包。Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.
  • 把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。Turn one-off experience into a reusable, evaluable, and portable skill package.
  • 交付结果:SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/output_execution_runs.md, reports/output_blind_review_pack.md, reports/output_review_kit.md, reports/output_review_adjudication.md, reports/benchmark_reproducibility.md, reports/output_blind_answer_key.json, reports/conformance_matrix.md, reports/security_trust_report.md, reports/runtime_permission_probes.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/world_class_evidence_plan.md, reports/world_class_evidence_ledger.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-overview.htmlDeliverables: SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/output_execution_runs.md, reports/output_blind_review_pack.md, reports/output_review_kit.md, reports/output_review_adjudication.md, reports/benchmark_reproducibility.md, reports/output_blind_answer_key.json, reports/conformance_matrix.md, reports/security_trust_report.md, reports/runtime_permission_probes.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/world_class_evidence_plan.md, reports/world_class_evidence_ledger.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-overview.html
+
  • 从工作流、提示词、对话记录、文档或笔记中创建、重构、评估和打包 agent skill;适用于新建 Skill、沉淀重复流程、改进现有 Skill、补充 eval 或团队复用打包。Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.
  • 把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。Turn one-off experience into a reusable, evaluable, and portable skill package.
  • 交付结果:SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/output_execution_runs.md, reports/output_blind_review_pack.md, reports/output_review_kit.md, reports/output_review_adjudication.md, reports/benchmark_reproducibility.md, reports/output_blind_answer_key.json, reports/conformance_matrix.md, reports/security_trust_report.md, reports/runtime_permission_probes.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/world_class_evidence_plan.md, reports/world_class_evidence_ledger.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-interpretation.html, reports/skill-overview.htmlDeliverables: SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/output_execution_runs.md, reports/output_blind_review_pack.md, reports/output_review_kit.md, reports/output_review_adjudication.md, reports/benchmark_reproducibility.md, reports/output_blind_answer_key.json, reports/conformance_matrix.md, reports/security_trust_report.md, reports/runtime_permission_probes.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/world_class_evidence_plan.md, reports/world_class_evidence_ledger.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-interpretation.html, reports/skill-overview.html
交付流程Delivery Flow输入材料Input materialSkill 包体Skill package可复用能力Reusable capability
交付流程把用户输入、生成的包体和可复用能力放在一条线上。The delivery flow places user input, generated package, and reusable capability on one path.
@@ -916,7 +919,7 @@
-

世界证据World Evidence

世界级证据尚未完成:4 项待补,0 项已接受。World-class evidence is not complete: 4 pending, 0 accepted.

证据待补Evidence pending
待补证据Pending4仍需外部或人工证据接受。External or human evidence still needs acceptance.
已接受Accepted0已通过 source check 与提交契约。Passed source checks and submission contract.
源检查Source Checks7 / 13通过数 / 总检查数。Passed checks / total checks.
外部证据External evidence

提供商留出Provider Holdout

缺少真实 provider 模型运行和 token metadata。Missing a real provider model run and token metadata.

阻塞检查Blocked Checks
  • 提供商实跑Provider model run
  • Token 用量Token usage observed
人工证据Human evidence

人工盲评Human Adjudication

盲评 pair 仍待真实 reviewer 决策。Blind-review pairs still need real reviewer decisions.

阻塞检查Blocked Checks
  • 无待判定No pending decisions
  • 盲评完成Judgments complete
外部证据External evidence

原生权限Native Permission

原生 runtime enforcement 仍待目标客户端或外部安装器证明。Native runtime enforcement still needs target-client or external-installer proof.

阻塞检查Blocked Checks
  • 原生执行Native enforcement
外部证据External evidence

原生遥测Native Telemetry

真实外部客户端 metadata-only 事件仍未导入。Real external-client metadata-only events have not been imported yet.

阻塞检查Blocked Checks
  • 外部事件External events
+

世界证据World Evidence

世界级证据尚未完成:4 项待补,0 项已接受。World-class evidence is not complete: 4 pending, 0 accepted.

证据待补Evidence pending
待补证据Pending4仍需外部或人工证据接受。External or human evidence still needs acceptance.
已接受Accepted0已通过 source check 与提交契约。Passed source checks and submission contract.
源检查Source Checks6 / 13通过数 / 总检查数。Passed checks / total checks.
外部证据External evidence

提供商留出Provider Holdout

缺少真实 provider 模型运行和 token metadata。Missing a real provider model run and token metadata.

阻塞检查Blocked Checks
  • 提供商实跑Provider model run
  • Token 用量Token usage observed
人工证据Human evidence

人工盲评Human Adjudication

盲评 pair 仍待真实 reviewer 决策。Blind-review pairs still need real reviewer decisions.

阻塞检查Blocked Checks
  • 无待判定No pending decisions
  • 盲评完成Judgments complete
外部证据External evidence

原生权限Native Permission

原生 runtime enforcement 仍待目标客户端或外部安装器证明。Native runtime enforcement still needs target-client or external-installer proof.

阻塞检查Blocked Checks
  • 原生执行Native enforcement
外部证据External evidence

原生遥测Native Telemetry

真实外部客户端 metadata-only 事件仍未导入。Real external-client metadata-only events have not been imported yet.

阻塞检查Blocked Checks
  • 外部事件External events
  • 采用样本Adoption sample
@@ -927,7 +930,7 @@

让 reviewer 快速确认关键文件、目录和资产分布。Lets reviewers confirm key files, directories, and asset distribution quickly.

-
资产分布Asset Distribution383项383 itemsSKILL.mdSKILL.mdREADME.mdREADME.mdagents/interface.yamlagents/interface.yamlmanifest.jsonmanifest.jsonreferencesreferencesscriptsscripts
资产分布图展示当前包体的文件和目录重心。The asset distribution chart shows where files and directories are concentrated.
+
资产分布Asset Distribution386项386 itemsSKILL.mdSKILL.mdREADME.mdREADME.mdagents/interface.yamlagents/interface.yamlmanifest.jsonmanifest.jsonreferencesreferencesscriptsscripts
资产分布图展示当前包体的文件和目录重心。The asset distribution chart shows where files and directories are concentrated.
diff --git a/reports/skill-overview.json b/reports/skill-overview.json index b0f0a052..67c20fec 100644 --- a/reports/skill-overview.json +++ b/reports/skill-overview.json @@ -34,6 +34,7 @@ "reports/world_class_evidence_ledger.md", "reports/review_annotations.md", "reports/review-studio.html", + "reports/skill-interpretation.html", "reports/skill-overview.html" ], "flow": [ @@ -410,7 +411,7 @@ "external_pending_count": 3, "human_pending_count": 1, "source_check_count": 13, - "source_pass_count": 7, + "source_pass_count": 6, "conclusion_zh": "世界级证据尚未完成:4 项待补,0 项已接受。", "conclusion_en": "World-class evidence is not complete: 4 pending, 0 accepted.", "entries": [ @@ -469,7 +470,8 @@ "summary_zh": "真实外部客户端 metadata-only 事件仍未导入。", "summary_en": "Real external-client metadata-only events have not been imported yet.", "blocked_checks": [ - "External events" + "External events", + "Adoption sample" ] } ] @@ -510,7 +512,7 @@ "path": "scripts", "label": "Deterministic helpers or local tooling", "kind": "folder", - "file_count": 105 + "file_count": 106 }, { "path": "evals", @@ -522,10 +524,10 @@ "path": "reports", "label": "Generated evidence and overview artifacts", "kind": "folder", - "file_count": 211 + "file_count": 213 } ], - "file_count": 383, + "file_count": 386, "folder_count": 4, "distribution": [ { @@ -550,7 +552,7 @@ }, { "label": "scripts", - "value": 105 + "value": 106 }, { "label": "evals", @@ -558,7 +560,7 @@ }, { "label": "reports", - "value": 211 + "value": 213 } ] }, @@ -680,7 +682,7 @@ "path": "scripts", "label": "Deterministic helpers or local tooling", "kind": "folder", - "file_count": 105 + "file_count": 106 }, { "path": "evals", @@ -692,7 +694,7 @@ "path": "reports", "label": "Generated evidence and overview artifacts", "kind": "folder", - "file_count": 211 + "file_count": 213 } ], "strengths": [ @@ -993,12 +995,12 @@ "ok": true, "summary": { "reproducibility_ready": true, - "release_lock_ready": true, + "release_lock_ready": false, "methodology_complete": true, "required_artifact_count": 24, "missing_artifact_count": 0, - "evidence_bundle_sha256": "890927c5a98eb60b569171a7473c213a5094d3a8e9b84705d687c4f3335220fd", - "source_contract_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba", + "evidence_bundle_sha256": "60df1cebf40b1627f6d313c233f377d0d36228a9525b70099623563c7efb7804", + "source_contract_sha256": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af", "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc", "output_case_count": 5, "failure_disclosure_count": 3, @@ -1014,14 +1016,14 @@ "world_class_task_count": 4, "world_class_ledger_pending_count": 4, "world_class_source_check_count": 13, - "world_class_source_pass_count": 7, - "world_class_source_blocked_count": 6, + "world_class_source_pass_count": 6, + "world_class_source_blocked_count": 7, "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": 73 }, - "commit": "aacf3282f562414faf8cc6c68538d2d53c6b48e3", + "commit": "5495734e7e33b19b84a932626112d783a3edf271", "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.", @@ -1105,8 +1107,8 @@ "failures": [] }, "trust_security": { - "scanned_files": 192, - "script_count": 105, + "scanned_files": 193, + "script_count": 106, "internal_module_count": 26, "secret_findings": 0, "dependency_files": [ @@ -1115,18 +1117,18 @@ "network_script_count": 3, "network_policy_covered_count": 3, "network_policy_missing_count": 0, - "file_write_script_count": 66, + "file_write_script_count": 67, "permission_required_count": 3, "permission_approved_count": 3, "permission_missing_count": 0, "permission_invalid_count": 0, "permission_expired_count": 0, - "help_smoke_checked_count": 79, + "help_smoke_checked_count": 80, "help_smoke_failed_count": 0, "interactive_script_count": 0, "package_hash_scope": "source-contract-without-generated-reports", - "package_hash_file_count": 192, - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba" + "package_hash_file_count": 193, + "package_sha256": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af" }, "skill_atlas": { "skill_count": 12, @@ -1164,7 +1166,7 @@ "trust_level": "local", "license": "MIT", "checksums": { - "package_sha256": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba", + "package_sha256": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af", "archive_sha256": "6852cf91a74d232c32d732b7c159c971827abf23af50153987193b084ad3b5cc" }, "compatibility": { @@ -1224,7 +1226,7 @@ "ok": true, "summary": { "archive_present": true, - "archive_entry_count": 598, + "archive_entry_count": 603, "archive_extracted": true, "entrypoint_loaded": true, "manifest_loaded": true, @@ -1296,7 +1298,7 @@ { "field": "package_sha256", "from": "0000000000000000000000000000000000000000000000000000000000000000", - "to": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba" + "to": "c0fe8976bca1ceac0b325c882003335c66487b8f152868af471f3bdd79b9f0af" } ] }, @@ -1313,14 +1315,14 @@ "ok": true, "summary": { "event_count": 1, - "adoption_sample_count": 1, - "activation_count": 1, - "accepted_count": 1, + "adoption_sample_count": 0, + "activation_count": 0, + "accepted_count": 0, "edited_count": 0, "rejected_count": 0, "missed_count": 0, "failed_count": 0, - "adoption_rate": 100.0, + "adoption_rate": 0, "missed_trigger_count": 0, "wrong_trigger_count": 0, "bad_output_count": 0, @@ -1329,7 +1331,7 @@ "review_overdue_count": 0, "risk_band": "low", "event_types": { - "skill_activation": 1 + "review_event": 1 }, "failure_types": {}, "source_types": { @@ -1551,7 +1553,7 @@ "status": "external_required", "category": "external", "owner": "Browser/Chrome/IDE/provider client integrator", - "current": "external source events 0; adoption samples 1", + "current": "external source events 0; adoption samples 0", "objective": "Import production metadata-only events from a real external client into the local drift loop.", "runbook": [ "python3 scripts/telemetry_native_host.py . --write-launcher /tmp/yao-telemetry-host.sh --write-manifest /tmp/yao-telemetry-host.json --allowed-origin chrome-extension:///", @@ -1603,8 +1605,8 @@ "missing_submission_count": 4, "invalid_submission_count": 0, "source_check_count": 13, - "source_pass_count": 7, - "source_blocked_count": 6, + "source_pass_count": 6, + "source_blocked_count": 7, "submitted_but_pending_count": 0, "source_accepted_without_valid_submission_count": 0, "overclaim_guard_active": true, @@ -1940,7 +1942,7 @@ "status": "pending", "source_status": "external_required", "source_accepted": false, - "current": "external source events 0; adoption samples 1", + "current": "external source events 0; adoption samples 0", "objective": "Import production metadata-only events from a real external client into the local drift loop.", "runbook": [ "python3 scripts/telemetry_native_host.py . --write-launcher /tmp/yao-telemetry-host.sh --write-manifest /tmp/yao-telemetry-host.json --allowed-origin chrome-extension:///", @@ -1977,7 +1979,7 @@ ], "observed_state": { "external_source_events": 0, - "adoption_sample_count": 1, + "adoption_sample_count": 0, "raw_content_allowed": false, "risk_band": "low", "accepted": false @@ -1998,8 +2000,8 @@ "label": "Adoption sample", "field": "adoption_sample_count", "expected": ">0", - "actual": 1, - "status": "pass", + "actual": 0, + "status": "blocked", "source_accepted": false, "next_action": "Telemetry must include adoption outcome evidence." }, @@ -2015,8 +2017,8 @@ } ], "source_check_count": 3, - "source_pass_count": 2, - "source_blocked_count": 1, + "source_pass_count": 1, + "source_blocked_count": 2, "submission_state": { "status": "missing", "path": "evidence/world_class/submissions/native-client-telemetry.json", diff --git a/reports/skill_atlas.json b/reports/skill_atlas.json index 6b4b6814..8ab3b23b 100644 --- a/reports/skill_atlas.json +++ b/reports/skill_atlas.json @@ -116,6 +116,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", diff --git a/reports/skill_os2_audit.json b/reports/skill_os2_audit.json index 60ff43ce..dd2b354c 100644 --- a/reports/skill_os2_audit.json +++ b/reports/skill_os2_audit.json @@ -197,7 +197,7 @@ "key": "trust-security", "label": "Trust Security", "status": "pass", - "current": "secrets 0; scripts 105; help failures 0", + "current": "secrets 0; scripts 106; help failures 0", "target": "Secrets, scripts, dependencies, permissions, and package hash are reviewable", "evidence": [ { diff --git a/reports/skill_os2_audit.md b/reports/skill_os2_audit.md index a1a5fc8b..883c409f 100644 --- a/reports/skill_os2_audit.md +++ b/reports/skill_os2_audit.md @@ -23,7 +23,7 @@ Generated at: `2026-06-13` | 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 24; 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 105; 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 106; 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. | diff --git a/reports/skill_os2_coverage.json b/reports/skill_os2_coverage.json index 214491ba..c5dde3bd 100644 --- a/reports/skill_os2_coverage.json +++ b/reports/skill_os2_coverage.json @@ -11,9 +11,9 @@ "warn_count": 0, "missing_count": 0, "extension_track_count": 2, - "extension_partial_count": 2, + "extension_partial_count": 1, "extension_planned_count": 0, - "extension_covered_count": 0, + "extension_covered_count": 1, "adaptive_extension_ready": false, "local_blueprint_ready": true, "public_world_class_ready": false, @@ -26,7 +26,8 @@ "missing": 0 }, "extension_status_counts": { - "partial": 2 + "covered": 1, + "partial": 1 }, "modules": [ { @@ -130,7 +131,7 @@ "label": "Trust Security", "status": "pass", "objective": "Scripts, dependencies, permissions, secrets, and package hash are reviewable for team distribution.", - "current": "105 scripts; secrets 0; help failures 0", + "current": "106 scripts; secrets 0; help failures 0", "command": "python3 scripts/yao.py trust .", "test": "python3 tests/verify_trust_check.py", "evidence": [ @@ -612,9 +613,9 @@ { "key": "skill-interpretation-report", "label": "Skill Interpretation Report", - "status": "partial", + "status": "covered", "objective": "User-facing deep interpretation report explains use cases, triggers, inputs, outputs, workflow, principles, boundaries, quality gates, examples, and next iterations.", - "current": "Skill Overview v2 already covers much of the explainer experience, but dedicated skill-interpretation JSON/MD/HTML artifacts are not first-class yet.", + "current": "Skill Overview v2 is canonical and mirrored as first-class skill-interpretation HTML/JSON with schema and tests.", "target": "Either keep skill-overview as the canonical interpretation report with an explicit contract, or split a dedicated reports/skill-interpretation.* renderer and tests.", "evidence": [ { @@ -631,18 +632,18 @@ }, { "path": "scripts/render_skill_interpretation.py", - "exists": false + "exists": true }, { "path": "schemas/skill-interpretation.schema.json", - "exists": false + "exists": true }, { "path": "tests/verify_skill_interpretation.py", - "exists": false + "exists": true } ], - "next_action": "Decide whether overview v2 is the canonical interpretation surface; if not, add a dedicated schema, renderer, and CJK/path-safety tests." + "next_action": "Keep overview and interpretation contracts in lockstep when report sections, metrics, or layout semantics change." }, { "key": "adaptive-self-iteration", @@ -710,7 +711,7 @@ ], "next_highest_leverage": [ "Close the four world-class evidence ledger entries with accepted human or external evidence.", - "Clarify whether Skill Overview v2 is the canonical interpretation report or split a dedicated skill-interpretation renderer.", + "Keep the first-class skill interpretation report and Skill Overview v2 contract synchronized as the report model evolves.", "Start adaptive self-iteration as explicit-source, proposal-only, approval-gated work; do not scan private logs by default.", "Keep the blueprint coverage report in CI so 2.0 plan drift is visible." ], diff --git a/reports/skill_os2_coverage.md b/reports/skill_os2_coverage.md index 9d6827fe..9e5621e4 100644 --- a/reports/skill_os2_coverage.md +++ b/reports/skill_os2_coverage.md @@ -11,7 +11,8 @@ Generated at: `2026-06-13` - missing: `0` - warn: `0` - reference extensions: `2` -- extension partial: `2` +- extension covered: `1` +- extension partial: `1` - extension planned: `0` - adaptive extension ready: `false` - world-class evidence pending: `4` @@ -25,7 +26,7 @@ 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` | 105 scripts; secrets 0; help failures 0 | `python3 scripts/yao.py trust .` | `python3 tests/verify_trust_check.py` | +| Trust Security | `pass` | 106 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 586; 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` | @@ -52,7 +53,7 @@ This report maps the Skill OS 2.0 upgrade blueprint to concrete local artifacts, | Track | Status | Current | Target | Next action | | --- | --- | --- | --- | --- | -| Skill Interpretation Report | `partial` | Skill Overview v2 already covers much of the explainer experience, but dedicated skill-interpretation JSON/MD/HTML artifacts are not first-class yet. | Either keep skill-overview as the canonical interpretation report with an explicit contract, or split a dedicated reports/skill-interpretation.* renderer and tests. | Decide whether overview v2 is the canonical interpretation surface; if not, add a dedicated schema, renderer, and CJK/path-safety tests. | +| Skill Interpretation Report | `covered` | Skill Overview v2 is canonical and mirrored as first-class skill-interpretation HTML/JSON with schema and tests. | Either keep skill-overview as the canonical interpretation report with an explicit contract, or split a dedicated reports/skill-interpretation.* renderer and tests. | Keep overview and interpretation contracts in lockstep when report sections, metrics, or layout semantics change. | | Adaptive Self-Iteration | `partial` | Proposal-only adapt-scan/adapt-propose foundation exists with policy, schema, and safety tests; approval-gated patch application is not implemented yet. | Proposal-only adaptation with explicit input source, redaction, allowlisted write targets, approval ledger, regression report, and rollback plan. | Add adapt-apply only after approval ledger, allowlisted targets, dry-run diffs, regression reports, and rollback artifacts are designed. | These extension tracks come from the user-supplied 2.0 reference plan. They are tracked separately from the formal Skill OS blueprint so the report can distinguish landed local architecture from planned explainer/adaptor evolution. @@ -60,7 +61,7 @@ These extension tracks come from the user-supplied 2.0 reference plan. They are ## Next Highest-Leverage Moves - Close the four world-class evidence ledger entries with accepted human or external evidence. -- Clarify whether Skill Overview v2 is the canonical interpretation report or split a dedicated skill-interpretation renderer. +- Keep the first-class skill interpretation report and Skill Overview v2 contract synchronized as the report model evolves. - Start adaptive self-iteration as explicit-source, proposal-only, approval-gated work; do not scan private logs by default. - Keep the blueprint coverage report in CI so 2.0 plan drift is visible. @@ -209,10 +210,9 @@ These extension tracks come from the user-supplied 2.0 reference plan. They are ### Skill Interpretation Report - objective: User-facing deep interpretation report explains use cases, triggers, inputs, outputs, workflow, principles, boundaries, quality gates, examples, and next iterations. -- status: `partial` -- existing evidence: `reports/skill-overview.html`, `reports/skill-overview.json`, `scripts/render_skill_overview.py` -- missing evidence: `scripts/render_skill_interpretation.py`, `schemas/skill-interpretation.schema.json`, `tests/verify_skill_interpretation.py` -- next action: Decide whether overview v2 is the canonical interpretation surface; if not, add a dedicated schema, renderer, and CJK/path-safety tests. +- status: `covered` +- existing evidence: `reports/skill-overview.html`, `reports/skill-overview.json`, `scripts/render_skill_overview.py`, `scripts/render_skill_interpretation.py`, `schemas/skill-interpretation.schema.json`, `tests/verify_skill_interpretation.py` +- next action: Keep overview and interpretation contracts in lockstep when report sections, metrics, or layout semantics change. ### Adaptive Self-Iteration diff --git a/reports/upgrade_check.json b/reports/upgrade_check.json index 56d93474..d308ad2b 100644 --- a/reports/upgrade_check.json +++ b/reports/upgrade_check.json @@ -75,7 +75,7 @@ { "field": "package_sha256", "from": "0000000000000000000000000000000000000000000000000000000000000000", - "to": "37a1ec0f35323886bdae64523b4113f5dc4ba3153117ee4980b8e5cd54b49aba" + "to": "652c3a4a1f091d875bfacdd44da9a91bc02fec90af3fe76cf3a71a6dc80aba58" } ] }, diff --git a/reports/world_class_claim_guard.json b/reports/world_class_claim_guard.json index f4de42a2..648321de 100644 --- a/reports/world_class_claim_guard.json +++ b/reports/world_class_claim_guard.json @@ -6,7 +6,7 @@ "summary": { "ledger_ready_to_claim_world_class": false, "ledger_pending_count": 4, - "claim_surface_count": 75, + "claim_surface_count": 76, "violation_count": 0, "overclaim_guard_active": true, "decision": "claim-guard-pass-evidence-pending" @@ -271,6 +271,10 @@ "path": "reports/security_trust_report.md", "violation_count": 0 }, + { + "path": "reports/skill-interpretation.html", + "violation_count": 0 + }, { "path": "reports/skill-os-2-review.md", "violation_count": 0 diff --git a/reports/world_class_claim_guard.md b/reports/world_class_claim_guard.md index 98cc8e66..9bb78630 100644 --- a/reports/world_class_claim_guard.md +++ b/reports/world_class_claim_guard.md @@ -7,7 +7,7 @@ Generated at: `2026-06-13` - decision: `claim-guard-pass-evidence-pending` - ledger ready to claim world-class: `false` - ledger pending evidence: `4` -- claim surfaces scanned: `75` +- claim surfaces scanned: `76` - violations: `0` - overclaim guard active: `true` diff --git a/schemas/skill-interpretation.schema.json b/schemas/skill-interpretation.schema.json new file mode 100644 index 00000000..7a295174 --- /dev/null +++ b/schemas/skill-interpretation.schema.json @@ -0,0 +1,115 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://yao.local/schemas/skill-interpretation.schema.json", + "title": "Yao Skill Interpretation Report", + "type": "object", + "required": [ + "skill_summary", + "scorecard", + "capability_profile", + "principle_model", + "contract_boundary", + "quality_review", + "risk_governance", + "package_assets", + "iteration_roadmap", + "report_contract", + "interpretation_contract" + ], + "properties": { + "report_contract": { + "type": "object", + "required": [ + "schema_version", + "report_kind", + "html_report", + "json_report", + "default_language", + "languages", + "layout", + "nav_labels" + ], + "properties": { + "schema_version": { + "const": "2.0" + }, + "report_kind": { + "const": "skill-interpretation" + }, + "html_report": { + "const": "reports/skill-interpretation.html" + }, + "json_report": { + "const": "reports/skill-interpretation.json" + }, + "default_language": { + "const": "zh-CN" + }, + "languages": { + "type": "array", + "prefixItems": [ + { + "const": "zh-CN" + }, + { + "const": "en" + } + ], + "minItems": 2 + }, + "layout": { + "const": "kami-white-audit-v2" + }, + "nav_labels": { + "type": "array", + "minItems": 9, + "items": { + "type": "string" + } + } + }, + "additionalProperties": true + }, + "interpretation_contract": { + "type": "object", + "required": [ + "schema_version", + "source_model", + "source_model_reused", + "overview_report", + "html_report", + "json_report", + "includes" + ], + "properties": { + "schema_version": { + "const": "2.0" + }, + "source_model": { + "const": "skill-overview-v2" + }, + "source_model_reused": { + "const": true + }, + "overview_report": { + "const": "reports/skill-overview.html" + }, + "html_report": { + "const": "reports/skill-interpretation.html" + }, + "json_report": { + "const": "reports/skill-interpretation.json" + }, + "includes": { + "type": "array", + "minItems": 10, + "items": { + "type": "string" + } + } + }, + "additionalProperties": true + } + }, + "additionalProperties": true +} diff --git a/scripts/ci_test.py b/scripts/ci_test.py index 6ca8570d..5d62f0b9 100644 --- a/scripts/ci_test.py +++ b/scripts/ci_test.py @@ -34,6 +34,7 @@ DEFAULT_TARGETS = [ "architecture-maintainability-check", "yao-cli-check", "skill-overview-check", + "skill-interpretation-check", "skill-report-metrics-check", "skill-report-charts-check", "html-rendering-check", diff --git a/scripts/init_skill.py b/scripts/init_skill.py index cef77861..ff67e8fc 100644 --- a/scripts/init_skill.py +++ b/scripts/init_skill.py @@ -21,6 +21,7 @@ from render_reference_scan import parse_reference, render_reference_scan from render_reference_synthesis import render_reference_synthesis from render_review_studio import render_review_studio from render_review_viewer import render_review_viewer +from render_skill_interpretation import render_skill_interpretation from render_skill_overview import render_skill_overview from render_system_model import render_system_model @@ -73,19 +74,20 @@ README_TEMPLATE = """# {title} 4. Review `reports/intent-confidence.md` to see whether the real job, inputs, outputs, and exclusions are clear enough yet. 5. Open `reports/reference-synthesis.md` to see the GitHub benchmarks plus curated official, research, and principle tracks in one place. 6. Follow the workflow steps in `SKILL.md`. -7. Check `reports/skill-overview.html` for the generated bilingual HTML skill audit report: overview, metrics, capability profile, principle, contract, quality, risk, assets, and iteration roadmap. It defaults to Simplified Chinese and includes an English switch in the top right. -8. Open `reports/review-studio.html` for the one-page Review Studio 2.0 gate view. -9. Record source-line reviewer comments in `reports/review_annotations.md` when review needs follow-up. -10. Open `reports/review-viewer.html` for a compact visual review of the package. -11. Check `reports/output-risk-profile.md` to see likely output mistakes and self-repair checks. -12. Check `reports/artifact-design-profile.md` to see the intended artifact direction, layout patterns, visual quality gates, and anti-patterns. -13. Check `reports/prompt-quality-profile.md` to see the need model, RTF-to-skill mapping, complexity, and prompt-facing quality matrix. -14. Review `reports/skill-ir.json` for the platform-neutral Skill IR contract before platform-specific packaging. -15. Review `reports/compiled_targets.md` to see how Skill IR compiles into OpenAI, Claude, generic, and Agent Skills compatible target contracts. -16. Review `reports/iteration-directions.md` for the three most valuable next moves. -17. Review `reports/system-model.md` to understand the boundary, feedback loops, drift watch, failure map, and highest-leverage next changes. -18. Review `reports/adoption_drift_report.md` to see local-first metadata-only adoption and drift signals. -19. Review `reports/review_waivers.md` to see human reviewer risk approvals and expiry dates. +7. Open `reports/skill-interpretation.html` first for the first-class bilingual interpretation report: role, principle, scenarios, trigger, inputs, outputs, highlights, risks, assets, and upgrade directions. It defaults to Simplified Chinese and includes an English switch in the top right. +8. Check `reports/skill-overview.html` for the generated bilingual HTML skill audit report: overview, metrics, capability profile, principle, contract, quality, risk, assets, and iteration roadmap. +9. Open `reports/review-studio.html` for the one-page Review Studio 2.0 gate view. +10. Record source-line reviewer comments in `reports/review_annotations.md` when review needs follow-up. +11. Open `reports/review-viewer.html` for a compact visual review of the package. +12. Check `reports/output-risk-profile.md` to see likely output mistakes and self-repair checks. +13. Check `reports/artifact-design-profile.md` to see the intended artifact direction, layout patterns, visual quality gates, and anti-patterns. +14. Check `reports/prompt-quality-profile.md` to see the need model, RTF-to-skill mapping, complexity, and prompt-facing quality matrix. +15. Review `reports/skill-ir.json` for the platform-neutral Skill IR contract before platform-specific packaging. +16. Review `reports/compiled_targets.md` to see how Skill IR compiles into OpenAI, Claude, generic, and Agent Skills compatible target contracts. +17. Review `reports/iteration-directions.md` for the three most valuable next moves. +18. Review `reports/system-model.md` to understand the boundary, feedback loops, drift watch, failure map, and highest-leverage next changes. +19. Review `reports/adoption_drift_report.md` to see local-first metadata-only adoption and drift signals. +20. Review `reports/review_waivers.md` to see human reviewer risk approvals and expiry dates. ## Honest Boundaries @@ -109,6 +111,7 @@ README_TEMPLATE = """# {title} - `reports/system-model.md`: systems-thinking model for boundary, feedback loops, drift, failure patterns, and leverage points - `reports/skill-ir.json`: platform-neutral 2.0 Skill IR contract for trigger, workflow, resources, evals, risk, and governance - `reports/compiled_targets.md`: target compiler report showing generated contracts, adapter modes, preserved semantics, warnings, and unsupported features +- `reports/skill-interpretation.html`: first-class bilingual interpretation report for role, principle, scenarios, trigger, inputs, outputs, quality evidence, risks, assets, highlights, and upgrade directions - `reports/skill-overview.html`: white-background bilingual HTML skill audit report with sticky four-character Chinese navigation, a top-right language switch, metrics, SVG charts, contract boundary, quality review, risk governance, assets, and iteration roadmap - `reports/review-studio.html`: Review Studio 2.0 gate page for intent, trigger, output eval, context, runtime conformance, trust, atlas, and release readiness - `reports/review-viewer.html`: compact review page for architecture, usage, feedback, and next steps @@ -228,23 +231,26 @@ def build_manifest(name: str, mode: str, archetype: str) -> dict: def build_report_view(artifacts: dict) -> dict: html_report = artifacts.get("skill_overview_html", "") json_report = artifacts.get("skill_overview_json", "") + interpretation_report = artifacts.get("skill_interpretation_html", "") system_model = artifacts.get("system_model_md", "") review_studio = artifacts.get("review_studio_html", "") return { "title": "Skill 总结报告", "html_report": html_report, "json_report": json_report, + "interpretation_report": interpretation_report, "system_model": system_model, "review_studio": review_studio, "message": ( - f"Skill 已创建完成。建议先打开总结报告:{html_report}。" - "它会展示这个 Skill 的概述、指标、原理、触发边界、输入输出、目标编译、质量评估、风险治理、包体资产和升级路线;" + f"Skill 已创建完成。建议先打开解读报告:{interpretation_report};再查看总结报告:{html_report}。" + "解读报告会用中文简体默认展示这个 Skill 的作用、原理、使用场景、触发方式、输入输出、亮点和后续升级方向;" + "总结报告会展示概述、指标、原理、触发边界、输入输出、目标编译、质量评估、风险治理、包体资产和升级路线;" f"然后打开 Review Studio 2.0:{review_studio},检查意图、触发、输出评测、运行一致性、信任和发布闸门。" "后续 reviewer 的文件级或行级意见可以记录到 reports/review_annotations.md。" "如需审查平台适配细节,请打开 reports/compiled_targets.md。" "报告默认使用中文简体,右上角可以切换英文版。" ), - "next_action": "Open reports/skill-overview.html before editing more files.", + "next_action": "Open reports/skill-interpretation.html before editing more files.", } @@ -359,6 +365,7 @@ def initialize_skill( review_waivers = render_review_waivers(root) review_annotations = render_review_annotations(root) overview = render_skill_overview(root) + interpretation = render_skill_interpretation(root) review_viewer = render_review_viewer(root) review_studio = render_review_studio(root) artifacts = { @@ -369,6 +376,8 @@ def initialize_skill( "intent_context_json": intent_confidence["artifacts"]["context_json"], "skill_overview_html": overview["artifacts"]["html"], "skill_overview_json": overview["artifacts"]["json"], + "skill_interpretation_html": interpretation["artifacts"]["html"], + "skill_interpretation_json": interpretation["artifacts"]["json"], "intent_dialogue_md": intent_dialogue["artifacts"]["markdown"], "intent_dialogue_json": intent_dialogue["artifacts"]["json"], "reference_scan_md": reference_scan["artifacts"]["markdown"], diff --git a/scripts/render_review_studio.py b/scripts/render_review_studio.py index 2914de88..b854cc9e 100644 --- a/scripts/render_review_studio.py +++ b/scripts/render_review_studio.py @@ -248,6 +248,7 @@ def render_html(report: dict[str, Any]) -> str: "warn_count", "missing_count", "extension_track_count", + "extension_covered_count", "extension_partial_count", "extension_planned_count", "adaptive_extension_ready", diff --git a/scripts/render_skill_interpretation.py b/scripts/render_skill_interpretation.py new file mode 100644 index 00000000..5c8cf359 --- /dev/null +++ b/scripts/render_skill_interpretation.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python3 +import argparse +import json +from pathlib import Path + +from render_skill_overview import render_html +from skill_report_model import build_report_model + + +SCRIPT_INTERFACE = "cli" +SCRIPT_INTERFACE_REASON = "Renders the first-class skill interpretation report while reusing the Skill Overview v2 model and layout." + + +def build_interpretation_model(skill_dir: Path) -> dict: + summary = build_report_model(skill_dir) + contract = dict(summary.get("report_contract", {})) + contract.update( + { + "schema_version": "2.0", + "report_kind": "skill-interpretation", + "canonical_overview_report": "reports/skill-overview.html", + "html_report": "reports/skill-interpretation.html", + "json_report": "reports/skill-interpretation.json", + "layout": "kami-white-audit-v2", + "default_language": "zh-CN", + "languages": ["zh-CN", "en"], + "purpose": "Explain the generated skill's role, principles, usage scenarios, trigger contract, inputs, outputs, quality evidence, risks, assets, highlights, and next upgrade directions.", + } + ) + summary["report_contract"] = contract + summary["interpretation_contract"] = { + "schema_version": "2.0", + "source_model": "skill-overview-v2", + "source_model_reused": True, + "overview_report": "reports/skill-overview.html", + "html_report": "reports/skill-interpretation.html", + "json_report": "reports/skill-interpretation.json", + "default_language": "zh-CN", + "languages": ["zh-CN", "en"], + "includes": [ + "skill role", + "principles", + "usage scenarios", + "trigger contract", + "inputs and outputs", + "quality evidence", + "risk governance", + "package assets", + "highlights", + "upgrade roadmap", + ], + } + deliverables = summary.get("skill_summary", {}).get("deliverables", []) + for artifact in ["reports/skill-interpretation.html", "reports/skill-interpretation.json"]: + if artifact not in deliverables: + deliverables.append(artifact) + if "skill_summary" in summary: + summary["skill_summary"]["deliverables"] = deliverables + return summary + + +def render_skill_interpretation(skill_dir: Path, output_html: Path | None = None, output_json: Path | None = None) -> dict: + skill_dir = skill_dir.resolve() + reports_dir = skill_dir / "reports" + reports_dir.mkdir(parents=True, exist_ok=True) + + output_html = output_html or reports_dir / "skill-interpretation.html" + output_json = output_json or reports_dir / "skill-interpretation.json" + + summary = build_interpretation_model(skill_dir) + output_html.write_text(render_html(summary), encoding="utf-8") + output_json.write_text(json.dumps(summary, ensure_ascii=False, indent=2), encoding="utf-8") + + return { + "ok": True, + "skill_dir": str(skill_dir), + "artifacts": { + "html": str(output_html), + "json": str(output_json), + "overview_html": str(skill_dir / "reports" / "skill-overview.html"), + }, + "summary": { + "name": summary.get("name"), + "report_kind": summary.get("report_contract", {}).get("report_kind"), + "default_language": summary.get("report_contract", {}).get("default_language"), + "section_count": len(summary.get("report_contract", {}).get("nav_labels", [])), + "source_model_reused": summary.get("interpretation_contract", {}).get("source_model_reused"), + }, + } + + +def main() -> None: + parser = argparse.ArgumentParser(description="Render the first-class HTML skill interpretation report for a skill package.") + parser.add_argument("skill_dir", nargs="?", default=".") + parser.add_argument("--output-html") + parser.add_argument("--output-json") + args = parser.parse_args() + + result = render_skill_interpretation( + Path(args.skill_dir), + Path(args.output_html).resolve() if args.output_html else None, + Path(args.output_json).resolve() if args.output_json else None, + ) + print(json.dumps(result, ensure_ascii=False, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/scripts/render_skill_os2_coverage.py b/scripts/render_skill_os2_coverage.py index efd4b037..a4611f61 100644 --- a/scripts/render_skill_os2_coverage.py +++ b/scripts/render_skill_os2_coverage.py @@ -301,23 +301,36 @@ def build_coverage(skill_dir: Path, generated_at: str) -> dict[str, Any]: for key, path_a, path_b, path_c, condition, current in recommended_prs ] + interpretation_paths = [ + "reports/skill-overview.html", + "reports/skill-overview.json", + "scripts/render_skill_overview.py", + "scripts/render_skill_interpretation.py", + "schemas/skill-interpretation.schema.json", + "tests/verify_skill_interpretation.py", + ] + interpretation_ready = paths_exist(skill_dir, interpretation_paths) + interpretation_status = "covered" if interpretation_ready else "partial" + interpretation_current = ( + "Skill Overview v2 is canonical and mirrored as first-class skill-interpretation HTML/JSON with schema and tests." + if interpretation_ready + else "Skill Overview v2 already covers much of the explainer experience, but dedicated skill-interpretation JSON/HTML artifacts are not first-class yet." + ) + interpretation_next_action = ( + "Keep overview and interpretation contracts in lockstep when report sections, metrics, or layout semantics change." + if interpretation_ready + else "Decide whether overview v2 is the canonical interpretation surface; if not, add a dedicated schema, renderer, and CJK/path-safety tests." + ) extension_tracks = [ build_extension_track( key="skill-interpretation-report", label="Skill Interpretation Report", - status="partial", + status=interpretation_status, objective="User-facing deep interpretation report explains use cases, triggers, inputs, outputs, workflow, principles, boundaries, quality gates, examples, and next iterations.", - current="Skill Overview v2 already covers much of the explainer experience, but dedicated skill-interpretation JSON/MD/HTML artifacts are not first-class yet.", + current=interpretation_current, target="Either keep skill-overview as the canonical interpretation report with an explicit contract, or split a dedicated reports/skill-interpretation.* renderer and tests.", - artifact_paths=[ - "reports/skill-overview.html", - "reports/skill-overview.json", - "scripts/render_skill_overview.py", - "scripts/render_skill_interpretation.py", - "schemas/skill-interpretation.schema.json", - "tests/verify_skill_interpretation.py", - ], - next_action="Decide whether overview v2 is the canonical interpretation surface; if not, add a dedicated schema, renderer, and CJK/path-safety tests.", + artifact_paths=interpretation_paths, + next_action=interpretation_next_action, skill_dir=skill_dir, ), ] @@ -412,7 +425,7 @@ def build_coverage(skill_dir: Path, generated_at: str) -> dict[str, Any]: "reference_extension_tracks": extension_tracks, "next_highest_leverage": [ "Close the four world-class evidence ledger entries with accepted human or external evidence.", - "Clarify whether Skill Overview v2 is the canonical interpretation report or split a dedicated skill-interpretation renderer.", + "Keep the first-class skill interpretation report and Skill Overview v2 contract synchronized as the report model evolves.", "Start adaptive self-iteration as explicit-source, proposal-only, approval-gated work; do not scan private logs by default.", "Keep the blueprint coverage report in CI so 2.0 plan drift is visible.", ], @@ -468,6 +481,7 @@ def render_markdown(report: dict[str, Any]) -> str: f"- missing: `{summary['missing_count']}`", f"- warn: `{summary['warn_count']}`", f"- reference extensions: `{summary['extension_track_count']}`", + f"- extension covered: `{summary['extension_covered_count']}`", f"- extension partial: `{summary['extension_partial_count']}`", f"- extension planned: `{summary['extension_planned_count']}`", f"- adaptive extension ready: `{str(summary['adaptive_extension_ready']).lower()}`", diff --git a/scripts/render_skill_overview.py b/scripts/render_skill_overview.py index dde008eb..58cff47a 100644 --- a/scripts/render_skill_overview.py +++ b/scripts/render_skill_overview.py @@ -254,6 +254,9 @@ def render_html(summary: dict) -> str: output_execution_summary = output_execution.get("summary", {}) output_review = summary.get("output_review_adjudication", {}) output_review_summary = output_review.get("summary", {}) + report_contract = summary.get("report_contract", {}) + html_report_path = str(report_contract.get("html_report") or "reports/skill-overview.html") + open_report_message = f"创建完成后建议先打开 {html_report_path},再继续扩展包体。" hero_meta = [ (f"技能名称:{summary['name']}", f"Skill name: {summary['name']}"), (f"成熟度:{mode_zh(metadata.get('maturity_tier', 'scaffold'))}", f"Maturity: {metadata.get('maturity_tier', 'scaffold')}"), @@ -340,7 +343,7 @@ def render_html(summary: dict) -> str:
{score_strip}
diff --git a/scripts/skill_report_i18n.py b/scripts/skill_report_i18n.py index 8bb38e73..e3bc5148 100644 --- a/scripts/skill_report_i18n.py +++ b/scripts/skill_report_i18n.py @@ -261,6 +261,9 @@ def en_for(text: str) -> str: return TEXT_EN[value] if value in METRIC_LABEL_EN: return METRIC_LABEL_EN[value] + if value.startswith("创建完成后建议先打开 ") and value.endswith(",再继续扩展包体。"): + path = value.removeprefix("创建完成后建议先打开 ").removesuffix(",再继续扩展包体。") + return f"After creation, open {path} before expanding the package further." if value.startswith("交付结果:"): return "Deliverables: " + value.removeprefix("交付结果:") if value.startswith("能力类型:"): diff --git a/scripts/skill_report_layout.py b/scripts/skill_report_layout.py index c58baadc..ed975ae0 100644 --- a/scripts/skill_report_layout.py +++ b/scripts/skill_report_layout.py @@ -387,7 +387,7 @@ def skill_overview_css() -> str: } .metrics-primary { display: grid; - grid-template-columns: minmax(420px, 1fr) minmax(360px, 0.88fr); + grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr); gap: 22px; align-items: start; } @@ -455,7 +455,7 @@ def skill_overview_css() -> str: margin-top: 2px; } .metric-detail-grid { - grid-template-columns: repeat(2, minmax(0, 1fr)); + grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); align-items: stretch; } .list, .compact-list, .step-list { @@ -485,18 +485,20 @@ def skill_overview_css() -> str: } .metric-card { display: grid; - grid-template-columns: minmax(96px, 118px) minmax(0, 1fr); - gap: 18px; + grid-template-columns: 1fr; + gap: 14px; align-content: start; min-height: 0; } .metric-card-head { - display: grid; - align-content: start; + display: flex; + gap: 14px; + align-items: flex-start; + justify-content: space-between; } .metric-card strong { display: block; - margin: 8px 0 10px; + margin: 0; color: var(--brand); font-family: var(--mono); font-size: 2rem; @@ -507,6 +509,7 @@ def skill_overview_css() -> str: .metric-label { color: var(--muted); font-size: 13px; + line-height: 1.45; } .metric-card-body { min-width: 0; diff --git a/scripts/skill_report_model.py b/scripts/skill_report_model.py index b6937c0b..7986b4ec 100644 --- a/scripts/skill_report_model.py +++ b/scripts/skill_report_model.py @@ -544,6 +544,7 @@ def build_report_model(skill_dir: Path) -> dict: "reports/review_waivers.md", "reports/review_annotations.md", "reports/review-studio.html", + "reports/skill-interpretation.html", "reports/skill-overview.html", ] if (skill_dir / "reports" / "runtime_permission_probes.md").exists(): diff --git a/scripts/yao.py b/scripts/yao.py index d9cb550d..0ea5475e 100644 --- a/scripts/yao.py +++ b/scripts/yao.py @@ -29,6 +29,7 @@ from yao_cli_report_commands import ( command_review_viewer, command_skill_os2_audit, command_skill_os2_coverage, + command_skill_interpretation, command_skill_report, command_system_model, command_world_class_claim_guard, @@ -184,6 +185,7 @@ def command_report(args: argparse.Namespace) -> int: run_script("render_skill_os2_coverage.py", [str(ROOT)]), run_script("render_benchmark_reproducibility.py", [str(ROOT)]), run_script("render_skill_overview.py", [str(ROOT)]), + run_script("render_skill_interpretation.py", [str(ROOT)]), run_script("render_review_viewer.py", [str(ROOT)]), ] ) @@ -224,6 +226,8 @@ def command_report(args: argparse.Namespace) -> int: "skill_os2_coverage": "reports/skill_os2_coverage.json", "benchmark_reproducibility": "reports/benchmark_reproducibility.json", "skill_overview": "reports/skill-overview.json", + "skill_interpretation": "reports/skill-interpretation.json", + "skill_interpretation_html": "reports/skill-interpretation.html", "review_viewer": "reports/review-viewer.json", "review_viewer_html": "reports/review-viewer.html", }, diff --git a/scripts/yao_cli_create_commands.py b/scripts/yao_cli_create_commands.py index deea4cbe..265e6eda 100644 --- a/scripts/yao_cli_create_commands.py +++ b/scripts/yao_cli_create_commands.py @@ -264,8 +264,11 @@ def command_quickstart(args: argparse.Namespace) -> int: sys.stderr.write("I will keep the underlying benchmark evidence in the reviewer reports and move ahead with this recommendation.\n") if payload.get("report_view", {}).get("html_report"): sys.stderr.write(f"Skill report: {payload['report_view']['html_report']}\n") + if payload.get("report_view", {}).get("interpretation_report"): + sys.stderr.write(f"Skill interpretation: {payload['report_view']['interpretation_report']}\n") next_steps = [ + "Open reports/skill-interpretation.html to review the generated Skill interpretation report.", "Open reports/skill-overview.html to review the generated Skill audit report.", "Open reports/intent-dialogue.md and tighten the real job, outputs, and exclusions.", "Open reports/review-studio.html to inspect the Review Studio 2.0 gate view before release.", @@ -303,6 +306,7 @@ def command_quickstart(args: argparse.Namespace) -> int: "artifact_design_profile": payload.get("artifacts", {}).get("artifact_design_profile_md"), "prompt_quality_profile": payload.get("artifacts", {}).get("prompt_quality_profile_md"), "system_model": payload.get("artifacts", {}).get("system_model_md"), + "skill_interpretation": payload.get("artifacts", {}).get("skill_interpretation_html"), "review_studio": payload.get("artifacts", {}).get("review_studio_html"), "review_viewer": payload.get("artifacts", {}).get("review_viewer_html"), }, diff --git a/scripts/yao_cli_parser.py b/scripts/yao_cli_parser.py index fb9a4174..ab43c92c 100644 --- a/scripts/yao_cli_parser.py +++ b/scripts/yao_cli_parser.py @@ -144,6 +144,15 @@ def build_parser(command_handlers: dict[str, Callable[[argparse.Namespace], int] skill_report_cmd.add_argument("--output-json") skill_report_cmd.set_defaults(func=_handler(command_handlers, "command_skill_report")) + skill_interpretation_cmd = subparsers.add_parser( + "skill-interpretation", + help="Render the first-class skill interpretation report for a skill package.", + ) + skill_interpretation_cmd.add_argument("skill_dir", nargs="?", default=".") + skill_interpretation_cmd.add_argument("--output-html") + skill_interpretation_cmd.add_argument("--output-json") + skill_interpretation_cmd.set_defaults(func=_handler(command_handlers, "command_skill_interpretation")) + review_viewer_cmd = subparsers.add_parser("review-viewer", help="Render a compact HTML review page for a skill package.") review_viewer_cmd.add_argument("skill_dir", nargs="?", default=".") review_viewer_cmd.add_argument("--output-html") diff --git a/scripts/yao_cli_report_commands.py b/scripts/yao_cli_report_commands.py index 15cfe782..e6f945fa 100644 --- a/scripts/yao_cli_report_commands.py +++ b/scripts/yao_cli_report_commands.py @@ -41,6 +41,10 @@ def command_skill_report(args: argparse.Namespace) -> int: return render_skill_report_command(args, "render_skill_overview.py", markdown=False) +def command_skill_interpretation(args: argparse.Namespace) -> int: + return render_skill_report_command(args, "render_skill_interpretation.py", markdown=False) + + def command_review_viewer(args: argparse.Namespace) -> int: return render_skill_report_command(args, "render_review_viewer.py", markdown=False) diff --git a/skill-ir/examples/yao-meta-skill.json b/skill-ir/examples/yao-meta-skill.json index 9c557e08..e8f8bc4d 100644 --- a/skill-ir/examples/yao-meta-skill.json +++ b/skill-ir/examples/yao-meta-skill.json @@ -163,6 +163,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", @@ -189,8 +190,7 @@ "scripts/run_conformance_suite.py", "scripts/run_description_optimization_suite.py", "scripts/run_eval_suite.py", - "scripts/run_output_eval.py", - "scripts/run_output_execution.py" + "scripts/run_output_eval.py" ], "assets": [ "templates/basic_skill.md.j2", diff --git a/skill_atlas/catalog.json b/skill_atlas/catalog.json index 81283388..0b4dc402 100644 --- a/skill_atlas/catalog.json +++ b/skill_atlas/catalog.json @@ -72,6 +72,7 @@ "scripts/render_review_studio.py", "scripts/render_review_viewer.py", "scripts/render_review_waivers.py", + "scripts/render_skill_interpretation.py", "scripts/render_skill_os2_audit.py", "scripts/render_skill_os2_coverage.py", "scripts/render_skill_overview.py", diff --git a/tests/verify_review_studio.py b/tests/verify_review_studio.py index 4735bb30..0ed666e6 100644 --- a/tests/verify_review_studio.py +++ b/tests/verify_review_studio.py @@ -538,14 +538,15 @@ def main() -> None: assert full_payload["data"]["skill_os2_coverage"]["summary"]["local_blueprint_ready"] is True, full_payload["data"]["skill_os2_coverage"] assert full_payload["data"]["skill_os2_coverage"]["summary"]["public_world_class_ready"] is False, full_payload["data"]["skill_os2_coverage"] assert full_payload["data"]["skill_os2_coverage"]["summary"]["extension_track_count"] == 2, full_payload["data"]["skill_os2_coverage"] - assert full_payload["data"]["skill_os2_coverage"]["summary"]["extension_partial_count"] == 2, full_payload["data"]["skill_os2_coverage"] + assert full_payload["data"]["skill_os2_coverage"]["summary"]["extension_partial_count"] == 1, full_payload["data"]["skill_os2_coverage"] assert full_payload["data"]["skill_os2_coverage"]["summary"]["extension_planned_count"] == 0, full_payload["data"]["skill_os2_coverage"] + assert full_payload["data"]["skill_os2_coverage"]["summary"]["extension_covered_count"] == 1, full_payload["data"]["skill_os2_coverage"] assert full_payload["data"]["skill_os2_coverage"]["summary"]["adaptive_extension_ready"] is False, full_payload["data"]["skill_os2_coverage"] extension_tracks = { item["key"]: item for item in full_payload["data"]["skill_os2_coverage"]["reference_extension_tracks"] } - assert extension_tracks["skill-interpretation-report"]["status"] == "partial", extension_tracks + assert extension_tracks["skill-interpretation-report"]["status"] == "covered", extension_tracks assert extension_tracks["adaptive-self-iteration"]["status"] == "partial", extension_tracks world_class_entries = full_payload["data"]["world_class_evidence_ledger"]["entries"] assert len(world_class_entries) == 4, world_class_entries @@ -656,7 +657,8 @@ def main() -> None: assert "蓝图覆盖" in html, html assert "Extension Track Count" in html, html assert "Adaptive Extension Ready" in html, html - assert "
Extension Partial Count
2
" in html, html + assert "
Extension Partial Count
1
" in html, html + assert "
Extension Covered Count
1
" in html, html assert "
Extension Planned Count
0
" in html, html assert "Adaptive Extension Ready" in html, html assert "本地蓝图" in html, html diff --git a/tests/verify_skill_interpretation.py b/tests/verify_skill_interpretation.py new file mode 100644 index 00000000..95fffa4d --- /dev/null +++ b/tests/verify_skill_interpretation.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python3 +import json +import shutil +import subprocess +import sys +from pathlib import Path + + +ROOT = Path(__file__).resolve().parent.parent +CLI = ROOT / "scripts" / "yao.py" +TMP = ROOT / "tests" / "tmp_skill_interpretation" + + +def run(*args: str) -> dict: + proc = subprocess.run( + [sys.executable, str(CLI), *args], + cwd=ROOT, + capture_output=True, + text=True, + ) + payload = json.loads(proc.stdout) + return {"ok": proc.returncode == 0, "payload": payload, "stderr": proc.stderr} + + +def main() -> None: + shutil.rmtree(TMP, ignore_errors=True) + init_result = run( + "init", + "interpretation-demo-skill", + "--description", + "Turn messy launch notes into a reusable launch checklist skill with review gates.", + "--output-dir", + str(TMP), + "--mode", + "production", + "--archetype", + "production", + ) + assert init_result["ok"], init_result + skill_dir = Path(init_result["payload"]["root"]) + assert (skill_dir / "reports" / "skill-overview.html").exists(), skill_dir + assert (skill_dir / "reports" / "skill-interpretation.html").exists(), skill_dir + assert (skill_dir / "reports" / "skill-interpretation.json").exists(), skill_dir + report_view = init_result["payload"]["report_view"] + assert report_view["interpretation_report"].endswith("reports/skill-interpretation.html"), report_view + assert "reports/skill-interpretation.html" in report_view["message"], report_view + + rerender_result = run("skill-interpretation", str(skill_dir)) + assert rerender_result["ok"], rerender_result + assert rerender_result["payload"]["artifacts"]["html"].endswith("reports/skill-interpretation.html"), rerender_result + assert rerender_result["payload"]["summary"]["report_kind"] == "skill-interpretation", rerender_result + assert rerender_result["payload"]["summary"]["default_language"] == "zh-CN", rerender_result + assert rerender_result["payload"]["summary"]["section_count"] == 9, rerender_result + assert rerender_result["payload"]["summary"]["source_model_reused"] is True, rerender_result + + payload = json.loads((skill_dir / "reports" / "skill-interpretation.json").read_text(encoding="utf-8")) + assert payload["report_contract"]["schema_version"] == "2.0", payload["report_contract"] + assert payload["report_contract"]["report_kind"] == "skill-interpretation", payload["report_contract"] + assert payload["report_contract"]["html_report"] == "reports/skill-interpretation.html", payload["report_contract"] + assert payload["report_contract"]["default_language"] == "zh-CN", payload["report_contract"] + assert payload["report_contract"]["languages"] == ["zh-CN", "en"], payload["report_contract"] + assert payload["report_contract"]["layout"] == "kami-white-audit-v2", payload["report_contract"] + assert payload["interpretation_contract"]["source_model"] == "skill-overview-v2", payload["interpretation_contract"] + assert payload["interpretation_contract"]["source_model_reused"] is True, payload["interpretation_contract"] + assert len(payload["interpretation_contract"]["includes"]) >= 10, payload["interpretation_contract"] + assert all(len(label) == 4 for label in payload["report_contract"]["nav_labels"]), payload["report_contract"] + assert "reports/skill-interpretation.html" in payload["skill_summary"]["deliverables"], payload["skill_summary"] + + html = (skill_dir / "reports" / "skill-interpretation.html").read_text(encoding="utf-8") + assert 'data-report-lang="zh-CN"' in html, html[:500] + assert 'class="language-switch"' in html, html[:2600] + assert "reports/skill-interpretation.html" in html, html[:10000] + assert "After creation, open reports/skill-interpretation.html before expanding the package further." in html, html[:12000] + for label in ("技能概述", "总览指标", "能力画像", "原理结构", "契约边界", "质量评估", "风险治理", "包体资产", "迭代路线"): + assert f">{label}" in html, label + for chart_label in ("评分雷达", "交付流程", "能力矩阵", "风险热力", "资产分布", "迭代时间"): + assert chart_label in html, chart_label + + schema = json.loads((ROOT / "schemas" / "skill-interpretation.schema.json").read_text(encoding="utf-8")) + assert schema["properties"]["report_contract"]["properties"]["report_kind"]["const"] == "skill-interpretation", schema + assert schema["properties"]["interpretation_contract"]["properties"]["source_model_reused"]["const"] is True, schema + print(json.dumps({"ok": True}, ensure_ascii=False, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/tests/verify_skill_os2_coverage.py b/tests/verify_skill_os2_coverage.py index 961803dc..e42c570e 100644 --- a/tests/verify_skill_os2_coverage.py +++ b/tests/verify_skill_os2_coverage.py @@ -45,8 +45,9 @@ def main() -> None: assert summary["warn_count"] == 0, summary assert summary["missing_count"] == 0, summary assert summary["extension_track_count"] == 2, summary - assert summary["extension_partial_count"] == 2, summary + assert summary["extension_partial_count"] == 1, summary assert summary["extension_planned_count"] == 0, summary + assert summary["extension_covered_count"] == 1, summary assert summary["adaptive_extension_ready"] is False, summary assert summary["local_blueprint_ready"] is True, summary assert summary["public_world_class_ready"] is False, summary @@ -87,12 +88,20 @@ def main() -> None: assert payload["source_blueprint"]["recommended_pr_count"] == 12, payload assert payload["source_blueprint"]["reference_extension_count"] == 2, payload extension_tracks = {item["key"]: item for item in payload["reference_extension_tracks"]} - assert extension_tracks["skill-interpretation-report"]["status"] == "partial", extension_tracks + assert extension_tracks["skill-interpretation-report"]["status"] == "covered", extension_tracks assert extension_tracks["adaptive-self-iteration"]["status"] == "partial", extension_tracks assert any( entry["path"] == "reports/skill-overview.html" and entry["exists"] for entry in extension_tracks["skill-interpretation-report"]["evidence"] ), extension_tracks["skill-interpretation-report"] + assert any( + entry["path"] == "scripts/render_skill_interpretation.py" and entry["exists"] + for entry in extension_tracks["skill-interpretation-report"]["evidence"] + ), extension_tracks["skill-interpretation-report"] + assert any( + entry["path"] == "schemas/skill-interpretation.schema.json" and entry["exists"] + for entry in extension_tracks["skill-interpretation-report"]["evidence"] + ), extension_tracks["skill-interpretation-report"] assert any( entry["path"] == "scripts/summarize_user_signals.py" and entry["exists"] for entry in extension_tracks["adaptive-self-iteration"]["evidence"] @@ -102,11 +111,14 @@ def main() -> None: for entry in extension_tracks["adaptive-self-iteration"]["evidence"] ), extension_tracks["adaptive-self-iteration"] assert "Close the four world-class evidence ledger entries" in payload["next_highest_leverage"][0], payload + assert "skill interpretation report" in " ".join(payload["next_highest_leverage"]), payload assert "adaptive self-iteration" in " ".join(payload["next_highest_leverage"]), payload markdown = output_md.read_text(encoding="utf-8") assert "Skill OS 2.0 Blueprint Coverage" in markdown, markdown assert "local blueprint ready: `true`" in markdown, markdown assert "public world-class ready: `false`" in markdown, markdown + assert "extension covered: `1`" in markdown, markdown + assert "extension partial: `1`" in markdown, markdown assert "## Core Modules" in markdown, markdown assert "## Recommended PR Coverage" in markdown, markdown assert "## Reference Extension Tracks" in markdown, markdown diff --git a/tests/verify_skill_overview.py b/tests/verify_skill_overview.py index f46465da..e5d0dc66 100644 --- a/tests/verify_skill_overview.py +++ b/tests/verify_skill_overview.py @@ -51,8 +51,8 @@ def main() -> None: assert ".metrics-primary" in css_contract, css_contract[:7000] assert ".metrics-flow" in css_contract, css_contract[:9000] assert ".metric-detail-grid" in css_contract, css_contract[:9000] - assert "repeat(2, minmax(0, 1fr))" in css_contract, css_contract[:9000] - assert "repeat(auto-fit, minmax(320px, 1fr))" not in css_contract, css_contract[:9000] + assert "repeat(auto-fit, minmax(min(100%, 340px), 1fr))" in css_contract, css_contract[:9000] + assert "grid-template-columns: minmax(420px, 1fr)" not in css_contract, css_contract[:9000] assert "overflow-wrap: break-word" in css_contract, css_contract[:9000] assert "@media (max-width: 980px)" in css_contract, css_contract[-2200:] @@ -107,6 +107,8 @@ def main() -> None: assert (created / "reports" / "intent-confidence.json").exists(), created assert (created / "reports" / "skill-overview.html").exists(), created assert (created / "reports" / "skill-overview.json").exists(), created + assert (created / "reports" / "skill-interpretation.html").exists(), created + assert (created / "reports" / "skill-interpretation.json").exists(), created assert (created / "reports" / "compiled_targets.md").exists(), created assert (created / "reports" / "compiled_targets.json").exists(), created assert (created / "reports" / "reference-synthesis.md").exists(), created @@ -158,6 +160,7 @@ def main() -> None: assert "reports/adoption_drift_report.md" in overview_json["skill_summary"]["deliverables"], overview_json["skill_summary"] assert "reports/review_waivers.md" in overview_json["skill_summary"]["deliverables"], overview_json["skill_summary"] assert "reports/review-studio.html" in overview_json["skill_summary"]["deliverables"], overview_json["skill_summary"] + assert "reports/skill-interpretation.html" in overview_json["skill_summary"]["deliverables"], overview_json["skill_summary"] assert overview_json["skill_ir"]["schema_version"] in {"", "2.0.0"}, overview_json.get("skill_ir") assert overview_json["compiled_targets"]["summary"]["target_count"] >= 3, overview_json.get("compiled_targets") assert overview_json["compiled_targets"]["summary"]["block_count"] == 0, overview_json.get("compiled_targets") diff --git a/tests/verify_yao_cli.py b/tests/verify_yao_cli.py index 820ff9fe..67cad9bd 100644 --- a/tests/verify_yao_cli.py +++ b/tests/verify_yao_cli.py @@ -79,7 +79,7 @@ def main() -> None: assert callable(yao_cli_module.command_review_studio) parser_help = yao_cli_module.build_parser().format_help() expected_help = ( - "quickstart review-studio python-compat architecture-audit skill-os2-audit skill-os2-coverage " + "quickstart skill-interpretation review-studio python-compat architecture-audit skill-os2-audit skill-os2-coverage " "world-class-evidence world-class-ledger world-class-intake world-class-submission-kit " "world-class-submission-review world-class-runbook world-class-claim-guard " "benchmark-reproducibility output-review-kit adapt-scan adapt-propose " @@ -92,35 +92,26 @@ def main() -> None: created = Path(init_result["payload"]["root"]) assert (created / "SKILL.md").exists(), created assert (created / "README.md").exists(), created - assert (created / "reports" / "intent-dialogue.md").exists(), created - assert (created / "reports" / "intent-confidence.md").exists(), created - assert (created / "reports" / "skill-overview.html").exists(), created - assert (created / "reports" / "review-studio.html").exists(), created - assert (created / "reports" / "review-studio.json").exists(), created - assert (created / "reports" / "review-viewer.html").exists(), created - assert (created / "reports" / "reference-scan.md").exists(), created - assert (created / "reports" / "reference-synthesis.md").exists(), created - assert (created / "reports" / "output-risk-profile.md").exists(), created - assert (created / "reports" / "artifact-design-profile.md").exists(), created - assert (created / "reports" / "prompt-quality-profile.md").exists(), created - assert (created / "reports" / "system-model.md").exists(), created - assert (created / "reports" / "skill-ir.json").exists(), created - assert (created / "reports" / "compiled_targets.md").exists(), created - assert (created / "reports" / "compiled_targets.json").exists(), created - assert (created / "reports" / "iteration-directions.md").exists(), created - assert (created / "reports" / "adoption_drift_report.md").exists(), created - assert (created / "reports" / "adoption_drift_report.json").exists(), created - assert (created / "reports" / "review_waivers.md").exists(), created - assert (created / "reports" / "review_waivers.json").exists(), created - assert (created / "reports" / "review_annotations.md").exists(), created - assert (created / "reports" / "review_annotations.json").exists(), created + expected_reports = [ + "intent-dialogue.md", "intent-confidence.md", "skill-overview.html", "skill-interpretation.html", + "skill-interpretation.json", "review-studio.html", "review-studio.json", "review-viewer.html", + "reference-scan.md", "reference-synthesis.md", "output-risk-profile.md", "artifact-design-profile.md", + "prompt-quality-profile.md", "system-model.md", "skill-ir.json", "compiled_targets.md", + "compiled_targets.json", "iteration-directions.md", "adoption_drift_report.md", + "adoption_drift_report.json", "review_waivers.md", "review_waivers.json", "review_annotations.md", + "review_annotations.json", + ] + assert all((created / "reports" / path).exists() for path in expected_reports), created assert "Honest Boundaries" in (created / "SKILL.md").read_text(encoding="utf-8"), created init_report_view = init_result["payload"]["report_view"] assert init_report_view["html_report"].endswith("reports/skill-overview.html"), init_report_view + assert init_report_view["interpretation_report"].endswith("reports/skill-interpretation.html"), init_report_view assert Path(init_report_view["html_report"]).exists(), init_report_view + assert Path(init_report_view["interpretation_report"]).exists(), init_report_view assert init_report_view["review_studio"].endswith("reports/review-studio.html"), init_report_view assert Path(init_report_view["review_studio"]).exists(), init_report_view assert "Skill 已创建完成" in init_report_view["message"], init_report_view + assert "reports/skill-interpretation.html" in init_report_view["message"], init_report_view assert "Review Studio 2.0" in init_report_view["message"], init_report_view assert "目标编译" in init_report_view["message"], init_report_view assert "reports/compiled_targets.md" in init_report_view["message"], init_report_view @@ -360,19 +351,13 @@ def main() -> None: ) assert quickstart_result["ok"], quickstart_result quickstart_root = Path(quickstart_result["payload"]["root"]) - assert (quickstart_root / "reports" / "review-viewer.html").exists(), quickstart_root - assert (quickstart_root / "reports" / "review-studio.html").exists(), quickstart_root - assert (quickstart_root / "reports" / "github-benchmark-scan.md").exists(), quickstart_root - assert (quickstart_root / "reports" / "intent-confidence.md").exists(), quickstart_root - assert (quickstart_root / "reports" / "reference-synthesis.md").exists(), quickstart_root - assert (quickstart_root / "reports" / "artifact-design-profile.md").exists(), quickstart_root - assert (quickstart_root / "reports" / "prompt-quality-profile.md").exists(), quickstart_root - assert (quickstart_root / "reports" / "system-model.md").exists(), quickstart_root - assert (quickstart_root / "reports" / "compiled_targets.md").exists(), quickstart_root - assert (quickstart_root / "reports" / "compiled_targets.json").exists(), quickstart_root - assert (quickstart_root / "reports" / "adoption_drift_report.md").exists(), quickstart_root - assert (quickstart_root / "reports" / "review_waivers.md").exists(), quickstart_root - assert (quickstart_root / "reports" / "review_annotations.md").exists(), quickstart_root + quickstart_reports = [ + "review-viewer.html", "skill-interpretation.html", "skill-interpretation.json", "review-studio.html", + "github-benchmark-scan.md", "intent-confidence.md", "reference-synthesis.md", + "artifact-design-profile.md", "prompt-quality-profile.md", "system-model.md", "compiled_targets.md", + "compiled_targets.json", "adoption_drift_report.md", "review_waivers.md", "review_annotations.md", + ] + assert all((quickstart_root / "reports" / path).exists() for path in quickstart_reports), quickstart_root assert quickstart_result["payload"]["archetype"] == "production", quickstart_result assert quickstart_result["payload"]["guidance"]["experience_note"], quickstart_result assert quickstart_result["payload"]["guidance"]["problem_diagnosis"]["candidates"], quickstart_result @@ -381,25 +366,22 @@ def main() -> None: assert quickstart_result["payload"]["reference_mode"]["mode"] == "silent", quickstart_result quickstart_report_view = quickstart_result["payload"]["report_view"] assert quickstart_report_view["html_report"].endswith("reports/skill-overview.html"), quickstart_report_view + assert quickstart_report_view["interpretation_report"].endswith("reports/skill-interpretation.html"), quickstart_report_view assert Path(quickstart_report_view["html_report"]).exists(), quickstart_report_view + assert Path(quickstart_report_view["interpretation_report"]).exists(), quickstart_report_view assert Path(quickstart_report_view["review_studio"]).exists(), quickstart_report_view assert "Skill 已创建完成" in quickstart_report_view["message"], quickstart_report_view assert "默认使用中文简体" in quickstart_report_view["message"], quickstart_report_view - assert quickstart_result["payload"]["guidance"]["next_steps"][0].startswith("Open reports/skill-overview.html"), quickstart_result - assert "reports/review-studio.html" in quickstart_result["payload"]["guidance"]["next_steps"][2], quickstart_result - assert "audit report" in quickstart_result["payload"]["guidance"]["next_steps"][0], quickstart_result - assert quickstart_result["payload"]["reviewer_evidence"]["artifacts"]["reference_synthesis"].endswith( - "reports/reference-synthesis.md" - ), quickstart_result - assert quickstart_result["payload"]["reviewer_evidence"]["artifacts"]["prompt_quality_profile"].endswith( - "reports/prompt-quality-profile.md" - ), quickstart_result - assert quickstart_result["payload"]["reviewer_evidence"]["artifacts"]["system_model"].endswith( - "reports/system-model.md" - ), quickstart_result - assert quickstart_result["payload"]["reviewer_evidence"]["artifacts"]["review_studio"].endswith( - "reports/review-studio.html" - ), quickstart_result + assert quickstart_result["payload"]["guidance"]["next_steps"][0].startswith("Open reports/skill-interpretation.html"), quickstart_result + assert quickstart_result["payload"]["guidance"]["next_steps"][1].startswith("Open reports/skill-overview.html"), quickstart_result + assert "reports/review-studio.html" in quickstart_result["payload"]["guidance"]["next_steps"][3], quickstart_result + assert "interpretation report" in quickstart_result["payload"]["guidance"]["next_steps"][0], quickstart_result + evidence_artifacts = quickstart_result["payload"]["reviewer_evidence"]["artifacts"] + assert evidence_artifacts["reference_synthesis"].endswith("reports/reference-synthesis.md"), quickstart_result + assert evidence_artifacts["prompt_quality_profile"].endswith("reports/prompt-quality-profile.md"), quickstart_result + assert evidence_artifacts["system_model"].endswith("reports/system-model.md"), quickstart_result + assert evidence_artifacts["skill_interpretation"].endswith("reports/skill-interpretation.html"), quickstart_result + assert evidence_artifacts["review_studio"].endswith("reports/review-studio.html"), quickstart_result assert "uncertainty_or_conflict" not in quickstart_result["payload"], quickstart_result quickstart_manifest = json.loads((quickstart_root / "manifest.json").read_text(encoding="utf-8")) assert quickstart_manifest["status"] == "active", quickstart_manifest @@ -440,6 +422,14 @@ def main() -> None: assert skill_report_result["ok"], skill_report_result assert skill_report_result["payload"]["artifacts"]["html"].endswith("reports/skill-overview.html"), skill_report_result + skill_interpretation_result = run("skill-interpretation", str(created)) + assert skill_interpretation_result["ok"], skill_interpretation_result + assert skill_interpretation_result["payload"]["artifacts"]["html"].endswith( + "reports/skill-interpretation.html" + ), skill_interpretation_result + assert skill_interpretation_result["payload"]["summary"]["report_kind"] == "skill-interpretation", skill_interpretation_result + assert skill_interpretation_result["payload"]["summary"]["default_language"] == "zh-CN", skill_interpretation_result + review_viewer_result = run("review-viewer", str(created)) assert review_viewer_result["ok"], review_viewer_result assert review_viewer_result["payload"]["artifacts"]["html"].endswith("reports/review-viewer.html"), review_viewer_result @@ -762,6 +752,8 @@ def main() -> None: assert "benchmark_reproducibility" in report_result["payload"]["artifacts"], report_result assert "skill_os2_coverage" in report_result["payload"]["artifacts"], report_result assert report_result["payload"]["artifacts"]["skill_overview"] == "reports/skill-overview.json", report_result + assert report_result["payload"]["artifacts"]["skill_interpretation"] == "reports/skill-interpretation.json", report_result + assert report_result["payload"]["artifacts"]["skill_interpretation_html"] == "reports/skill-interpretation.html", report_result assert report_result["payload"]["artifacts"]["review_viewer"] == "reports/review-viewer.json", report_result assert report_result["payload"]["artifacts"]["review_viewer_html"] == "reports/review-viewer.html", report_result report_output_execution = json.loads((ROOT / "reports" / "output_execution_runs.json").read_text(encoding="utf-8"))
路径Path作用Role类型Type
SKILL.mdSkill 入口文件Skill entrypoint文件file
README.md人类可读使用说明Human-readable usage guide文件file
agents/interface.yaml跨平台接口元数据Neutral interface metadata文件file
manifest.json生命周期与打包元数据Lifecycle and portability metadata文件file
references扩展指导与复用资料Extended guidance and reusable notes目录folder
scripts确定性脚本或本地工具Deterministic helpers or local tooling目录folder
evals触发与质量检查Trigger and quality checks目录folder
reports生成的证据与总结报告Generated evidence and overview artifacts目录folder