Add Daily SkillOps reporting

This commit is contained in:
yaojingang
2026-06-16 04:29:24 +08:00
parent 5cb10444c4
commit cf4da35499
58 changed files with 1967 additions and 509 deletions
+2
View File
@@ -54,6 +54,7 @@ python3 scripts/render_world_class_evidence_intake.py . --generated-at "$GENERAT
python3 scripts/render_world_class_submission_review.py . --generated-at "$GENERATED_AT"
python3 scripts/render_world_class_operator_runbook.py . --generated-at "$GENERATED_AT"
python3 scripts/render_world_class_claim_guard.py . --generated-at "$GENERATED_AT"
python3 scripts/render_daily_skillops_report.py . --generated-at "$GENERATED_AT"
python3 scripts/render_skill_os2_audit.py . --generated-at "$GENERATED_AT"
python3 scripts/render_skill_os2_coverage.py . --generated-at "$GENERATED_AT"
python3 scripts/render_context_reports.py --generated-at "$GENERATED_AT"
@@ -71,6 +72,7 @@ For final release evidence, commit source and generated package evidence first,
```bash
python3 scripts/render_context_reports.py --generated-at "$GENERATED_AT"
python3 scripts/render_benchmark_reproducibility.py . --generated-at "$GENERATED_AT"
python3 scripts/render_daily_skillops_report.py . --generated-at "$GENERATED_AT"
python3 scripts/render_skill_overview.py .
python3 scripts/render_skill_interpretation.py .
python3 scripts/render_review_viewer.py .
+6 -3
View File
@@ -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-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-preflight-check world-class-submission-review-check world-class-runbook-check world-class-claim-guard-check benchmark-reproducibility-check evidence-consistency-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-preflight-check world-class-submission-review-check world-class-runbook-check world-class-claim-guard-check benchmark-reproducibility-check evidence-consistency-check feedback-check adaptation-safety-check daily-skillops-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
@@ -140,6 +140,9 @@ feedback-check:
adaptation-safety-check:
$(PYTHON) tests/verify_adaptation_safety.py
daily-skillops-check:
$(PYTHON) tests/verify_daily_skillops.py
adoption-drift-check:
$(PYTHON) tests/verify_adoption_drift.py
@@ -251,11 +254,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-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-preflight-check world-class-submission-review-check world-class-runbook-check world-class-claim-guard-check benchmark-reproducibility-check evidence-consistency-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-preflight-check world-class-submission-review-check world-class-runbook-check world-class-claim-guard-check benchmark-reproducibility-check evidence-consistency-check feedback-check adaptation-safety-check daily-skillops-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_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_evidence_consistency 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_evidence_consistency tests/tmp_feedback tests/tmp_daily_skillops 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 {} +
+3 -1
View File
@@ -124,6 +124,7 @@ python3 scripts/yao.py system-model my-skill
python3 scripts/yao.py feedback my-skill --note "Tighten exclusions before adding scripts." --rating 4 --category boundary
python3 scripts/yao.py adapt-scan my-skill --source ./curated-user-signals.jsonl
python3 scripts/yao.py adapt-propose my-skill
python3 scripts/yao.py daily-skillops my-skill --source ./curated-user-signals.jsonl
python3 scripts/yao.py adoption-drift my-skill --record-event skill_activation --activation-type explicit --outcome accepted
YAO_CLI_TELEMETRY=1 python3 scripts/yao.py validate my-skill
python3 scripts/yao.py telemetry-emit my-skill --event skill_activation --activation-type explicit --outcome accepted --command browser-extension
@@ -432,7 +433,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-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-preflight, world-class-submission-kit, world-class-submission-review, world-class-runbook, world-class-claim-guard, benchmark-reproducibility, evidence-consistency, 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-preflight, world-class-submission-kit, world-class-submission-review, world-class-runbook, world-class-claim-guard, benchmark-reproducibility, evidence-consistency, adapt-scan, adapt-propose, adapt-apply, daily-skillops, 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
@@ -443,6 +444,7 @@ Utility scripts that make the meta-skill operational:
- `render_regression_history.py`: turns milestone snapshots into a readable regression history report
- `render_skill_os2_audit.py`: renders a requirement-by-requirement Skill OS 2.0 audit that separates landed local evidence from human-required and external-required gaps
- `render_skill_os2_coverage.py`: maps the Skill OS 2.0 upgrade blueprint to local artifacts, commands, tests, and remaining evidence boundaries
- `render_daily_skillops_report.py`: renders an explicit-source Daily SkillOps operations report that summarizes redacted user patterns, proposal-only adaptations, approval state, release evidence, and world-class evidence gaps without scanning private logs or applying patches
- `render_world_class_evidence_plan.py`: renders executable evidence tasks for remaining world-class gaps without treating planned external work as completed evidence
- `render_world_class_evidence_ledger.py`: renders a machine-checkable ledger for current world-class evidence acceptance, anti-overclaim guards, provenance requirements, and privacy contracts
- `render_world_class_evidence_intake.py`: validates world-class external and human evidence packets against provenance, privacy, artifact, and anti-overclaim requirements before ledger review
+1 -1
View File
@@ -16,7 +16,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
"package_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf"
"package_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083"
}
]
}
+3 -3
View File
@@ -16,8 +16,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53"
"package_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0"
},
"compatibility": {
"openai": "pass",
@@ -48,7 +48,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"schema_version": "1.0",
"ok": true,
"generated_at": "2026-06-15T00:00:00Z",
"generated_at": "2026-06-15T20:28:47Z",
"skill_dir": ".",
"source_patterns": "reports/user_patterns.json",
"pattern_count": 5,
+1 -1
View File
@@ -1,6 +1,6 @@
# Adaptation Proposals
- Generated at: `2026-06-15T00:00:00Z`
- Generated at: `2026-06-15T20:28:47Z`
- Pattern report: `reports/user_patterns.json`
- Proposal only: `true`
- Writes repository files: `false`
+1 -1
View File
@@ -1,7 +1,7 @@
{
"ok": true,
"schema_version": "2.0",
"generated_at": "2026-06-16",
"generated_at": "2026-06-15T20:28:46Z",
"skill_dir": ".",
"privacy_contract": {
"storage": "local-first",
+7 -7
View File
@@ -4,12 +4,12 @@
"generated_at": "2026-06-16",
"skill_dir": ".",
"summary": {
"python_file_count": 179,
"script_file_count": 114,
"test_file_count": 65,
"python_file_count": 181,
"script_file_count": 115,
"test_file_count": 66,
"internal_module_count": 34,
"cli_script_count": 82,
"command_handler_count": 65,
"cli_script_count": 83,
"command_handler_count": 66,
"entrypoint_command_handler_count": 18,
"command_module_count": 6,
"warn_line_threshold": 900,
@@ -38,7 +38,7 @@
},
{
"path": "scripts/yao_cli_parser.py",
"lines": 827,
"lines": 843,
"kind": "internal-module",
"severity": "pass",
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
@@ -124,7 +124,7 @@
},
{
"path": "scripts/yao_cli_parser.py",
"lines": 827,
"lines": 843,
"kind": "internal-module",
"severity": "pass",
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
+7 -7
View File
@@ -5,12 +5,12 @@ Generated at: `2026-06-16`
## Summary
- decision: `pass`
- python files: `179`
- scripts: `114`
- tests: `65`
- python files: `181`
- scripts: `115`
- tests: `66`
- internal modules: `34`
- CLI scripts: `82`
- Yao CLI command handlers: `65`
- CLI scripts: `83`
- Yao CLI command handlers: `66`
- entrypoint command handlers: `18`
- command modules: `6`
- largest file lines: `899`
@@ -31,7 +31,7 @@ No file-size hotspots found.
| --- | ---: | --- | --- |
| `tests/verify_yao_cli.py` | `899` | `test` | Break broad integration assertions into focused verifier helpers when the next behavior change lands. |
| `scripts/render_evidence_consistency.py` | `859` | `cli-script` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `scripts/yao_cli_parser.py` | `827` | `internal-module` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `scripts/yao_cli_parser.py` | `843` | `internal-module` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `scripts/skill_report_layout.py` | `808` | `internal-module` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `scripts/skill_report_model.py` | `800` | `internal-module` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `tests/verify_world_class_evidence_intake.py` | `795` | `test` | Break broad integration assertions into focused verifier helpers when the next behavior change lands. |
@@ -47,7 +47,7 @@ No file-size hotspots found.
| --- | ---: | --- | --- |
| `tests/verify_yao_cli.py` | `899` | `test` | `pass` |
| `scripts/render_evidence_consistency.py` | `859` | `cli-script` | `pass` |
| `scripts/yao_cli_parser.py` | `827` | `internal-module` | `pass` |
| `scripts/yao_cli_parser.py` | `843` | `internal-module` | `pass` |
| `scripts/skill_report_layout.py` | `808` | `internal-module` | `pass` |
| `scripts/skill_report_model.py` | `800` | `internal-module` | `pass` |
| `tests/verify_world_class_evidence_intake.py` | `795` | `test` | `pass` |
+40 -26
View File
@@ -3,23 +3,36 @@
"ok": true,
"generated_at": "2026-06-16",
"skill_dir": ".",
"commit": "c5165be99c8b5c2c9c07bd6017716e874567920c",
"commit": "5cb10444c49c40d58b76784e6c4bf993c863e827",
"git_status": {
"available": true,
"dirty": false,
"changed_file_count": 0,
"sample": [],
"dirty": true,
"changed_file_count": 60,
"sample": [
" M AGENTS.md",
" M Makefile",
" M README.md",
" M registry/index.json",
" M registry/packages/yao-meta-skill.json",
" M reports/adaptation_proposals.json",
" M reports/adaptation_proposals.md",
" M reports/adoption_drift_report.json",
" M reports/architecture_maintainability.json",
" M reports/architecture_maintainability.md",
" M reports/benchmark_reproducibility.json",
" M reports/benchmark_reproducibility.md"
],
"scope": "generation-time status before this report is written"
},
"summary": {
"reproducibility_ready": true,
"release_lock_ready": true,
"release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"evidence_bundle_sha256": "04bfae8616aaeae0f2d12d92db024b7609b242428a81a40f6ac271ef42aa3f31",
"source_contract_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"evidence_bundle_sha256": "4e46ec51849a179cd6db9ea908a7d49df080b3f10463d4a98e54aaa5968e37cd",
"source_contract_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -37,14 +50,15 @@
"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": 60
},
"public_claim": {
"ready": false,
"scope": "public benchmark or world-class readiness claim",
"blockers": [
"release lock is not clean or commit is unavailable",
"provider-backed model holdout evidence is incomplete",
"human blind-review adjudication is incomplete",
"world-class evidence is not accepted yet (4 open gaps, 4 ledger pending)",
@@ -53,10 +67,10 @@
"policy": "Local reproducibility can pass before public claims; public claims require provider evidence, human adjudication, clean release lock, accepted world-class evidence, and complete source checks."
},
"release_lock": {
"ready": true,
"commit": "c5165be99c8b5c2c9c07bd6017716e874567920c",
"ready": false,
"commit": "5cb10444c49c40d58b76784e6c4bf993c863e827",
"status_scope": "generation-time status before this report is written",
"reason": "clean generation-time HEAD"
"reason": "working tree was dirty at generation time"
},
"evidence_bundle": {
"algorithm": "sha256(path,label,exists,artifact_sha256)",
@@ -64,7 +78,7 @@
"existing_count": 25,
"missing_count": 0,
"missing_paths": [],
"sha256": "04bfae8616aaeae0f2d12d92db024b7609b242428a81a40f6ac271ef42aa3f31"
"sha256": "4e46ec51849a179cd6db9ea908a7d49df080b3f10463d4a98e54aaa5968e37cd"
},
"methodology": {
"path": "reports/benchmark_methodology.md",
@@ -138,7 +152,7 @@
"path": "reports/output_execution_runs.json",
"exists": true,
"bytes": 7966,
"sha256": "309b2847cf0db6119af307ae7bbb2d573ddfa47518fa9205143addb444a9f410"
"sha256": "6fa9f0b5a294f5373de752e5881c1e6c1a996b65995bd83517a10e691c5e4abd"
},
{
"label": "blind_review",
@@ -172,43 +186,43 @@
"label": "trust_report",
"path": "reports/security_trust_report.json",
"exists": true,
"bytes": 112030,
"sha256": "d9f521542fc5c6a231fe875979ac2dcae170d603678935a6d8645c52a1ed669b"
"bytes": 113207,
"sha256": "ba3b69b8eb33e907fb14a4e86c70bc6dd05d666baa6b8dbce787a03a156663a7"
},
{
"label": "python_compatibility",
"path": "reports/python_compatibility.json",
"exists": true,
"bytes": 23652,
"sha256": "64047e1708873e20cd99a85bca88bdd36417cbda432ba2b5cb14b84558ace814"
"bytes": 23905,
"sha256": "aa89183f58b2f29927cb6ce07465985583cb3ae410f0cbb48813cd10e6687743"
},
{
"label": "registry_audit",
"path": "reports/registry_audit.json",
"exists": true,
"bytes": 3183,
"sha256": "3c4b554a46465d08f18530ad004ab46f7f6b10f14f733190e4c63ce47b2c881e"
"sha256": "ba8c24683f0e4d89d3d77f90c3cce8fa9dea52c93f8da8f23da127abe634eda3"
},
{
"label": "package_verification",
"path": "reports/package_verification.json",
"exists": true,
"bytes": 19338,
"sha256": "eb9916629437168ba93bbc2f47bc25154442edcc458071e50e0cbbf826d4452b"
"sha256": "667250d991ae62ae20562fe195a7ebc8357d55e723e17a084c94fd432420da8e"
},
{
"label": "install_simulation",
"path": "reports/install_simulation.json",
"exists": true,
"bytes": 8604,
"sha256": "e865fd484bd4eec278c36247ba60eb1496ffd9c7978cfbfb10e69ead744f04f3"
"sha256": "df390c15745131f8c626a0782c89c10c47a2293e8a92f84c997f477f2078bd76"
},
{
"label": "skill_os2_audit",
"path": "reports/skill_os2_audit.json",
"exists": true,
"bytes": 14310,
"sha256": "eb21ab4344a64605f6dc6cba058aa6a51cfc15113a4529b1687230cd5cbe8e60"
"sha256": "e12318b1e083aaa85ffc81d142bb82c1e4bdee1caf0e4bcb0879e4a3ae2faf31"
},
{
"label": "world_class_evidence_plan",
@@ -270,8 +284,8 @@
"label": "world_class_claim_guard",
"path": "reports/world_class_claim_guard.json",
"exists": true,
"bytes": 18028,
"sha256": "06921f060b4c800128558bccacd6096f66b8f1b8ca76d316e5b6289609d9c415"
"bytes": 18218,
"sha256": "7359ad2ef09dc0863014aab541a92a1f3e55f18f0c0446816c1c7333cba256e9"
}
],
"missing_artifacts": [],
+20 -19
View File
@@ -1,19 +1,19 @@
# Benchmark Reproducibility
Generated at: `2026-06-16`
Commit: `c5165be99c8b5c2c9c07bd6017716e874567920c`
Working tree dirty at generation: `false`
Evidence bundle SHA256: `04bfae8616aaeae0f2d12d92db024b7609b242428a81a40f6ac271ef42aa3f31`
Commit: `5cb10444c49c40d58b76784e6c4bf993c863e827`
Working tree dirty at generation: `true`
Evidence bundle SHA256: `4e46ec51849a179cd6db9ea908a7d49df080b3f10463d4a98e54aaa5968e37cd`
## Summary
- reproducibility ready: `true`
- release lock ready: `true`
- release lock ready: `false`
- methodology complete: `true`
- required artifacts: `25`
- missing artifacts: `0`
- source contract sha256: `bcfcc1a7fc34`
- archive sha256: `feb9e0ecf839`
- source contract sha256: `b6abceeea0f2`
- archive sha256: `a521b75a29e5`
- output cases: `5`
- disclosed failure cases: `3`
- reproduction commands: `23`
@@ -22,8 +22,8 @@ Evidence bundle SHA256: `04bfae8616aaeae0f2d12d92db024b7609b242428a81a40f6ac271e
- world-class ready: `false`
- 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: `60`
This report proves local benchmark reproducibility only. It keeps external provider and human-review gaps visible instead of counting them as complete. The git commit is generation-time context; the evidence bundle SHA is the durable anchor for the artifacts listed below.
@@ -35,6 +35,7 @@ This report proves local benchmark reproducibility only. It keeps external provi
| Blocker |
| --- |
| release lock is not clean or commit is unavailable |
| provider-backed model holdout evidence is incomplete |
| human blind-review adjudication is incomplete |
| world-class evidence is not accepted yet (4 open gaps, 4 ledger pending) |
@@ -42,15 +43,15 @@ This report proves local benchmark reproducibility only. It keeps external provi
## Release Lock
- ready: `true`
- reason: clean generation-time HEAD
- ready: `false`
- reason: working tree was dirty at generation time
- status scope: generation-time status before this report is written
## Evidence Bundle
- algorithm: `sha256(path,label,exists,artifact_sha256)`
- artifacts: `25` / `25`
- sha256: `04bfae8616aaeae0f2d12d92db024b7609b242428a81a40f6ac271ef42aa3f31`
- sha256: `4e46ec51849a179cd6db9ea908a7d49df080b3f10463d4a98e54aaa5968e37cd`
## Methodology Sections
@@ -72,17 +73,17 @@ This report proves local benchmark reproducibility only. It keeps external provi
| output_cases | `evals/output/cases.jsonl` | present | `a6ae96857116` |
| output_schema | `evals/output/schema.json` | present | `8ee340c95064` |
| output_scorecard | `reports/output_quality_scorecard.json` | present | `0806258a8e08` |
| output_execution | `reports/output_execution_runs.json` | present | `309b2847cf0d` |
| output_execution | `reports/output_execution_runs.json` | present | `6fa9f0b5a294` |
| 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 | `97f9ba949c23` |
| trust_report | `reports/security_trust_report.json` | present | `d9f521542fc5` |
| python_compatibility | `reports/python_compatibility.json` | present | `64047e170887` |
| registry_audit | `reports/registry_audit.json` | present | `3c4b554a4646` |
| package_verification | `reports/package_verification.json` | present | `eb9916629437` |
| install_simulation | `reports/install_simulation.json` | present | `e865fd484bd4` |
| skill_os2_audit | `reports/skill_os2_audit.json` | present | `eb21ab4344a6` |
| trust_report | `reports/security_trust_report.json` | present | `ba3b69b8eb33` |
| python_compatibility | `reports/python_compatibility.json` | present | `aa89183f58b2` |
| registry_audit | `reports/registry_audit.json` | present | `ba8c24683f0e` |
| package_verification | `reports/package_verification.json` | present | `667250d991ae` |
| install_simulation | `reports/install_simulation.json` | present | `df390c157451` |
| skill_os2_audit | `reports/skill_os2_audit.json` | present | `e12318b1e083` |
| world_class_evidence_plan | `reports/world_class_evidence_plan.json` | present | `76a3f8e2b12b` |
| world_class_evidence_ledger | `reports/world_class_evidence_ledger.json` | present | `1cb74eaa978b` |
| world_class_evidence_intake | `reports/world_class_evidence_intake.json` | present | `99a0ba234d59` |
@@ -91,7 +92,7 @@ This report proves local benchmark reproducibility only. It keeps external provi
| world_class_operator_runbook | `reports/world_class_operator_runbook.json` | present | `f5ca32d5ea8b` |
| world_class_operator_runbook_markdown | `reports/world_class_operator_runbook.md` | present | `260d5e03c52e` |
| world_class_operator_runbook_html | `reports/world_class_operator_runbook.html` | present | `04cc091b113f` |
| world_class_claim_guard | `reports/world_class_claim_guard.json` | present | `06921f060b4c` |
| world_class_claim_guard | `reports/world_class_claim_guard.json` | present | `7359ad2ef09d` |
## Reproduction Commands
+50 -40
View File
@@ -421,7 +421,7 @@
},
"file_write": {
"required": true,
"script_count": 70,
"script_count": 71,
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
@@ -451,6 +451,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
@@ -532,14 +533,14 @@
},
"help_smoke": {
"enabled": true,
"checked_count": 83,
"checked_count": 84,
"failed_count": 0,
"failed_scripts": []
},
"trust_summary": {
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 70,
"file_write_script_count": 71,
"subprocess_script_count": 10,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
@@ -561,7 +562,7 @@
],
"capability_counts": {
"network": 3,
"file_write": 70,
"file_write": 71,
"subprocess": 10,
"interactive": 0
},
@@ -674,7 +675,7 @@
},
"file_write": {
"required": true,
"script_count": 70,
"script_count": 71,
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
@@ -704,6 +705,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
@@ -785,14 +787,14 @@
},
"help_smoke": {
"enabled": true,
"checked_count": 83,
"checked_count": 84,
"failed_count": 0,
"failed_scripts": []
},
"trust_summary": {
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 70,
"file_write_script_count": 71,
"subprocess_script_count": 10,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
@@ -812,7 +814,7 @@
],
"capability_counts": {
"network": 3,
"file_write": 70,
"file_write": 71,
"subprocess": 10,
"interactive": 0
},
@@ -1322,7 +1324,7 @@
},
"file_write": {
"required": true,
"script_count": 70,
"script_count": 71,
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
@@ -1352,6 +1354,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
@@ -1433,14 +1436,14 @@
},
"help_smoke": {
"enabled": true,
"checked_count": 83,
"checked_count": 84,
"failed_count": 0,
"failed_scripts": []
},
"trust_summary": {
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 70,
"file_write_script_count": 71,
"subprocess_script_count": 10,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
@@ -1462,7 +1465,7 @@
],
"capability_counts": {
"network": 3,
"file_write": 70,
"file_write": 71,
"subprocess": 10,
"interactive": 0
},
@@ -1575,7 +1578,7 @@
},
"file_write": {
"required": true,
"script_count": 70,
"script_count": 71,
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
@@ -1605,6 +1608,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
@@ -1686,14 +1690,14 @@
},
"help_smoke": {
"enabled": true,
"checked_count": 83,
"checked_count": 84,
"failed_count": 0,
"failed_scripts": []
},
"trust_summary": {
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 70,
"file_write_script_count": 71,
"subprocess_script_count": 10,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
@@ -1713,7 +1717,7 @@
],
"capability_counts": {
"network": 3,
"file_write": 70,
"file_write": 71,
"subprocess": 10,
"interactive": 0
},
@@ -2223,7 +2227,7 @@
},
"file_write": {
"required": true,
"script_count": 70,
"script_count": 71,
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
@@ -2253,6 +2257,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
@@ -2334,14 +2339,14 @@
},
"help_smoke": {
"enabled": true,
"checked_count": 83,
"checked_count": 84,
"failed_count": 0,
"failed_scripts": []
},
"trust_summary": {
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 70,
"file_write_script_count": 71,
"subprocess_script_count": 10,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
@@ -2363,7 +2368,7 @@
],
"capability_counts": {
"network": 3,
"file_write": 70,
"file_write": 71,
"subprocess": 10,
"interactive": 0
},
@@ -2469,7 +2474,7 @@
},
"file_write": {
"required": true,
"script_count": 70,
"script_count": 71,
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
@@ -2499,6 +2504,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
@@ -2580,14 +2586,14 @@
},
"help_smoke": {
"enabled": true,
"checked_count": 83,
"checked_count": 84,
"failed_count": 0,
"failed_scripts": []
},
"trust_summary": {
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 70,
"file_write_script_count": 71,
"subprocess_script_count": 10,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
@@ -2607,7 +2613,7 @@
],
"capability_counts": {
"network": 3,
"file_write": 70,
"file_write": 71,
"subprocess": 10,
"interactive": 0
},
@@ -3108,7 +3114,7 @@
},
"file_write": {
"required": true,
"script_count": 70,
"script_count": 71,
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
@@ -3138,6 +3144,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
@@ -3219,14 +3226,14 @@
},
"help_smoke": {
"enabled": true,
"checked_count": 83,
"checked_count": 84,
"failed_count": 0,
"failed_scripts": []
},
"trust_summary": {
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 70,
"file_write_script_count": 71,
"subprocess_script_count": 10,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
@@ -3248,7 +3255,7 @@
],
"capability_counts": {
"network": 3,
"file_write": 70,
"file_write": 71,
"subprocess": 10,
"interactive": 0
},
@@ -3354,7 +3361,7 @@
},
"file_write": {
"required": true,
"script_count": 70,
"script_count": 71,
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
@@ -3384,6 +3391,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
@@ -3465,14 +3473,14 @@
},
"help_smoke": {
"enabled": true,
"checked_count": 83,
"checked_count": 84,
"failed_count": 0,
"failed_scripts": []
},
"trust_summary": {
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 70,
"file_write_script_count": 71,
"subprocess_script_count": 10,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
@@ -3492,7 +3500,7 @@
],
"capability_counts": {
"network": 3,
"file_write": 70,
"file_write": 71,
"subprocess": 10,
"interactive": 0
},
@@ -3993,7 +4001,7 @@
},
"file_write": {
"required": true,
"script_count": 70,
"script_count": 71,
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
@@ -4023,6 +4031,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
@@ -4104,14 +4113,14 @@
},
"help_smoke": {
"enabled": true,
"checked_count": 83,
"checked_count": 84,
"failed_count": 0,
"failed_scripts": []
},
"trust_summary": {
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 70,
"file_write_script_count": 71,
"subprocess_script_count": 10,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
@@ -4133,7 +4142,7 @@
],
"capability_counts": {
"network": 3,
"file_write": 70,
"file_write": 71,
"subprocess": 10,
"interactive": 0
},
@@ -4243,7 +4252,7 @@
},
"file_write": {
"required": true,
"script_count": 70,
"script_count": 71,
"scripts": [
"scripts/adjudicate_output_review.py",
"scripts/apply_adaptation.py",
@@ -4273,6 +4282,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
@@ -4354,14 +4364,14 @@
},
"help_smoke": {
"enabled": true,
"checked_count": 83,
"checked_count": 84,
"failed_count": 0,
"failed_scripts": []
},
"trust_summary": {
"secret_findings": 0,
"network_script_count": 3,
"file_write_script_count": 70,
"file_write_script_count": 71,
"subprocess_script_count": 10,
"interactive_script_count": 0,
"help_smoke_failed_count": 0
@@ -4381,7 +4391,7 @@
],
"capability_counts": {
"network": 3,
"file_write": 70,
"file_write": 71,
"subprocess": 10,
"interactive": 0
},
+10 -10
View File
@@ -6,16 +6,16 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 767,
"other_text_tokens": 987793,
"other_text_tokens": 1001283,
"estimated_initial_load_tokens": 960,
"estimated_total_text_tokens": 988560,
"deferred_resource_tokens": 454804,
"estimated_total_text_tokens": 1002050,
"deferred_resource_tokens": 461032,
"deferred_resource_warn_threshold": 120000,
"deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 405593,
"file_count": 114
"estimated_tokens": 411821,
"file_count": 115
},
{
"path": "references",
@@ -31,8 +31,8 @@
"large_deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 405593,
"file_count": 114
"estimated_tokens": 411821,
"file_count": 115
}
],
"deferred_resource_governance": {
@@ -54,14 +54,14 @@
],
"missing": [],
"path": "scripts",
"estimated_tokens": 405593,
"file_count": 114,
"estimated_tokens": 411821,
"file_count": 115,
"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": 563,
"relevant_file_count": 570,
"unused_resource_dirs": [],
"quality_signal_points": 130,
"quality_density": 135.4
+1 -1
View File
@@ -2,7 +2,7 @@
| Target | Path | Tier | Limit | Initial | SKILL | Deferred | Resource Governance | Large Deferred Dirs | Quality Density | Unused Dirs | Status |
| --- | --- | --- | ---: | ---: | ---: | ---: | --- | --- | ---: | --- | --- |
| root | `.` | `production` | 1000 | 960 | 767 | 454804 | `governed` | scripts:405593 | 135.4 | - | ok |
| root | `.` | `production` | 1000 | 960 | 767 | 461032 | `governed` | scripts:411821 | 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 |
+6 -6
View File
@@ -1,5 +1,5 @@
{
"generated_at": "2026-06-16",
"generated_at": "2026-03-31",
"targets": [
{
"label": "root",
@@ -8,12 +8,12 @@
"budget_limit": 1000,
"initial_tokens": 960,
"skill_body_tokens": 767,
"deferred_resource_tokens": 454804,
"deferred_resource_tokens": 461032,
"large_deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 405593,
"file_count": 114
"estimated_tokens": 411821,
"file_count": 115
}
],
"deferred_resource_governance": {
@@ -35,8 +35,8 @@
],
"missing": [],
"path": "scripts",
"estimated_tokens": 405593,
"file_count": 114,
"estimated_tokens": 411821,
"file_count": 115,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
],
+43 -38
View File
@@ -74,6 +74,7 @@
"python3 scripts/render_world_class_submission_review.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_world_class_operator_runbook.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_world_class_claim_guard.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_daily_skillops_report.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_skill_os2_audit.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_skill_os2_coverage.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_context_reports.py --generated-at \"$GENERATED_AT\"": true,
@@ -88,6 +89,7 @@
"clean_lock_commands": {
"python3 scripts/render_context_reports.py --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_benchmark_reproducibility.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_daily_skillops_report.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_skill_overview.py .": true,
"python3 scripts/render_skill_interpretation.py .": true,
"python3 scripts/render_review_viewer.py .": true,
@@ -122,6 +124,7 @@
"python3 scripts/render_world_class_submission_review.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_world_class_operator_runbook.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_world_class_claim_guard.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_daily_skillops_report.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_skill_os2_audit.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_skill_os2_coverage.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_context_reports.py --generated-at \"$GENERATED_AT\"": true,
@@ -136,6 +139,7 @@
"clean_lock_commands": {
"python3 scripts/render_context_reports.py --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_benchmark_reproducibility.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_daily_skillops_report.py . --generated-at \"$GENERATED_AT\"": true,
"python3 scripts/render_skill_overview.py .": true,
"python3 scripts/render_skill_interpretation.py .": true,
"python3 scripts/render_review_viewer.py .": true,
@@ -168,6 +172,7 @@
"reports/skill-interpretation.json",
"reports/review-viewer.json",
"reports/world_class_evidence_preflight.json",
"reports/skillops/daily",
"reports/review-studio.json",
"reports/evidence_consistency.json"
],
@@ -179,12 +184,12 @@
"status": "pass",
"expected": {
"status": "pass",
"detail": "initial load 960/1000; deferred 454804/120000; top deferred scripts 405593; resource governance governed; quality density 135.4",
"detail": "initial load 960/1000; deferred 461032/120000; top deferred scripts 411821; resource governance governed; quality density 135.4",
"evidence": "reports/context_budget.json"
},
"actual": {
"status": "pass",
"detail": "initial load 960/1000; deferred 454804/120000; top deferred scripts 405593; resource governance governed; quality density 135.4",
"detail": "initial load 960/1000; deferred 461032/120000; top deferred scripts 411821; resource governance governed; quality density 135.4",
"evidence": "reports/context_budget.json"
},
"paths": [
@@ -197,8 +202,8 @@
"key": "benchmark-release-lock-self-consistency",
"label": "Benchmark release lock matches git dirty state",
"status": "pass",
"expected": true,
"actual": true,
"expected": false,
"actual": false,
"paths": [
"reports/benchmark_reproducibility.json"
],
@@ -238,8 +243,8 @@
"key": "overview-benchmark-commit",
"label": "overview embeds the benchmark commit",
"status": "pass",
"expected": "c5165be99c8b5c2c9c07bd6017716e874567920c",
"actual": "c5165be99c8b5c2c9c07bd6017716e874567920c",
"expected": "5cb10444c49c40d58b76784e6c4bf993c863e827",
"actual": "5cb10444c49c40d58b76784e6c4bf993c863e827",
"paths": [
"reports/benchmark_reproducibility.json",
"reports/skill-overview.json"
@@ -251,30 +256,30 @@
"label": "overview embeds benchmark summary fields",
"status": "pass",
"expected": {
"release_lock_ready": true,
"release_lock_ready": false,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"source_contract_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"source_contract_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"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": 4
"public_claim_blocker_count": 5
},
"actual": {
"release_lock_ready": true,
"release_lock_ready": false,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"source_contract_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"source_contract_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"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": 4
"public_claim_blocker_count": 5
},
"paths": [
"reports/benchmark_reproducibility.json",
@@ -384,8 +389,8 @@
"key": "interpretation-benchmark-commit",
"label": "interpretation embeds the benchmark commit",
"status": "pass",
"expected": "c5165be99c8b5c2c9c07bd6017716e874567920c",
"actual": "c5165be99c8b5c2c9c07bd6017716e874567920c",
"expected": "5cb10444c49c40d58b76784e6c4bf993c863e827",
"actual": "5cb10444c49c40d58b76784e6c4bf993c863e827",
"paths": [
"reports/benchmark_reproducibility.json",
"reports/skill-interpretation.json"
@@ -397,30 +402,30 @@
"label": "interpretation embeds benchmark summary fields",
"status": "pass",
"expected": {
"release_lock_ready": true,
"release_lock_ready": false,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"source_contract_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"source_contract_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"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": 4
"public_claim_blocker_count": 5
},
"actual": {
"release_lock_ready": true,
"release_lock_ready": false,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"source_contract_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"source_contract_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"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": 4
"public_claim_blocker_count": 5
},
"paths": [
"reports/benchmark_reproducibility.json",
@@ -1502,7 +1507,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 114
"file_count": 115
},
{
"path": "evals",
@@ -1514,10 +1519,10 @@
"path": "reports",
"label": "Generated evidence and overview artifacts",
"kind": "folder",
"file_count": 225
"file_count": 229
}
],
"file_count": 406,
"file_count": 411,
"folder_count": 4,
"distribution": [
{
@@ -1542,7 +1547,7 @@
},
{
"label": "scripts",
"value": 114
"value": 115
},
{
"label": "evals",
@@ -1550,7 +1555,7 @@
},
{
"label": "reports",
"value": 225
"value": 229
}
]
},
@@ -1590,7 +1595,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 114
"file_count": 115
},
{
"path": "evals",
@@ -1602,10 +1607,10 @@
"path": "reports",
"label": "Generated evidence and overview artifacts",
"kind": "folder",
"file_count": 225
"file_count": 229
}
],
"file_count": 406,
"file_count": 411,
"folder_count": 4,
"distribution": [
{
@@ -1630,7 +1635,7 @@
},
{
"label": "scripts",
"value": 114
"value": 115
},
{
"label": "evals",
@@ -1638,7 +1643,7 @@
},
{
"label": "reports",
"value": 225
"value": 229
}
]
},
@@ -2275,15 +2280,15 @@
"`16` gates",
"`3` warnings",
"`31` declared internal modules",
"`83 / 83` CLI help smoke checks passing across `114` scripts",
"`626` zip entries",
"archive with `626` entries",
"`84 / 84` CLI help smoke checks passing across `115` scripts",
"`630` zip entries",
"archive with `630` entries",
"`12` installer permission checks enforced",
"`0` permission failures",
"`25` required artifacts",
"`23` reproduction commands",
"initial load `960/1000`",
"target count is `77`"
"target count is `78`"
],
"actual": "all present",
"paths": [
+1 -1
View File
@@ -17,7 +17,7 @@ This gate compares generated evidence reports against each other. It does not cr
| Check | Status | Detail | Paths |
| --- | --- | --- | --- |
| Required report artifacts are readable | `pass` | The consistency gate can only be trusted when every source JSON report parses and every source Markdown report is readable. | `reports/benchmark_reproducibility.json`, `reports/skill-overview.json`, `reports/skill-interpretation.json`, `reports/adoption_drift_report.json`, `reports/world_class_evidence_ledger.json`, `reports/world_class_evidence_plan.json`, `reports/world_class_evidence_intake.json`, `reports/world_class_evidence_preflight.json`, `reports/world_class_submission_review.json`, `reports/world_class_operator_runbook.json`, `reports/skill_os2_coverage.json`, `reports/review-studio.json`, `reports/package_verification.json`, `reports/install_simulation.json`, `reports/security_trust_report.json`, `reports/context_budget.json`, `reports/world_class_claim_guard.json`, `reports/skill-os-2-review.md` |
| Release evidence flow covers first-class reports | `pass` | Release refresh and clean-lock instructions must regenerate every first-class report before evidence consistency can be trusted. | `AGENTS.md`, `reports/output_execution_runs.json`, `reports/install_simulation.json`, `reports/security_trust_report.json`, `reports/registry_audit.json`, `reports/package_verification.json`, `reports/upgrade_check.json`, `reports/adoption_drift_report.json`, `reports/architecture_maintainability.json`, `reports/python_compatibility.json`, `reports/runtime_permission_probes.json`, `reports/review_waivers.json`, `reports/review_annotations.json`, `reports/skill_atlas.json`, `reports/skill_os2_audit.json`, `reports/skill_os2_coverage.json`, `reports/context_budget.json`, `reports/context_budget_summary.json`, `reports/benchmark_reproducibility.json`, `reports/skill-overview.json`, `reports/skill-interpretation.json`, `reports/review-viewer.json`, `reports/world_class_evidence_preflight.json`, `reports/review-studio.json`, `reports/evidence_consistency.json` |
| Release evidence flow covers first-class reports | `pass` | Release refresh and clean-lock instructions must regenerate every first-class report before evidence consistency can be trusted. | `AGENTS.md`, `reports/output_execution_runs.json`, `reports/install_simulation.json`, `reports/security_trust_report.json`, `reports/registry_audit.json`, `reports/package_verification.json`, `reports/upgrade_check.json`, `reports/adoption_drift_report.json`, `reports/architecture_maintainability.json`, `reports/python_compatibility.json`, `reports/runtime_permission_probes.json`, `reports/review_waivers.json`, `reports/review_annotations.json`, `reports/skill_atlas.json`, `reports/skill_os2_audit.json`, `reports/skill_os2_coverage.json`, `reports/context_budget.json`, `reports/context_budget_summary.json`, `reports/benchmark_reproducibility.json`, `reports/skill-overview.json`, `reports/skill-interpretation.json`, `reports/review-viewer.json`, `reports/world_class_evidence_preflight.json`, `reports/skillops/daily`, `reports/review-studio.json`, `reports/evidence_consistency.json` |
| Review Studio mirrors context budget governance | `pass` | Review Studio must not keep stale context warnings after context reports prove large deferred resources are governed. | `reports/context_budget.json`, `reports/review-studio.json` |
| Benchmark release lock matches git dirty state | `pass` | The benchmark release lock must reflect the generation-time git dirty flag. | `reports/benchmark_reproducibility.json` |
| Human-facing reports expose the canonical Skill IR artifact | `pass` | Skill IR is the 2.0 platform-neutral semantic source, so user-facing reports must link to the artifact that actually exists. | `reports/skill-overview.json`, `reports/skill-interpretation.json`, `reports/review-studio.json`, `skill-ir/examples/yao-meta-skill.json` |
+1 -1
View File
@@ -8,7 +8,7 @@
"installed_skill_dir": "dist/install-simulation/simulate-yao-meta-skill/yao-meta-skill",
"summary": {
"archive_present": true,
"archive_entry_count": 626,
"archive_entry_count": 630,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
+10 -10
View File
@@ -34,7 +34,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 26.99,
"duration_ms": 26.59,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -62,7 +62,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 26.18,
"duration_ms": 26.63,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -85,7 +85,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 27.21,
"duration_ms": 26.48,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -113,7 +113,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.96,
"duration_ms": 26.32,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -136,7 +136,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.52,
"duration_ms": 26.47,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -164,7 +164,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 27.04,
"duration_ms": 25.93,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -187,7 +187,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 26.2,
"duration_ms": 27.1,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -214,7 +214,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 26.13,
"duration_ms": 26.64,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -237,7 +237,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 37.37,
"duration_ms": 26.21,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -266,7 +266,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.83,
"duration_ms": 25.96,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
+10 -10
View File
@@ -23,16 +23,16 @@ Command runner evidence is present. This proves the eval harness executed an ext
| Case | Variant | Mode | Model | Duration ms | Tokens | Score | Status |
| --- | --- | --- | --- | ---: | ---: | ---: | --- |
| skill-package-contract | baseline | command | local-output-eval-runner | 26.99 | 33 | 0.0 | pass |
| skill-package-contract | with_skill | command | local-output-eval-runner | 26.18 | 73 | 100.0 | pass |
| output-eval-expectation | baseline | command | local-output-eval-runner | 27.21 | 36 | 0.0 | pass |
| output-eval-expectation | with_skill | command | local-output-eval-runner | 29.96 | 80 | 100.0 | pass |
| ir-before-packaging | baseline | command | local-output-eval-runner | 29.52 | 33 | 0.0 | pass |
| ir-before-packaging | with_skill | command | local-output-eval-runner | 27.04 | 80 | 100.0 | pass |
| near-neighbor-boundary | baseline | command | local-output-eval-runner | 26.2 | 36 | 0.0 | pass |
| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 26.13 | 65 | 100.0 | pass |
| file-backed-governed-package | baseline | command | local-output-eval-runner | 37.37 | 37 | 0.0 | pass |
| file-backed-governed-package | with_skill | command | local-output-eval-runner | 29.83 | 98 | 100.0 | pass |
| skill-package-contract | baseline | command | local-output-eval-runner | 26.59 | 33 | 0.0 | pass |
| skill-package-contract | with_skill | command | local-output-eval-runner | 26.63 | 73 | 100.0 | pass |
| output-eval-expectation | baseline | command | local-output-eval-runner | 26.48 | 36 | 0.0 | pass |
| output-eval-expectation | with_skill | command | local-output-eval-runner | 26.32 | 80 | 100.0 | pass |
| ir-before-packaging | baseline | command | local-output-eval-runner | 26.47 | 33 | 0.0 | pass |
| ir-before-packaging | with_skill | command | local-output-eval-runner | 25.93 | 80 | 100.0 | pass |
| near-neighbor-boundary | baseline | command | local-output-eval-runner | 27.1 | 36 | 0.0 | pass |
| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 26.64 | 65 | 100.0 | pass |
| file-backed-governed-package | baseline | command | local-output-eval-runner | 26.21 | 37 | 0.0 | pass |
| file-backed-governed-package | with_skill | command | local-output-eval-runner | 25.96 | 98 | 100.0 | pass |
## Next Fixes
+2 -2
View File
@@ -8,8 +8,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"archive_entry_count": 626,
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"archive_entry_count": 630,
"failure_count": 0,
"warning_count": 0
},
+1 -1
View File
@@ -4,7 +4,7 @@
- Package directory: `dist`
- Targets: `4 / 4` adapters present
- Archive present: `True`
- Archive SHA256: `feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53`
- Archive SHA256: `a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0`
- Failures: `0`
- Warnings: `0`
+13 -1
View File
@@ -5,7 +5,7 @@
"root": ".",
"summary": {
"target_python": "3.11",
"file_count": 182,
"file_count": 184,
"issue_count": 0,
"syntax_error_count": 0,
"fstring_311_violation_count": 0,
@@ -274,6 +274,12 @@
"issue_count": 0,
"issues": []
},
{
"path": "scripts/render_daily_skillops_report.py",
"ok": true,
"issue_count": 0,
"issues": []
},
{
"path": "scripts/render_description_drift_history.py",
"ok": true,
@@ -778,6 +784,12 @@
"issue_count": 0,
"issues": []
},
{
"path": "tests/verify_daily_skillops.py",
"ok": true,
"issue_count": 0,
"issues": []
},
{
"path": "tests/verify_description_optimization.py",
"ok": true,
+1 -1
View File
@@ -6,7 +6,7 @@ Generated at: `2026-06-16`
- decision: `pass`
- target python: `3.11`
- files scanned: `182`
- files scanned: `184`
- issues: `0`
- syntax errors: `0`
- f-string 3.11 violations: `0`
+4 -4
View File
@@ -21,8 +21,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53"
"package_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0"
},
"compatibility": {
"openai": "pass",
@@ -53,7 +53,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -78,7 +78,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
"package_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf"
"package_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083"
}
]
},
+2 -2
View File
@@ -6,8 +6,8 @@
- Maturity: `governed`
- Owner: `Yao Team`
- License: `MIT`
- Package SHA256: `bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf`
- Archive SHA256: `feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53`
- Package SHA256: `b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083`
- Archive SHA256: `a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0`
- Install simulated: `True`
## Compatibility
+11 -11
View File
@@ -676,12 +676,12 @@
<section>
<h2>核心指标</h2>
<div class="metrics"><article class='metric'><span>Skill IR</span><strong>2.0.0</strong><p>5 targets in platform-neutral contract</p></article><article class='metric'><span>Compiler</span><strong>5/5</strong><p>target contracts compiled from Skill IR</p></article><article class='metric'><span>Output Delta</span><strong>100.0</strong><p>5 cases; 1 file-backed</p></article><article class='metric'><span>Exec Runs</span><strong>10</strong><p>command 10; model 0; recorded 0</p></article><article class='metric'><span>Blind A/B</span><strong>5</strong><p>review pairs hide baseline vs with-skill labels</p></article><article class='metric'><span>Review Kit</span><strong>0/5</strong><p>pending 5; answer key hidden</p></article><article class='metric'><span>Review A/B</span><strong>0/5</strong><p>adjudication decisions; pending 5</p></article><article class='metric'><span>Public Claim</span><strong>blocked</strong><p>4 blockers; local reproducible true</p></article><article class='metric'><span>Blueprint</span><strong>21/21</strong><p>2.0 coverage; extensions partial 0, planned 0; evidence pending 4</p></article><article class='metric'><span>Runtime</span><strong>5/5</strong><p>target conformance pass rate</p></article><article class='metric'><span>Perm Probe</span><strong>4/4</strong><p>0 native; 4 installer-enforced</p></article><article class='metric'><span>Trust</span><strong>0</strong><p>114 scripts scanned; secrets found</p></article><article class='metric'><span>Py Compat</span><strong>0</strong><p>182 files scanned for Python 3.11</p></article><article class='metric'><span>Arch Debt</span><strong>0</strong><p>899 largest lines; 11 watchlist; 65 CLI handlers; 18 in entrypoint</p></article><article class='metric'><span>Atlas</span><strong>5</strong><p>12 scanned skills; route collisions</p></article><article class='metric'><span>Drift</span><strong>low</strong><p>1 metadata events; 0 missed triggers</p></article><article class='metric'><span>Waivers</span><strong>0</strong><p>0 gates covered; human risk decisions</p></article><article class='metric'><span>Intake</span><strong>4/4</strong><p>0 valid submissions; 0 invalid</p></article><article class='metric'><span>Claim Guard</span><strong>0</strong><p>176 public surfaces scanned</p></article><article class='metric'><span>Notes</span><strong>0/0</strong><p>0 open blocker annotations</p></article><article class='metric'><span>Registry</span><strong>1.1.0</strong><p>5 targets; MIT license</p></article><article class='metric'><span>Archive</span><strong>pass</strong><p>626 zip entries; package verification</p></article><article class='metric'><span>Install</span><strong>pass</strong><p>4 adapters; 12 permissions enforced; 0 permission failures</p></article><article class='metric'><span>Upgrade</span><strong>minor</strong><p>declared minor; 0 breaking changes</p></article></div>
<div class="metrics"><article class='metric'><span>Skill IR</span><strong>2.0.0</strong><p>5 targets in platform-neutral contract</p></article><article class='metric'><span>Compiler</span><strong>5/5</strong><p>target contracts compiled from Skill IR</p></article><article class='metric'><span>Output Delta</span><strong>100.0</strong><p>5 cases; 1 file-backed</p></article><article class='metric'><span>Exec Runs</span><strong>10</strong><p>command 10; model 0; recorded 0</p></article><article class='metric'><span>Blind A/B</span><strong>5</strong><p>review pairs hide baseline vs with-skill labels</p></article><article class='metric'><span>Review Kit</span><strong>0/5</strong><p>pending 5; answer key hidden</p></article><article class='metric'><span>Review A/B</span><strong>0/5</strong><p>adjudication decisions; pending 5</p></article><article class='metric'><span>Public Claim</span><strong>blocked</strong><p>5 blockers; local reproducible true</p></article><article class='metric'><span>Blueprint</span><strong>21/21</strong><p>2.0 coverage; extensions partial 0, planned 0; evidence pending 4</p></article><article class='metric'><span>Runtime</span><strong>5/5</strong><p>target conformance pass rate</p></article><article class='metric'><span>Perm Probe</span><strong>4/4</strong><p>0 native; 4 installer-enforced</p></article><article class='metric'><span>Trust</span><strong>0</strong><p>115 scripts scanned; secrets found</p></article><article class='metric'><span>Py Compat</span><strong>0</strong><p>184 files scanned for Python 3.11</p></article><article class='metric'><span>Arch Debt</span><strong>0</strong><p>899 largest lines; 11 watchlist; 66 CLI handlers; 18 in entrypoint</p></article><article class='metric'><span>Atlas</span><strong>5</strong><p>12 scanned skills; route collisions</p></article><article class='metric'><span>Drift</span><strong>low</strong><p>1 metadata events; 0 missed triggers</p></article><article class='metric'><span>Waivers</span><strong>0</strong><p>0 gates covered; human risk decisions</p></article><article class='metric'><span>Intake</span><strong>4/4</strong><p>0 valid submissions; 0 invalid</p></article><article class='metric'><span>Claim Guard</span><strong>0</strong><p>178 public surfaces scanned</p></article><article class='metric'><span>Notes</span><strong>0/0</strong><p>0 open blocker annotations</p></article><article class='metric'><span>Registry</span><strong>1.1.0</strong><p>5 targets; MIT license</p></article><article class='metric'><span>Archive</span><strong>pass</strong><p>630 zip entries; package verification</p></article><article class='metric'><span>Install</span><strong>pass</strong><p>4 adapters; 12 permissions enforced; 0 permission failures</p></article><article class='metric'><span>Upgrade</span><strong>minor</strong><p>declared minor; 0 breaking changes</p></article></div>
</section>
<section>
<h2>审查闸门</h2>
<div class="gates"><article class='gate pass'><div><span>通过</span><h3>意图画布</h3></div><p>intent confidence 100/100; Intent is clear enough to package the first routeable version.</p><footer>reports/intent-confidence.json <a href='intent-confidence.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>触发实验</h3></div><p>13 trigger cases; 0 misroutes; 0 ambiguous</p><footer>reports/route_scorecard.json <a href='route_scorecard.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>输出实验</h3></div><p>5/5 cases; with-skill 100.0; baseline 0.0; file-backed 1; near-neighbor 1; blind A/B 5; exec 10; command 10; model 0; recorded 0; reviewed 0/5; review pending 5</p><footer>reports/output_quality_scorecard.json <a href='output_quality_scorecard.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>上下文</h3></div><p>initial load 960/1000; deferred 454804/120000; top deferred scripts 405593; resource governance governed; quality density 135.4</p><footer>reports/context_budget.json <a href='context_budget.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>运行矩阵</h3></div><p>5 / 5 targets pass</p><footer>reports/conformance_matrix.json <a href='conformance_matrix.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>信任报告</h3></div><p>0 secrets; 114 scripts; 3 network-capable scripts; 0 help smoke failures</p><footer>reports/security_trust_report.json <a href='security_trust_report.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>Python 兼容</h3></div><p>Python 3.11; 182 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards</p><footer>reports/python_compatibility.json <a href='python_compatibility.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>架构维护</h3></div><p>179 Python files; 0 hotspots; 11 watchlist files; 0 blockers; largest 899 lines; 65 CLI handlers; 18 in entrypoint</p><footer>reports/architecture_maintainability.json <a href='architecture_maintainability.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>权限批准</h3></div><p>3/3 permissions approved; gaps 0; required file_write, network, subprocess</p><footer>reports/security_trust_report.json + security/permission_policy.json <a href='../security/permission_policy.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>权限探针</h3></div><p>4/4 targets probed; native 0; metadata fallback 4; installer 4; residual risks 4</p><footer>reports/runtime_permission_probes.json <a href='runtime_permission_probes.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>组合治理</h3></div><p>12 skills, 1 actionable; 0 actionable route collisions; 0 actionable owner gaps; 0 actionable stale; 0 actionable drift; 24 scoped non-actionable issues</p><footer>reports/skill_atlas.json <a href='skill_atlas.html'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>运营回路</h3></div><p>1 metadata events; adoption 0; missed 0; bad-output 0; risk low</p><footer>reports/adoption_drift_report.json <a href='adoption_drift_report.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>人工批准</h3></div><p>0 active waivers; 1 warning gates still need reviewer decision</p><footer>reports/review_waivers.json <a href='review_waivers.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>世界证据</h3></div><p>4 pending world-class evidence entries; 1 human pending; 3 external pending; source checks 6/13 pass; 7 blocked; overclaim guard true</p><footer>reports/world_class_evidence_ledger.json <a href='world_class_evidence_ledger.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>注册审计</h3></div><p>yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures</p><footer>reports/registry_audit.json + reports/install_simulation.json <a href='registry_audit.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>发布路线</h3></div><p>0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended</p><footer>reports/promotion_decisions.json + reports/upgrade_check.json + docs/migration-v2.md <a href='promotion_decisions.md'>证据</a></footer></article></div>
<div class="gates"><article class='gate pass'><div><span>通过</span><h3>意图画布</h3></div><p>intent confidence 100/100; Intent is clear enough to package the first routeable version.</p><footer>reports/intent-confidence.json <a href='intent-confidence.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>触发实验</h3></div><p>13 trigger cases; 0 misroutes; 0 ambiguous</p><footer>reports/route_scorecard.json <a href='route_scorecard.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>输出实验</h3></div><p>5/5 cases; with-skill 100.0; baseline 0.0; file-backed 1; near-neighbor 1; blind A/B 5; exec 10; command 10; model 0; recorded 0; reviewed 0/5; review pending 5</p><footer>reports/output_quality_scorecard.json <a href='output_quality_scorecard.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>上下文</h3></div><p>initial load 960/1000; deferred 461032/120000; top deferred scripts 411821; resource governance governed; quality density 135.4</p><footer>reports/context_budget.json <a href='context_budget.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>运行矩阵</h3></div><p>5 / 5 targets pass</p><footer>reports/conformance_matrix.json <a href='conformance_matrix.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>信任报告</h3></div><p>0 secrets; 115 scripts; 3 network-capable scripts; 0 help smoke failures</p><footer>reports/security_trust_report.json <a href='security_trust_report.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>Python 兼容</h3></div><p>Python 3.11; 184 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards</p><footer>reports/python_compatibility.json <a href='python_compatibility.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>架构维护</h3></div><p>181 Python files; 0 hotspots; 11 watchlist files; 0 blockers; largest 899 lines; 66 CLI handlers; 18 in entrypoint</p><footer>reports/architecture_maintainability.json <a href='architecture_maintainability.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>权限批准</h3></div><p>3/3 permissions approved; gaps 0; required file_write, network, subprocess</p><footer>reports/security_trust_report.json + security/permission_policy.json <a href='../security/permission_policy.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>权限探针</h3></div><p>4/4 targets probed; native 0; metadata fallback 4; installer 4; residual risks 4</p><footer>reports/runtime_permission_probes.json <a href='runtime_permission_probes.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>组合治理</h3></div><p>12 skills, 1 actionable; 0 actionable route collisions; 0 actionable owner gaps; 0 actionable stale; 0 actionable drift; 24 scoped non-actionable issues</p><footer>reports/skill_atlas.json <a href='skill_atlas.html'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>运营回路</h3></div><p>1 metadata events; adoption 0; missed 0; bad-output 0; risk low</p><footer>reports/adoption_drift_report.json <a href='adoption_drift_report.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>人工批准</h3></div><p>0 active waivers; 1 warning gates still need reviewer decision</p><footer>reports/review_waivers.json <a href='review_waivers.md'>证据</a></footer></article><article class='gate warn'><div><span>关注</span><h3>世界证据</h3></div><p>4 pending world-class evidence entries; 1 human pending; 3 external pending; source checks 6/13 pass; 7 blocked; overclaim guard true</p><footer>reports/world_class_evidence_ledger.json <a href='world_class_evidence_ledger.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>注册审计</h3></div><p>yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures</p><footer>reports/registry_audit.json + reports/install_simulation.json <a href='registry_audit.md'>证据</a></footer></article><article class='gate pass'><div><span>通过</span><h3>发布路线</h3></div><p>0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended</p><footer>reports/promotion_decisions.json + reports/upgrade_check.json + docs/migration-v2.md <a href='promotion_decisions.md'>证据</a></footer></article></div>
</section>
<div class="twocol">
@@ -743,17 +743,17 @@
</section>
<section class="twocol">
<div class="panel"><h2>上下文</h2><p>initial load 960/1000; deferred 454804/120000; top deferred scripts 405593; resource governance governed; quality density 135.4</p></div>
<div class="panel"><h2>上下文</h2><p>initial load 960/1000; deferred 461032/120000; top deferred scripts 411821; resource governance governed; quality density 135.4</p></div>
<div class="panel"><h2>编译证据</h2><p>Review reports/compiled_targets.md before packaging to inspect target adapter modes, generated files, preserved semantics, warnings, and unsupported features.</p></div>
</section>
<section id="trust" class="twocol">
<div class="panel"><h2>信任报告</h2><dl class='kv-grid'><div><dt>Secret</dt><dd>0</dd></div><div><dt>脚本数</dt><dd>114</dd></div><div><dt>网络脚本</dt><dd>3</dd></div><div><dt>Help 失败</dt><dd>0</dd></div><div><dt>包体哈希</dt><dd><code>bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf</code></dd></div></dl></div>
<div class="panel"><h2>信任报告</h2><dl class='kv-grid'><div><dt>Secret</dt><dd>0</dd></div><div><dt>脚本数</dt><dd>115</dd></div><div><dt>网络脚本</dt><dd>3</dd></div><div><dt>Help 失败</dt><dd>0</dd></div><div><dt>包体哈希</dt><dd><code>b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083</code></dd></div></dl></div>
<div class="panel"><h2>安全边界</h2><p>高风险 secret、远程 inline execution、缺失依赖策略或无法解释的脚本接口应阻断 governed release。</p></div>
</section>
<section class="twocol">
<div class="panel"><h2>Python 兼容</h2><dl class='kv-grid'><div><dt>目标 Python</dt><dd>3.11</dd></div><div><dt>文件数</dt><dd>182</dd></div><div><dt>问题数</dt><dd>0</dd></div><div><dt>语法错误</dt><dd>0</dd></div><div><dt>F-string 3.11</dt><dd>0</dd></div></dl></div>
<div class="panel"><h2>Python 兼容</h2><dl class='kv-grid'><div><dt>目标 Python</dt><dd>3.11</dd></div><div><dt>文件数</dt><dd>184</dd></div><div><dt>问题数</dt><dd>0</dd></div><div><dt>语法错误</dt><dd>0</dd></div><div><dt>F-string 3.11</dt><dd>0</dd></div></dl></div>
<div class="panel"><h2>解释器边界</h2><p>CI 和发布审查以 Python 3.11 兼容为底线;本地更高版本允许的新语法不能绕过兼容门禁。</p></div>
</section>
@@ -801,13 +801,13 @@
</section>
<section class="twocol">
<div class="panel"><h2>蓝图覆盖</h2><dl class='kv-grid'><div><dt>项目数</dt><dd>21</dd></div><div><dt>模块数</dt><dd>8</dd></div><div><dt>建议 PR</dt><dd>13</dd></div><div><dt>通过数</dt><dd>21</dd></div><div><dt>Warn Count</dt><dd>0</dd></div><div><dt>缺失数</dt><dd>0</dd></div><div><dt>Extension Track Count</dt><dd>2</dd></div><div><dt>Extension Covered Count</dt><dd>2</dd></div><div><dt>Extension Partial Count</dt><dd>0</dd></div><div><dt>Extension Planned Count</dt><dd>0</dd></div><div><dt>Adaptive Extension Ready</dt><dd></dd></div><div><dt>本地蓝图</dt><dd></dd></div><div><dt>世界级</dt><dd></dd></div><div><dt>待补证据</dt><dd>4</dd></div></dl></div>
<div class="panel"><h2>蓝图覆盖</h2><dl class='kv-grid'><div><dt>项目数</dt><dd>21</dd></div><div><dt>模块数</dt><dd>8</dd></div><div><dt>建议 PR</dt><dd>13</dd></div><div><dt>通过数</dt><dd>21</dd></div><div><dt>Warn Count</dt><dd>0</dd></div><div><dt>缺失数</dt><dd>0</dd></div><div><dt>Extension Track Count</dt><dd>3</dd></div><div><dt>Extension Covered Count</dt><dd>3</dd></div><div><dt>Extension Partial Count</dt><dd>0</dd></div><div><dt>Extension Planned Count</dt><dd>0</dd></div><div><dt>Adaptive Extension Ready</dt><dd></dd></div><div><dt>本地蓝图</dt><dd></dd></div><div><dt>世界级</dt><dd></dd></div><div><dt>待补证据</dt><dd>4</dd></div></dl></div>
<div class="panel"><h2>覆盖边界</h2><p>蓝图覆盖只证明 2.0 模块、建议 PR、脚本、报告和测试在本地闭环;public world-class 仍以 world-class evidence ledger 的真人和外部证据为准。</p></div>
</section>
<section class="twocol">
<div class="panel"><h2>公开声明</h2><dl class='kv-grid'><div><dt>本地复现</dt><dd></dd></div><div><dt>发布锁</dt><dd></dd></div><div><dt>可公开声明</dt><dd></dd></div><div><dt>声明阻断</dt><dd>4</dd></div><div><dt>Provider 证据</dt><dd></dd></div><div><dt>人审完成</dt><dd></dd></div><div><dt>世界级就绪</dt><dd></dd></div></dl></div>
<div class="panel"><h2>声明阻断</h2><ul class='issues'><li><strong>阻断</strong><span>provider-backed model holdout evidence is incomplete</span></li><li><strong>阻断</strong><span>human blind-review adjudication is incomplete</span></li><li><strong>阻断</strong><span>world-class evidence is not accepted yet (4 open gaps, 4 ledger pending)</span></li><li><strong>阻断</strong><span>world-class source checks are not all accepted (6/13 pass, 7 blocked)</span></li></ul></div>
<div class="panel"><h2>公开声明</h2><dl class='kv-grid'><div><dt>本地复现</dt><dd></dd></div><div><dt>发布锁</dt><dd></dd></div><div><dt>可公开声明</dt><dd></dd></div><div><dt>声明阻断</dt><dd>5</dd></div><div><dt>Provider 证据</dt><dd></dd></div><div><dt>人审完成</dt><dd></dd></div><div><dt>世界级就绪</dt><dd></dd></div></dl></div>
<div class="panel"><h2>声明阻断</h2><ul class='issues'><li><strong>阻断</strong><span>release lock is not clean or commit is unavailable</span></li><li><strong>阻断</strong><span>provider-backed model holdout evidence is incomplete</span></li><li><strong>阻断</strong><span>human blind-review adjudication is incomplete</span></li><li><strong>阻断</strong><span>world-class evidence is not accepted yet (4 open gaps, 4 ledger pending)</span></li><li><strong>阻断</strong><span>world-class source checks are not all accepted (6/13 pass, 7 blocked)</span></li></ul></div>
</section>
<section class="twocol">
@@ -821,18 +821,18 @@
</section>
<section class="twocol">
<div class="panel"><h2>声明守卫</h2><dl class='kv-grid'><div><dt>台账可声明</dt><dd></dd></div><div><dt>台账待补</dt><dd>4</dd></div><div><dt>声明面</dt><dd>176</dd></div><div><dt>违规数</dt><dd>0</dd></div><div><dt>Overclaim Guard Active</dt><dd></dd></div></dl></div>
<div class="panel"><h2>声明守卫</h2><dl class='kv-grid'><div><dt>台账可声明</dt><dd></dd></div><div><dt>台账待补</dt><dd>4</dd></div><div><dt>声明面</dt><dd>178</dd></div><div><dt>违规数</dt><dd>0</dd></div><div><dt>Overclaim Guard Active</dt><dd></dd></div></dl></div>
<div class="panel"><h2>声明边界</h2><p>claim guard 扫描 README、docs 和 reports 中的完成态表述;ledger 未 ready 时,任何英文完成断言、true 状态声明或中文完成态都会阻断发布审查。</p></div>
</section>
<section id="registry" class="twocol">
<div class="panel"><h2>注册审计</h2><p>yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures</p></div>
<div class="panel"><h2>包体元数据</h2><dl class='kv-grid'><div><dt>名称</dt><dd>yao-meta-skill</dd></div><div><dt>版本</dt><dd>1.1.0</dd></div><div><dt>Maturity</dt><dd>governed</dd></div><div><dt>Owner</dt><dd>Yao Team</dd></div><div><dt>License</dt><dd>MIT</dd></div><div><dt>信任级别</dt><dd>local</dd></div><div><dt>目标平台</dt><dd>openai, claude, generic, agent-skills-compatible, vscode</dd></div><div><dt>兼容通过</dt><dd>6/6</dd></div><div><dt>归档哈希</dt><dd><code>feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53</code></dd></div></dl></div>
<div class="panel"><h2>包体元数据</h2><dl class='kv-grid'><div><dt>名称</dt><dd>yao-meta-skill</dd></div><div><dt>版本</dt><dd>1.1.0</dd></div><div><dt>Maturity</dt><dd>governed</dd></div><div><dt>Owner</dt><dd>Yao Team</dd></div><div><dt>License</dt><dd>MIT</dd></div><div><dt>信任级别</dt><dd>local</dd></div><div><dt>目标平台</dt><dd>openai, claude, generic, agent-skills-compatible, vscode</dd></div><div><dt>兼容通过</dt><dd>6/6</dd></div><div><dt>归档哈希</dt><dd><code>a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0</code></dd></div></dl></div>
</section>
<section id="release" class="twocol">
<div class="panel"><h2>发布路线</h2><p>0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended</p></div>
<div class="panel"><h2>包体验证</h2><dl class='kv-grid'><div><dt>目标数</dt><dd>4</dd></div><div><dt>Adapter</dt><dd>4</dd></div><div><dt>归档存在</dt><dd></dd></div><div><dt>Zip 条目</dt><dd>626</dd></div><div><dt>失败数</dt><dd>0</dd></div><div><dt>警告数</dt><dd>0</dd></div><div><dt>归档哈希</dt><dd><code>feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53</code></dd></div></dl></div>
<div class="panel"><h2>包体验证</h2><dl class='kv-grid'><div><dt>目标数</dt><dd>4</dd></div><div><dt>Adapter</dt><dd>4</dd></div><div><dt>归档存在</dt><dd></dd></div><div><dt>Zip 条目</dt><dd>630</dd></div><div><dt>失败数</dt><dd>0</dd></div><div><dt>警告数</dt><dd>0</dd></div><div><dt>归档哈希</dt><dd><code>a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0</code></dd></div></dl></div>
</section>
<section class="twocol">
+256 -158
View File
File diff suppressed because it is too large Load Diff
+29 -29
View File
@@ -513,7 +513,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 114
"file_count": 115
},
{
"path": "evals",
@@ -525,10 +525,10 @@
"path": "reports",
"label": "Generated evidence and overview artifacts",
"kind": "folder",
"file_count": 225
"file_count": 229
}
],
"file_count": 406,
"file_count": 411,
"folder_count": 4,
"distribution": [
{
@@ -553,7 +553,7 @@
},
{
"label": "scripts",
"value": 114
"value": 115
},
{
"label": "evals",
@@ -561,7 +561,7 @@
},
{
"label": "reports",
"value": 225
"value": 229
}
]
},
@@ -683,7 +683,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 114
"file_count": 115
},
{
"path": "evals",
@@ -695,7 +695,7 @@
"path": "reports",
"label": "Generated evidence and overview artifacts",
"kind": "folder",
"file_count": 225
"file_count": 229
}
],
"strengths": [
@@ -997,13 +997,13 @@
"ok": true,
"summary": {
"reproducibility_ready": true,
"release_lock_ready": true,
"release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"evidence_bundle_sha256": "04bfae8616aaeae0f2d12d92db024b7609b242428a81a40f6ac271ef42aa3f31",
"source_contract_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"evidence_bundle_sha256": "4e46ec51849a179cd6db9ea908a7d49df080b3f10463d4a98e54aaa5968e37cd",
"source_contract_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1021,11 +1021,11 @@
"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": 60
},
"commit": "c5165be99c8b5c2c9c07bd6017716e874567920c",
"commit": "5cb10444c49c40d58b76784e6c4bf993c863e827",
"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.",
@@ -1109,8 +1109,8 @@
"failures": []
},
"trust_security": {
"scanned_files": 201,
"script_count": 114,
"scanned_files": 202,
"script_count": 115,
"internal_module_count": 31,
"secret_findings": 0,
"dependency_files": [
@@ -1119,18 +1119,18 @@
"network_script_count": 3,
"network_policy_covered_count": 3,
"network_policy_missing_count": 0,
"file_write_script_count": 70,
"file_write_script_count": 71,
"permission_required_count": 3,
"permission_approved_count": 3,
"permission_missing_count": 0,
"permission_invalid_count": 0,
"permission_expired_count": 0,
"help_smoke_checked_count": 83,
"help_smoke_checked_count": 84,
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 201,
"package_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf"
"package_hash_file_count": 202,
"package_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083"
},
"skill_atlas": {
"skill_count": 12,
@@ -1168,8 +1168,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53"
"package_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0"
},
"compatibility": {
"openai": "pass",
@@ -1200,7 +1200,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1216,8 +1216,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"archive_entry_count": 626,
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"archive_entry_count": 630,
"failure_count": 0,
"warning_count": 0
},
@@ -1228,7 +1228,7 @@
"ok": true,
"summary": {
"archive_present": true,
"archive_entry_count": 626,
"archive_entry_count": 630,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1295,12 +1295,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53"
"to": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf"
"to": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083"
}
]
},
+34 -9
View File
@@ -2,8 +2,8 @@
"ok": true,
"skill_dir": ".",
"summary": {
"scanned_files": 201,
"script_count": 114,
"scanned_files": 202,
"script_count": 115,
"internal_module_count": 31,
"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": 70,
"file_write_script_count": 71,
"permission_required_count": 3,
"permission_approved_count": 3,
"permission_missing_count": 0,
"permission_invalid_count": 0,
"permission_expired_count": 0,
"help_smoke_checked_count": 83,
"help_smoke_checked_count": 84,
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 201,
"package_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf"
"package_hash_file_count": 202,
"package_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083"
},
"failures": [],
"warnings": [],
@@ -588,6 +588,20 @@
"network_urls": [],
"network_hosts": []
},
{
"path": "scripts/render_daily_skillops_report.py",
"interface": "cli",
"interface_declared": true,
"interface_reason": "Renders a Daily SkillOps report that summarizes explicit-source patterns, proposals, approval state, and release evidence without scanning private logs or applying patches.",
"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_description_drift_history.py",
"interface": "cli",
@@ -1673,9 +1687,9 @@
"help_smoke": {
"enabled": true,
"timeout_seconds": 5.0,
"candidate_count": 83,
"checked_count": 83,
"passed_count": 83,
"candidate_count": 84,
"checked_count": 84,
"passed_count": 84,
"failed_count": 0,
"skipped_count": 31,
"failed_scripts": [],
@@ -2040,6 +2054,16 @@
"stdout_excerpt": "usage: render_context_reports.py [-h] [--generated-at GENERATED_AT]\n\nRender context budget reports for root and example skills.\n\noptions:\n -h, --help show this help message and exit\n --generated-at GENERATED_AT\n ",
"stderr_excerpt": ""
},
{
"path": "scripts/render_daily_skillops_report.py",
"command": "python3 scripts/render_daily_skillops_report.py --help",
"returncode": 0,
"timed_out": false,
"passed": true,
"has_help_text": true,
"stdout_excerpt": "usage: render_daily_skillops_report.py [-h] [--source SOURCE]\n [--patterns-json PATTERNS_JSON]\n [--proposals-json PROPOSALS_JSON]\n ",
"stderr_excerpt": ""
},
{
"path": "scripts/render_description_drift_history.py",
"command": "python3 scripts/render_description_drift_history.py --help",
@@ -2718,6 +2742,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
+9 -8
View File
@@ -1,22 +1,22 @@
# Security Trust Report
- OK: `True`
- Scanned files: `201`
- Scripts: `114`
- Scanned files: `202`
- Scripts: `115`
- Internal script modules: `31`
- Secret findings: `0`
- Network-capable scripts: `3`
- Network policy covered scripts: `3`
- Network policy missing scripts: `0`
- File-write scripts: `70`
- File-write scripts: `71`
- Permission approvals: `3 / 3`
- Permission approval gaps: `0`
- CLI help smoke checked: `83`
- CLI help smoke checked: `84`
- CLI help smoke failures: `0`
- Interactive scripts: `0`
- Package hash scope: `source-contract-without-generated-reports`
- Package hash files: `201`
- Package SHA256: `bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf`
- Package hash files: `202`
- Package SHA256: `b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083`
## Failures
@@ -54,8 +54,8 @@
- Enabled: `True`
- Timeout seconds: `5.0`
- Checked scripts: `83`
- Passed scripts: `83`
- Checked scripts: `84`
- Passed scripts: `84`
- Failed scripts: `none`
## Script Surface
@@ -101,6 +101,7 @@
| scripts/render_baseline_compare.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. |
| scripts/render_benchmark_reproducibility.py | cli | True | True | True | False | False | True | True | Renders a release-facing benchmark reproducibility manifest and Markdown report. |
| scripts/render_context_reports.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. |
| scripts/render_daily_skillops_report.py | cli | True | True | True | False | False | True | False | Renders a Daily SkillOps report that summarizes explicit-source patterns, proposals, approval state, and release evidence without scanning private logs or applying patches. |
| scripts/render_description_drift_history.py | cli | False | True | True | False | False | True | False | Default CLI classification; add SCRIPT_INTERFACE for internal modules. |
| scripts/render_eval_dashboard.py | cli | False | True | True | False | False | True | True | Default CLI classification; add SCRIPT_INTERFACE for internal modules. |
| scripts/render_evidence_consistency.py | cli | True | True | True | False | False | True | False | Renders a cross-report evidence consistency gate for generated Skill OS reports. |
+1 -1
View File
@@ -930,7 +930,7 @@
<p><span data-lang="zh-CN">让 reviewer 快速确认关键文件、目录和资产分布。</span><span data-lang="en">Lets reviewers confirm key files, directories, and asset distribution quickly.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-0.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-1.3" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-2.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="22.4 77.6" stroke-dashoffset="-2.6" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="75.0 25.0" stroke-dashoffset="-25.0" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">406</text><text data-lang="en" x="130" y="136" text-anchor="middle">406 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-0.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-1.3" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-2.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="22.2 77.8" stroke-dashoffset="-2.6" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="75.2 24.8" stroke-dashoffset="-24.8" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">411</text><text data-lang="en" x="130" y="136" text-anchor="middle">411 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
<table>
<thead><tr><th><span data-lang="zh-CN">路径</span><span data-lang="en">Path</span></th><th><span data-lang="zh-CN">作用</span><span data-lang="en">Role</span></th><th><span data-lang="zh-CN">类型</span><span data-lang="en">Type</span></th></tr></thead>
<tbody><tr><td>SKILL.md</td><td><span data-lang="zh-CN">Skill 入口文件</span><span data-lang="en">Skill entrypoint</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>README.md</td><td><span data-lang="zh-CN">人类可读使用说明</span><span data-lang="en">Human-readable usage guide</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>agents/interface.yaml</td><td><span data-lang="zh-CN">跨平台接口元数据</span><span data-lang="en">Neutral interface metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>manifest.json</td><td><span data-lang="zh-CN">生命周期与打包元数据</span><span data-lang="en">Lifecycle and portability metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>references</td><td><span data-lang="zh-CN">扩展指导与复用资料</span><span data-lang="en">Extended guidance and reusable notes</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>scripts</td><td><span data-lang="zh-CN">确定性脚本或本地工具</span><span data-lang="en">Deterministic helpers or local tooling</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>evals</td><td><span data-lang="zh-CN">触发与质量检查</span><span data-lang="en">Trigger and quality checks</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>reports</td><td><span data-lang="zh-CN">生成的证据与总结报告</span><span data-lang="en">Generated evidence and overview artifacts</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr></tbody>
+29 -29
View File
@@ -513,7 +513,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 114
"file_count": 115
},
{
"path": "evals",
@@ -525,10 +525,10 @@
"path": "reports",
"label": "Generated evidence and overview artifacts",
"kind": "folder",
"file_count": 225
"file_count": 229
}
],
"file_count": 406,
"file_count": 411,
"folder_count": 4,
"distribution": [
{
@@ -553,7 +553,7 @@
},
{
"label": "scripts",
"value": 114
"value": 115
},
{
"label": "evals",
@@ -561,7 +561,7 @@
},
{
"label": "reports",
"value": 225
"value": 229
}
]
},
@@ -687,7 +687,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 114
"file_count": 115
},
{
"path": "evals",
@@ -699,7 +699,7 @@
"path": "reports",
"label": "Generated evidence and overview artifacts",
"kind": "folder",
"file_count": 225
"file_count": 229
}
],
"strengths": [
@@ -1001,13 +1001,13 @@
"ok": true,
"summary": {
"reproducibility_ready": true,
"release_lock_ready": true,
"release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"evidence_bundle_sha256": "04bfae8616aaeae0f2d12d92db024b7609b242428a81a40f6ac271ef42aa3f31",
"source_contract_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"evidence_bundle_sha256": "4e46ec51849a179cd6db9ea908a7d49df080b3f10463d4a98e54aaa5968e37cd",
"source_contract_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1025,11 +1025,11 @@
"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": 60
},
"commit": "c5165be99c8b5c2c9c07bd6017716e874567920c",
"commit": "5cb10444c49c40d58b76784e6c4bf993c863e827",
"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.",
@@ -1113,8 +1113,8 @@
"failures": []
},
"trust_security": {
"scanned_files": 201,
"script_count": 114,
"scanned_files": 202,
"script_count": 115,
"internal_module_count": 31,
"secret_findings": 0,
"dependency_files": [
@@ -1123,18 +1123,18 @@
"network_script_count": 3,
"network_policy_covered_count": 3,
"network_policy_missing_count": 0,
"file_write_script_count": 70,
"file_write_script_count": 71,
"permission_required_count": 3,
"permission_approved_count": 3,
"permission_missing_count": 0,
"permission_invalid_count": 0,
"permission_expired_count": 0,
"help_smoke_checked_count": 83,
"help_smoke_checked_count": 84,
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 201,
"package_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf"
"package_hash_file_count": 202,
"package_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083"
},
"skill_atlas": {
"skill_count": 12,
@@ -1172,8 +1172,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53"
"package_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0"
},
"compatibility": {
"openai": "pass",
@@ -1204,7 +1204,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1220,8 +1220,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"archive_entry_count": 626,
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"archive_entry_count": 630,
"failure_count": 0,
"warning_count": 0
},
@@ -1232,7 +1232,7 @@
"ok": true,
"summary": {
"archive_present": true,
"archive_entry_count": 626,
"archive_entry_count": 630,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1299,12 +1299,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53"
"to": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf"
"to": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083"
}
]
},
+4 -4
View File
@@ -114,13 +114,13 @@ Next move: add real client or installer permission enforcement integration.
| Output Eval | `5` cases, with-skill pass rate `100`, baseline pass rate `0`, with file-backed, near-neighbor, boundary coverage, `10` local command-runner execution runs, `0` recorded fixture runs, `0` provider model-executed runs in root release evidence, `10` estimated token counts, provider runner v0 available, `5` blind A/B review pairs, a generated `reports/output_review_decisions.json` template, `0 / 5` reviewer decisions pending, `0` answer keys revealed, and `5` pending answers hidden |
| Runtime Conformance | `5 / 5` targets passing |
| Target Compiler | `5 / 5` compiled target contracts generated for OpenAI, Claude, generic, Agent Skills compatible, and VS Code / Copilot outputs, including target permission contracts and target-native behavior contracts |
| Trust | `0` secret findings, `1` pinned dependency file, `31` declared internal modules, `3 / 3` network-capable scripts covered by bounded host policy, `83 / 83` CLI help smoke checks passing across `114` scripts, source-contract hash scope explicit |
| Trust | `0` secret findings, `1` pinned dependency file, `31` declared internal modules, `3 / 3` network-capable scripts covered by bounded host policy, `84 / 84` CLI help smoke checks passing across `115` scripts, source-contract hash scope explicit |
| Permission Governance | `3 / 3` required high-permission capabilities approved, `0` missing, `0` invalid, `0` expired |
| Runtime Permission Probes | `4 / 4` target adapters probed, `0` native-enforcement adapters, `4` explicit metadata fallbacks, `4` residual risks retained for reviewer visibility |
| Skill Atlas | `12` scanned skills, `1` actionable root skill, `1` telemetry report, `0` actionable route collisions, `0` actionable owner gaps, `0` actionable stale skills, `0` actionable drift signals, `24` scoped non-actionable issue signals retained for visibility |
| Registry Audit | package metadata generated with version, owner, license, source checksum, archive checksum, Skill IR provenance, and compatibility matrix |
| Package Verification | `4 / 4` target adapters present, archive verified, `626` zip entries, `0` failures, `0` warnings |
| Install Simulation | archive with `626` entries extracted into a local verification root, entrypoint/manifest/interface loaded, reports present, `4` adapters readable, `12` installer permission checks enforced, `0` permission failures, `0` failures, `0` warnings |
| Package Verification | `4 / 4` target adapters present, archive verified, `630` zip entries, `0` failures, `0` warnings |
| Install Simulation | archive with `630` entries extracted into a local verification root, entrypoint/manifest/interface loaded, reports present, `4` adapters readable, `12` installer permission checks enforced, `0` permission failures, `0` failures, `0` warnings |
| Local Install Sync Preflight | `make sync-local-install` and `make sync-active-install` rebuild the package first, then sync only after install simulation passes with `12` enforced installer permission checks and `0` permission failures |
| Upgrade Check | current package declares `minor` over the 1.0.0 baseline, recommended bump is `minor`, and release notes include added targets plus checksum changes |
| Adoption Drift | `1` metadata-only review event, `1` adoption sample, adoption `100`, risk band `low`; optional `yao.py` CLI capture, external client `telemetry-emit`, `5` `telemetry-hooks` recipes, Browser/Chrome native messaging host, and validated external JSONL import are available but off by default for reproducible release evidence; raw `reports/telemetry_events.jsonl` is gitignored and blocked from zip packages |
@@ -133,7 +133,7 @@ Next move: add real client or installer permission enforcement integration.
| Benchmark Reproducibility | local reproducibility ready with `25` required artifacts, `0` missing artifacts, `23` reproduction commands, and `3` disclosed failure cases; provider and human evidence remain explicit limitations |
| IR-first Packaging | `openai`, `claude`, `generic`, and `vscode` adapters include compiler contracts, permission contracts, target-native behavior contracts, IR provenance, semantic parity checks, and install-scope notes where applicable |
| Context Budget | initial load `960/1000`, under the production budget |
| CI | `make ci-test` target count is `77` after the world-class preflight gate update |
| CI | `make ci-test` target count is `78` after the Daily SkillOps gate update |
## Next Highest-Leverage Moves
+1 -1
View File
@@ -930,7 +930,7 @@
<p><span data-lang="zh-CN">让 reviewer 快速确认关键文件、目录和资产分布。</span><span data-lang="en">Lets reviewers confirm key files, directories, and asset distribution quickly.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-0.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-1.3" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-2.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="22.4 77.6" stroke-dashoffset="-2.6" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="75.0 25.0" stroke-dashoffset="-25.0" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">406</text><text data-lang="en" x="130" y="136" text-anchor="middle">406 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-0.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-1.3" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-2.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="22.2 77.8" stroke-dashoffset="-2.6" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="75.2 24.8" stroke-dashoffset="-24.8" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">411</text><text data-lang="en" x="130" y="136" text-anchor="middle">411 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
<table>
<thead><tr><th><span data-lang="zh-CN">路径</span><span data-lang="en">Path</span></th><th><span data-lang="zh-CN">作用</span><span data-lang="en">Role</span></th><th><span data-lang="zh-CN">类型</span><span data-lang="en">Type</span></th></tr></thead>
<tbody><tr><td>SKILL.md</td><td><span data-lang="zh-CN">Skill 入口文件</span><span data-lang="en">Skill entrypoint</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>README.md</td><td><span data-lang="zh-CN">人类可读使用说明</span><span data-lang="en">Human-readable usage guide</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>agents/interface.yaml</td><td><span data-lang="zh-CN">跨平台接口元数据</span><span data-lang="en">Neutral interface metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>manifest.json</td><td><span data-lang="zh-CN">生命周期与打包元数据</span><span data-lang="en">Lifecycle and portability metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>references</td><td><span data-lang="zh-CN">扩展指导与复用资料</span><span data-lang="en">Extended guidance and reusable notes</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>scripts</td><td><span data-lang="zh-CN">确定性脚本或本地工具</span><span data-lang="en">Deterministic helpers or local tooling</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>evals</td><td><span data-lang="zh-CN">触发与质量检查</span><span data-lang="en">Trigger and quality checks</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>reports</td><td><span data-lang="zh-CN">生成的证据与总结报告</span><span data-lang="en">Generated evidence and overview artifacts</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr></tbody>
+29 -29
View File
@@ -512,7 +512,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 114
"file_count": 115
},
{
"path": "evals",
@@ -524,10 +524,10 @@
"path": "reports",
"label": "Generated evidence and overview artifacts",
"kind": "folder",
"file_count": 225
"file_count": 229
}
],
"file_count": 406,
"file_count": 411,
"folder_count": 4,
"distribution": [
{
@@ -552,7 +552,7 @@
},
{
"label": "scripts",
"value": 114
"value": 115
},
{
"label": "evals",
@@ -560,7 +560,7 @@
},
{
"label": "reports",
"value": 225
"value": 229
}
]
},
@@ -682,7 +682,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 114
"file_count": 115
},
{
"path": "evals",
@@ -694,7 +694,7 @@
"path": "reports",
"label": "Generated evidence and overview artifacts",
"kind": "folder",
"file_count": 225
"file_count": 229
}
],
"strengths": [
@@ -996,13 +996,13 @@
"ok": true,
"summary": {
"reproducibility_ready": true,
"release_lock_ready": true,
"release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"evidence_bundle_sha256": "04bfae8616aaeae0f2d12d92db024b7609b242428a81a40f6ac271ef42aa3f31",
"source_contract_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"evidence_bundle_sha256": "4e46ec51849a179cd6db9ea908a7d49df080b3f10463d4a98e54aaa5968e37cd",
"source_contract_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1020,11 +1020,11 @@
"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": 60
},
"commit": "c5165be99c8b5c2c9c07bd6017716e874567920c",
"commit": "5cb10444c49c40d58b76784e6c4bf993c863e827",
"missing_artifacts": [],
"limitations": [
"The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
@@ -1108,8 +1108,8 @@
"failures": []
},
"trust_security": {
"scanned_files": 201,
"script_count": 114,
"scanned_files": 202,
"script_count": 115,
"internal_module_count": 31,
"secret_findings": 0,
"dependency_files": [
@@ -1118,18 +1118,18 @@
"network_script_count": 3,
"network_policy_covered_count": 3,
"network_policy_missing_count": 0,
"file_write_script_count": 70,
"file_write_script_count": 71,
"permission_required_count": 3,
"permission_approved_count": 3,
"permission_missing_count": 0,
"permission_invalid_count": 0,
"permission_expired_count": 0,
"help_smoke_checked_count": 83,
"help_smoke_checked_count": 84,
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 201,
"package_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf"
"package_hash_file_count": 202,
"package_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083"
},
"skill_atlas": {
"skill_count": 12,
@@ -1167,8 +1167,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf",
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53"
"package_sha256": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0"
},
"compatibility": {
"openai": "pass",
@@ -1199,7 +1199,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1215,8 +1215,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53",
"archive_entry_count": 626,
"archive_sha256": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0",
"archive_entry_count": 630,
"failure_count": 0,
"warning_count": 0
},
@@ -1227,7 +1227,7 @@
"ok": true,
"summary": {
"archive_present": true,
"archive_entry_count": 626,
"archive_entry_count": 630,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1294,12 +1294,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53"
"to": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf"
"to": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083"
}
]
},
+1
View File
@@ -103,6 +103,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
+2 -2
View File
@@ -197,7 +197,7 @@
"key": "trust-security",
"label": "Trust Security",
"status": "pass",
"current": "secrets 0; scripts 114; help failures 0",
"current": "secrets 0; scripts 115; help failures 0",
"target": "Secrets, scripts, dependencies, permissions, and package hash are reviewable",
"evidence": [
{
@@ -285,7 +285,7 @@
"key": "registry-distribution",
"label": "Registry Distribution",
"status": "pass",
"current": "zip entries 626; install failures 0; permission failures 0",
"current": "zip entries 630; install failures 0; permission failures 0",
"target": "Package metadata, archive checksum, package verification, and install simulation pass",
"evidence": [
{
+2 -2
View File
@@ -23,11 +23,11 @@ Generated at: `2026-06-16`
| Human Adjudication | human-required | 0/5 decisions; pending 5 | Real reviewer decisions recorded before claiming output review completion | Record real A/B choices in the decision template, then regenerate adjudication. |
| Benchmark Reproducibility | pass | artifacts 25; missing 0; failures 3 | Public methodology, reproducible commands, required artifacts, and failure disclosure are machine-checkable | Keep the manifest current with every benchmark, package, and release evidence change. |
| Runtime Conformance | pass | 5/5 targets pass | Target package structure, metadata, relative paths, and degradation notes pass | Keep target conformance fixtures updated as platform contracts change. |
| Trust Security | pass | secrets 0; scripts 114; 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 115; help failures 0 | Secrets, scripts, dependencies, permissions, and package hash are reviewable | Keep high-permission approvals scoped, expiring, and target-mapped. |
| Permission Metadata | pass | 4/4 target probes pass; metadata fallback 4; installer enforcement 4 | Packaged adapters expose explicit permission metadata, residual risks, and installer enforcement evidence when available | Preserve residual-risk notes until real native enforcement exists. |
| Native Permission Enforcement | external-required | native-enforced targets 0; installer-enforced targets 4 | At least one target/client enforces approved permissions at runtime | Integrate a real target-client or external installer runtime guard before claiming native permission enforcement. |
| Skill Atlas | pass | 12 skills; actionable collisions 0 | Workspace catalog, route overlap, stale/owner gaps, drift, and no-route opportunities | Feed real drift data into Atlas once client telemetry is installed. |
| Registry Distribution | pass | zip entries 626; install failures 0; permission failures 0 | Package metadata, archive checksum, package verification, and install simulation pass | Regenerate registry after package verification so checksums stay aligned. |
| Registry Distribution | pass | zip entries 630; install failures 0; permission failures 0 | Package metadata, archive checksum, package verification, and install simulation pass | Regenerate registry after package verification so checksums stay aligned. |
| Review Studio | pass | decision review; warnings 3; score 91 | One page shows gates, evidence paths, blockers, warnings, actions, waivers, and annotations | Resolve human/external warning gates before claiming full release readiness. |
| Telemetry Drift | pass | events 1; risk low; recipes 5 | Local-first metadata-only event contract, aggregate drift report, hook recipes, and import path | Keep raw JSONL out of distributed packages and use aggregate reports for Atlas. |
| Native Client Telemetry | external-required | external source events 0; adoption samples 0 | A real Browser/Chrome/provider client sends production metadata events | Install a real client against the native host and import production metadata-only events. |
+36 -8
View File
@@ -10,10 +10,10 @@
"pass_count": 21,
"warn_count": 0,
"missing_count": 0,
"extension_track_count": 2,
"extension_track_count": 3,
"extension_partial_count": 0,
"extension_planned_count": 0,
"extension_covered_count": 2,
"extension_covered_count": 3,
"adaptive_extension_ready": true,
"local_blueprint_ready": true,
"public_world_class_ready": false,
@@ -26,7 +26,7 @@
"missing": 0
},
"extension_status_counts": {
"covered": 2
"covered": 3
},
"modules": [
{
@@ -130,7 +130,7 @@
"label": "Trust Security",
"status": "pass",
"objective": "Scripts, dependencies, permissions, secrets, and package hash are reviewable for team distribution.",
"current": "114 scripts; secrets 0; help failures 0",
"current": "115 scripts; secrets 0; help failures 0",
"command": "python3 scripts/yao.py trust .",
"test": "python3 tests/verify_trust_check.py",
"evidence": [
@@ -204,7 +204,7 @@
"label": "Registry Distribution",
"status": "pass",
"objective": "Skill packages are installable, versioned, checksumed, and upgrade-reviewable.",
"current": "archive entries 626; install failures 0",
"current": "archive entries 630; install failures 0",
"command": "python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip && python3 scripts/yao.py registry-audit .",
"test": "python3 tests/verify_registry_audit.py",
"evidence": [
@@ -731,22 +731,50 @@
}
],
"next_action": "Start with policy and read-only scan tests; do not read shell history or private logs unless the user provides an explicit source path."
},
{
"key": "daily-skillops-report",
"label": "Daily SkillOps Report",
"status": "covered",
"objective": "Daily operations layer summarizes explicit-source conversation patterns, proposal-only adaptation work, approval state, release locks, and world-class evidence gaps.",
"current": "Daily SkillOps report is a CLI-backed, explicit-source operations cockpit with tests and committed dated evidence.",
"target": "Generate reports/skillops/daily/YYYY-MM-DD.* from explicit sources without private log scanning, source writes, auto-patching, or world-class overclaiming.",
"evidence": [
{
"path": "scripts/render_daily_skillops_report.py",
"exists": true
},
{
"path": "tests/verify_daily_skillops.py",
"exists": true
},
{
"path": "reports/skillops/daily/2026-06-16.json",
"exists": true
},
{
"path": "reports/skillops/daily/2026-06-16.md",
"exists": true
}
],
"next_action": "Keep Daily SkillOps report aligned with proposal, approval, coverage, and world-class ledger contracts as the operations layer evolves."
}
],
"next_highest_leverage": [
"Close the four world-class evidence ledger entries with accepted human or external evidence.",
"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.",
"Use Daily SkillOps with explicit curated sources to review adaptation proposals without scanning private logs or auto-patching.",
"Keep the blueprint coverage report in CI so 2.0 plan drift is visible."
],
"source_blueprint": {
"title": "Skill Overview / Skill OS 2.0 upgrade plan",
"core_module_count": 8,
"recommended_pr_count": 13,
"reference_extension_count": 2,
"reference_extension_count": 3,
"reference_extensions": [
"Skill interpretation report",
"Adaptive self-iteration with local preference memory and approval gates"
"Adaptive self-iteration with local preference memory and approval gates",
"Daily SkillOps operations report"
]
},
"artifacts": {
+13 -5
View File
@@ -10,8 +10,8 @@ Generated at: `2026-06-16`
- pass: `21` / `21`
- missing: `0`
- warn: `0`
- reference extensions: `2`
- extension covered: `2`
- reference extensions: `3`
- extension covered: `3`
- extension partial: `0`
- extension planned: `0`
- adaptive extension ready: `true`
@@ -26,9 +26,9 @@ This report maps the Skill OS 2.0 upgrade blueprint to concrete local artifacts,
| Skill IR | `pass` | schema 2.0.0; targets 5 | `python3 scripts/yao.py skill-ir .` | `python3 tests/verify_skill_ir.py` |
| Output Eval Lab | `pass` | 5 cases; delta 100.0; execution 10 | `python3 scripts/yao.py output-exec . && python3 scripts/yao.py output-review .` | `python3 tests/verify_output_eval_lab.py` |
| Runtime Conformance | `pass` | 5/5 targets pass | `python3 scripts/yao.py conformance .` | `python3 tests/verify_conformance_suite.py` |
| Trust Security | `pass` | 114 scripts; secrets 0; help failures 0 | `python3 scripts/yao.py trust .` | `python3 tests/verify_trust_check.py` |
| Trust Security | `pass` | 115 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 626; install failures 0 | `python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip && python3 scripts/yao.py registry-audit .` | `python3 tests/verify_registry_audit.py` |
| Registry Distribution | `pass` | archive entries 630; install failures 0 | `python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip && python3 scripts/yao.py registry-audit .` | `python3 tests/verify_registry_audit.py` |
| Review Studio | `pass` | 16 gates; decision review; warnings 3 | `python3 scripts/yao.py review-studio .` | `python3 tests/verify_review_studio.py` |
| Telemetry Drift | `pass` | events 1; recipes 5; risk low | `python3 scripts/yao.py telemetry-hooks . && python3 scripts/yao.py adoption-drift .` | `python3 tests/verify_telemetry_hooks.py` |
@@ -56,6 +56,7 @@ This report maps the Skill OS 2.0 upgrade blueprint to concrete local artifacts,
| --- | --- | --- | --- | --- |
| 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 | `covered` | Full adaptive loop includes proposal, approval, patch application, regression evidence, and rollback metadata. | Proposal-only adaptation with explicit input source, redaction, allowlisted write targets, approval ledger, regression report, and rollback plan. | Start with policy and read-only scan tests; do not read shell history or private logs unless the user provides an explicit source path. |
| Daily SkillOps Report | `covered` | Daily SkillOps report is a CLI-backed, explicit-source operations cockpit with tests and committed dated evidence. | Generate reports/skillops/daily/YYYY-MM-DD.* from explicit sources without private log scanning, source writes, auto-patching, or world-class overclaiming. | Keep Daily SkillOps report aligned with proposal, approval, coverage, and world-class ledger contracts as the operations layer evolves. |
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.
@@ -63,7 +64,7 @@ These extension tracks come from the user-supplied 2.0 reference plan. They are
- Close the four world-class evidence ledger entries with accepted human or external evidence.
- 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.
- Use Daily SkillOps with explicit curated sources to review adaptation proposals without scanning private logs or auto-patching.
- Keep the blueprint coverage report in CI so 2.0 plan drift is visible.
## Evidence Detail
@@ -228,3 +229,10 @@ These extension tracks come from the user-supplied 2.0 reference plan. They are
- status: `covered`
- existing evidence: `references/autonomous-adaptation.md`, `references/user-memory-policy.md`, `schemas/adaptation-proposal.schema.json`, `scripts/summarize_user_signals.py`, `scripts/propose_adaptation.py`, `tests/verify_adaptation_safety.py`, `scripts/apply_adaptation.py`, `reports/adaptation_approval_ledger.json`, `reports/adaptation_regression_report.json`, `reports/user_patterns.json`, `reports/adaptation_proposals.json`, `reports/iteration-directions.md`, `reports/adoption_drift_report.md`
- next action: Start with policy and read-only scan tests; do not read shell history or private logs unless the user provides an explicit source path.
### Daily SkillOps Report
- objective: Daily operations layer summarizes explicit-source conversation patterns, proposal-only adaptation work, approval state, release locks, and world-class evidence gaps.
- status: `covered`
- existing evidence: `scripts/render_daily_skillops_report.py`, `tests/verify_daily_skillops.py`, `reports/skillops/daily/2026-06-16.json`, `reports/skillops/daily/2026-06-16.md`
- next action: Keep Daily SkillOps report aligned with proposal, approval, coverage, and world-class ledger contracts as the operations layer evolves.
+311
View File
@@ -0,0 +1,311 @@
{
"schema_version": "1.0",
"ok": true,
"generated_at": "2026-06-16",
"skill_dir": ".",
"decision": "proposal-review",
"source_supplied": false,
"pattern_count": 5,
"proposal_count": 5,
"approval_count": 0,
"pending_review_count": 0,
"applied_count": 0,
"rollback_count": 0,
"local_blueprint_ready": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
"release_lock_ready": false,
"evidence_consistency_ok": true,
"writes_source_files": false,
"auto_patch_enabled": false,
"failure_count": 0,
"summary": {
"decision": "proposal-review",
"source_supplied": false,
"pattern_count": 5,
"proposal_count": 5,
"approval_count": 0,
"pending_review_count": 0,
"applied_count": 0,
"rollback_count": 0,
"local_blueprint_ready": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
"release_lock_ready": false,
"evidence_consistency_ok": true,
"writes_source_files": false,
"auto_patch_enabled": false,
"failure_count": 0
},
"operations_contract": {
"schema_version": "1.0",
"contract": "daily-skillops-report",
"explicit_source_required_for_scan": true,
"implicit_private_log_scan": false,
"raw_content_stored": false,
"redacted_excerpts_only": true,
"proposal_only": true,
"approval_required_for_writes": true,
"writes_source_files": false,
"auto_patch_enabled": false,
"daily_report_counts_as_world_class_evidence": false
},
"report_contract": {
"schema_version": "1.0",
"contract": "daily-skillops-report",
"top_level_mirrors_summary": true,
"summary_fields": [
"decision",
"source_supplied",
"pattern_count",
"proposal_count",
"approval_count",
"pending_review_count",
"applied_count",
"rollback_count",
"local_blueprint_ready",
"public_world_class_ready",
"world_class_pending_count",
"release_lock_ready",
"evidence_consistency_ok",
"writes_source_files",
"auto_patch_enabled",
"failure_count"
],
"source_of_truth": [
"summary",
"operations_contract"
]
},
"source": {
"path": "evals/adaptation/user_signals.example.jsonl",
"fingerprint_sha256": "48f94a4f3b82f90db29921c13d09c765ec10aabfde1adce65710c137cc6c5abf",
"record_count": 8,
"explicit_source": true,
"raw_content_stored": false,
"redacted_excerpts_only": true
},
"patterns": [
{
"pattern_id": "language_default",
"label": "Default language preference",
"signal_type": "report-language",
"support_count": 2,
"confidence": 0.79,
"reason": "2 redacted records matched repeated report-language signals.",
"recommended_action": "Keep generated reports Chinese-first with an English switch where user-facing.",
"evidence": [
{
"record_id": "line-1",
"excerpt": "新生成的 Skill 报告默认使用中文简体,并在右上角提供英文切换。"
},
{
"record_id": "line-2",
"excerpt": "HTML 报告需要双语能力,但默认内容应该保持中文简体。"
}
]
},
{
"pattern_id": "report_ui",
"label": "Report UI and visualization preference",
"signal_type": "artifact-design",
"support_count": 5,
"confidence": 0.95,
"reason": "5 redacted records matched repeated artifact-design signals.",
"recommended_action": "Prioritize white-background Kami-style reports with readable charts and stable navigation.",
"evidence": [
{
"record_id": "line-1",
"excerpt": "新生成的 Skill 报告默认使用中文简体,并在右上角提供英文切换。"
},
{
"record_id": "line-2",
"excerpt": "HTML 报告需要双语能力,但默认内容应该保持中文简体。"
},
{
"record_id": "line-3",
"excerpt": "报告排版采用白底 Kami 风格,图表、模块和导航都要清晰。"
}
]
},
{
"pattern_id": "approval_safety",
"label": "Approval and privacy boundary",
"signal_type": "governance",
"support_count": 2,
"confidence": 0.79,
"reason": "2 redacted records matched repeated governance signals.",
"recommended_action": "Keep adaptive work proposal-only until a reviewer approves an allowlisted patch path.",
"evidence": [
{
"record_id": "line-5",
"excerpt": "自适应升级必须先生成提案,不能直接自动修改源文件。"
},
{
"record_id": "line-6",
"excerpt": "用户偏好扫描必须由用户提供明确路径,不要默认扫描私人日志。"
}
]
},
{
"pattern_id": "delivery_format",
"label": "Delivery format preference",
"signal_type": "artifact-format",
"support_count": 2,
"confidence": 0.79,
"reason": "2 redacted records matched repeated artifact-format signals.",
"recommended_action": "Surface stable artifact paths and formats in CLI output and generated summaries.",
"evidence": [
{
"record_id": "line-2",
"excerpt": "HTML 报告需要双语能力,但默认内容应该保持中文简体。"
},
{
"record_id": "line-6",
"excerpt": "用户偏好扫描必须由用户提供明确路径,不要默认扫描私人日志。"
}
]
},
{
"pattern_id": "evidence_testing",
"label": "Evidence and testing preference",
"signal_type": "quality-gate",
"support_count": 2,
"confidence": 0.79,
"reason": "2 redacted records matched repeated quality-gate signals.",
"recommended_action": "Attach focused tests and refreshed evidence reports to every non-trivial skill upgrade.",
"evidence": [
{
"record_id": "line-7",
"excerpt": "每次升级都需要测试、覆盖报告和可审计证据,推送前要跑 CI。"
},
{
"record_id": "line-8",
"excerpt": "涉及 GitHub 推送时,要保留证据链,避免把计划当作完成证明。"
}
]
}
],
"proposals": [
{
"proposal_id": "adapt-18c7517f3d",
"pattern_id": "language_default",
"title": "Keep reports Chinese-first with optional English",
"risk_level": "low",
"status": "proposal-only",
"requires_approval": true,
"target_files": [
"scripts/render_skill_overview.py",
"references/artifact-design-doctrine.md"
],
"verification_commands": [
"python3 tests/verify_skill_overview.py"
]
},
{
"proposal_id": "adapt-fbfe921ba5",
"pattern_id": "report_ui",
"title": "Improve report layout, visual hierarchy, and chart readability",
"risk_level": "medium",
"status": "proposal-only",
"requires_approval": true,
"target_files": [
"scripts/render_skill_overview.py",
"references/artifact-design-doctrine.md",
"tests/verify_skill_overview.py"
],
"verification_commands": [
"python3 tests/verify_skill_overview.py",
"python3 tests/verify_skill_report_charts.py"
]
},
{
"proposal_id": "adapt-59d219a1fb",
"pattern_id": "approval_safety",
"title": "Keep adaptive iteration approval-gated",
"risk_level": "low",
"status": "proposal-only",
"requires_approval": true,
"target_files": [
"references/user-memory-policy.md",
"references/autonomous-adaptation.md",
"schemas/adaptation-proposal.schema.json"
],
"verification_commands": [
"python3 tests/verify_adaptation_safety.py"
]
},
{
"proposal_id": "adapt-457baca160",
"pattern_id": "delivery_format",
"title": "Make generated artifact paths explicit in CLI output",
"risk_level": "low",
"status": "proposal-only",
"requires_approval": true,
"target_files": [
"scripts/yao.py",
"README.md"
],
"verification_commands": [
"python3 tests/verify_yao_cli.py"
]
},
{
"proposal_id": "adapt-abfee25d3a",
"pattern_id": "evidence_testing",
"title": "Attach tests and evidence refresh to each upgrade",
"risk_level": "medium",
"status": "proposal-only",
"requires_approval": true,
"target_files": [
"tests/verify_adaptation_safety.py",
"scripts/render_skill_os2_coverage.py",
"reports/skill_os2_coverage.json"
],
"verification_commands": [
"python3 tests/verify_adaptation_safety.py",
"python3 tests/verify_skill_os2_coverage.py"
]
}
],
"approval": {
"approval_count": 0,
"pending_review_count": 0,
"applied_count": 0,
"rollback_count": 0
},
"release_state": {
"local_blueprint_ready": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
"release_lock_ready": false,
"evidence_consistency_ok": true
},
"actions": [
{
"key": "review-adaptation-proposals",
"priority": "high",
"action": "Review proposal-only adaptation items before preparing any approval ledger entry."
},
{
"key": "close-world-class-evidence",
"priority": "high",
"action": "Collect accepted external or human evidence for the pending world-class ledger entries."
}
],
"failures": [],
"source_reports": {
"patterns": "reports/user_patterns.json",
"proposals": "reports/adaptation_proposals.json",
"approval_ledger": "reports/adaptation_approval_ledger.json",
"regression": "reports/adaptation_regression_report.json",
"skill_os2_coverage": "reports/skill_os2_coverage.json",
"world_class_ledger": "reports/world_class_evidence_ledger.json",
"evidence_consistency": "reports/evidence_consistency.json",
"benchmark_reproducibility": "reports/benchmark_reproducibility.json"
},
"artifacts": {
"json": "reports/skillops/daily/2026-06-16.json",
"markdown": "reports/skillops/daily/2026-06-16.md"
}
}
+128
View File
@@ -0,0 +1,128 @@
# Daily SkillOps Report
Generated at: `2026-06-16`
## Summary
- decision: `proposal-review`
- source supplied: `false`
- patterns: `5`
- proposals: `5`
- pending approvals: `0`
- applied patches: `0`
- rollbacks: `0`
- local blueprint ready: `true`
- public world-class ready: `false`
- world-class pending: `4`
- release lock ready: `false`
- evidence consistency ok: `true`
This report is an operations cockpit for explicit-source SkillOps. It does not scan private logs, write source files, apply patches, or count as world-class external or human evidence.
## Privacy Boundary
- explicit_source_required_for_scan: `true`
- implicit_private_log_scan: `false`
- raw_content_stored: `false`
- redacted_excerpts_only: `true`
- proposal_only: `true`
- approval_required_for_writes: `true`
- writes_source_files: `false`
- auto_patch_enabled: `false`
- daily_report_counts_as_world_class_evidence: `false`
## Actions
- `high` Review proposal-only adaptation items before preparing any approval ledger entry.
- `high` Collect accepted external or human evidence for the pending world-class ledger entries.
## Patterns
- `language_default`: Default language preference (support `2`, confidence `0.79`)
- `report_ui`: Report UI and visualization preference (support `5`, confidence `0.95`)
- `approval_safety`: Approval and privacy boundary (support `2`, confidence `0.79`)
- `delivery_format`: Delivery format preference (support `2`, confidence `0.79`)
- `evidence_testing`: Evidence and testing preference (support `2`, confidence `0.79`)
## Proposals
### Keep reports Chinese-first with optional English
- ID: `adapt-18c7517f3d`
- Pattern: `language_default`
- Status: `proposal-only`
- Risk: `low`
- Requires approval: `true`
- Target files:
- `scripts/render_skill_overview.py`
- `references/artifact-design-doctrine.md`
- Verification:
- `python3 tests/verify_skill_overview.py`
### Improve report layout, visual hierarchy, and chart readability
- ID: `adapt-fbfe921ba5`
- Pattern: `report_ui`
- Status: `proposal-only`
- Risk: `medium`
- Requires approval: `true`
- Target files:
- `scripts/render_skill_overview.py`
- `references/artifact-design-doctrine.md`
- `tests/verify_skill_overview.py`
- Verification:
- `python3 tests/verify_skill_overview.py`
- `python3 tests/verify_skill_report_charts.py`
### Keep adaptive iteration approval-gated
- ID: `adapt-59d219a1fb`
- Pattern: `approval_safety`
- Status: `proposal-only`
- Risk: `low`
- Requires approval: `true`
- Target files:
- `references/user-memory-policy.md`
- `references/autonomous-adaptation.md`
- `schemas/adaptation-proposal.schema.json`
- Verification:
- `python3 tests/verify_adaptation_safety.py`
### Make generated artifact paths explicit in CLI output
- ID: `adapt-457baca160`
- Pattern: `delivery_format`
- Status: `proposal-only`
- Risk: `low`
- Requires approval: `true`
- Target files:
- `scripts/yao.py`
- `README.md`
- Verification:
- `python3 tests/verify_yao_cli.py`
### Attach tests and evidence refresh to each upgrade
- ID: `adapt-abfee25d3a`
- Pattern: `evidence_testing`
- Status: `proposal-only`
- Risk: `medium`
- Requires approval: `true`
- Target files:
- `tests/verify_adaptation_safety.py`
- `scripts/render_skill_os2_coverage.py`
- `reports/skill_os2_coverage.json`
- Verification:
- `python3 tests/verify_adaptation_safety.py`
- `python3 tests/verify_skill_os2_coverage.py`
## Evidence
- patterns: `reports/user_patterns.json`
- proposals: `reports/adaptation_proposals.json`
- approval_ledger: `reports/adaptation_approval_ledger.json`
- regression: `reports/adaptation_regression_report.json`
- skill_os2_coverage: `reports/skill_os2_coverage.json`
- world_class_ledger: `reports/world_class_evidence_ledger.json`
- evidence_consistency: `reports/evidence_consistency.json`
- benchmark_reproducibility: `reports/benchmark_reproducibility.json`
+2 -2
View File
@@ -70,12 +70,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "feb9e0ecf8390c4541b91b78c664d15dfffe7e8999a0602dcf9a44fd03afeb53"
"to": "a521b75a29e5761e4a90df6055d0c0316e615add8d32168960f80bf89a99c8a0"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "bcfcc1a7fc34bd4b70746355ca3627bebc8a3c57a4703c014192aabbf8296ddf"
"to": "b6abceeea0f2329299123b8e295469602f9e742298f729e60d9b56ef49b48083"
}
]
},
+11 -3
View File
@@ -6,9 +6,9 @@
"summary": {
"ledger_ready_to_claim_world_class": false,
"ledger_pending_count": 4,
"claim_surface_count": 176,
"json_claim_surface_count": 86,
"metadata_claim_surface_count": 87,
"claim_surface_count": 178,
"json_claim_surface_count": 87,
"metadata_claim_surface_count": 88,
"package_claim_surface_count": 17,
"violation_count": 0,
"overclaim_guard_active": true,
@@ -610,6 +610,14 @@
"path": "reports/skill_os2_coverage.md",
"violation_count": 0
},
{
"path": "reports/skillops/daily/2026-06-16.json",
"violation_count": 0
},
{
"path": "reports/skillops/daily/2026-06-16.md",
"violation_count": 0
},
{
"path": "reports/system-model.json",
"violation_count": 0
+3 -3
View File
@@ -7,9 +7,9 @@ Generated at: `2026-06-16`
- decision: `claim-guard-pass-evidence-pending`
- ledger ready to claim world-class: `false`
- ledger pending evidence: `4`
- claim surfaces scanned: `176`
- JSON claim surfaces scanned: `86`
- metadata claim surfaces scanned: `87`
- claim surfaces scanned: `178`
- JSON claim surfaces scanned: `87`
- metadata claim surfaces scanned: `88`
- package/runtime claim surfaces scanned: `17`
- violations: `0`
- overclaim guard active: `true`
+1
View File
@@ -67,6 +67,7 @@ DEFAULT_TARGETS = [
"evidence-consistency-check",
"feedback-check",
"adaptation-safety-check",
"daily-skillops-check",
"adoption-drift-check",
"telemetry-import-check",
"telemetry-emit-check",
+3
View File
@@ -31,6 +31,7 @@ SOURCE_REFRESH_REPORT_COMMANDS = [
'python3 scripts/render_world_class_submission_review.py . --generated-at "$GENERATED_AT"',
'python3 scripts/render_world_class_operator_runbook.py . --generated-at "$GENERATED_AT"',
'python3 scripts/render_world_class_claim_guard.py . --generated-at "$GENERATED_AT"',
'python3 scripts/render_daily_skillops_report.py . --generated-at "$GENERATED_AT"',
'python3 scripts/render_skill_os2_audit.py . --generated-at "$GENERATED_AT"',
'python3 scripts/render_skill_os2_coverage.py . --generated-at "$GENERATED_AT"',
'python3 scripts/render_context_reports.py --generated-at "$GENERATED_AT"',
@@ -45,6 +46,7 @@ SOURCE_REFRESH_REPORT_COMMANDS = [
CLEAN_LOCK_REPORT_COMMANDS = [
'python3 scripts/render_context_reports.py --generated-at "$GENERATED_AT"',
'python3 scripts/render_benchmark_reproducibility.py . --generated-at "$GENERATED_AT"',
'python3 scripts/render_daily_skillops_report.py . --generated-at "$GENERATED_AT"',
"python3 scripts/render_skill_overview.py .",
"python3 scripts/render_skill_interpretation.py .",
"python3 scripts/render_review_viewer.py .",
@@ -116,6 +118,7 @@ def build_release_evidence_flow_check(skill_dir: Path) -> dict[str, Any]:
"reports/skill-interpretation.json",
"reports/review-viewer.json",
"reports/world_class_evidence_preflight.json",
"reports/skillops/daily",
"reports/review-studio.json",
"reports/evidence_consistency.json",
],
+455
View File
@@ -0,0 +1,455 @@
#!/usr/bin/env python3
import argparse
import json
from datetime import date, datetime, timezone
from pathlib import Path
from tempfile import TemporaryDirectory
from typing import Any
from propose_adaptation import build_report as build_proposal_report
from propose_adaptation import render_markdown as render_proposals_markdown
from summarize_user_signals import build_report as build_pattern_report
from summarize_user_signals import render_markdown as render_patterns_markdown
ROOT = Path(__file__).resolve().parent.parent
SCRIPT_INTERFACE = "cli"
SCRIPT_INTERFACE_REASON = "Renders a Daily SkillOps report that summarizes explicit-source patterns, proposals, approval state, and release evidence without scanning private logs or applying patches."
SUMMARY_FIELDS = [
"decision",
"source_supplied",
"pattern_count",
"proposal_count",
"approval_count",
"pending_review_count",
"applied_count",
"rollback_count",
"local_blueprint_ready",
"public_world_class_ready",
"world_class_pending_count",
"release_lock_ready",
"evidence_consistency_ok",
"writes_source_files",
"auto_patch_enabled",
"failure_count",
]
def utc_now() -> str:
return datetime.now(timezone.utc).replace(microsecond=0).isoformat().replace("+00:00", "Z")
def report_date(generated_at: str) -> str:
if len(generated_at) >= 10:
candidate = generated_at[:10]
try:
date.fromisoformat(candidate)
return candidate
except ValueError:
pass
return date.today().isoformat()
def display_path(path: Path, root: Path) -> str:
try:
return str(path.resolve().relative_to(root.resolve()))
except ValueError:
return f"[external-explicit-source]/{path.name}"
def resolve_output(skill_dir: Path, value: str) -> Path:
path = Path(value)
return path if path.is_absolute() else skill_dir / path
def load_json(path: Path) -> dict[str, Any]:
if not path.exists():
return {}
try:
payload = json.loads(path.read_text(encoding="utf-8"))
except json.JSONDecodeError:
return {}
return payload if isinstance(payload, dict) else {}
def write_json(path: Path, payload: dict[str, Any]) -> None:
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text(json.dumps(payload, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
def write_text(path: Path, text: str) -> None:
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text(text, encoding="utf-8")
def default_daily_path(skill_dir: Path, generated_at: str, suffix: str) -> Path:
return skill_dir / "reports" / "skillops" / "daily" / f"{report_date(generated_at)}.{suffix}"
def source_summary(patterns: dict[str, Any]) -> dict[str, Any]:
source = patterns.get("source", {}) if isinstance(patterns.get("source"), dict) else {}
privacy = patterns.get("privacy_contract", {}) if isinstance(patterns.get("privacy_contract"), dict) else {}
return {
"path": source.get("path", ""),
"fingerprint_sha256": source.get("fingerprint_sha256", ""),
"record_count": source.get("record_count", 0),
"explicit_source": privacy.get("explicit_source_required") is True,
"raw_content_stored": privacy.get("raw_content_stored") is True,
"redacted_excerpts_only": privacy.get("redacted_excerpts_only") is True,
}
def compact_proposals(proposals: dict[str, Any]) -> list[dict[str, Any]]:
rows = []
for item in proposals.get("proposals", []):
if not isinstance(item, dict):
continue
rows.append(
{
"proposal_id": item.get("proposal_id", ""),
"pattern_id": item.get("pattern_id", ""),
"title": item.get("title", ""),
"risk_level": item.get("risk_level", ""),
"status": item.get("status", ""),
"requires_approval": item.get("requires_approval") is True,
"target_files": item.get("target_files", []),
"verification_commands": item.get("verification_commands", []),
}
)
return rows
def build_actions(summary: dict[str, Any], proposal_rows: list[dict[str, Any]]) -> list[dict[str, str]]:
actions: list[dict[str, str]] = []
if summary["source_supplied"] is False and summary["pattern_count"] == 0:
actions.append(
{
"key": "provide-explicit-source",
"priority": "medium",
"action": "Run daily-skillops with --source pointing to a curated JSONL or Markdown conversation summary.",
}
)
if proposal_rows:
actions.append(
{
"key": "review-adaptation-proposals",
"priority": "high",
"action": "Review proposal-only adaptation items before preparing any approval ledger entry.",
}
)
if summary["pending_review_count"]:
actions.append(
{
"key": "resolve-pending-approvals",
"priority": "high",
"action": "Approve, reject, or expire pending adaptive approval ledger entries before applying patches.",
}
)
if summary["world_class_pending_count"]:
actions.append(
{
"key": "close-world-class-evidence",
"priority": "high",
"action": "Collect accepted external or human evidence for the pending world-class ledger entries.",
}
)
if summary["evidence_consistency_ok"] is not True:
actions.append(
{
"key": "refresh-evidence-consistency",
"priority": "high",
"action": "Regenerate evidence-consistency before using this report for release decisions.",
}
)
if not actions:
actions.append(
{
"key": "monitor",
"priority": "low",
"action": "No action required beyond routine daily monitoring.",
}
)
return actions
def build_report(
skill_dir: Path,
generated_at: str,
source: Path | None = None,
min_support: int = 2,
allow_history_source: bool = False,
patterns_json: Path | None = None,
proposals_json: Path | None = None,
write_source_reports: bool = True,
) -> dict[str, Any]:
skill_dir = skill_dir.resolve()
reports = skill_dir / "reports"
patterns_path = resolve_output(skill_dir, str(patterns_json or "reports/user_patterns.json"))
proposals_path = resolve_output(skill_dir, str(proposals_json or "reports/adaptation_proposals.json"))
failures: list[str] = []
if source is not None:
pattern_report = build_pattern_report(
skill_dir,
source,
min_support=max(2, min_support),
generated_at=generated_at,
allow_history_source=allow_history_source,
)
if pattern_report.get("ok") is True and write_source_reports:
pattern_report["artifacts"] = {
"json": display_path(patterns_path, skill_dir),
"markdown": display_path(patterns_path.with_suffix(".md"), skill_dir),
}
write_json(patterns_path, pattern_report)
write_text(patterns_path.with_suffix(".md"), render_patterns_markdown(pattern_report))
else:
failures.extend(pattern_report.get("failures", []))
else:
pattern_report = load_json(patterns_path)
if pattern_report and pattern_report.get("ok") is True:
proposal_source_path = patterns_path
with TemporaryDirectory() as temp_dir:
if source is not None and not write_source_reports:
proposal_source_path = Path(temp_dir) / "user_patterns.json"
write_json(proposal_source_path, pattern_report)
proposal_report = build_proposal_report(skill_dir, proposal_source_path, generated_at)
if proposal_report.get("ok") is True and write_source_reports:
proposal_report["artifacts"] = {
"json": display_path(proposals_path, skill_dir),
"markdown": display_path(proposals_path.with_suffix(".md"), skill_dir),
}
write_json(proposals_path, proposal_report)
write_text(proposals_path.with_suffix(".md"), render_proposals_markdown(proposal_report))
elif proposal_report.get("ok") is not True:
failures.extend(proposal_report.get("failures", []))
else:
proposal_report = load_json(proposals_path)
if source is not None and not pattern_report:
failures.append("Pattern report could not be built from the explicit source.")
approval = load_json(reports / "adaptation_approval_ledger.json")
regression = load_json(reports / "adaptation_regression_report.json")
coverage = load_json(reports / "skill_os2_coverage.json")
ledger = load_json(reports / "world_class_evidence_ledger.json")
consistency = load_json(reports / "evidence_consistency.json")
benchmark = load_json(reports / "benchmark_reproducibility.json")
pattern_summary = pattern_report.get("summary", {}) if isinstance(pattern_report.get("summary"), dict) else {}
proposal_summary = proposal_report.get("summary", {}) if isinstance(proposal_report.get("summary"), dict) else {}
approval_summary = approval.get("summary", {}) if isinstance(approval.get("summary"), dict) else {}
regression_summary = regression.get("summary", {}) if isinstance(regression.get("summary"), dict) else {}
coverage_summary = coverage.get("summary", {}) if isinstance(coverage.get("summary"), dict) else {}
ledger_summary = ledger.get("summary", {}) if isinstance(ledger.get("summary"), dict) else {}
benchmark_summary = benchmark.get("summary", {}) if isinstance(benchmark.get("summary"), dict) else {}
proposal_contract = proposal_report.get("proposal_contract", {}) if isinstance(proposal_report.get("proposal_contract"), dict) else {}
proposal_rows = compact_proposals(proposal_report)
failure_count = len(failures)
summary = {
"decision": "blocked" if failure_count else "proposal-review" if proposal_rows else "monitor",
"source_supplied": source is not None,
"pattern_count": int(pattern_summary.get("pattern_count", 0) or 0),
"proposal_count": int(proposal_summary.get("proposal_count", 0) or len(proposal_rows)),
"approval_count": int(approval_summary.get("approval_count", 0) or 0),
"pending_review_count": int(approval_summary.get("pending_review_count", 0) or 0),
"applied_count": int(approval_summary.get("applied_count", 0) or regression_summary.get("applied_count", 0) or 0),
"rollback_count": int(approval_summary.get("rollback_count", 0) or regression_summary.get("rollback_count", 0) or 0),
"local_blueprint_ready": coverage_summary.get("local_blueprint_ready") is True,
"public_world_class_ready": coverage_summary.get("public_world_class_ready") is True,
"world_class_pending_count": int(ledger_summary.get("pending_count", coverage_summary.get("world_class_evidence_pending_count", 0)) or 0),
"release_lock_ready": benchmark_summary.get("release_lock_ready") is True,
"evidence_consistency_ok": consistency.get("ok") is True,
"writes_source_files": False,
"auto_patch_enabled": False,
"failure_count": failure_count,
}
actions = build_actions(summary, proposal_rows)
operations_contract = {
"schema_version": "1.0",
"contract": "daily-skillops-report",
"explicit_source_required_for_scan": True,
"implicit_private_log_scan": False,
"raw_content_stored": False,
"redacted_excerpts_only": True,
"proposal_only": proposal_contract.get("proposal_only") is not False,
"approval_required_for_writes": True,
"writes_source_files": False,
"auto_patch_enabled": False,
"daily_report_counts_as_world_class_evidence": False,
}
report = {
"schema_version": "1.0",
"ok": failure_count == 0,
"generated_at": generated_at,
"skill_dir": display_path(skill_dir, skill_dir),
**{key: summary[key] for key in SUMMARY_FIELDS},
"summary": summary,
"operations_contract": operations_contract,
"report_contract": {
"schema_version": "1.0",
"contract": "daily-skillops-report",
"top_level_mirrors_summary": True,
"summary_fields": SUMMARY_FIELDS,
"source_of_truth": ["summary", "operations_contract"],
},
"source": source_summary(pattern_report) if pattern_report else {},
"patterns": pattern_report.get("patterns", []) if isinstance(pattern_report.get("patterns"), list) else [],
"proposals": proposal_rows,
"approval": {
"approval_count": summary["approval_count"],
"pending_review_count": summary["pending_review_count"],
"applied_count": summary["applied_count"],
"rollback_count": summary["rollback_count"],
},
"release_state": {
"local_blueprint_ready": summary["local_blueprint_ready"],
"public_world_class_ready": summary["public_world_class_ready"],
"world_class_pending_count": summary["world_class_pending_count"],
"release_lock_ready": summary["release_lock_ready"],
"evidence_consistency_ok": summary["evidence_consistency_ok"],
},
"actions": actions,
"failures": failures,
"source_reports": {
"patterns": display_path(patterns_path, skill_dir),
"proposals": display_path(proposals_path, skill_dir),
"approval_ledger": "reports/adaptation_approval_ledger.json",
"regression": "reports/adaptation_regression_report.json",
"skill_os2_coverage": "reports/skill_os2_coverage.json",
"world_class_ledger": "reports/world_class_evidence_ledger.json",
"evidence_consistency": "reports/evidence_consistency.json",
"benchmark_reproducibility": "reports/benchmark_reproducibility.json",
},
"artifacts": {
"json": str(default_daily_path(skill_dir, generated_at, "json").relative_to(skill_dir)),
"markdown": str(default_daily_path(skill_dir, generated_at, "md").relative_to(skill_dir)),
},
}
return report
def render_markdown(report: dict[str, Any]) -> str:
summary = report["summary"]
lines = [
"# Daily SkillOps Report",
"",
f"Generated at: `{report['generated_at']}`",
"",
"## Summary",
"",
f"- decision: `{summary['decision']}`",
f"- source supplied: `{str(summary['source_supplied']).lower()}`",
f"- patterns: `{summary['pattern_count']}`",
f"- proposals: `{summary['proposal_count']}`",
f"- pending approvals: `{summary['pending_review_count']}`",
f"- applied patches: `{summary['applied_count']}`",
f"- rollbacks: `{summary['rollback_count']}`",
f"- local blueprint ready: `{str(summary['local_blueprint_ready']).lower()}`",
f"- public world-class ready: `{str(summary['public_world_class_ready']).lower()}`",
f"- world-class pending: `{summary['world_class_pending_count']}`",
f"- release lock ready: `{str(summary['release_lock_ready']).lower()}`",
f"- evidence consistency ok: `{str(summary['evidence_consistency_ok']).lower()}`",
"",
"This report is an operations cockpit for explicit-source SkillOps. It does not scan private logs, write source files, apply patches, or count as world-class external or human evidence.",
"",
"## Privacy Boundary",
"",
]
contract = report["operations_contract"]
for key in [
"explicit_source_required_for_scan",
"implicit_private_log_scan",
"raw_content_stored",
"redacted_excerpts_only",
"proposal_only",
"approval_required_for_writes",
"writes_source_files",
"auto_patch_enabled",
"daily_report_counts_as_world_class_evidence",
]:
lines.append(f"- {key}: `{str(contract[key]).lower()}`")
lines.extend(["", "## Actions", ""])
for action in report["actions"]:
lines.append(f"- `{action['priority']}` {action['action']}")
lines.extend(["", "## Patterns", ""])
patterns = report.get("patterns", [])
if not patterns:
lines.append("- No repeated pattern met the support threshold.")
for pattern in patterns:
lines.append(
f"- `{pattern.get('pattern_id', '')}`: {pattern.get('label', '')} "
f"(support `{pattern.get('support_count', 0)}`, confidence `{pattern.get('confidence', '')}`)"
)
lines.extend(["", "## Proposals", ""])
proposals = report.get("proposals", [])
if not proposals:
lines.append("- No adaptation proposals are waiting for review.")
for proposal in proposals:
lines.extend(
[
f"### {proposal['title']}",
"",
f"- ID: `{proposal['proposal_id']}`",
f"- Pattern: `{proposal['pattern_id']}`",
f"- Status: `{proposal['status']}`",
f"- Risk: `{proposal['risk_level']}`",
f"- Requires approval: `{str(proposal['requires_approval']).lower()}`",
"- Target files:",
]
)
lines.extend(f" - `{path}`" for path in proposal.get("target_files", []))
lines.append("- Verification:")
lines.extend(f" - `{command}`" for command in proposal.get("verification_commands", []))
lines.append("")
lines.extend(["## Evidence", ""])
for label, path in report["source_reports"].items():
lines.append(f"- {label}: `{path}`")
if report["failures"]:
lines.extend(["", "## Failures", ""])
lines.extend(f"- {failure}" for failure in report["failures"])
return "\n".join(lines).rstrip() + "\n"
def main() -> None:
parser = argparse.ArgumentParser(description="Render a Daily SkillOps report from explicit-source adaptive evidence.")
parser.add_argument("skill_dir", nargs="?", default=".")
parser.add_argument("--source", help="Explicit curated source file to scan before rendering the daily report.")
parser.add_argument("--patterns-json", default="reports/user_patterns.json")
parser.add_argument("--proposals-json", default="reports/adaptation_proposals.json")
parser.add_argument("--output-json")
parser.add_argument("--output-md")
parser.add_argument("--min-support", type=int, default=2)
parser.add_argument("--generated-at", default=utc_now())
parser.add_argument("--allow-history-source", action="store_true")
parser.add_argument("--no-refresh-source-reports", action="store_true")
args = parser.parse_args()
skill_dir = Path(args.skill_dir).resolve()
report = build_report(
skill_dir,
args.generated_at,
source=Path(args.source) if args.source else None,
min_support=args.min_support,
allow_history_source=args.allow_history_source,
patterns_json=Path(args.patterns_json),
proposals_json=Path(args.proposals_json),
write_source_reports=not args.no_refresh_source_reports,
)
output_json = resolve_output(skill_dir, args.output_json) if args.output_json else default_daily_path(skill_dir, args.generated_at, "json")
output_md = resolve_output(skill_dir, args.output_md) if args.output_md else default_daily_path(skill_dir, args.generated_at, "md")
report["artifacts"] = {
"json": display_path(output_json, skill_dir),
"markdown": display_path(output_md, skill_dir),
}
write_json(output_json, report)
write_text(output_md, render_markdown(report))
print(json.dumps(report, ensure_ascii=False, indent=2))
if not report["ok"]:
raise SystemExit(2)
if __name__ == "__main__":
main()
+40 -1
View File
@@ -55,6 +55,24 @@ def paths_exist(skill_dir: Path, paths: list[str]) -> bool:
return all((skill_dir / item).exists() for item in paths)
def latest_daily_skillops_paths(skill_dir: Path) -> list[str]:
base_paths = [
"scripts/render_daily_skillops_report.py",
"tests/verify_daily_skillops.py",
]
daily_dir = skill_dir / "reports" / "skillops" / "daily"
daily_json_reports = sorted(daily_dir.glob("*.json")) if daily_dir.exists() else []
if not daily_json_reports:
return [
*base_paths,
"reports/skillops/daily/YYYY-MM-DD.json",
"reports/skillops/daily/YYYY-MM-DD.md",
]
latest_json = daily_json_reports[-1]
latest_md = latest_json.with_suffix(".md")
return [*base_paths, rel_path(latest_json, skill_dir), rel_path(latest_md, skill_dir)]
def condition_status(condition: bool, evidence_items: list[dict[str, Any]]) -> str:
if not all_exist(evidence_items):
return "missing"
@@ -387,6 +405,26 @@ def build_coverage(skill_dir: Path, generated_at: str) -> dict[str, Any]:
skill_dir=skill_dir,
)
)
daily_skillops_paths = latest_daily_skillops_paths(skill_dir)
daily_skillops_ready = paths_exist(skill_dir, daily_skillops_paths)
daily_skillops_status = "covered" if daily_skillops_ready else "partial"
extension_tracks.append(
build_extension_track(
key="daily-skillops-report",
label="Daily SkillOps Report",
status=daily_skillops_status,
objective="Daily operations layer summarizes explicit-source conversation patterns, proposal-only adaptation work, approval state, release locks, and world-class evidence gaps.",
current=(
"Daily SkillOps report is a CLI-backed, explicit-source operations cockpit with tests and committed dated evidence."
if daily_skillops_ready
else "Adaptive scan/propose exists, but the daily operations report is not fully wired into scripts, tests, and evidence artifacts."
),
target="Generate reports/skillops/daily/YYYY-MM-DD.* from explicit sources without private log scanning, source writes, auto-patching, or world-class overclaiming.",
artifact_paths=daily_skillops_paths,
next_action="Keep Daily SkillOps report aligned with proposal, approval, coverage, and world-class ledger contracts as the operations layer evolves.",
skill_dir=skill_dir,
)
)
extension_counts: dict[str, int] = {}
for item in extension_tracks:
extension_counts[item["status"]] = extension_counts.get(item["status"], 0) + 1
@@ -429,7 +467,7 @@ def build_coverage(skill_dir: Path, generated_at: str) -> dict[str, Any]:
"next_highest_leverage": [
"Close the four world-class evidence ledger entries with accepted human or external evidence.",
"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.",
"Use Daily SkillOps with explicit curated sources to review adaptation proposals without scanning private logs or auto-patching.",
"Keep the blueprint coverage report in CI so 2.0 plan drift is visible.",
],
"source_blueprint": {
@@ -440,6 +478,7 @@ def build_coverage(skill_dir: Path, generated_at: str) -> dict[str, Any]:
"reference_extensions": [
"Skill interpretation report",
"Adaptive self-iteration with local preference memory and approval gates",
"Daily SkillOps operations report",
],
},
"artifacts": {
+1 -1
View File
@@ -10,7 +10,7 @@ from yao_cli_config import (
resolve_promotion_target,
resolve_target,
)
from yao_cli_adaptation_commands import command_adapt_apply, command_adapt_propose, command_adapt_scan
from yao_cli_adaptation_commands import command_adapt_apply, command_adapt_propose, command_adapt_scan, command_daily_skillops
from yao_cli_create_commands import command_init, command_quickstart
from yao_cli_distribution_commands import (
command_compile_skill,
+26
View File
@@ -77,3 +77,29 @@ def command_adapt_apply(args: argparse.Namespace) -> int:
result = run_script("apply_adaptation.py", cmd)
print(json.dumps(result["payload"] if result["payload"] is not None else result, ensure_ascii=False, indent=2))
return 0 if result["ok"] else 2
def command_daily_skillops(args: argparse.Namespace) -> int:
skill_dir = str(Path(args.skill_dir).resolve())
cmd = [skill_dir]
if args.source:
cmd.extend(["--source", args.source])
if args.patterns_json:
cmd.extend(["--patterns-json", args.patterns_json])
if args.proposals_json:
cmd.extend(["--proposals-json", args.proposals_json])
if args.output_json:
cmd.extend(["--output-json", args.output_json])
if args.output_md:
cmd.extend(["--output-md", args.output_md])
if args.min_support is not None:
cmd.extend(["--min-support", str(args.min_support)])
if args.generated_at:
cmd.extend(["--generated-at", args.generated_at])
if args.allow_history_source:
cmd.append("--allow-history-source")
if args.no_refresh_source_reports:
cmd.append("--no-refresh-source-reports")
result = run_script("render_daily_skillops_report.py", cmd)
print(json.dumps(result["payload"] if result["payload"] is not None else result, ensure_ascii=False, indent=2))
return 0 if result["ok"] else 2
+16
View File
@@ -459,6 +459,22 @@ def build_parser(command_handlers: dict[str, Callable[[argparse.Namespace], int]
adapt_apply_cmd.set_defaults(rollback_on_failure=True)
adapt_apply_cmd.set_defaults(func=_handler(command_handlers, "command_adapt_apply"))
daily_skillops_cmd = subparsers.add_parser(
"daily-skillops",
help="Render a Daily SkillOps report from explicit-source adaptive evidence without scanning private logs or applying patches.",
)
daily_skillops_cmd.add_argument("skill_dir", nargs="?", default=".")
daily_skillops_cmd.add_argument("--source")
daily_skillops_cmd.add_argument("--patterns-json", default="reports/user_patterns.json")
daily_skillops_cmd.add_argument("--proposals-json", default="reports/adaptation_proposals.json")
daily_skillops_cmd.add_argument("--output-json")
daily_skillops_cmd.add_argument("--output-md")
daily_skillops_cmd.add_argument("--min-support", type=int, default=2)
daily_skillops_cmd.add_argument("--generated-at")
daily_skillops_cmd.add_argument("--allow-history-source", action="store_true")
daily_skillops_cmd.add_argument("--no-refresh-source-reports", action="store_true")
daily_skillops_cmd.set_defaults(func=_handler(command_handlers, "command_daily_skillops"))
adoption_drift_cmd = subparsers.add_parser(
"adoption-drift",
help="Render local-first metadata-only adoption and drift telemetry for a skill package.",
+2
View File
@@ -76,6 +76,7 @@ def command_report(args: argparse.Namespace) -> int:
run_script("render_world_class_submission_review.py", [str(ROOT)]),
run_script("render_world_class_operator_runbook.py", [str(ROOT)]),
run_script("render_world_class_claim_guard.py", [str(ROOT)]),
run_script("render_daily_skillops_report.py", [str(ROOT)]),
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)]),
@@ -120,6 +121,7 @@ def command_report(args: argparse.Namespace) -> int:
"world_class_submission_review": "reports/world_class_submission_review.json",
"world_class_operator_runbook": "reports/world_class_operator_runbook.json",
"world_class_claim_guard": "reports/world_class_claim_guard.json",
"daily_skillops": "reports/skillops/daily",
"skill_os2_coverage": "reports/skill_os2_coverage.json",
"benchmark_reproducibility": "reports/benchmark_reproducibility.json",
"skill_overview": "reports/skill-overview.json",
+1
View File
@@ -59,6 +59,7 @@
"scripts/render_baseline_compare.py",
"scripts/render_benchmark_reproducibility.py",
"scripts/render_context_reports.py",
"scripts/render_daily_skillops_report.py",
"scripts/render_description_drift_history.py",
"scripts/render_eval_dashboard.py",
"scripts/render_evidence_consistency.py",
+236
View File
@@ -0,0 +1,236 @@
#!/usr/bin/env python3
import json
import shutil
import subprocess
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent
SCRIPT = ROOT / "scripts" / "render_daily_skillops_report.py"
CLI = ROOT / "scripts" / "yao.py"
TMP = ROOT / "tests" / "tmp_daily_skillops"
def run_command(*args: str) -> subprocess.CompletedProcess[str]:
return subprocess.run(
[sys.executable, *args],
cwd=ROOT,
capture_output=True,
text=True,
)
def write_json(path: Path, payload: dict) -> None:
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text(json.dumps(payload, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
def seed_release_reports(skill_dir: Path) -> None:
reports = skill_dir / "reports"
write_json(
reports / "skill_os2_coverage.json",
{
"ok": True,
"summary": {
"local_blueprint_ready": True,
"public_world_class_ready": False,
"world_class_evidence_pending_count": 4,
},
},
)
write_json(
reports / "world_class_evidence_ledger.json",
{
"ok": True,
"summary": {
"pending_count": 4,
"accepted_count": 0,
"ready_to_claim_world_class": False,
},
},
)
write_json(reports / "evidence_consistency.json", {"ok": True, "checks": [{"status": "pass"}]})
write_json(reports / "benchmark_reproducibility.json", {"ok": True, "summary": {"release_lock_ready": True}})
write_json(
reports / "adaptation_approval_ledger.json",
{
"ok": True,
"summary": {
"approval_count": 1,
"pending_review_count": 1,
"applied_count": 0,
"rollback_count": 0,
},
},
)
write_json(
reports / "adaptation_regression_report.json",
{
"ok": True,
"summary": {
"attempt_count": 1,
"dry_run_count": 1,
"applied_count": 0,
"rollback_count": 0,
},
},
)
def write_signal_source(path: Path) -> None:
path.write_text(
"\n".join(
[
json.dumps({"text": "报告默认中文简体,同时右上角提供英文切换;敏感内容 token=abc123456789、sk-1234567890abcdef 和 /Users/laoyao/private/path 必须脱敏。"}, ensure_ascii=False),
json.dumps({"message": "新的 HTML 报告要双语,但默认中文简体。"}, ensure_ascii=False),
json.dumps({"content": "报告 UI 需要 Kami 白底排版、图表模块和清晰导航。"}, ensure_ascii=False),
json.dumps({"excerpt": "HTML 报告还是白底 Kami 风格,图表不要挤在一起。"}, ensure_ascii=False),
json.dumps({"note": "不要自动扫描私人日志;必须由用户提供明确路径。"}, ensure_ascii=False),
json.dumps({"body": "自适应升级需要先输出提案,授权后再修改,并能回滚。"}, ensure_ascii=False),
json.dumps({"text": "每次升级都要有测试、证据报告和 GitHub push。"}, ensure_ascii=False),
json.dumps({"text": "敏感内容也不能直接进入公开日报。"}, ensure_ascii=False),
]
)
+ "\n",
encoding="utf-8",
)
def assert_daily_contract(payload: dict) -> None:
assert payload["schema_version"] == "1.0", payload
assert payload["ok"] is True, payload
assert payload["report_contract"]["contract"] == "daily-skillops-report", payload
assert payload["report_contract"]["top_level_mirrors_summary"] is True, payload
for field in payload["report_contract"]["summary_fields"]:
assert payload[field] == payload["summary"][field], (field, payload.get(field), payload["summary"].get(field))
contract = payload["operations_contract"]
assert contract["explicit_source_required_for_scan"] is True, payload
assert contract["implicit_private_log_scan"] is False, payload
assert contract["raw_content_stored"] is False, payload
assert contract["redacted_excerpts_only"] is True, payload
assert contract["proposal_only"] is True, payload
assert contract["approval_required_for_writes"] is True, payload
assert contract["writes_source_files"] is False, payload
assert contract["auto_patch_enabled"] is False, payload
assert contract["daily_report_counts_as_world_class_evidence"] is False, payload
def main() -> None:
shutil.rmtree(TMP, ignore_errors=True)
skill_dir = TMP / "daily-skillops-demo"
skill_dir.mkdir(parents=True)
seed_release_reports(skill_dir)
source = TMP / "curated-signals.jsonl"
write_signal_source(source)
source_before = source.read_text(encoding="utf-8")
output_json = skill_dir / "reports" / "skillops" / "daily" / "2026-06-16.json"
output_md = skill_dir / "reports" / "skillops" / "daily" / "2026-06-16.md"
proc = run_command(
str(SCRIPT),
str(skill_dir),
"--source",
str(source),
"--output-json",
str(output_json),
"--output-md",
str(output_md),
"--generated-at",
"2026-06-16T08:00:00Z",
)
assert proc.returncode == 0, proc.stderr
payload = json.loads(proc.stdout)
assert_daily_contract(payload)
assert payload["summary"]["source_supplied"] is True, payload
assert payload["summary"]["pattern_count"] >= 4, payload
assert payload["summary"]["proposal_count"] >= 4, payload
assert payload["summary"]["pending_review_count"] == 1, payload
assert payload["summary"]["world_class_pending_count"] == 4, payload
assert payload["summary"]["public_world_class_ready"] is False, payload
assert payload["summary"]["release_lock_ready"] is True, payload
assert payload["summary"]["evidence_consistency_ok"] is True, payload
action_keys = {item["key"] for item in payload["actions"]}
assert {"review-adaptation-proposals", "resolve-pending-approvals", "close-world-class-evidence"} <= action_keys, payload
assert output_json.exists(), output_json
assert output_md.exists(), output_md
assert (skill_dir / "reports" / "user_patterns.json").exists(), skill_dir
assert (skill_dir / "reports" / "adaptation_proposals.json").exists(), skill_dir
assert source.read_text(encoding="utf-8") == source_before, source
serialized = json.dumps(payload, ensure_ascii=False)
assert "sk-1234567890abcdef" not in serialized, serialized
assert "token=abc123456789" not in serialized, serialized
assert "/Users/laoyao/private" not in serialized, serialized
assert "[REDACTED_SECRET]" in serialized, serialized
assert "[LOCAL_PATH]" in serialized, serialized
markdown = output_md.read_text(encoding="utf-8")
assert "Daily SkillOps Report" in markdown, markdown
assert "does not scan private logs" in markdown, markdown
assert "daily_report_counts_as_world_class_evidence: `false`" in markdown, markdown
cli_dir = TMP / "cli-daily-skillops-demo"
cli_dir.mkdir(parents=True)
seed_release_reports(cli_dir)
cli_output_json = cli_dir / "reports" / "skillops" / "daily" / "cli.json"
cli_output_md = cli_dir / "reports" / "skillops" / "daily" / "cli.md"
cli_proc = run_command(
str(CLI),
"daily-skillops",
str(cli_dir),
"--source",
str(source),
"--output-json",
str(cli_output_json),
"--output-md",
str(cli_output_md),
"--generated-at",
"2026-06-16T08:00:00Z",
)
assert cli_proc.returncode == 0, cli_proc.stderr
cli_payload = json.loads(cli_proc.stdout)
assert_daily_contract(cli_payload)
assert cli_payload["summary"]["proposal_count"] >= 4, cli_payload
assert cli_output_json.exists(), cli_output_json
assert cli_output_md.exists(), cli_output_md
history_source = TMP / ".zsh_history"
history_source.write_text("报告默认中文\n报告默认中文\n", encoding="utf-8")
history_proc = run_command(str(SCRIPT), str(skill_dir), "--source", str(history_source))
assert history_proc.returncode == 2, history_proc.stdout
history_payload = json.loads(history_proc.stdout)
assert history_payload["ok"] is False, history_payload
assert any("Refusing private history source" in item for item in history_payload["failures"]), history_payload
no_refresh_dir = TMP / "no-refresh-daily-skillops-demo"
no_refresh_dir.mkdir(parents=True)
seed_release_reports(no_refresh_dir)
write_json(
no_refresh_dir / "reports" / "user_patterns.json",
{"ok": True, "summary": {"pattern_count": 0}, "patterns": []},
)
no_refresh_output_json = no_refresh_dir / "reports" / "skillops" / "daily" / "no-refresh.json"
no_refresh_proc = run_command(
str(SCRIPT),
str(no_refresh_dir),
"--source",
str(source),
"--no-refresh-source-reports",
"--output-json",
str(no_refresh_output_json),
"--generated-at",
"2026-06-16T08:00:00Z",
)
assert no_refresh_proc.returncode == 0, no_refresh_proc.stderr
no_refresh_payload = json.loads(no_refresh_proc.stdout)
assert_daily_contract(no_refresh_payload)
assert no_refresh_payload["summary"]["source_supplied"] is True, no_refresh_payload
assert no_refresh_payload["summary"]["pattern_count"] >= 4, no_refresh_payload
assert no_refresh_payload["summary"]["proposal_count"] >= 4, no_refresh_payload
assert not (no_refresh_dir / "reports" / "adaptation_proposals.json").exists(), no_refresh_dir
print(json.dumps({"ok": True}, ensure_ascii=False, indent=2))
if __name__ == "__main__":
main()
+27 -5
View File
@@ -44,10 +44,10 @@ def main() -> None:
assert summary["pass_count"] == 21, summary
assert summary["warn_count"] == 0, summary
assert summary["missing_count"] == 0, summary
assert summary["extension_track_count"] == 2, summary
assert summary["extension_track_count"] == 3, summary
assert summary["extension_partial_count"] == 0, summary
assert summary["extension_planned_count"] == 0, summary
assert summary["extension_covered_count"] == 2, summary
assert summary["extension_covered_count"] == 3, summary
assert summary["adaptive_extension_ready"] is True, summary
assert summary["local_blueprint_ready"] is True, summary
assert summary["public_world_class_ready"] is False, summary
@@ -88,10 +88,11 @@ def main() -> None:
assert any(entry["path"] == "reports/benchmark_reproducibility.json" and entry["exists"] for entry in prs["benchmark-methodology"]["evidence"])
assert payload["source_blueprint"]["core_module_count"] == 8, payload
assert payload["source_blueprint"]["recommended_pr_count"] == 13, payload
assert payload["source_blueprint"]["reference_extension_count"] == 2, payload
assert payload["source_blueprint"]["reference_extension_count"] == 3, payload
extension_tracks = {item["key"]: item for item in payload["reference_extension_tracks"]}
assert extension_tracks["skill-interpretation-report"]["status"] == "covered", extension_tracks
assert extension_tracks["adaptive-self-iteration"]["status"] == "covered", extension_tracks
assert extension_tracks["daily-skillops-report"]["status"] == "covered", extension_tracks
assert any(
entry["path"] == "reports/skill-overview.html" and entry["exists"]
for entry in extension_tracks["skill-interpretation-report"]["evidence"]
@@ -120,14 +121,34 @@ def main() -> None:
entry["path"] == "reports/adaptation_regression_report.json" and entry["exists"]
for entry in extension_tracks["adaptive-self-iteration"]["evidence"]
), extension_tracks["adaptive-self-iteration"]
assert any(
entry["path"] == "scripts/render_daily_skillops_report.py" and entry["exists"]
for entry in extension_tracks["daily-skillops-report"]["evidence"]
), extension_tracks["daily-skillops-report"]
assert any(
entry["path"] == "tests/verify_daily_skillops.py" and entry["exists"]
for entry in extension_tracks["daily-skillops-report"]["evidence"]
), extension_tracks["daily-skillops-report"]
assert any(
entry["path"].startswith("reports/skillops/daily/")
and entry["path"].endswith(".json")
and entry["exists"]
for entry in extension_tracks["daily-skillops-report"]["evidence"]
), extension_tracks["daily-skillops-report"]
assert any(
entry["path"].startswith("reports/skillops/daily/")
and entry["path"].endswith(".md")
and entry["exists"]
for entry in extension_tracks["daily-skillops-report"]["evidence"]
), extension_tracks["daily-skillops-report"]
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
assert "Daily SkillOps" 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: `2`" in markdown, markdown
assert "extension covered: `3`" in markdown, markdown
assert "extension partial: `0`" in markdown, markdown
assert "## Core Modules" in markdown, markdown
assert "## Recommended PR Coverage" in markdown, markdown
@@ -135,6 +156,7 @@ def main() -> None:
assert "## Reference Extension Tracks" in markdown, markdown
assert "Skill Interpretation Report" in markdown, markdown
assert "Adaptive Self-Iteration" in markdown, markdown
assert "Daily SkillOps Report" in markdown, markdown
assert "user-supplied 2.0 reference plan" in markdown, markdown
assert "`agent-skills-conformance`" not in markdown, markdown
assert "Agent Skills Conformance" in markdown, markdown