Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9f793d59cf | |||
| 5fbed1d273 |
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schema_version": "2.0",
|
||||
"generated_at": "2026-06-13",
|
||||
"generated_at": "2026-06-21",
|
||||
"package_count": 1,
|
||||
"packages": [
|
||||
{
|
||||
@@ -16,7 +16,7 @@
|
||||
"vscode"
|
||||
],
|
||||
"package_metadata": "registry/packages/yao-meta-skill.json",
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
"trust_level": "local",
|
||||
"license": "MIT",
|
||||
"checksums": {
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
"compatibility": {
|
||||
"openai": "pass",
|
||||
@@ -48,10 +48,10 @@
|
||||
},
|
||||
"distribution": {
|
||||
"archive_verified": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"package_verification": "reports/package_verification.json",
|
||||
"install_simulated": true,
|
||||
"install_simulation": "reports/install_simulation.json"
|
||||
},
|
||||
"generated_at": "2026-06-13"
|
||||
"generated_at": "2026-06-21"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20T12:35:26Z",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"source_patterns": "reports/user_patterns.json",
|
||||
"pattern_count": 5,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Adaptation Proposals
|
||||
|
||||
- Generated at: `2026-06-20T12:35:26Z`
|
||||
- Generated at: `2026-06-21`
|
||||
- Pattern report: `reports/user_patterns.json`
|
||||
- Proposal only: `true`
|
||||
- Writes repository files: `false`
|
||||
|
||||
@@ -1,45 +1,27 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"commit": "f37e78def3464bc818429c47e1ecc9e033c7356c",
|
||||
"commit": "139d0fd15ce995757d6d75fb45fb417d0b1b4e7d",
|
||||
"git_status": {
|
||||
"available": true,
|
||||
"dirty": true,
|
||||
"changed_file_count": 71,
|
||||
"changed_file_count": 3,
|
||||
"generated_dirty": true,
|
||||
"generated_changed_file_count": 71,
|
||||
"generated_changed_file_count": 3,
|
||||
"source_dirty": false,
|
||||
"source_changed_file_count": 0,
|
||||
"sample": [
|
||||
" 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/adoption_drift_report.md",
|
||||
" M reports/architecture_maintainability.json",
|
||||
" M reports/architecture_maintainability.md",
|
||||
" M reports/artifact-design-profile.json",
|
||||
" M reports/artifact-design-profile.md",
|
||||
" M reports/benchmark_reproducibility.json",
|
||||
" M reports/benchmark_reproducibility.md"
|
||||
" M reports/context_budget.json",
|
||||
" M reports/context_budget.md",
|
||||
" M reports/context_budget_summary.json"
|
||||
],
|
||||
"source_sample": [],
|
||||
"generated_sample": [
|
||||
" 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/adoption_drift_report.md",
|
||||
" M reports/architecture_maintainability.json",
|
||||
" M reports/architecture_maintainability.md",
|
||||
" M reports/artifact-design-profile.json",
|
||||
" M reports/artifact-design-profile.md",
|
||||
" M reports/benchmark_reproducibility.json",
|
||||
" M reports/benchmark_reproducibility.md"
|
||||
" M reports/context_budget.json",
|
||||
" M reports/context_budget.md",
|
||||
" M reports/context_budget_summary.json"
|
||||
],
|
||||
"generated_dirty_prefixes": [
|
||||
"dist/",
|
||||
@@ -57,9 +39,9 @@
|
||||
"methodology_complete": true,
|
||||
"required_artifact_count": 25,
|
||||
"missing_artifact_count": 0,
|
||||
"evidence_bundle_sha256": "3f7cdbc5e28c338aa681de7729ad6b634f9a8be2f993280f001d399c50bd8ad4",
|
||||
"source_contract_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"evidence_bundle_sha256": "e819a616c7276f6433bbcf38f30696cc0f19b6c035adf5c8cf09e64cbe8db9ad",
|
||||
"source_contract_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"output_case_count": 5,
|
||||
"failure_disclosure_count": 3,
|
||||
"command_count": 23,
|
||||
@@ -82,11 +64,11 @@
|
||||
"public_claim_ready": false,
|
||||
"public_claim_blocker_count": 3,
|
||||
"working_tree_dirty": true,
|
||||
"changed_file_count": 71,
|
||||
"changed_file_count": 3,
|
||||
"source_tree_dirty": false,
|
||||
"source_changed_file_count": 0,
|
||||
"generated_tree_dirty": true,
|
||||
"generated_changed_file_count": 71
|
||||
"generated_changed_file_count": 3
|
||||
},
|
||||
"beta_test_release": {
|
||||
"ready": true,
|
||||
@@ -129,10 +111,10 @@
|
||||
},
|
||||
"release_lock": {
|
||||
"ready": true,
|
||||
"commit": "f37e78def3464bc818429c47e1ecc9e033c7356c",
|
||||
"commit": "139d0fd15ce995757d6d75fb45fb417d0b1b4e7d",
|
||||
"status_scope": "generation-time status before this report is written",
|
||||
"source_changed_file_count": 0,
|
||||
"generated_changed_file_count": 71,
|
||||
"generated_changed_file_count": 3,
|
||||
"reason": "only generated evidence artifacts were dirty at generation time"
|
||||
},
|
||||
"evidence_bundle": {
|
||||
@@ -141,7 +123,7 @@
|
||||
"existing_count": 25,
|
||||
"missing_count": 0,
|
||||
"missing_paths": [],
|
||||
"sha256": "3f7cdbc5e28c338aa681de7729ad6b634f9a8be2f993280f001d399c50bd8ad4"
|
||||
"sha256": "e819a616c7276f6433bbcf38f30696cc0f19b6c035adf5c8cf09e64cbe8db9ad"
|
||||
},
|
||||
"methodology": {
|
||||
"path": "reports/benchmark_methodology.md",
|
||||
@@ -250,7 +232,7 @@
|
||||
"path": "reports/security_trust_report.json",
|
||||
"exists": true,
|
||||
"bytes": 139090,
|
||||
"sha256": "7ae59b7700db912ea4c72a3626d2fab5ee975e264fd067ca1ca6f94ee726c91f"
|
||||
"sha256": "2ef43f009be68b1dd1a994b841d69b89723cf0b6d7725dc6ad86670d14235135"
|
||||
},
|
||||
{
|
||||
"label": "python_compatibility",
|
||||
@@ -264,28 +246,28 @@
|
||||
"path": "reports/registry_audit.json",
|
||||
"exists": true,
|
||||
"bytes": 3137,
|
||||
"sha256": "1c9d988340746f6f00406718f3c6473b440379b8f45190ef51cc9e996e9107b8"
|
||||
"sha256": "03cb951dc8ba71843602bffa1148d7a40095a7e109a024193422aaa8a94ba4c7"
|
||||
},
|
||||
{
|
||||
"label": "package_verification",
|
||||
"path": "reports/package_verification.json",
|
||||
"exists": true,
|
||||
"bytes": 19338,
|
||||
"sha256": "7aa6c25e8154d246ace49f7ab9159fa85f96d1d4ebb7e2bb03c7b223260a908b"
|
||||
"bytes": 19525,
|
||||
"sha256": "e2ad726ce0486be0f57d88e518ef4d265479a04756419c6f8df50cf7d05b1f14"
|
||||
},
|
||||
{
|
||||
"label": "install_simulation",
|
||||
"path": "reports/install_simulation.json",
|
||||
"exists": true,
|
||||
"bytes": 8758,
|
||||
"sha256": "247c037353fe29aa638945a2d5633228e16f30ff44c27ca1a57cb70ccc441359"
|
||||
"bytes": 8793,
|
||||
"sha256": "6cf79201727352e5f92f4e1fa1697a069ab325d526065f5316ee939e84475ef5"
|
||||
},
|
||||
{
|
||||
"label": "skill_os2_audit",
|
||||
"path": "reports/skill_os2_audit.json",
|
||||
"exists": true,
|
||||
"bytes": 13824,
|
||||
"sha256": "80ddfb66a136a52ff9eb9aca2f6a9fe72cb923a066028f0baa9db2c0e03f0689"
|
||||
"sha256": "1079221b5ac72e19e3e7a0f4970f133d828336f34bac82abf3fb867d18834cfa"
|
||||
},
|
||||
{
|
||||
"label": "world_class_evidence_plan",
|
||||
@@ -347,8 +329,8 @@
|
||||
"label": "world_class_claim_guard",
|
||||
"path": "reports/world_class_claim_guard.json",
|
||||
"exists": true,
|
||||
"bytes": 17958,
|
||||
"sha256": "47fae260e9d6d2b7c39685a1e746aa79bf79c1e6b2cd6b6c4fa706f857aa8325"
|
||||
"bytes": 18759,
|
||||
"sha256": "556700f05a65bda9b55d829c109d1aec54ae5b4da80ffbefe1196319df86f117"
|
||||
}
|
||||
],
|
||||
"missing_artifacts": [],
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# Benchmark Reproducibility
|
||||
|
||||
Generated at: `2026-06-20`
|
||||
Commit: `f37e78def3464bc818429c47e1ecc9e033c7356c`
|
||||
Generated at: `2026-06-21`
|
||||
Commit: `139d0fd15ce995757d6d75fb45fb417d0b1b4e7d`
|
||||
Working tree dirty at generation: `true`
|
||||
Source tree dirty at generation: `false`
|
||||
Generated evidence dirty at generation: `true`
|
||||
Evidence bundle SHA256: `3f7cdbc5e28c338aa681de7729ad6b634f9a8be2f993280f001d399c50bd8ad4`
|
||||
Evidence bundle SHA256: `e819a616c7276f6433bbcf38f30696cc0f19b6c035adf5c8cf09e64cbe8db9ad`
|
||||
|
||||
## Summary
|
||||
|
||||
@@ -14,8 +14,8 @@ Evidence bundle SHA256: `3f7cdbc5e28c338aa681de7729ad6b634f9a8be2f993280f001d399
|
||||
- methodology complete: `true`
|
||||
- required artifacts: `25`
|
||||
- missing artifacts: `0`
|
||||
- source contract sha256: `e5b4ffc5c3f9`
|
||||
- archive sha256: `7db44f059844`
|
||||
- source contract sha256: `eddeea80a657`
|
||||
- archive sha256: `c56a8519244c`
|
||||
- output cases: `5`
|
||||
- disclosed failure cases: `3`
|
||||
- reproduction commands: `23`
|
||||
@@ -28,9 +28,9 @@ Evidence bundle SHA256: `3f7cdbc5e28c338aa681de7729ad6b634f9a8be2f993280f001d399
|
||||
- beta deferred evidence: `4`
|
||||
- public claim ready: `false`
|
||||
- public claim blockers: `3`
|
||||
- changed files at generation: `71`
|
||||
- changed files at generation: `3`
|
||||
- source changed files at generation: `0`
|
||||
- generated changed files at generation: `71`
|
||||
- generated changed files at generation: `3`
|
||||
|
||||
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 and dirty samples are generation-time context; the evidence bundle SHA is the durable anchor for the artifacts listed below.
|
||||
|
||||
@@ -74,7 +74,7 @@ This report proves local benchmark reproducibility only. It keeps external provi
|
||||
|
||||
- algorithm: `sha256(path,label,exists,artifact_sha256)`
|
||||
- artifacts: `25` / `25`
|
||||
- sha256: `3f7cdbc5e28c338aa681de7729ad6b634f9a8be2f993280f001d399c50bd8ad4`
|
||||
- sha256: `e819a616c7276f6433bbcf38f30696cc0f19b6c035adf5c8cf09e64cbe8db9ad`
|
||||
|
||||
## Methodology Sections
|
||||
|
||||
@@ -101,12 +101,12 @@ This report proves local benchmark reproducibility only. It keeps external provi
|
||||
| review_adjudication | `reports/output_review_adjudication.json` | present | `91fd88dd9b0f` |
|
||||
| trigger_scorecard | `reports/route_scorecard.json` | present | `a649547a7d3d` |
|
||||
| runtime_conformance | `reports/conformance_matrix.json` | present | `97f9ba949c23` |
|
||||
| trust_report | `reports/security_trust_report.json` | present | `7ae59b7700db` |
|
||||
| trust_report | `reports/security_trust_report.json` | present | `2ef43f009be6` |
|
||||
| python_compatibility | `reports/python_compatibility.json` | present | `7f3fc8e785bf` |
|
||||
| registry_audit | `reports/registry_audit.json` | present | `1c9d98834074` |
|
||||
| package_verification | `reports/package_verification.json` | present | `7aa6c25e8154` |
|
||||
| install_simulation | `reports/install_simulation.json` | present | `247c037353fe` |
|
||||
| skill_os2_audit | `reports/skill_os2_audit.json` | present | `80ddfb66a136` |
|
||||
| registry_audit | `reports/registry_audit.json` | present | `03cb951dc8ba` |
|
||||
| package_verification | `reports/package_verification.json` | present | `e2ad726ce048` |
|
||||
| install_simulation | `reports/install_simulation.json` | present | `6cf792017273` |
|
||||
| skill_os2_audit | `reports/skill_os2_audit.json` | present | `1079221b5ac7` |
|
||||
| world_class_evidence_plan | `reports/world_class_evidence_plan.json` | present | `374ee899a0ba` |
|
||||
| world_class_evidence_ledger | `reports/world_class_evidence_ledger.json` | present | `565ae80a8228` |
|
||||
| world_class_evidence_intake | `reports/world_class_evidence_intake.json` | present | `e36a7e753f41` |
|
||||
@@ -115,7 +115,7 @@ This report proves local benchmark reproducibility only. It keeps external provi
|
||||
| world_class_operator_runbook | `reports/world_class_operator_runbook.json` | present | `d8678010fcfd` |
|
||||
| world_class_operator_runbook_markdown | `reports/world_class_operator_runbook.md` | present | `fe3a73bf2eb9` |
|
||||
| world_class_operator_runbook_html | `reports/world_class_operator_runbook.html` | present | `022594013b24` |
|
||||
| world_class_claim_guard | `reports/world_class_claim_guard.json` | present | `47fae260e9d6` |
|
||||
| world_class_claim_guard | `reports/world_class_claim_guard.json` | present | `556700f05a65` |
|
||||
|
||||
## Reproduction Commands
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-13",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"summary": {
|
||||
"target_count": 5,
|
||||
|
||||
@@ -6,15 +6,15 @@
|
||||
"context_budget_tier": "production",
|
||||
"context_budget_limit": 1000,
|
||||
"skill_body_tokens": 805,
|
||||
"other_text_tokens": 1167829,
|
||||
"other_text_tokens": 1169049,
|
||||
"estimated_initial_load_tokens": 998,
|
||||
"estimated_total_text_tokens": 1168634,
|
||||
"deferred_resource_tokens": 530464,
|
||||
"estimated_total_text_tokens": 1169854,
|
||||
"deferred_resource_tokens": 530871,
|
||||
"deferred_resource_warn_threshold": 120000,
|
||||
"deferred_resource_dirs": [
|
||||
{
|
||||
"path": "scripts",
|
||||
"estimated_tokens": 469161,
|
||||
"estimated_tokens": 469568,
|
||||
"file_count": 155
|
||||
},
|
||||
{
|
||||
@@ -36,7 +36,7 @@
|
||||
"large_deferred_resource_dirs": [
|
||||
{
|
||||
"path": "scripts",
|
||||
"estimated_tokens": 469161,
|
||||
"estimated_tokens": 469568,
|
||||
"file_count": 155
|
||||
}
|
||||
],
|
||||
@@ -59,14 +59,14 @@
|
||||
],
|
||||
"missing": [],
|
||||
"path": "scripts",
|
||||
"estimated_tokens": 469161,
|
||||
"estimated_tokens": 469568,
|
||||
"file_count": 155,
|
||||
"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": 570,
|
||||
"relevant_file_count": 571,
|
||||
"unused_resource_dirs": [],
|
||||
"quality_signal_points": 140,
|
||||
"quality_density": 140.3
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
| Target | Path | Tier | Limit | Initial | SKILL | Deferred | Resource Governance | Large Deferred Dirs | Quality Density | Unused Dirs | Status |
|
||||
| --- | --- | --- | ---: | ---: | ---: | ---: | --- | --- | ---: | --- | --- |
|
||||
| root | `.` | `production` | 1000 | 998 | 805 | 530464 | `governed` | scripts:469161 | 140.3 | - | ok |
|
||||
| root | `.` | `production` | 1000 | 998 | 805 | 530871 | `governed` | scripts:469568 | 140.3 | - | ok |
|
||||
| complex-release-orchestrator | `examples/complex-release-orchestrator/generated-skill` | `production` | 1000 | 790 | 718 | 1657 | `not-required` | - | 164.6 | - | ok |
|
||||
| governed-incident-command | `examples/governed-incident-command/generated-skill` | `production` | 1000 | 760 | 658 | 1030 | `not-required` | - | 171.1 | - | ok |
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated_at": "2026-03-31",
|
||||
"generated_at": "2026-06-21",
|
||||
"targets": [
|
||||
{
|
||||
"label": "root",
|
||||
@@ -8,11 +8,11 @@
|
||||
"budget_limit": 1000,
|
||||
"initial_tokens": 998,
|
||||
"skill_body_tokens": 805,
|
||||
"deferred_resource_tokens": 530464,
|
||||
"deferred_resource_tokens": 530871,
|
||||
"large_deferred_resource_dirs": [
|
||||
{
|
||||
"path": "scripts",
|
||||
"estimated_tokens": 469161,
|
||||
"estimated_tokens": 469568,
|
||||
"file_count": 155
|
||||
}
|
||||
],
|
||||
@@ -35,7 +35,7 @@
|
||||
],
|
||||
"missing": [],
|
||||
"path": "scripts",
|
||||
"estimated_tokens": 469161,
|
||||
"estimated_tokens": 469568,
|
||||
"file_count": 155,
|
||||
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
|
||||
}
|
||||
|
||||
+120
-118
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"summary": {
|
||||
"check_count": 39,
|
||||
@@ -324,12 +324,12 @@
|
||||
"status": "pass",
|
||||
"expected": {
|
||||
"status": "pass",
|
||||
"detail": "initial load 998/1000; deferred 530464/120000; top deferred scripts 469161; resource governance governed; quality density 140.3",
|
||||
"detail": "initial load 998/1000; deferred 530871/120000; top deferred scripts 469568; resource governance governed; quality density 140.3",
|
||||
"evidence": "reports/context_budget.json"
|
||||
},
|
||||
"actual": {
|
||||
"status": "pass",
|
||||
"detail": "initial load 998/1000; deferred 530464/120000; top deferred scripts 469161; resource governance governed; quality density 140.3",
|
||||
"detail": "initial load 998/1000; deferred 530871/120000; top deferred scripts 469568; resource governance governed; quality density 140.3",
|
||||
"evidence": "reports/context_budget.json"
|
||||
},
|
||||
"paths": [
|
||||
@@ -357,7 +357,7 @@
|
||||
"actual": {
|
||||
"available": true,
|
||||
"clean": false,
|
||||
"changed_file_count": 53
|
||||
"changed_file_count": 21
|
||||
},
|
||||
"paths": [
|
||||
"reports/benchmark_reproducibility.json"
|
||||
@@ -398,8 +398,8 @@
|
||||
"key": "overview-benchmark-commit",
|
||||
"label": "overview embeds the benchmark commit",
|
||||
"status": "pass",
|
||||
"expected": "f37e78def3464bc818429c47e1ecc9e033c7356c",
|
||||
"actual": "f37e78def3464bc818429c47e1ecc9e033c7356c",
|
||||
"expected": "139d0fd15ce995757d6d75fb45fb417d0b1b4e7d",
|
||||
"actual": "139d0fd15ce995757d6d75fb45fb417d0b1b4e7d",
|
||||
"paths": [
|
||||
"reports/benchmark_reproducibility.json",
|
||||
"reports/skill-overview.json"
|
||||
@@ -414,12 +414,12 @@
|
||||
"release_lock_ready": true,
|
||||
"required_artifact_count": 25,
|
||||
"missing_artifact_count": 0,
|
||||
"source_contract_sha256": "67fd02c2142a2e27775f10e209ab71c037a9a28698d6f5588c96820cfa8e04cf",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"source_contract_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"world_class_ledger_pending_count": 4,
|
||||
"world_class_source_check_count": 19,
|
||||
"world_class_source_pass_count": 11,
|
||||
"world_class_source_blocked_count": 8,
|
||||
"world_class_source_pass_count": 12,
|
||||
"world_class_source_blocked_count": 7,
|
||||
"beta_test_ready": true,
|
||||
"beta_test_blocker_count": 0,
|
||||
"beta_test_deferred_evidence_count": 4,
|
||||
@@ -430,12 +430,12 @@
|
||||
"release_lock_ready": true,
|
||||
"required_artifact_count": 25,
|
||||
"missing_artifact_count": 0,
|
||||
"source_contract_sha256": "67fd02c2142a2e27775f10e209ab71c037a9a28698d6f5588c96820cfa8e04cf",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"source_contract_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"world_class_ledger_pending_count": 4,
|
||||
"world_class_source_check_count": 19,
|
||||
"world_class_source_pass_count": 11,
|
||||
"world_class_source_blocked_count": 8,
|
||||
"world_class_source_pass_count": 12,
|
||||
"world_class_source_blocked_count": 7,
|
||||
"beta_test_ready": true,
|
||||
"beta_test_blocker_count": 0,
|
||||
"beta_test_deferred_evidence_count": 4,
|
||||
@@ -454,13 +454,13 @@
|
||||
"status": "pass",
|
||||
"expected": {
|
||||
"event_count": 1,
|
||||
"adoption_sample_count": 0,
|
||||
"activation_count": 0,
|
||||
"accepted_count": 0,
|
||||
"adoption_rate": 0,
|
||||
"adoption_sample_count": 1,
|
||||
"activation_count": 1,
|
||||
"accepted_count": 1,
|
||||
"adoption_rate": 100.0,
|
||||
"risk_band": "low",
|
||||
"event_types": {
|
||||
"review_event": 1
|
||||
"skill_activation": 1
|
||||
},
|
||||
"source_types": {
|
||||
"manual": 1
|
||||
@@ -468,13 +468,13 @@
|
||||
},
|
||||
"actual": {
|
||||
"event_count": 1,
|
||||
"adoption_sample_count": 0,
|
||||
"activation_count": 0,
|
||||
"accepted_count": 0,
|
||||
"adoption_rate": 0,
|
||||
"adoption_sample_count": 1,
|
||||
"activation_count": 1,
|
||||
"accepted_count": 1,
|
||||
"adoption_rate": 100.0,
|
||||
"risk_band": "low",
|
||||
"event_types": {
|
||||
"review_event": 1
|
||||
"skill_activation": 1
|
||||
},
|
||||
"source_types": {
|
||||
"manual": 1
|
||||
@@ -497,8 +497,8 @@
|
||||
"human_pending_count": 1,
|
||||
"external_pending_count": 3,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11,
|
||||
"source_blocked_count": 8,
|
||||
"source_pass_count": 12,
|
||||
"source_blocked_count": 7,
|
||||
"ready_to_claim_world_class": false,
|
||||
"decision": "evidence-pending"
|
||||
},
|
||||
@@ -509,8 +509,8 @@
|
||||
"human_pending_count": 1,
|
||||
"external_pending_count": 3,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11,
|
||||
"source_blocked_count": 8,
|
||||
"source_pass_count": 12,
|
||||
"source_blocked_count": 7,
|
||||
"ready_to_claim_world_class": false,
|
||||
"decision": "evidence-pending"
|
||||
},
|
||||
@@ -530,7 +530,7 @@
|
||||
"pending_count": 4,
|
||||
"accepted_count": 0,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11
|
||||
"source_pass_count": 12
|
||||
},
|
||||
"actual": {
|
||||
"ready": false,
|
||||
@@ -538,7 +538,7 @@
|
||||
"pending_count": 4,
|
||||
"accepted_count": 0,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11
|
||||
"source_pass_count": 12
|
||||
},
|
||||
"paths": [
|
||||
"reports/world_class_evidence_ledger.json",
|
||||
@@ -550,8 +550,8 @@
|
||||
"key": "interpretation-benchmark-commit",
|
||||
"label": "interpretation embeds the benchmark commit",
|
||||
"status": "pass",
|
||||
"expected": "f37e78def3464bc818429c47e1ecc9e033c7356c",
|
||||
"actual": "f37e78def3464bc818429c47e1ecc9e033c7356c",
|
||||
"expected": "139d0fd15ce995757d6d75fb45fb417d0b1b4e7d",
|
||||
"actual": "139d0fd15ce995757d6d75fb45fb417d0b1b4e7d",
|
||||
"paths": [
|
||||
"reports/benchmark_reproducibility.json",
|
||||
"reports/skill-interpretation.json"
|
||||
@@ -566,12 +566,12 @@
|
||||
"release_lock_ready": true,
|
||||
"required_artifact_count": 25,
|
||||
"missing_artifact_count": 0,
|
||||
"source_contract_sha256": "67fd02c2142a2e27775f10e209ab71c037a9a28698d6f5588c96820cfa8e04cf",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"source_contract_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"world_class_ledger_pending_count": 4,
|
||||
"world_class_source_check_count": 19,
|
||||
"world_class_source_pass_count": 11,
|
||||
"world_class_source_blocked_count": 8,
|
||||
"world_class_source_pass_count": 12,
|
||||
"world_class_source_blocked_count": 7,
|
||||
"beta_test_ready": true,
|
||||
"beta_test_blocker_count": 0,
|
||||
"beta_test_deferred_evidence_count": 4,
|
||||
@@ -582,12 +582,12 @@
|
||||
"release_lock_ready": true,
|
||||
"required_artifact_count": 25,
|
||||
"missing_artifact_count": 0,
|
||||
"source_contract_sha256": "67fd02c2142a2e27775f10e209ab71c037a9a28698d6f5588c96820cfa8e04cf",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"source_contract_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"world_class_ledger_pending_count": 4,
|
||||
"world_class_source_check_count": 19,
|
||||
"world_class_source_pass_count": 11,
|
||||
"world_class_source_blocked_count": 8,
|
||||
"world_class_source_pass_count": 12,
|
||||
"world_class_source_blocked_count": 7,
|
||||
"beta_test_ready": true,
|
||||
"beta_test_blocker_count": 0,
|
||||
"beta_test_deferred_evidence_count": 4,
|
||||
@@ -606,13 +606,13 @@
|
||||
"status": "pass",
|
||||
"expected": {
|
||||
"event_count": 1,
|
||||
"adoption_sample_count": 0,
|
||||
"activation_count": 0,
|
||||
"accepted_count": 0,
|
||||
"adoption_rate": 0,
|
||||
"adoption_sample_count": 1,
|
||||
"activation_count": 1,
|
||||
"accepted_count": 1,
|
||||
"adoption_rate": 100.0,
|
||||
"risk_band": "low",
|
||||
"event_types": {
|
||||
"review_event": 1
|
||||
"skill_activation": 1
|
||||
},
|
||||
"source_types": {
|
||||
"manual": 1
|
||||
@@ -620,13 +620,13 @@
|
||||
},
|
||||
"actual": {
|
||||
"event_count": 1,
|
||||
"adoption_sample_count": 0,
|
||||
"activation_count": 0,
|
||||
"accepted_count": 0,
|
||||
"adoption_rate": 0,
|
||||
"adoption_sample_count": 1,
|
||||
"activation_count": 1,
|
||||
"accepted_count": 1,
|
||||
"adoption_rate": 100.0,
|
||||
"risk_band": "low",
|
||||
"event_types": {
|
||||
"review_event": 1
|
||||
"skill_activation": 1
|
||||
},
|
||||
"source_types": {
|
||||
"manual": 1
|
||||
@@ -649,8 +649,8 @@
|
||||
"human_pending_count": 1,
|
||||
"external_pending_count": 3,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11,
|
||||
"source_blocked_count": 8,
|
||||
"source_pass_count": 12,
|
||||
"source_blocked_count": 7,
|
||||
"ready_to_claim_world_class": false,
|
||||
"decision": "evidence-pending"
|
||||
},
|
||||
@@ -661,8 +661,8 @@
|
||||
"human_pending_count": 1,
|
||||
"external_pending_count": 3,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11,
|
||||
"source_blocked_count": 8,
|
||||
"source_pass_count": 12,
|
||||
"source_blocked_count": 7,
|
||||
"ready_to_claim_world_class": false,
|
||||
"decision": "evidence-pending"
|
||||
},
|
||||
@@ -682,7 +682,7 @@
|
||||
"pending_count": 4,
|
||||
"accepted_count": 0,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11
|
||||
"source_pass_count": 12
|
||||
},
|
||||
"actual": {
|
||||
"ready": false,
|
||||
@@ -690,7 +690,7 @@
|
||||
"pending_count": 4,
|
||||
"accepted_count": 0,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11
|
||||
"source_pass_count": 12
|
||||
},
|
||||
"paths": [
|
||||
"reports/world_class_evidence_ledger.json",
|
||||
@@ -1489,7 +1489,7 @@
|
||||
"external_pending_count": 3,
|
||||
"human_pending_count": 1,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11,
|
||||
"source_pass_count": 12,
|
||||
"conclusion_zh": "世界级证据尚未完成:4 项待补,0 项已接受。",
|
||||
"conclusion_en": "World-class evidence is not complete: 4 pending, 0 accepted.",
|
||||
"entries": [
|
||||
@@ -1546,8 +1546,7 @@
|
||||
"summary_zh": "真实外部客户端 metadata-only 事件仍未导入。",
|
||||
"summary_en": "Real external-client metadata-only events have not been imported yet.",
|
||||
"blocked_checks": [
|
||||
"External events",
|
||||
"Adoption sample"
|
||||
"External events"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1561,7 +1560,7 @@
|
||||
"external_pending_count": 3,
|
||||
"human_pending_count": 1,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11,
|
||||
"source_pass_count": 12,
|
||||
"conclusion_zh": "世界级证据尚未完成:4 项待补,0 项已接受。",
|
||||
"conclusion_en": "World-class evidence is not complete: 4 pending, 0 accepted.",
|
||||
"entries": [
|
||||
@@ -1618,8 +1617,7 @@
|
||||
"summary_zh": "真实外部客户端 metadata-only 事件仍未导入。",
|
||||
"summary_en": "Real external-client metadata-only events have not been imported yet.",
|
||||
"blocked_checks": [
|
||||
"External events",
|
||||
"Adoption sample"
|
||||
"External events"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1682,10 +1680,10 @@
|
||||
"path": "reports",
|
||||
"label": "Generated evidence and overview artifacts",
|
||||
"kind": "folder",
|
||||
"file_count": 150
|
||||
"file_count": 152
|
||||
}
|
||||
],
|
||||
"file_count": 373,
|
||||
"file_count": 375,
|
||||
"folder_count": 4,
|
||||
"distribution": [
|
||||
{
|
||||
@@ -1718,7 +1716,7 @@
|
||||
},
|
||||
{
|
||||
"label": "reports",
|
||||
"value": 150
|
||||
"value": 152
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1770,10 +1768,10 @@
|
||||
"path": "reports",
|
||||
"label": "Generated evidence and overview artifacts",
|
||||
"kind": "folder",
|
||||
"file_count": 150
|
||||
"file_count": 152
|
||||
}
|
||||
],
|
||||
"file_count": 373,
|
||||
"file_count": 375,
|
||||
"folder_count": 4,
|
||||
"distribution": [
|
||||
{
|
||||
@@ -1806,7 +1804,7 @@
|
||||
},
|
||||
{
|
||||
"label": "reports",
|
||||
"value": 150
|
||||
"value": 152
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1969,15 +1967,15 @@
|
||||
"expected": {
|
||||
"world_class_ledger_pending_count": 4,
|
||||
"world_class_source_check_count": 19,
|
||||
"world_class_source_pass_count": 11,
|
||||
"world_class_source_blocked_count": 8,
|
||||
"world_class_source_pass_count": 12,
|
||||
"world_class_source_blocked_count": 7,
|
||||
"public_claim_ready": false
|
||||
},
|
||||
"actual": {
|
||||
"world_class_ledger_pending_count": 4,
|
||||
"world_class_source_check_count": 19,
|
||||
"world_class_source_pass_count": 11,
|
||||
"world_class_source_blocked_count": 8,
|
||||
"world_class_source_pass_count": 12,
|
||||
"world_class_source_blocked_count": 7,
|
||||
"public_claim_ready": false
|
||||
},
|
||||
"paths": [
|
||||
@@ -2031,8 +2029,8 @@
|
||||
"expected": {
|
||||
"pending_count": 4,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11,
|
||||
"source_blocked_count": 8,
|
||||
"source_pass_count": 12,
|
||||
"source_blocked_count": 7,
|
||||
"ready_to_claim_world_class": false,
|
||||
"preflight_counts_as_evidence": false,
|
||||
"credential_value_exposed": false
|
||||
@@ -2040,8 +2038,8 @@
|
||||
"actual": {
|
||||
"pending_count": 4,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11,
|
||||
"source_blocked_count": 8,
|
||||
"source_pass_count": 12,
|
||||
"source_blocked_count": 7,
|
||||
"ready_to_claim_world_class": false,
|
||||
"preflight_counts_as_evidence": false,
|
||||
"credential_value_exposed": false
|
||||
@@ -2141,8 +2139,8 @@
|
||||
"artifact_prefill_counts_as_evidence": false,
|
||||
"submission_ref_total_count": 2,
|
||||
"submission_ref_ready_count": 2,
|
||||
"supporting_evidence_total_count": 8,
|
||||
"supporting_evidence_ready_count": 7,
|
||||
"supporting_evidence_total_count": 11,
|
||||
"supporting_evidence_ready_count": 11,
|
||||
"submission_ref_copy_to_artifact_refs": true,
|
||||
"supporting_evidence_copy_to_artifact_refs": false
|
||||
},
|
||||
@@ -2187,8 +2185,8 @@
|
||||
"artifact_prefill_counts_as_evidence": false,
|
||||
"submission_ref_total_count": 2,
|
||||
"submission_ref_ready_count": 2,
|
||||
"supporting_evidence_total_count": 8,
|
||||
"supporting_evidence_ready_count": 7,
|
||||
"supporting_evidence_total_count": 11,
|
||||
"supporting_evidence_ready_count": 11,
|
||||
"submission_ref_copy_to_artifact_refs": true,
|
||||
"supporting_evidence_copy_to_artifact_refs": false
|
||||
},
|
||||
@@ -2218,7 +2216,7 @@
|
||||
"summary": {
|
||||
"phase_queue_count": 2,
|
||||
"phase_queue_blocked_count": 2,
|
||||
"phase_queue_row_count": 12,
|
||||
"phase_queue_row_count": 11,
|
||||
"phase_queue_next_phase": "unblock-access",
|
||||
"phase_queue_next_action_id": "human-adjudication-precheck-human-reviewer",
|
||||
"phase_queue_next_command": "python3 scripts/yao.py world-class-preflight . --submissions-dir evidence/world_class/submissions",
|
||||
@@ -2251,8 +2249,8 @@
|
||||
"phase": "collect-source",
|
||||
"priority": 40,
|
||||
"status": "blocked",
|
||||
"blocked_count": 8,
|
||||
"row_count": 8,
|
||||
"blocked_count": 7,
|
||||
"row_count": 7,
|
||||
"owners": [
|
||||
"Browser/Chrome/IDE/provider client integrator",
|
||||
"human reviewer",
|
||||
@@ -2376,15 +2374,15 @@
|
||||
"phase": "collect-source",
|
||||
"priority": 40,
|
||||
"status": "blocked",
|
||||
"blocked_count": 2,
|
||||
"row_count": 2,
|
||||
"blocked_count": 1,
|
||||
"row_count": 1,
|
||||
"owners": [
|
||||
"Browser/Chrome/IDE/provider client integrator"
|
||||
],
|
||||
"evidence_keys": [
|
||||
"native-client-telemetry"
|
||||
],
|
||||
"next_action_id": "native-client-telemetry-source-check-adoption_sample_count",
|
||||
"next_action_id": "native-client-telemetry-source-check-external_source_events",
|
||||
"verification_command": "python3 scripts/yao.py telemetry-import . --input-jsonl .yao/telemetry_spool/external_events.jsonl && python3 scripts/yao.py world-class-preflight . --submissions-dir evidence/world_class/submissions",
|
||||
"counts_as_completion": false
|
||||
}
|
||||
@@ -2394,7 +2392,7 @@
|
||||
"operator_runbook_summary": {
|
||||
"phase_queue_count": 2,
|
||||
"phase_queue_blocked_count": 2,
|
||||
"phase_queue_row_count": 12,
|
||||
"phase_queue_row_count": 11,
|
||||
"phase_queue_next_phase": "unblock-access",
|
||||
"phase_queue_next_action_id": "human-adjudication-precheck-human-reviewer",
|
||||
"phase_queue_next_command": "python3 scripts/yao.py world-class-preflight . --submissions-dir evidence/world_class/submissions",
|
||||
@@ -2427,8 +2425,8 @@
|
||||
"phase": "collect-source",
|
||||
"priority": 40,
|
||||
"status": "blocked",
|
||||
"blocked_count": 8,
|
||||
"row_count": 8,
|
||||
"blocked_count": 7,
|
||||
"row_count": 7,
|
||||
"owners": [
|
||||
"Browser/Chrome/IDE/provider client integrator",
|
||||
"human reviewer",
|
||||
@@ -2552,15 +2550,15 @@
|
||||
"phase": "collect-source",
|
||||
"priority": 40,
|
||||
"status": "blocked",
|
||||
"blocked_count": 2,
|
||||
"row_count": 2,
|
||||
"blocked_count": 1,
|
||||
"row_count": 1,
|
||||
"owners": [
|
||||
"Browser/Chrome/IDE/provider client integrator"
|
||||
],
|
||||
"evidence_keys": [
|
||||
"native-client-telemetry"
|
||||
],
|
||||
"next_action_id": "native-client-telemetry-source-check-adoption_sample_count",
|
||||
"next_action_id": "native-client-telemetry-source-check-external_source_events",
|
||||
"verification_command": "python3 scripts/yao.py telemetry-import . --input-jsonl .yao/telemetry_spool/external_events.jsonl && python3 scripts/yao.py world-class-preflight . --submissions-dir evidence/world_class/submissions",
|
||||
"counts_as_completion": false
|
||||
}
|
||||
@@ -2674,15 +2672,15 @@
|
||||
"phase": "collect-source",
|
||||
"priority": 40,
|
||||
"status": "blocked",
|
||||
"blocked_count": 2,
|
||||
"row_count": 2,
|
||||
"blocked_count": 1,
|
||||
"row_count": 1,
|
||||
"owners": [
|
||||
"Browser/Chrome/IDE/provider client integrator"
|
||||
],
|
||||
"evidence_keys": [
|
||||
"native-client-telemetry"
|
||||
],
|
||||
"next_action_id": "native-client-telemetry-source-check-adoption_sample_count",
|
||||
"next_action_id": "native-client-telemetry-source-check-external_source_events",
|
||||
"verification_command": "python3 scripts/yao.py telemetry-import . --input-jsonl .yao/telemetry_spool/external_events.jsonl && python3 scripts/yao.py world-class-preflight . --submissions-dir evidence/world_class/submissions",
|
||||
"counts_as_completion": false
|
||||
}
|
||||
@@ -2693,7 +2691,7 @@
|
||||
"summary": {
|
||||
"phase_queue_count": 2,
|
||||
"phase_queue_blocked_count": 2,
|
||||
"phase_queue_row_count": 12,
|
||||
"phase_queue_row_count": 11,
|
||||
"phase_queue_next_phase": "unblock-access",
|
||||
"phase_queue_next_action_id": "human-adjudication-precheck-human-reviewer",
|
||||
"phase_queue_next_command": "python3 scripts/yao.py world-class-preflight . --submissions-dir evidence/world_class/submissions",
|
||||
@@ -2726,8 +2724,8 @@
|
||||
"phase": "collect-source",
|
||||
"priority": 40,
|
||||
"status": "blocked",
|
||||
"blocked_count": 8,
|
||||
"row_count": 8,
|
||||
"blocked_count": 7,
|
||||
"row_count": 7,
|
||||
"owners": [
|
||||
"Browser/Chrome/IDE/provider client integrator",
|
||||
"human reviewer",
|
||||
@@ -2746,7 +2744,7 @@
|
||||
"operator_runbook_summary": {
|
||||
"phase_queue_count": 2,
|
||||
"phase_queue_blocked_count": 2,
|
||||
"phase_queue_row_count": 12,
|
||||
"phase_queue_row_count": 11,
|
||||
"phase_queue_next_phase": "unblock-access",
|
||||
"phase_queue_next_action_id": "human-adjudication-precheck-human-reviewer",
|
||||
"phase_queue_next_command": "python3 scripts/yao.py world-class-preflight . --submissions-dir evidence/world_class/submissions",
|
||||
@@ -2779,8 +2777,8 @@
|
||||
"phase": "collect-source",
|
||||
"priority": 40,
|
||||
"status": "blocked",
|
||||
"blocked_count": 8,
|
||||
"row_count": 8,
|
||||
"blocked_count": 7,
|
||||
"row_count": 7,
|
||||
"owners": [
|
||||
"Browser/Chrome/IDE/provider client integrator",
|
||||
"human reviewer",
|
||||
@@ -2904,15 +2902,15 @@
|
||||
"phase": "collect-source",
|
||||
"priority": 40,
|
||||
"status": "blocked",
|
||||
"blocked_count": 2,
|
||||
"row_count": 2,
|
||||
"blocked_count": 1,
|
||||
"row_count": 1,
|
||||
"owners": [
|
||||
"Browser/Chrome/IDE/provider client integrator"
|
||||
],
|
||||
"evidence_keys": [
|
||||
"native-client-telemetry"
|
||||
],
|
||||
"next_action_id": "native-client-telemetry-source-check-adoption_sample_count",
|
||||
"next_action_id": "native-client-telemetry-source-check-external_source_events",
|
||||
"verification_command": "python3 scripts/yao.py telemetry-import . --input-jsonl .yao/telemetry_spool/external_events.jsonl && python3 scripts/yao.py world-class-preflight . --submissions-dir evidence/world_class/submissions",
|
||||
"counts_as_completion": false
|
||||
}
|
||||
@@ -3026,15 +3024,15 @@
|
||||
"phase": "collect-source",
|
||||
"priority": 40,
|
||||
"status": "blocked",
|
||||
"blocked_count": 2,
|
||||
"row_count": 2,
|
||||
"blocked_count": 1,
|
||||
"row_count": 1,
|
||||
"owners": [
|
||||
"Browser/Chrome/IDE/provider client integrator"
|
||||
],
|
||||
"evidence_keys": [
|
||||
"native-client-telemetry"
|
||||
],
|
||||
"next_action_id": "native-client-telemetry-source-check-adoption_sample_count",
|
||||
"next_action_id": "native-client-telemetry-source-check-external_source_events",
|
||||
"verification_command": "python3 scripts/yao.py telemetry-import . --input-jsonl .yao/telemetry_spool/external_events.jsonl && python3 scripts/yao.py world-class-preflight . --submissions-dir evidence/world_class/submissions",
|
||||
"counts_as_completion": false
|
||||
}
|
||||
@@ -3148,15 +3146,15 @@
|
||||
"phase": "collect-source",
|
||||
"priority": 40,
|
||||
"status": "blocked",
|
||||
"blocked_count": 2,
|
||||
"row_count": 2,
|
||||
"blocked_count": 1,
|
||||
"row_count": 1,
|
||||
"owners": [
|
||||
"Browser/Chrome/IDE/provider client integrator"
|
||||
],
|
||||
"evidence_keys": [
|
||||
"native-client-telemetry"
|
||||
],
|
||||
"next_action_id": "native-client-telemetry-source-check-adoption_sample_count",
|
||||
"next_action_id": "native-client-telemetry-source-check-external_source_events",
|
||||
"verification_command": "python3 scripts/yao.py telemetry-import . --input-jsonl .yao/telemetry_spool/external_events.jsonl && python3 scripts/yao.py world-class-preflight . --submissions-dir evidence/world_class/submissions",
|
||||
"counts_as_completion": false
|
||||
}
|
||||
@@ -3202,7 +3200,9 @@
|
||||
"agents/interface.yaml": true,
|
||||
"evidence/world_class/README.md": true,
|
||||
"security/permission_policy.json": true,
|
||||
"reports/world_class_evidence_ledger.json": true
|
||||
"reports/world_class_evidence_ledger.json": true,
|
||||
"dist/manifest.json": true,
|
||||
"dist/targets/openai/adapter.json": true
|
||||
},
|
||||
"prohibited_surfaces": []
|
||||
},
|
||||
@@ -3221,7 +3221,9 @@
|
||||
"agents/interface.yaml": true,
|
||||
"evidence/world_class/README.md": true,
|
||||
"security/permission_policy.json": true,
|
||||
"reports/world_class_evidence_ledger.json": true
|
||||
"reports/world_class_evidence_ledger.json": true,
|
||||
"dist/manifest.json": true,
|
||||
"dist/targets/openai/adapter.json": true
|
||||
},
|
||||
"prohibited_surfaces": []
|
||||
},
|
||||
@@ -3252,8 +3254,8 @@
|
||||
"human_pending_count": 1,
|
||||
"external_pending_count": 3,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11,
|
||||
"source_blocked_count": 8,
|
||||
"source_pass_count": 12,
|
||||
"source_blocked_count": 7,
|
||||
"plan_keys": [
|
||||
"human-adjudication",
|
||||
"native-client-telemetry",
|
||||
@@ -3410,8 +3412,8 @@
|
||||
"human_pending_count": 1,
|
||||
"external_pending_count": 3,
|
||||
"source_check_count": 19,
|
||||
"source_pass_count": 11,
|
||||
"source_blocked_count": 8,
|
||||
"source_pass_count": 12,
|
||||
"source_blocked_count": 7,
|
||||
"plan_keys": [
|
||||
"human-adjudication",
|
||||
"native-client-telemetry",
|
||||
@@ -3577,8 +3579,8 @@
|
||||
"`3` warnings",
|
||||
"`69` declared internal modules",
|
||||
"`86 / 86` CLI help smoke checks passing across `155` scripts",
|
||||
"`689` zip entries",
|
||||
"archive with `689` entries",
|
||||
"`580` zip entries",
|
||||
"archive with `580` entries",
|
||||
"`12` installer permission checks enforced",
|
||||
"`0` permission failures",
|
||||
"`25` required artifacts",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Evidence Consistency
|
||||
|
||||
Generated at: `2026-06-20`
|
||||
Generated at: `2026-06-21`
|
||||
|
||||
## Summary
|
||||
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
{
|
||||
"ok": true,
|
||||
"schema_version": "2.0",
|
||||
"generated_at": "2026-06-13",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"package_dir": "tests/tmp_review_studio/dist",
|
||||
"install_root": "tests/tmp_review_studio/install-root/simulate-yao-meta-skill",
|
||||
"installed_skill_dir": "tests/tmp_review_studio/install-root/simulate-yao-meta-skill/yao-meta-skill",
|
||||
"package_dir": "dist",
|
||||
"install_root": "dist/install-simulation/simulate-yao-meta-skill",
|
||||
"installed_skill_dir": "dist/install-simulation/simulate-yao-meta-skill/yao-meta-skill",
|
||||
"summary": {
|
||||
"archive_present": true,
|
||||
"archive_entry_count": 588,
|
||||
"archive_entry_count": 580,
|
||||
"nested_skill_entry_count": 0,
|
||||
"archive_extracted": true,
|
||||
"entrypoint_loaded": true,
|
||||
"manifest_loaded": true,
|
||||
@@ -26,13 +27,18 @@
|
||||
{
|
||||
"id": "archive-present",
|
||||
"status": "pass",
|
||||
"detail": "Package archive exists: tests/tmp_review_studio/dist/yao-meta-skill.zip"
|
||||
"detail": "Package archive exists: dist/yao-meta-skill.zip"
|
||||
},
|
||||
{
|
||||
"id": "archive-safe-paths",
|
||||
"status": "pass",
|
||||
"detail": "Archive has no absolute or parent-traversal entries"
|
||||
},
|
||||
{
|
||||
"id": "single-skill-entrypoint",
|
||||
"status": "pass",
|
||||
"detail": "Installed package exposes only the root SKILL.md entrypoint"
|
||||
},
|
||||
{
|
||||
"id": "single-top-level",
|
||||
"status": "pass",
|
||||
@@ -272,9 +278,9 @@
|
||||
"failures": [],
|
||||
"warnings": [],
|
||||
"artifacts": {
|
||||
"archive": "tests/tmp_review_studio/dist/yao-meta-skill.zip",
|
||||
"package_manifest": "tests/tmp_review_studio/dist/manifest.json",
|
||||
"json": "tests/tmp_review_studio/install_simulation.json",
|
||||
"markdown": "tests/tmp_review_studio/install_simulation.md"
|
||||
"archive": "dist/yao-meta-skill.zip",
|
||||
"package_manifest": "dist/manifest.json",
|
||||
"json": "reports/install_simulation.json",
|
||||
"markdown": "reports/install_simulation.md"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
# Install Simulation
|
||||
|
||||
- OK: `True`
|
||||
- Package directory: `tests/tmp_review_studio/dist`
|
||||
- Package directory: `dist`
|
||||
- Archive extracted: `True`
|
||||
- Nested SKILL.md entries: `0`
|
||||
- Entrypoint loaded: `True`
|
||||
- Manifest loaded: `True`
|
||||
- Interface loaded: `True`
|
||||
@@ -16,8 +17,9 @@
|
||||
|
||||
| Check | Status | Detail |
|
||||
| --- | --- | --- |
|
||||
| `archive-present` | `pass` | Package archive exists: tests/tmp_review_studio/dist/yao-meta-skill.zip |
|
||||
| `archive-present` | `pass` | Package archive exists: dist/yao-meta-skill.zip |
|
||||
| `archive-safe-paths` | `pass` | Archive has no absolute or parent-traversal entries |
|
||||
| `single-skill-entrypoint` | `pass` | Installed package exposes only the root SKILL.md entrypoint |
|
||||
| `single-top-level` | `pass` | Archive top-level directory is yao-meta-skill |
|
||||
| `entrypoint-load` | `pass` | Installed SKILL.md frontmatter is readable |
|
||||
| `entrypoint-name` | `pass` | Installed SKILL.md name matches package directory |
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
{
|
||||
"ok": true,
|
||||
"schema_version": "2.0",
|
||||
"generated_at": "2026-06-17",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"package_dir": "dist",
|
||||
"summary": {
|
||||
"target_count": 4,
|
||||
"adapter_count": 4,
|
||||
"archive_present": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_entry_count": 689,
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"archive_entry_count": 580,
|
||||
"nested_skill_entry_count": 0,
|
||||
"failure_count": 0,
|
||||
"warning_count": 0
|
||||
},
|
||||
@@ -614,6 +615,11 @@
|
||||
"status": "pass",
|
||||
"detail": "Archive contains yao-meta-skill/agents/interface.yaml"
|
||||
},
|
||||
{
|
||||
"id": "archive-single-skill-entrypoint",
|
||||
"status": "pass",
|
||||
"detail": "Archive exposes only the root SKILL.md entrypoint"
|
||||
},
|
||||
{
|
||||
"id": "archive-excludes-generated",
|
||||
"status": "pass",
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
- Package directory: `dist`
|
||||
- Targets: `4 / 4` adapters present
|
||||
- Archive present: `True`
|
||||
- Archive SHA256: `7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2`
|
||||
- Archive SHA256: `c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7`
|
||||
- Nested SKILL.md entries: `0`
|
||||
- Failures: `0`
|
||||
- Warnings: `0`
|
||||
|
||||
@@ -132,6 +133,7 @@
|
||||
| `archive-entry-yao-meta-skill/SKILL.md` | `pass` | Archive contains yao-meta-skill/SKILL.md |
|
||||
| `archive-entry-yao-meta-skill/manifest.json` | `pass` | Archive contains yao-meta-skill/manifest.json |
|
||||
| `archive-entry-yao-meta-skill/agents/interface.yaml` | `pass` | Archive contains yao-meta-skill/agents/interface.yaml |
|
||||
| `archive-single-skill-entrypoint` | `pass` | Archive exposes only the root SKILL.md entrypoint |
|
||||
| `archive-excludes-generated` | `pass` | Archive excludes generated dist/, .previews/, and tests/tmp* contents |
|
||||
| `registry-ok` | `pass` | Registry audit is OK |
|
||||
| `registry-name-match` | `pass` | Registry package name matches package manifest |
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
"trust_level": "local",
|
||||
"license": "MIT",
|
||||
"checksums": {
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
"compatibility": {
|
||||
"openai": "pass",
|
||||
@@ -53,16 +53,16 @@
|
||||
},
|
||||
"distribution": {
|
||||
"archive_verified": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"package_verification": "reports/package_verification.json",
|
||||
"install_simulated": true,
|
||||
"install_simulation": "reports/install_simulation.json"
|
||||
},
|
||||
"generated_at": "2026-06-13"
|
||||
"generated_at": "2026-06-21"
|
||||
},
|
||||
"index": {
|
||||
"schema_version": "2.0",
|
||||
"generated_at": "2026-06-13",
|
||||
"generated_at": "2026-06-21",
|
||||
"package_count": 1,
|
||||
"packages": [
|
||||
{
|
||||
@@ -78,7 +78,7 @@
|
||||
"vscode"
|
||||
],
|
||||
"package_metadata": "registry/packages/yao-meta-skill.json",
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
- Maturity: `governed`
|
||||
- Owner: `Yao Team`
|
||||
- License: `MIT`
|
||||
- Package SHA256: `e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd`
|
||||
- Archive SHA256: `7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2`
|
||||
- Package SHA256: `eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383`
|
||||
- Archive SHA256: `c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7`
|
||||
- Install simulated: `True`
|
||||
|
||||
## Compatibility
|
||||
|
||||
+10
-10
File diff suppressed because one or more lines are too long
+172
-139
@@ -65,7 +65,7 @@
|
||||
"key": "context-budget",
|
||||
"label": "上下文",
|
||||
"status": "pass",
|
||||
"detail": "initial load 998/1000; deferred 530464/120000; top deferred scripts 469161; resource governance governed; quality density 140.3",
|
||||
"detail": "initial load 998/1000; deferred 530871/120000; top deferred scripts 469568; resource governance governed; quality density 140.3",
|
||||
"evidence": "reports/context_budget.json",
|
||||
"link": "context_budget.md",
|
||||
"review_action_id": "",
|
||||
@@ -1194,8 +1194,8 @@
|
||||
"artifact_prefill_counts_as_evidence": false,
|
||||
"submission_ref_ready_count": 2,
|
||||
"submission_ref_total_count": 2,
|
||||
"supporting_evidence_ready_count": 7,
|
||||
"supporting_evidence_total_count": 8,
|
||||
"supporting_evidence_ready_count": 11,
|
||||
"supporting_evidence_total_count": 11,
|
||||
"roles": [
|
||||
{
|
||||
"role": "submission-ref",
|
||||
@@ -1208,8 +1208,8 @@
|
||||
{
|
||||
"role": "supporting-evidence",
|
||||
"label": "Supporting evidence",
|
||||
"ready_count": 7,
|
||||
"total_count": 8,
|
||||
"ready_count": 11,
|
||||
"total_count": 11,
|
||||
"copy_to_artifact_refs": false,
|
||||
"description": "Supporting-evidence rows help reviewers audit the packet but do not all need to be copied into artifact_refs."
|
||||
}
|
||||
@@ -1437,7 +1437,7 @@
|
||||
"upgrade_check": "reports/upgrade_check.md",
|
||||
"migration": "docs/migration-v2.md",
|
||||
"skill_ir": "skill-ir/examples/yao-meta-skill.json",
|
||||
"daily_skillops": "reports/skillops/daily/2026-06-20.md",
|
||||
"daily_skillops": "reports/skillops/daily/2026-06-21.md",
|
||||
"weekly_curator": "reports/skillops/weekly/2026-W25.md"
|
||||
},
|
||||
"data": {
|
||||
@@ -1964,10 +1964,10 @@
|
||||
"path": "reports",
|
||||
"label": "Generated evidence and overview artifacts",
|
||||
"kind": "folder",
|
||||
"file_count": 150
|
||||
"file_count": 152
|
||||
}
|
||||
],
|
||||
"file_count": 373,
|
||||
"file_count": 375,
|
||||
"folder_count": 4,
|
||||
"distribution": [
|
||||
{
|
||||
@@ -2000,7 +2000,7 @@
|
||||
},
|
||||
{
|
||||
"label": "reports",
|
||||
"value": 150
|
||||
"value": 152
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -2134,7 +2134,7 @@
|
||||
"path": "reports",
|
||||
"label": "Generated evidence and overview artifacts",
|
||||
"kind": "folder",
|
||||
"file_count": 150
|
||||
"file_count": 152
|
||||
}
|
||||
],
|
||||
"strengths": [
|
||||
@@ -2458,9 +2458,9 @@
|
||||
"methodology_complete": true,
|
||||
"required_artifact_count": 25,
|
||||
"missing_artifact_count": 0,
|
||||
"evidence_bundle_sha256": "3f7cdbc5e28c338aa681de7729ad6b634f9a8be2f993280f001d399c50bd8ad4",
|
||||
"source_contract_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"evidence_bundle_sha256": "e819a616c7276f6433bbcf38f30696cc0f19b6c035adf5c8cf09e64cbe8db9ad",
|
||||
"source_contract_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"output_case_count": 5,
|
||||
"failure_disclosure_count": 3,
|
||||
"command_count": 23,
|
||||
@@ -2483,13 +2483,13 @@
|
||||
"public_claim_ready": false,
|
||||
"public_claim_blocker_count": 3,
|
||||
"working_tree_dirty": true,
|
||||
"changed_file_count": 71,
|
||||
"changed_file_count": 3,
|
||||
"source_tree_dirty": false,
|
||||
"source_changed_file_count": 0,
|
||||
"generated_tree_dirty": true,
|
||||
"generated_changed_file_count": 71
|
||||
"generated_changed_file_count": 3
|
||||
},
|
||||
"commit": "f37e78def3464bc818429c47e1ecc9e033c7356c",
|
||||
"commit": "139d0fd15ce995757d6d75fb45fb417d0b1b4e7d",
|
||||
"missing_artifacts": [],
|
||||
"limitations": [
|
||||
"The git commit and dirty flags are generation-time context; release lock is blocked by source changes, while generated evidence artifacts are tracked separately.",
|
||||
@@ -2595,7 +2595,7 @@
|
||||
"interactive_script_count": 0,
|
||||
"package_hash_scope": "source-contract-without-generated-reports",
|
||||
"package_hash_file_count": 247,
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
},
|
||||
"skill_atlas": {
|
||||
"skill_count": 11,
|
||||
@@ -2633,8 +2633,8 @@
|
||||
"trust_level": "local",
|
||||
"license": "MIT",
|
||||
"checksums": {
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
"compatibility": {
|
||||
"openai": "pass",
|
||||
@@ -2665,12 +2665,12 @@
|
||||
},
|
||||
"distribution": {
|
||||
"archive_verified": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"package_verification": "reports/package_verification.json",
|
||||
"install_simulated": true,
|
||||
"install_simulation": "reports/install_simulation.json"
|
||||
},
|
||||
"generated_at": "2026-06-13"
|
||||
"generated_at": "2026-06-21"
|
||||
},
|
||||
"failures": [],
|
||||
"warnings": []
|
||||
@@ -2681,8 +2681,9 @@
|
||||
"target_count": 4,
|
||||
"adapter_count": 4,
|
||||
"archive_present": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_entry_count": 689,
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"archive_entry_count": 580,
|
||||
"nested_skill_entry_count": 0,
|
||||
"failure_count": 0,
|
||||
"warning_count": 0
|
||||
},
|
||||
@@ -2693,7 +2694,8 @@
|
||||
"ok": true,
|
||||
"summary": {
|
||||
"archive_present": true,
|
||||
"archive_entry_count": 588,
|
||||
"archive_entry_count": 580,
|
||||
"nested_skill_entry_count": 0,
|
||||
"archive_extracted": true,
|
||||
"entrypoint_loaded": true,
|
||||
"manifest_loaded": true,
|
||||
@@ -2760,12 +2762,12 @@
|
||||
{
|
||||
"field": "archive_sha256",
|
||||
"from": "",
|
||||
"to": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"to": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
{
|
||||
"field": "package_sha256",
|
||||
"from": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"to": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"to": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -6311,45 +6313,27 @@
|
||||
"benchmark_reproducibility": {
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"commit": "f37e78def3464bc818429c47e1ecc9e033c7356c",
|
||||
"commit": "139d0fd15ce995757d6d75fb45fb417d0b1b4e7d",
|
||||
"git_status": {
|
||||
"available": true,
|
||||
"dirty": true,
|
||||
"changed_file_count": 71,
|
||||
"changed_file_count": 3,
|
||||
"generated_dirty": true,
|
||||
"generated_changed_file_count": 71,
|
||||
"generated_changed_file_count": 3,
|
||||
"source_dirty": false,
|
||||
"source_changed_file_count": 0,
|
||||
"sample": [
|
||||
" 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/adoption_drift_report.md",
|
||||
" M reports/architecture_maintainability.json",
|
||||
" M reports/architecture_maintainability.md",
|
||||
" M reports/artifact-design-profile.json",
|
||||
" M reports/artifact-design-profile.md",
|
||||
" M reports/benchmark_reproducibility.json",
|
||||
" M reports/benchmark_reproducibility.md"
|
||||
" M reports/context_budget.json",
|
||||
" M reports/context_budget.md",
|
||||
" M reports/context_budget_summary.json"
|
||||
],
|
||||
"source_sample": [],
|
||||
"generated_sample": [
|
||||
" 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/adoption_drift_report.md",
|
||||
" M reports/architecture_maintainability.json",
|
||||
" M reports/architecture_maintainability.md",
|
||||
" M reports/artifact-design-profile.json",
|
||||
" M reports/artifact-design-profile.md",
|
||||
" M reports/benchmark_reproducibility.json",
|
||||
" M reports/benchmark_reproducibility.md"
|
||||
" M reports/context_budget.json",
|
||||
" M reports/context_budget.md",
|
||||
" M reports/context_budget_summary.json"
|
||||
],
|
||||
"generated_dirty_prefixes": [
|
||||
"dist/",
|
||||
@@ -6367,9 +6351,9 @@
|
||||
"methodology_complete": true,
|
||||
"required_artifact_count": 25,
|
||||
"missing_artifact_count": 0,
|
||||
"evidence_bundle_sha256": "3f7cdbc5e28c338aa681de7729ad6b634f9a8be2f993280f001d399c50bd8ad4",
|
||||
"source_contract_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"evidence_bundle_sha256": "e819a616c7276f6433bbcf38f30696cc0f19b6c035adf5c8cf09e64cbe8db9ad",
|
||||
"source_contract_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"output_case_count": 5,
|
||||
"failure_disclosure_count": 3,
|
||||
"command_count": 23,
|
||||
@@ -6392,11 +6376,11 @@
|
||||
"public_claim_ready": false,
|
||||
"public_claim_blocker_count": 3,
|
||||
"working_tree_dirty": true,
|
||||
"changed_file_count": 71,
|
||||
"changed_file_count": 3,
|
||||
"source_tree_dirty": false,
|
||||
"source_changed_file_count": 0,
|
||||
"generated_tree_dirty": true,
|
||||
"generated_changed_file_count": 71
|
||||
"generated_changed_file_count": 3
|
||||
},
|
||||
"beta_test_release": {
|
||||
"ready": true,
|
||||
@@ -6439,10 +6423,10 @@
|
||||
},
|
||||
"release_lock": {
|
||||
"ready": true,
|
||||
"commit": "f37e78def3464bc818429c47e1ecc9e033c7356c",
|
||||
"commit": "139d0fd15ce995757d6d75fb45fb417d0b1b4e7d",
|
||||
"status_scope": "generation-time status before this report is written",
|
||||
"source_changed_file_count": 0,
|
||||
"generated_changed_file_count": 71,
|
||||
"generated_changed_file_count": 3,
|
||||
"reason": "only generated evidence artifacts were dirty at generation time"
|
||||
},
|
||||
"evidence_bundle": {
|
||||
@@ -6451,7 +6435,7 @@
|
||||
"existing_count": 25,
|
||||
"missing_count": 0,
|
||||
"missing_paths": [],
|
||||
"sha256": "3f7cdbc5e28c338aa681de7729ad6b634f9a8be2f993280f001d399c50bd8ad4"
|
||||
"sha256": "e819a616c7276f6433bbcf38f30696cc0f19b6c035adf5c8cf09e64cbe8db9ad"
|
||||
},
|
||||
"methodology": {
|
||||
"path": "reports/benchmark_methodology.md",
|
||||
@@ -6560,7 +6544,7 @@
|
||||
"path": "reports/security_trust_report.json",
|
||||
"exists": true,
|
||||
"bytes": 139090,
|
||||
"sha256": "7ae59b7700db912ea4c72a3626d2fab5ee975e264fd067ca1ca6f94ee726c91f"
|
||||
"sha256": "2ef43f009be68b1dd1a994b841d69b89723cf0b6d7725dc6ad86670d14235135"
|
||||
},
|
||||
{
|
||||
"label": "python_compatibility",
|
||||
@@ -6574,28 +6558,28 @@
|
||||
"path": "reports/registry_audit.json",
|
||||
"exists": true,
|
||||
"bytes": 3137,
|
||||
"sha256": "1c9d988340746f6f00406718f3c6473b440379b8f45190ef51cc9e996e9107b8"
|
||||
"sha256": "03cb951dc8ba71843602bffa1148d7a40095a7e109a024193422aaa8a94ba4c7"
|
||||
},
|
||||
{
|
||||
"label": "package_verification",
|
||||
"path": "reports/package_verification.json",
|
||||
"exists": true,
|
||||
"bytes": 19338,
|
||||
"sha256": "7aa6c25e8154d246ace49f7ab9159fa85f96d1d4ebb7e2bb03c7b223260a908b"
|
||||
"bytes": 19525,
|
||||
"sha256": "e2ad726ce0486be0f57d88e518ef4d265479a04756419c6f8df50cf7d05b1f14"
|
||||
},
|
||||
{
|
||||
"label": "install_simulation",
|
||||
"path": "reports/install_simulation.json",
|
||||
"exists": true,
|
||||
"bytes": 8758,
|
||||
"sha256": "247c037353fe29aa638945a2d5633228e16f30ff44c27ca1a57cb70ccc441359"
|
||||
"bytes": 8793,
|
||||
"sha256": "6cf79201727352e5f92f4e1fa1697a069ab325d526065f5316ee939e84475ef5"
|
||||
},
|
||||
{
|
||||
"label": "skill_os2_audit",
|
||||
"path": "reports/skill_os2_audit.json",
|
||||
"exists": true,
|
||||
"bytes": 13824,
|
||||
"sha256": "80ddfb66a136a52ff9eb9aca2f6a9fe72cb923a066028f0baa9db2c0e03f0689"
|
||||
"sha256": "1079221b5ac72e19e3e7a0f4970f133d828336f34bac82abf3fb867d18834cfa"
|
||||
},
|
||||
{
|
||||
"label": "world_class_evidence_plan",
|
||||
@@ -6657,8 +6641,8 @@
|
||||
"label": "world_class_claim_guard",
|
||||
"path": "reports/world_class_claim_guard.json",
|
||||
"exists": true,
|
||||
"bytes": 17958,
|
||||
"sha256": "47fae260e9d6d2b7c39685a1e746aa79bf79c1e6b2cd6b6c4fa706f857aa8325"
|
||||
"bytes": 18759,
|
||||
"sha256": "556700f05a65bda9b55d829c109d1aec54ae5b4da80ffbefe1196319df86f117"
|
||||
}
|
||||
],
|
||||
"missing_artifacts": [],
|
||||
@@ -6799,7 +6783,7 @@
|
||||
"skill_os2_coverage": {
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"summary": {
|
||||
"item_count": 21,
|
||||
@@ -7002,7 +6986,7 @@
|
||||
"label": "Registry Distribution",
|
||||
"status": "pass",
|
||||
"objective": "Skill packages are installable, versioned, checksumed, and upgrade-reviewable.",
|
||||
"current": "archive entries 689; install failures 0",
|
||||
"current": "archive entries 580; 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": [
|
||||
@@ -7547,11 +7531,11 @@
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "reports/skillops/daily/2026-06-20.json",
|
||||
"path": "reports/skillops/daily/2026-06-21.json",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "reports/skillops/daily/2026-06-20.md",
|
||||
"path": "reports/skillops/daily/2026-06-21.md",
|
||||
"exists": true
|
||||
}
|
||||
],
|
||||
@@ -7610,7 +7594,7 @@
|
||||
"compiled_targets": {
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-13",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"summary": {
|
||||
"target_count": 5,
|
||||
@@ -12619,7 +12603,7 @@
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"skill_dir": ".",
|
||||
"package_dir": "tests/tmp_review_studio/dist",
|
||||
"package_dir": "dist",
|
||||
"expected_capabilities": [
|
||||
"file_write",
|
||||
"network",
|
||||
@@ -12659,7 +12643,7 @@
|
||||
{
|
||||
"target": "openai",
|
||||
"status": "pass",
|
||||
"adapter": "tests/tmp_review_studio/dist/targets/openai/adapter.json",
|
||||
"adapter": "dist/targets/openai/adapter.json",
|
||||
"permission_model": "metadata-only",
|
||||
"native_enforcement": false,
|
||||
"metadata_fallback_explicit": true,
|
||||
@@ -12756,7 +12740,7 @@
|
||||
{
|
||||
"target": "claude",
|
||||
"status": "pass",
|
||||
"adapter": "tests/tmp_review_studio/dist/targets/claude/adapter.json",
|
||||
"adapter": "dist/targets/claude/adapter.json",
|
||||
"permission_model": "neutral-source-plus-adapter",
|
||||
"native_enforcement": false,
|
||||
"metadata_fallback_explicit": true,
|
||||
@@ -12838,7 +12822,7 @@
|
||||
{
|
||||
"target": "generic",
|
||||
"status": "pass",
|
||||
"adapter": "tests/tmp_review_studio/dist/targets/generic/adapter.json",
|
||||
"adapter": "dist/targets/generic/adapter.json",
|
||||
"permission_model": "agent-skills-compatible-metadata",
|
||||
"native_enforcement": false,
|
||||
"metadata_fallback_explicit": true,
|
||||
@@ -12920,7 +12904,7 @@
|
||||
{
|
||||
"target": "vscode",
|
||||
"status": "pass",
|
||||
"adapter": "tests/tmp_review_studio/dist/targets/vscode/adapter.json",
|
||||
"adapter": "dist/targets/vscode/adapter.json",
|
||||
"permission_model": "vscode-workspace-trust-plus-metadata",
|
||||
"native_enforcement": false,
|
||||
"metadata_fallback_explicit": true,
|
||||
@@ -13031,7 +13015,7 @@
|
||||
"interactive_script_count": 0,
|
||||
"package_hash_scope": "source-contract-without-generated-reports",
|
||||
"package_hash_file_count": 247,
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
},
|
||||
"failures": [],
|
||||
"warnings": [],
|
||||
@@ -18218,15 +18202,15 @@
|
||||
"context_budget_tier": "production",
|
||||
"context_budget_limit": 1000,
|
||||
"skill_body_tokens": 805,
|
||||
"other_text_tokens": 1167829,
|
||||
"other_text_tokens": 1169049,
|
||||
"estimated_initial_load_tokens": 998,
|
||||
"estimated_total_text_tokens": 1168634,
|
||||
"deferred_resource_tokens": 530464,
|
||||
"estimated_total_text_tokens": 1169854,
|
||||
"deferred_resource_tokens": 530871,
|
||||
"deferred_resource_warn_threshold": 120000,
|
||||
"deferred_resource_dirs": [
|
||||
{
|
||||
"path": "scripts",
|
||||
"estimated_tokens": 469161,
|
||||
"estimated_tokens": 469568,
|
||||
"file_count": 155
|
||||
},
|
||||
{
|
||||
@@ -18248,7 +18232,7 @@
|
||||
"large_deferred_resource_dirs": [
|
||||
{
|
||||
"path": "scripts",
|
||||
"estimated_tokens": 469161,
|
||||
"estimated_tokens": 469568,
|
||||
"file_count": 155
|
||||
}
|
||||
],
|
||||
@@ -18271,14 +18255,14 @@
|
||||
],
|
||||
"missing": [],
|
||||
"path": "scripts",
|
||||
"estimated_tokens": 469161,
|
||||
"estimated_tokens": 469568,
|
||||
"file_count": 155,
|
||||
"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": 570,
|
||||
"relevant_file_count": 571,
|
||||
"unused_resource_dirs": [],
|
||||
"quality_signal_points": 140,
|
||||
"quality_density": 140.3
|
||||
@@ -20193,7 +20177,7 @@
|
||||
"daily_skillops": {
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20T12:35:26Z",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"decision": "proposal-review",
|
||||
"source_supplied": false,
|
||||
@@ -20699,27 +20683,27 @@
|
||||
"benchmark_reproducibility": "reports/benchmark_reproducibility.json"
|
||||
},
|
||||
"artifacts": {
|
||||
"json": "reports/skillops/daily/2026-06-20.json",
|
||||
"markdown": "reports/skillops/daily/2026-06-20.md"
|
||||
"json": "reports/skillops/daily/2026-06-21.json",
|
||||
"markdown": "reports/skillops/daily/2026-06-21.md"
|
||||
},
|
||||
"source_path": "reports/skillops/daily/2026-06-20.json"
|
||||
"source_path": "reports/skillops/daily/2026-06-21.json"
|
||||
},
|
||||
"weekly_curator": {
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20T12:35:26Z",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"decision": "curator-review",
|
||||
"week_id": "2026-W25",
|
||||
"daily_report_count": 3,
|
||||
"opportunity_count": 15,
|
||||
"daily_report_count": 4,
|
||||
"opportunity_count": 20,
|
||||
"unique_opportunity_count": 5,
|
||||
"ready_for_approval_review_count": 1,
|
||||
"proposal_review_count": 4,
|
||||
"observe_more_evidence_count": 0,
|
||||
"report_only_count": 0,
|
||||
"top_score": 88,
|
||||
"skill_count": 12,
|
||||
"skill_count": 11,
|
||||
"actionable_portfolio_issue_count": 0,
|
||||
"release_lock_ready": true,
|
||||
"evidence_consistency_ok": true,
|
||||
@@ -20731,15 +20715,15 @@
|
||||
"summary": {
|
||||
"decision": "curator-review",
|
||||
"week_id": "2026-W25",
|
||||
"daily_report_count": 3,
|
||||
"opportunity_count": 15,
|
||||
"daily_report_count": 4,
|
||||
"opportunity_count": 20,
|
||||
"unique_opportunity_count": 5,
|
||||
"ready_for_approval_review_count": 1,
|
||||
"proposal_review_count": 4,
|
||||
"observe_more_evidence_count": 0,
|
||||
"report_only_count": 0,
|
||||
"top_score": 88,
|
||||
"skill_count": 12,
|
||||
"skill_count": 11,
|
||||
"actionable_portfolio_issue_count": 0,
|
||||
"release_lock_ready": true,
|
||||
"evidence_consistency_ok": true,
|
||||
@@ -20797,7 +20781,8 @@
|
||||
"daily_reports": [
|
||||
"reports/skillops/daily/2026-06-16.json",
|
||||
"reports/skillops/daily/2026-06-17.json",
|
||||
"reports/skillops/daily/2026-06-20.json"
|
||||
"reports/skillops/daily/2026-06-20.json",
|
||||
"reports/skillops/daily/2026-06-21.json"
|
||||
],
|
||||
"opportunity_summary": {
|
||||
"action_type_counts": {
|
||||
@@ -20982,13 +20967,13 @@
|
||||
}
|
||||
],
|
||||
"portfolio": {
|
||||
"skill_count": 12,
|
||||
"skill_count": 11,
|
||||
"actionable_issue_count": 0,
|
||||
"route_collision_count": 5,
|
||||
"actionable_route_collision_count": 0,
|
||||
"owner_gap_count": 9,
|
||||
"owner_gap_count": 8,
|
||||
"actionable_owner_gap_count": 0,
|
||||
"stale_count": 10,
|
||||
"stale_count": 9,
|
||||
"actionable_stale_count": 0,
|
||||
"drift_signal_count": 0,
|
||||
"actionable_drift_signal_count": 0,
|
||||
@@ -21173,7 +21158,7 @@
|
||||
"adaptation_proposals": {
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20T12:35:26Z",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"source_patterns": "reports/user_patterns.json",
|
||||
"pattern_count": 5,
|
||||
@@ -22571,7 +22556,7 @@
|
||||
"world_class_evidence_preflight": {
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"summary": {
|
||||
"evidence_item_count": 4,
|
||||
@@ -23372,8 +23357,8 @@
|
||||
"artifact_prefill_counts_as_evidence": false,
|
||||
"submission_ref_total_count": 2,
|
||||
"submission_ref_ready_count": 2,
|
||||
"supporting_evidence_total_count": 8,
|
||||
"supporting_evidence_ready_count": 7,
|
||||
"supporting_evidence_total_count": 11,
|
||||
"supporting_evidence_ready_count": 11,
|
||||
"roles": [
|
||||
{
|
||||
"role": "submission-ref",
|
||||
@@ -24516,8 +24501,8 @@
|
||||
"artifact_prefill_counts_as_evidence": false,
|
||||
"submission_ref_total_count": 7,
|
||||
"submission_ref_ready_count": 7,
|
||||
"supporting_evidence_total_count": 28,
|
||||
"supporting_evidence_ready_count": 27,
|
||||
"supporting_evidence_total_count": 31,
|
||||
"supporting_evidence_ready_count": 31,
|
||||
"roles": [
|
||||
{
|
||||
"role": "submission-ref",
|
||||
@@ -26682,15 +26667,15 @@
|
||||
"world_class_claim_guard": {
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"summary": {
|
||||
"ledger_ready_to_claim_world_class": false,
|
||||
"ledger_pending_count": 4,
|
||||
"claim_surface_count": 175,
|
||||
"json_claim_surface_count": 85,
|
||||
"metadata_claim_surface_count": 86,
|
||||
"package_claim_surface_count": 10,
|
||||
"claim_surface_count": 184,
|
||||
"json_claim_surface_count": 91,
|
||||
"metadata_claim_surface_count": 92,
|
||||
"package_claim_surface_count": 17,
|
||||
"violation_count": 0,
|
||||
"overclaim_guard_active": true,
|
||||
"decision": "claim-guard-pass-evidence-pending"
|
||||
@@ -26735,6 +26720,34 @@
|
||||
"path": "agents/interface.yaml",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/manifest.json",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/targets/claude/README.md",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/targets/claude/adapter.json",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/targets/generic/adapter.json",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/targets/openai/adapter.json",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/targets/vscode/README.md",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/targets/vscode/adapter.json",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "docs/README.fr-FR.md",
|
||||
"violation_count": 0
|
||||
@@ -27283,6 +27296,14 @@
|
||||
"path": "reports/skillops/daily/2026-06-20.md",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "reports/skillops/daily/2026-06-21.json",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "reports/skillops/daily/2026-06-21.md",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "reports/skillops/weekly/2026-W25.json",
|
||||
"violation_count": 0
|
||||
@@ -27457,8 +27478,8 @@
|
||||
"trust_level": "local",
|
||||
"license": "MIT",
|
||||
"checksums": {
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
"compatibility": {
|
||||
"openai": "pass",
|
||||
@@ -27489,16 +27510,16 @@
|
||||
},
|
||||
"distribution": {
|
||||
"archive_verified": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"package_verification": "reports/package_verification.json",
|
||||
"install_simulated": true,
|
||||
"install_simulation": "reports/install_simulation.json"
|
||||
},
|
||||
"generated_at": "2026-06-13"
|
||||
"generated_at": "2026-06-21"
|
||||
},
|
||||
"index": {
|
||||
"schema_version": "2.0",
|
||||
"generated_at": "2026-06-13",
|
||||
"generated_at": "2026-06-21",
|
||||
"package_count": 1,
|
||||
"packages": [
|
||||
{
|
||||
@@ -27514,7 +27535,7 @@
|
||||
"vscode"
|
||||
],
|
||||
"package_metadata": "registry/packages/yao-meta-skill.json",
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -27530,15 +27551,16 @@
|
||||
"package_verification": {
|
||||
"ok": true,
|
||||
"schema_version": "2.0",
|
||||
"generated_at": "2026-06-17",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"package_dir": "dist",
|
||||
"summary": {
|
||||
"target_count": 4,
|
||||
"adapter_count": 4,
|
||||
"archive_present": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_entry_count": 689,
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"archive_entry_count": 580,
|
||||
"nested_skill_entry_count": 0,
|
||||
"failure_count": 0,
|
||||
"warning_count": 0
|
||||
},
|
||||
@@ -28143,6 +28165,11 @@
|
||||
"status": "pass",
|
||||
"detail": "Archive contains yao-meta-skill/agents/interface.yaml"
|
||||
},
|
||||
{
|
||||
"id": "archive-single-skill-entrypoint",
|
||||
"status": "pass",
|
||||
"detail": "Archive exposes only the root SKILL.md entrypoint"
|
||||
},
|
||||
{
|
||||
"id": "archive-excludes-generated",
|
||||
"status": "pass",
|
||||
@@ -28196,14 +28223,15 @@
|
||||
"install_simulation": {
|
||||
"ok": true,
|
||||
"schema_version": "2.0",
|
||||
"generated_at": "2026-06-13",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"package_dir": "tests/tmp_review_studio/dist",
|
||||
"install_root": "tests/tmp_review_studio/install-root/simulate-yao-meta-skill",
|
||||
"installed_skill_dir": "tests/tmp_review_studio/install-root/simulate-yao-meta-skill/yao-meta-skill",
|
||||
"package_dir": "dist",
|
||||
"install_root": "dist/install-simulation/simulate-yao-meta-skill",
|
||||
"installed_skill_dir": "dist/install-simulation/simulate-yao-meta-skill/yao-meta-skill",
|
||||
"summary": {
|
||||
"archive_present": true,
|
||||
"archive_entry_count": 588,
|
||||
"archive_entry_count": 580,
|
||||
"nested_skill_entry_count": 0,
|
||||
"archive_extracted": true,
|
||||
"entrypoint_loaded": true,
|
||||
"manifest_loaded": true,
|
||||
@@ -28221,13 +28249,18 @@
|
||||
{
|
||||
"id": "archive-present",
|
||||
"status": "pass",
|
||||
"detail": "Package archive exists: tests/tmp_review_studio/dist/yao-meta-skill.zip"
|
||||
"detail": "Package archive exists: dist/yao-meta-skill.zip"
|
||||
},
|
||||
{
|
||||
"id": "archive-safe-paths",
|
||||
"status": "pass",
|
||||
"detail": "Archive has no absolute or parent-traversal entries"
|
||||
},
|
||||
{
|
||||
"id": "single-skill-entrypoint",
|
||||
"status": "pass",
|
||||
"detail": "Installed package exposes only the root SKILL.md entrypoint"
|
||||
},
|
||||
{
|
||||
"id": "single-top-level",
|
||||
"status": "pass",
|
||||
@@ -28467,16 +28500,16 @@
|
||||
"failures": [],
|
||||
"warnings": [],
|
||||
"artifacts": {
|
||||
"archive": "tests/tmp_review_studio/dist/yao-meta-skill.zip",
|
||||
"package_manifest": "tests/tmp_review_studio/dist/manifest.json",
|
||||
"json": "tests/tmp_review_studio/install_simulation.json",
|
||||
"markdown": "tests/tmp_review_studio/install_simulation.md"
|
||||
"archive": "dist/yao-meta-skill.zip",
|
||||
"package_manifest": "dist/manifest.json",
|
||||
"json": "reports/install_simulation.json",
|
||||
"markdown": "reports/install_simulation.md"
|
||||
}
|
||||
},
|
||||
"upgrade_check": {
|
||||
"ok": true,
|
||||
"schema_version": "2.0",
|
||||
"generated_at": "2026-06-13",
|
||||
"generated_at": "2026-06-21",
|
||||
"previous": {
|
||||
"name": "yao-meta-skill",
|
||||
"version": "1.0.0",
|
||||
@@ -28545,12 +28578,12 @@
|
||||
{
|
||||
"field": "archive_sha256",
|
||||
"from": "",
|
||||
"to": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"to": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
{
|
||||
"field": "package_sha256",
|
||||
"from": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"to": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"to": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -28565,8 +28598,8 @@
|
||||
"artifacts": {
|
||||
"previous_package": "registry/examples/yao-meta-skill-1.0.0.json",
|
||||
"current_package": "reports/registry_audit.json",
|
||||
"json": "tests/tmp_review_studio/upgrade_check.json",
|
||||
"markdown": "tests/tmp_review_studio/upgrade_check.md"
|
||||
"json": "reports/upgrade_check.json",
|
||||
"markdown": "reports/upgrade_check.md"
|
||||
}
|
||||
},
|
||||
"manifest": {
|
||||
|
||||
+22
-20
@@ -522,10 +522,10 @@
|
||||
"path": "reports",
|
||||
"label": "Generated evidence and overview artifacts",
|
||||
"kind": "folder",
|
||||
"file_count": 150
|
||||
"file_count": 152
|
||||
}
|
||||
],
|
||||
"file_count": 373,
|
||||
"file_count": 375,
|
||||
"folder_count": 4,
|
||||
"distribution": [
|
||||
{
|
||||
@@ -558,7 +558,7 @@
|
||||
},
|
||||
{
|
||||
"label": "reports",
|
||||
"value": 150
|
||||
"value": 152
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -692,7 +692,7 @@
|
||||
"path": "reports",
|
||||
"label": "Generated evidence and overview artifacts",
|
||||
"kind": "folder",
|
||||
"file_count": 150
|
||||
"file_count": 152
|
||||
}
|
||||
],
|
||||
"strengths": [
|
||||
@@ -1016,9 +1016,9 @@
|
||||
"methodology_complete": true,
|
||||
"required_artifact_count": 25,
|
||||
"missing_artifact_count": 0,
|
||||
"evidence_bundle_sha256": "3f7cdbc5e28c338aa681de7729ad6b634f9a8be2f993280f001d399c50bd8ad4",
|
||||
"source_contract_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"evidence_bundle_sha256": "e819a616c7276f6433bbcf38f30696cc0f19b6c035adf5c8cf09e64cbe8db9ad",
|
||||
"source_contract_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"output_case_count": 5,
|
||||
"failure_disclosure_count": 3,
|
||||
"command_count": 23,
|
||||
@@ -1041,13 +1041,13 @@
|
||||
"public_claim_ready": false,
|
||||
"public_claim_blocker_count": 3,
|
||||
"working_tree_dirty": true,
|
||||
"changed_file_count": 71,
|
||||
"changed_file_count": 3,
|
||||
"source_tree_dirty": false,
|
||||
"source_changed_file_count": 0,
|
||||
"generated_tree_dirty": true,
|
||||
"generated_changed_file_count": 71
|
||||
"generated_changed_file_count": 3
|
||||
},
|
||||
"commit": "f37e78def3464bc818429c47e1ecc9e033c7356c",
|
||||
"commit": "139d0fd15ce995757d6d75fb45fb417d0b1b4e7d",
|
||||
"missing_artifacts": [],
|
||||
"limitations": [
|
||||
"The git commit and dirty flags are generation-time context; release lock is blocked by source changes, while generated evidence artifacts are tracked separately.",
|
||||
@@ -1153,7 +1153,7 @@
|
||||
"interactive_script_count": 0,
|
||||
"package_hash_scope": "source-contract-without-generated-reports",
|
||||
"package_hash_file_count": 247,
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
},
|
||||
"skill_atlas": {
|
||||
"skill_count": 11,
|
||||
@@ -1191,8 +1191,8 @@
|
||||
"trust_level": "local",
|
||||
"license": "MIT",
|
||||
"checksums": {
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
"compatibility": {
|
||||
"openai": "pass",
|
||||
@@ -1223,12 +1223,12 @@
|
||||
},
|
||||
"distribution": {
|
||||
"archive_verified": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"package_verification": "reports/package_verification.json",
|
||||
"install_simulated": true,
|
||||
"install_simulation": "reports/install_simulation.json"
|
||||
},
|
||||
"generated_at": "2026-06-13"
|
||||
"generated_at": "2026-06-21"
|
||||
},
|
||||
"failures": [],
|
||||
"warnings": []
|
||||
@@ -1239,8 +1239,9 @@
|
||||
"target_count": 4,
|
||||
"adapter_count": 4,
|
||||
"archive_present": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_entry_count": 689,
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"archive_entry_count": 580,
|
||||
"nested_skill_entry_count": 0,
|
||||
"failure_count": 0,
|
||||
"warning_count": 0
|
||||
},
|
||||
@@ -1251,7 +1252,8 @@
|
||||
"ok": true,
|
||||
"summary": {
|
||||
"archive_present": true,
|
||||
"archive_entry_count": 588,
|
||||
"archive_entry_count": 580,
|
||||
"nested_skill_entry_count": 0,
|
||||
"archive_extracted": true,
|
||||
"entrypoint_loaded": true,
|
||||
"manifest_loaded": true,
|
||||
@@ -1318,12 +1320,12 @@
|
||||
{
|
||||
"field": "archive_sha256",
|
||||
"from": "",
|
||||
"to": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"to": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
{
|
||||
"field": "package_sha256",
|
||||
"from": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"to": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"to": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"skill_dir": ".",
|
||||
"package_dir": "tests/tmp_review_studio/dist",
|
||||
"package_dir": "dist",
|
||||
"expected_capabilities": [
|
||||
"file_write",
|
||||
"network",
|
||||
@@ -42,7 +42,7 @@
|
||||
{
|
||||
"target": "openai",
|
||||
"status": "pass",
|
||||
"adapter": "tests/tmp_review_studio/dist/targets/openai/adapter.json",
|
||||
"adapter": "dist/targets/openai/adapter.json",
|
||||
"permission_model": "metadata-only",
|
||||
"native_enforcement": false,
|
||||
"metadata_fallback_explicit": true,
|
||||
@@ -139,7 +139,7 @@
|
||||
{
|
||||
"target": "claude",
|
||||
"status": "pass",
|
||||
"adapter": "tests/tmp_review_studio/dist/targets/claude/adapter.json",
|
||||
"adapter": "dist/targets/claude/adapter.json",
|
||||
"permission_model": "neutral-source-plus-adapter",
|
||||
"native_enforcement": false,
|
||||
"metadata_fallback_explicit": true,
|
||||
@@ -221,7 +221,7 @@
|
||||
{
|
||||
"target": "generic",
|
||||
"status": "pass",
|
||||
"adapter": "tests/tmp_review_studio/dist/targets/generic/adapter.json",
|
||||
"adapter": "dist/targets/generic/adapter.json",
|
||||
"permission_model": "agent-skills-compatible-metadata",
|
||||
"native_enforcement": false,
|
||||
"metadata_fallback_explicit": true,
|
||||
@@ -303,7 +303,7 @@
|
||||
{
|
||||
"target": "vscode",
|
||||
"status": "pass",
|
||||
"adapter": "tests/tmp_review_studio/dist/targets/vscode/adapter.json",
|
||||
"adapter": "dist/targets/vscode/adapter.json",
|
||||
"permission_model": "vscode-workspace-trust-plus-metadata",
|
||||
"native_enforcement": false,
|
||||
"metadata_fallback_explicit": true,
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"interactive_script_count": 0,
|
||||
"package_hash_scope": "source-contract-without-generated-reports",
|
||||
"package_hash_file_count": 247,
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
},
|
||||
"failures": [],
|
||||
"warnings": [],
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
- Interactive scripts: `0`
|
||||
- Package hash scope: `source-contract-without-generated-reports`
|
||||
- Package hash files: `247`
|
||||
- Package SHA256: `e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd`
|
||||
- Package SHA256: `eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383`
|
||||
|
||||
## Failures
|
||||
|
||||
|
||||
@@ -940,7 +940,7 @@
|
||||
<p><span data-lang="zh-CN">让 reviewer 快速确认关键文件、目录和资产分布。</span><span data-lang="en">Lets reviewers confirm key files, directories, and asset distribution quickly.</span></p>
|
||||
</div>
|
||||
<div class="two-col">
|
||||
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-0.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="18.0 82.0" stroke-dashoffset="-2.1" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="79.9 20.1" stroke-dashoffset="-20.1" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">373项</text><text data-lang="en" x="130" y="136" text-anchor="middle">373 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
|
||||
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-0.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="18.0 82.0" stroke-dashoffset="-2.1" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="79.9 20.1" stroke-dashoffset="-20.1" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">375项</text><text data-lang="en" x="130" y="136" text-anchor="middle">375 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>
|
||||
|
||||
@@ -522,10 +522,10 @@
|
||||
"path": "reports",
|
||||
"label": "Generated evidence and overview artifacts",
|
||||
"kind": "folder",
|
||||
"file_count": 150
|
||||
"file_count": 152
|
||||
}
|
||||
],
|
||||
"file_count": 373,
|
||||
"file_count": 375,
|
||||
"folder_count": 4,
|
||||
"distribution": [
|
||||
{
|
||||
@@ -558,7 +558,7 @@
|
||||
},
|
||||
{
|
||||
"label": "reports",
|
||||
"value": 150
|
||||
"value": 152
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -696,7 +696,7 @@
|
||||
"path": "reports",
|
||||
"label": "Generated evidence and overview artifacts",
|
||||
"kind": "folder",
|
||||
"file_count": 150
|
||||
"file_count": 152
|
||||
}
|
||||
],
|
||||
"strengths": [
|
||||
@@ -1020,9 +1020,9 @@
|
||||
"methodology_complete": true,
|
||||
"required_artifact_count": 25,
|
||||
"missing_artifact_count": 0,
|
||||
"evidence_bundle_sha256": "3f7cdbc5e28c338aa681de7729ad6b634f9a8be2f993280f001d399c50bd8ad4",
|
||||
"source_contract_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"evidence_bundle_sha256": "e819a616c7276f6433bbcf38f30696cc0f19b6c035adf5c8cf09e64cbe8db9ad",
|
||||
"source_contract_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"output_case_count": 5,
|
||||
"failure_disclosure_count": 3,
|
||||
"command_count": 23,
|
||||
@@ -1045,13 +1045,13 @@
|
||||
"public_claim_ready": false,
|
||||
"public_claim_blocker_count": 3,
|
||||
"working_tree_dirty": true,
|
||||
"changed_file_count": 71,
|
||||
"changed_file_count": 3,
|
||||
"source_tree_dirty": false,
|
||||
"source_changed_file_count": 0,
|
||||
"generated_tree_dirty": true,
|
||||
"generated_changed_file_count": 71
|
||||
"generated_changed_file_count": 3
|
||||
},
|
||||
"commit": "f37e78def3464bc818429c47e1ecc9e033c7356c",
|
||||
"commit": "139d0fd15ce995757d6d75fb45fb417d0b1b4e7d",
|
||||
"missing_artifacts": [],
|
||||
"limitations": [
|
||||
"The git commit and dirty flags are generation-time context; release lock is blocked by source changes, while generated evidence artifacts are tracked separately.",
|
||||
@@ -1157,7 +1157,7 @@
|
||||
"interactive_script_count": 0,
|
||||
"package_hash_scope": "source-contract-without-generated-reports",
|
||||
"package_hash_file_count": 247,
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
},
|
||||
"skill_atlas": {
|
||||
"skill_count": 11,
|
||||
@@ -1195,8 +1195,8 @@
|
||||
"trust_level": "local",
|
||||
"license": "MIT",
|
||||
"checksums": {
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
"compatibility": {
|
||||
"openai": "pass",
|
||||
@@ -1227,12 +1227,12 @@
|
||||
},
|
||||
"distribution": {
|
||||
"archive_verified": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"package_verification": "reports/package_verification.json",
|
||||
"install_simulated": true,
|
||||
"install_simulation": "reports/install_simulation.json"
|
||||
},
|
||||
"generated_at": "2026-06-13"
|
||||
"generated_at": "2026-06-21"
|
||||
},
|
||||
"failures": [],
|
||||
"warnings": []
|
||||
@@ -1243,8 +1243,9 @@
|
||||
"target_count": 4,
|
||||
"adapter_count": 4,
|
||||
"archive_present": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_entry_count": 689,
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"archive_entry_count": 580,
|
||||
"nested_skill_entry_count": 0,
|
||||
"failure_count": 0,
|
||||
"warning_count": 0
|
||||
},
|
||||
@@ -1255,7 +1256,8 @@
|
||||
"ok": true,
|
||||
"summary": {
|
||||
"archive_present": true,
|
||||
"archive_entry_count": 588,
|
||||
"archive_entry_count": 580,
|
||||
"nested_skill_entry_count": 0,
|
||||
"archive_extracted": true,
|
||||
"entrypoint_loaded": true,
|
||||
"manifest_loaded": true,
|
||||
@@ -1322,12 +1324,12 @@
|
||||
{
|
||||
"field": "archive_sha256",
|
||||
"from": "",
|
||||
"to": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"to": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
{
|
||||
"field": "package_sha256",
|
||||
"from": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"to": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"to": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -140,8 +140,8 @@ Next move: add real client or installer permission enforcement integration.
|
||||
| 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, `689` zip entries, `0` failures, `0` warnings |
|
||||
| Install Simulation | archive with `689` 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, `580` zip entries, `0` nested SKILL.md entries, `0` failures, `0` warnings |
|
||||
| Install Simulation | archive with `580` entries extracted into a local verification root, `0` nested SKILL.md entries, 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 |
|
||||
|
||||
@@ -940,7 +940,7 @@
|
||||
<p><span data-lang="zh-CN">让 reviewer 快速确认关键文件、目录和资产分布。</span><span data-lang="en">Lets reviewers confirm key files, directories, and asset distribution quickly.</span></p>
|
||||
</div>
|
||||
<div class="two-col">
|
||||
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-0.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="18.0 82.0" stroke-dashoffset="-2.1" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="79.9 20.1" stroke-dashoffset="-20.1" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">373项</text><text data-lang="en" x="130" y="136" text-anchor="middle">373 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
|
||||
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-0.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.5 99.5" stroke-dashoffset="-1.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="18.0 82.0" stroke-dashoffset="-2.1" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="79.9 20.1" stroke-dashoffset="-20.1" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">375项</text><text data-lang="en" x="130" y="136" text-anchor="middle">375 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>
|
||||
|
||||
+22
-20
@@ -521,10 +521,10 @@
|
||||
"path": "reports",
|
||||
"label": "Generated evidence and overview artifacts",
|
||||
"kind": "folder",
|
||||
"file_count": 150
|
||||
"file_count": 152
|
||||
}
|
||||
],
|
||||
"file_count": 373,
|
||||
"file_count": 375,
|
||||
"folder_count": 4,
|
||||
"distribution": [
|
||||
{
|
||||
@@ -557,7 +557,7 @@
|
||||
},
|
||||
{
|
||||
"label": "reports",
|
||||
"value": 150
|
||||
"value": 152
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -691,7 +691,7 @@
|
||||
"path": "reports",
|
||||
"label": "Generated evidence and overview artifacts",
|
||||
"kind": "folder",
|
||||
"file_count": 150
|
||||
"file_count": 152
|
||||
}
|
||||
],
|
||||
"strengths": [
|
||||
@@ -1015,9 +1015,9 @@
|
||||
"methodology_complete": true,
|
||||
"required_artifact_count": 25,
|
||||
"missing_artifact_count": 0,
|
||||
"evidence_bundle_sha256": "3f7cdbc5e28c338aa681de7729ad6b634f9a8be2f993280f001d399c50bd8ad4",
|
||||
"source_contract_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"evidence_bundle_sha256": "e819a616c7276f6433bbcf38f30696cc0f19b6c035adf5c8cf09e64cbe8db9ad",
|
||||
"source_contract_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"output_case_count": 5,
|
||||
"failure_disclosure_count": 3,
|
||||
"command_count": 23,
|
||||
@@ -1040,13 +1040,13 @@
|
||||
"public_claim_ready": false,
|
||||
"public_claim_blocker_count": 3,
|
||||
"working_tree_dirty": true,
|
||||
"changed_file_count": 71,
|
||||
"changed_file_count": 3,
|
||||
"source_tree_dirty": false,
|
||||
"source_changed_file_count": 0,
|
||||
"generated_tree_dirty": true,
|
||||
"generated_changed_file_count": 71
|
||||
"generated_changed_file_count": 3
|
||||
},
|
||||
"commit": "f37e78def3464bc818429c47e1ecc9e033c7356c",
|
||||
"commit": "139d0fd15ce995757d6d75fb45fb417d0b1b4e7d",
|
||||
"missing_artifacts": [],
|
||||
"limitations": [
|
||||
"The git commit and dirty flags are generation-time context; release lock is blocked by source changes, while generated evidence artifacts are tracked separately.",
|
||||
@@ -1152,7 +1152,7 @@
|
||||
"interactive_script_count": 0,
|
||||
"package_hash_scope": "source-contract-without-generated-reports",
|
||||
"package_hash_file_count": 247,
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
},
|
||||
"skill_atlas": {
|
||||
"skill_count": 11,
|
||||
@@ -1190,8 +1190,8 @@
|
||||
"trust_level": "local",
|
||||
"license": "MIT",
|
||||
"checksums": {
|
||||
"package_sha256": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd",
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"package_sha256": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
"compatibility": {
|
||||
"openai": "pass",
|
||||
@@ -1222,12 +1222,12 @@
|
||||
},
|
||||
"distribution": {
|
||||
"archive_verified": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"package_verification": "reports/package_verification.json",
|
||||
"install_simulated": true,
|
||||
"install_simulation": "reports/install_simulation.json"
|
||||
},
|
||||
"generated_at": "2026-06-13"
|
||||
"generated_at": "2026-06-21"
|
||||
},
|
||||
"failures": [],
|
||||
"warnings": []
|
||||
@@ -1238,8 +1238,9 @@
|
||||
"target_count": 4,
|
||||
"adapter_count": 4,
|
||||
"archive_present": true,
|
||||
"archive_sha256": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2",
|
||||
"archive_entry_count": 689,
|
||||
"archive_sha256": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7",
|
||||
"archive_entry_count": 580,
|
||||
"nested_skill_entry_count": 0,
|
||||
"failure_count": 0,
|
||||
"warning_count": 0
|
||||
},
|
||||
@@ -1250,7 +1251,8 @@
|
||||
"ok": true,
|
||||
"summary": {
|
||||
"archive_present": true,
|
||||
"archive_entry_count": 588,
|
||||
"archive_entry_count": 580,
|
||||
"nested_skill_entry_count": 0,
|
||||
"archive_extracted": true,
|
||||
"entrypoint_loaded": true,
|
||||
"manifest_loaded": true,
|
||||
@@ -1317,12 +1319,12 @@
|
||||
{
|
||||
"field": "archive_sha256",
|
||||
"from": "",
|
||||
"to": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"to": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
{
|
||||
"field": "package_sha256",
|
||||
"from": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"to": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"to": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-13",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"summary": {
|
||||
"item_count": 15,
|
||||
@@ -285,7 +285,7 @@
|
||||
"key": "registry-distribution",
|
||||
"label": "Registry Distribution",
|
||||
"status": "pass",
|
||||
"current": "zip entries 689; install failures 0; permission failures 0",
|
||||
"current": "zip entries 580; install failures 0; permission failures 0",
|
||||
"target": "Package metadata, archive checksum, package verification, and install simulation pass",
|
||||
"evidence": [
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Skill OS 2.0 Audit
|
||||
|
||||
Generated at: `2026-06-13`
|
||||
Generated at: `2026-06-21`
|
||||
|
||||
## Summary
|
||||
|
||||
@@ -27,7 +27,7 @@ Generated at: `2026-06-13`
|
||||
| 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 | 11 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 689; 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 580; install failures 0; permission failures 0 | Package metadata, archive checksum, package verification, and install simulation pass | Regenerate registry after package verification so checksums stay aligned. |
|
||||
| Review Studio | pass | decision review; warnings 3; score 91 | One page shows gates, evidence paths, blockers, warnings, actions, waivers, and annotations | Resolve human/external warning gates before claiming full release readiness. |
|
||||
| Telemetry Drift | pass | events 1; risk low; recipes 5 | Local-first metadata-only event contract, aggregate drift report, hook recipes, and import path | Keep raw JSONL out of distributed packages and use aggregate reports for Atlas. |
|
||||
| Native Client Telemetry | external-required | external source events 0; adoption samples 1 | A real Browser/Chrome/provider client sends production metadata events | Install a real client against the native host and import production metadata-only events. |
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"summary": {
|
||||
"item_count": 21,
|
||||
@@ -204,7 +204,7 @@
|
||||
"label": "Registry Distribution",
|
||||
"status": "pass",
|
||||
"objective": "Skill packages are installable, versioned, checksumed, and upgrade-reviewable.",
|
||||
"current": "archive entries 689; install failures 0",
|
||||
"current": "archive entries 580; 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": [
|
||||
@@ -749,11 +749,11 @@
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "reports/skillops/daily/2026-06-20.json",
|
||||
"path": "reports/skillops/daily/2026-06-21.json",
|
||||
"exists": true
|
||||
},
|
||||
{
|
||||
"path": "reports/skillops/daily/2026-06-20.md",
|
||||
"path": "reports/skillops/daily/2026-06-21.md",
|
||||
"exists": true
|
||||
}
|
||||
],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Skill OS 2.0 Blueprint Coverage
|
||||
|
||||
Generated at: `2026-06-20`
|
||||
Generated at: `2026-06-21`
|
||||
|
||||
## Summary
|
||||
|
||||
@@ -28,7 +28,7 @@ This report maps the Skill OS 2.0 upgrade blueprint to concrete local artifacts,
|
||||
| Runtime Conformance | `pass` | 5/5 targets pass | `python3 scripts/yao.py conformance .` | `python3 tests/verify_conformance_suite.py` |
|
||||
| Trust Security | `pass` | 155 scripts; secrets 0; help failures 0 | `python3 scripts/yao.py trust .` | `python3 tests/verify_trust_check.py` |
|
||||
| Skill Atlas | `pass` | 11 scanned skills; actionable collisions 0 | `python3 scripts/yao.py skill-atlas --workspace-root .` | `python3 tests/verify_skill_atlas.py` |
|
||||
| Registry Distribution | `pass` | archive entries 689; 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 580; 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` |
|
||||
|
||||
@@ -235,7 +235,7 @@ These extension tracks come from the user-supplied 2.0 reference plan. They are
|
||||
|
||||
- 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-20.json`, `reports/skillops/daily/2026-06-20.md`
|
||||
- existing evidence: `scripts/render_daily_skillops_report.py`, `tests/verify_daily_skillops.py`, `reports/skillops/daily/2026-06-21.json`, `reports/skillops/daily/2026-06-21.md`
|
||||
- next action: Keep Daily SkillOps report aligned with proposal, approval, coverage, and world-class ledger contracts as the operations layer evolves.
|
||||
|
||||
### Weekly Curator Report
|
||||
|
||||
@@ -0,0 +1,513 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-21",
|
||||
"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": true,
|
||||
"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": true,
|
||||
"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"
|
||||
]
|
||||
}
|
||||
],
|
||||
"opportunity_summary": {
|
||||
"opportunity_count": 5,
|
||||
"top_score": 88,
|
||||
"ready_for_approval_review_count": 1,
|
||||
"proposal_review_count": 4,
|
||||
"observe_more_evidence_count": 0,
|
||||
"report_only_count": 0,
|
||||
"action_type_counts": {
|
||||
"patch_existing_skill": 3,
|
||||
"agents_update": 1,
|
||||
"add_eval": 1
|
||||
},
|
||||
"decision_counts": {
|
||||
"ready_for_approval_review": 1,
|
||||
"proposal_review": 4
|
||||
}
|
||||
},
|
||||
"opportunities": [
|
||||
{
|
||||
"opportunity_id": "skillops-4ad91c18dd",
|
||||
"proposal_id": "adapt-fbfe921ba5",
|
||||
"pattern_id": "report_ui",
|
||||
"title": "Improve report layout, visual hierarchy, and chart readability",
|
||||
"opportunity_type": "artifact-quality",
|
||||
"action_type": "patch_existing_skill",
|
||||
"decision": "ready_for_approval_review",
|
||||
"priority": "medium",
|
||||
"score": 88,
|
||||
"score_reasons": [
|
||||
"support_count=5",
|
||||
"confidence=0.95",
|
||||
"risk=medium",
|
||||
"target_files_present",
|
||||
"verification_present",
|
||||
"approval_required"
|
||||
],
|
||||
"policy_reason": "Repeated report layout feedback maps to existing renderer and design doctrine changes.",
|
||||
"risk_level": "medium",
|
||||
"requires_approval": true,
|
||||
"write_allowed_without_approval": false,
|
||||
"evidence_count": 5,
|
||||
"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"
|
||||
]
|
||||
},
|
||||
{
|
||||
"opportunity_id": "skillops-531e13c1c6",
|
||||
"proposal_id": "adapt-59d219a1fb",
|
||||
"pattern_id": "approval_safety",
|
||||
"title": "Keep adaptive iteration approval-gated",
|
||||
"opportunity_type": "governance",
|
||||
"action_type": "agents_update",
|
||||
"decision": "proposal_review",
|
||||
"priority": "medium",
|
||||
"score": 82,
|
||||
"score_reasons": [
|
||||
"support_count=2",
|
||||
"confidence=0.79",
|
||||
"risk=low",
|
||||
"target_files_present",
|
||||
"verification_present",
|
||||
"approval_required"
|
||||
],
|
||||
"policy_reason": "Repeated privacy and approval signals should tighten durable operating guidance.",
|
||||
"risk_level": "low",
|
||||
"requires_approval": true,
|
||||
"write_allowed_without_approval": false,
|
||||
"evidence_count": 2,
|
||||
"target_files": [
|
||||
"references/user-memory-policy.md",
|
||||
"references/autonomous-adaptation.md",
|
||||
"schemas/adaptation-proposal.schema.json"
|
||||
],
|
||||
"verification_commands": [
|
||||
"python3 tests/verify_adaptation_safety.py"
|
||||
]
|
||||
},
|
||||
{
|
||||
"opportunity_id": "skillops-709ef884f3",
|
||||
"proposal_id": "adapt-18c7517f3d",
|
||||
"pattern_id": "language_default",
|
||||
"title": "Keep reports Chinese-first with optional English",
|
||||
"opportunity_type": "report-experience",
|
||||
"action_type": "patch_existing_skill",
|
||||
"decision": "proposal_review",
|
||||
"priority": "medium",
|
||||
"score": 82,
|
||||
"score_reasons": [
|
||||
"support_count=2",
|
||||
"confidence=0.79",
|
||||
"risk=low",
|
||||
"target_files_present",
|
||||
"verification_present",
|
||||
"approval_required"
|
||||
],
|
||||
"policy_reason": "Repeated language preferences can improve existing report templates after approval.",
|
||||
"risk_level": "low",
|
||||
"requires_approval": true,
|
||||
"write_allowed_without_approval": false,
|
||||
"evidence_count": 2,
|
||||
"target_files": [
|
||||
"scripts/render_skill_overview.py",
|
||||
"references/artifact-design-doctrine.md"
|
||||
],
|
||||
"verification_commands": [
|
||||
"python3 tests/verify_skill_overview.py"
|
||||
]
|
||||
},
|
||||
{
|
||||
"opportunity_id": "skillops-f9e43237aa",
|
||||
"proposal_id": "adapt-457baca160",
|
||||
"pattern_id": "delivery_format",
|
||||
"title": "Make generated artifact paths explicit in CLI output",
|
||||
"opportunity_type": "artifact-discoverability",
|
||||
"action_type": "patch_existing_skill",
|
||||
"decision": "proposal_review",
|
||||
"priority": "medium",
|
||||
"score": 82,
|
||||
"score_reasons": [
|
||||
"support_count=2",
|
||||
"confidence=0.79",
|
||||
"risk=low",
|
||||
"target_files_present",
|
||||
"verification_present",
|
||||
"approval_required"
|
||||
],
|
||||
"policy_reason": "Repeated delivery-path requests can improve CLI and README artifact discoverability.",
|
||||
"risk_level": "low",
|
||||
"requires_approval": true,
|
||||
"write_allowed_without_approval": false,
|
||||
"evidence_count": 2,
|
||||
"target_files": [
|
||||
"scripts/yao.py",
|
||||
"README.md"
|
||||
],
|
||||
"verification_commands": [
|
||||
"python3 tests/verify_yao_cli.py"
|
||||
]
|
||||
},
|
||||
{
|
||||
"opportunity_id": "skillops-0a3a2de7c3",
|
||||
"proposal_id": "adapt-abfee25d3a",
|
||||
"pattern_id": "evidence_testing",
|
||||
"title": "Attach tests and evidence refresh to each upgrade",
|
||||
"opportunity_type": "quality-gate",
|
||||
"action_type": "add_eval",
|
||||
"decision": "proposal_review",
|
||||
"priority": "medium",
|
||||
"score": 74,
|
||||
"score_reasons": [
|
||||
"support_count=2",
|
||||
"confidence=0.79",
|
||||
"risk=medium",
|
||||
"target_files_present",
|
||||
"verification_present",
|
||||
"approval_required"
|
||||
],
|
||||
"policy_reason": "Repeated verification and evidence requests should become focused checks.",
|
||||
"risk_level": "medium",
|
||||
"requires_approval": true,
|
||||
"write_allowed_without_approval": false,
|
||||
"evidence_count": 2,
|
||||
"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"
|
||||
]
|
||||
}
|
||||
],
|
||||
"decision_policy": {
|
||||
"schema_version": "1.0",
|
||||
"contract": "skillops-opportunity-scoring",
|
||||
"score_range": [
|
||||
0,
|
||||
100
|
||||
],
|
||||
"score_bands": {
|
||||
"85-100": "ready_for_approval_review",
|
||||
"70-84": "proposal_review",
|
||||
"50-69": "observe_more_evidence",
|
||||
"0-49": "report_only_or_no_action"
|
||||
},
|
||||
"action_types": [
|
||||
"add_eval",
|
||||
"agents_update",
|
||||
"patch_existing_skill",
|
||||
"report_only"
|
||||
],
|
||||
"writes_source_files": false,
|
||||
"auto_patch_enabled": false,
|
||||
"approval_required_for_writes": true
|
||||
},
|
||||
"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": true,
|
||||
"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-21.json",
|
||||
"markdown": "reports/skillops/daily/2026-06-21.md"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
# Daily SkillOps Report
|
||||
|
||||
Generated at: `2026-06-21`
|
||||
|
||||
## 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: `true`
|
||||
- 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.
|
||||
|
||||
## Opportunities
|
||||
|
||||
- count: `5`
|
||||
- top score: `88`
|
||||
- ready for approval review: `1`
|
||||
### Improve report layout, visual hierarchy, and chart readability
|
||||
|
||||
- ID: `skillops-4ad91c18dd`
|
||||
- Action: `patch_existing_skill`
|
||||
- Decision: `ready_for_approval_review`
|
||||
- Score: `88`
|
||||
- Risk: `medium`
|
||||
- Policy: Repeated report layout feedback maps to existing renderer and design doctrine changes.
|
||||
### Keep adaptive iteration approval-gated
|
||||
|
||||
- ID: `skillops-531e13c1c6`
|
||||
- Action: `agents_update`
|
||||
- Decision: `proposal_review`
|
||||
- Score: `82`
|
||||
- Risk: `low`
|
||||
- Policy: Repeated privacy and approval signals should tighten durable operating guidance.
|
||||
### Keep reports Chinese-first with optional English
|
||||
|
||||
- ID: `skillops-709ef884f3`
|
||||
- Action: `patch_existing_skill`
|
||||
- Decision: `proposal_review`
|
||||
- Score: `82`
|
||||
- Risk: `low`
|
||||
- Policy: Repeated language preferences can improve existing report templates after approval.
|
||||
### Make generated artifact paths explicit in CLI output
|
||||
|
||||
- ID: `skillops-f9e43237aa`
|
||||
- Action: `patch_existing_skill`
|
||||
- Decision: `proposal_review`
|
||||
- Score: `82`
|
||||
- Risk: `low`
|
||||
- Policy: Repeated delivery-path requests can improve CLI and README artifact discoverability.
|
||||
### Attach tests and evidence refresh to each upgrade
|
||||
|
||||
- ID: `skillops-0a3a2de7c3`
|
||||
- Action: `add_eval`
|
||||
- Decision: `proposal_review`
|
||||
- Score: `74`
|
||||
- Risk: `medium`
|
||||
- Policy: Repeated verification and evidence requests should become focused checks.
|
||||
|
||||
## 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`
|
||||
@@ -1,19 +1,19 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20T12:35:26Z",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"decision": "curator-review",
|
||||
"week_id": "2026-W25",
|
||||
"daily_report_count": 3,
|
||||
"opportunity_count": 15,
|
||||
"daily_report_count": 4,
|
||||
"opportunity_count": 20,
|
||||
"unique_opportunity_count": 5,
|
||||
"ready_for_approval_review_count": 1,
|
||||
"proposal_review_count": 4,
|
||||
"observe_more_evidence_count": 0,
|
||||
"report_only_count": 0,
|
||||
"top_score": 88,
|
||||
"skill_count": 12,
|
||||
"skill_count": 11,
|
||||
"actionable_portfolio_issue_count": 0,
|
||||
"release_lock_ready": true,
|
||||
"evidence_consistency_ok": true,
|
||||
@@ -25,15 +25,15 @@
|
||||
"summary": {
|
||||
"decision": "curator-review",
|
||||
"week_id": "2026-W25",
|
||||
"daily_report_count": 3,
|
||||
"opportunity_count": 15,
|
||||
"daily_report_count": 4,
|
||||
"opportunity_count": 20,
|
||||
"unique_opportunity_count": 5,
|
||||
"ready_for_approval_review_count": 1,
|
||||
"proposal_review_count": 4,
|
||||
"observe_more_evidence_count": 0,
|
||||
"report_only_count": 0,
|
||||
"top_score": 88,
|
||||
"skill_count": 12,
|
||||
"skill_count": 11,
|
||||
"actionable_portfolio_issue_count": 0,
|
||||
"release_lock_ready": true,
|
||||
"evidence_consistency_ok": true,
|
||||
@@ -91,7 +91,8 @@
|
||||
"daily_reports": [
|
||||
"reports/skillops/daily/2026-06-16.json",
|
||||
"reports/skillops/daily/2026-06-17.json",
|
||||
"reports/skillops/daily/2026-06-20.json"
|
||||
"reports/skillops/daily/2026-06-20.json",
|
||||
"reports/skillops/daily/2026-06-21.json"
|
||||
],
|
||||
"opportunity_summary": {
|
||||
"action_type_counts": {
|
||||
@@ -276,13 +277,13 @@
|
||||
}
|
||||
],
|
||||
"portfolio": {
|
||||
"skill_count": 12,
|
||||
"skill_count": 11,
|
||||
"actionable_issue_count": 0,
|
||||
"route_collision_count": 5,
|
||||
"actionable_route_collision_count": 0,
|
||||
"owner_gap_count": 9,
|
||||
"owner_gap_count": 8,
|
||||
"actionable_owner_gap_count": 0,
|
||||
"stale_count": 10,
|
||||
"stale_count": 9,
|
||||
"actionable_stale_count": 0,
|
||||
"drift_signal_count": 0,
|
||||
"actionable_drift_signal_count": 0,
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
# Weekly SkillOps Curator Report
|
||||
|
||||
Generated at: `2026-06-20T12:35:26Z`
|
||||
Generated at: `2026-06-21`
|
||||
Week: `2026-W25`
|
||||
|
||||
## Summary
|
||||
|
||||
- decision: `curator-review`
|
||||
- daily_report_count: `3`
|
||||
- daily_report_count: `4`
|
||||
- unique_opportunity_count: `5`
|
||||
- ready_for_approval_review_count: `1`
|
||||
- proposal_review_count: `4`
|
||||
- top_score: `88`
|
||||
- skill_count: `12`
|
||||
- skill_count: `11`
|
||||
- actionable_portfolio_issue_count: `0`
|
||||
- release_lock_ready: `True`
|
||||
- evidence_consistency_ok: `True`
|
||||
@@ -89,13 +89,13 @@ This report is a weekly curator cockpit for generated SkillOps evidence. It does
|
||||
|
||||
## Portfolio Signals
|
||||
|
||||
- skill_count: `12`
|
||||
- skill_count: `11`
|
||||
- actionable_issue_count: `0`
|
||||
- route_collision_count: `5`
|
||||
- actionable_route_collision_count: `0`
|
||||
- owner_gap_count: `9`
|
||||
- owner_gap_count: `8`
|
||||
- actionable_owner_gap_count: `0`
|
||||
- stale_count: `10`
|
||||
- stale_count: `9`
|
||||
- actionable_stale_count: `0`
|
||||
- drift_signal_count: `0`
|
||||
- actionable_drift_signal_count: `0`
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"ok": true,
|
||||
"schema_version": "2.0",
|
||||
"generated_at": "2026-06-13",
|
||||
"generated_at": "2026-06-21",
|
||||
"previous": {
|
||||
"name": "yao-meta-skill",
|
||||
"version": "1.0.0",
|
||||
@@ -70,12 +70,12 @@
|
||||
{
|
||||
"field": "archive_sha256",
|
||||
"from": "",
|
||||
"to": "7db44f059844b71930ea8194a72ba1a316116ca970620de5550d60616e8f23c2"
|
||||
"to": "c56a8519244c0bc8ec17c92d4641c832629cc059f4b51fe177a2c039515253a7"
|
||||
},
|
||||
{
|
||||
"field": "package_sha256",
|
||||
"from": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"to": "e5b4ffc5c3f93f7f8367fd4a021a0a09567d4df4acd0c31d2964d60593f47cbd"
|
||||
"to": "eddeea80a657e9c97cee2e1242d97577b886b33e2ffa6e319629ef5fcb029383"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -90,7 +90,7 @@
|
||||
"artifacts": {
|
||||
"previous_package": "registry/examples/yao-meta-skill-1.0.0.json",
|
||||
"current_package": "reports/registry_audit.json",
|
||||
"json": "tests/tmp_review_studio/upgrade_check.json",
|
||||
"markdown": "tests/tmp_review_studio/upgrade_check.md"
|
||||
"json": "reports/upgrade_check.json",
|
||||
"markdown": "reports/upgrade_check.md"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"summary": {
|
||||
"ledger_ready_to_claim_world_class": false,
|
||||
"ledger_pending_count": 4,
|
||||
"claim_surface_count": 175,
|
||||
"json_claim_surface_count": 85,
|
||||
"metadata_claim_surface_count": 86,
|
||||
"package_claim_surface_count": 10,
|
||||
"claim_surface_count": 184,
|
||||
"json_claim_surface_count": 91,
|
||||
"metadata_claim_surface_count": 92,
|
||||
"package_claim_surface_count": 17,
|
||||
"violation_count": 0,
|
||||
"overclaim_guard_active": true,
|
||||
"decision": "claim-guard-pass-evidence-pending"
|
||||
@@ -54,6 +54,34 @@
|
||||
"path": "agents/interface.yaml",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/manifest.json",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/targets/claude/README.md",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/targets/claude/adapter.json",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/targets/generic/adapter.json",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/targets/openai/adapter.json",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/targets/vscode/README.md",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "dist/targets/vscode/adapter.json",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "docs/README.fr-FR.md",
|
||||
"violation_count": 0
|
||||
@@ -602,6 +630,14 @@
|
||||
"path": "reports/skillops/daily/2026-06-20.md",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "reports/skillops/daily/2026-06-21.json",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "reports/skillops/daily/2026-06-21.md",
|
||||
"violation_count": 0
|
||||
},
|
||||
{
|
||||
"path": "reports/skillops/weekly/2026-W25.json",
|
||||
"violation_count": 0
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
# World-Class Claim Guard
|
||||
|
||||
Generated at: `2026-06-20`
|
||||
Generated at: `2026-06-21`
|
||||
|
||||
## Summary
|
||||
|
||||
- decision: `claim-guard-pass-evidence-pending`
|
||||
- ledger ready to claim world-class: `false`
|
||||
- ledger pending evidence: `4`
|
||||
- claim surfaces scanned: `175`
|
||||
- JSON claim surfaces scanned: `85`
|
||||
- metadata claim surfaces scanned: `86`
|
||||
- package/runtime claim surfaces scanned: `10`
|
||||
- claim surfaces scanned: `184`
|
||||
- JSON claim surfaces scanned: `91`
|
||||
- metadata claim surfaces scanned: `92`
|
||||
- package/runtime claim surfaces scanned: `17`
|
||||
- violations: `0`
|
||||
- overclaim guard active: `true`
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
<article class="role-card">
|
||||
<span>Supporting evidence</span>
|
||||
<h3>supporting-evidence</h3>
|
||||
<strong>27/28 ready</strong>
|
||||
<strong>31/31 ready</strong>
|
||||
<p>Supporting-evidence rows help reviewers audit the packet but do not all need to be copied into artifact_refs.</p>
|
||||
<small>copy to artifact_refs: <code>false</code></small>
|
||||
</article>
|
||||
@@ -667,7 +667,7 @@
|
||||
<article class="role-card">
|
||||
<span>Supporting evidence</span>
|
||||
<h3>supporting-evidence</h3>
|
||||
<strong>7/8 ready</strong>
|
||||
<strong>11/11 ready</strong>
|
||||
<p>Supporting-evidence rows help reviewers audit the packet but do not all need to be copied into artifact_refs.</p>
|
||||
<small>copy to artifact_refs: <code>false</code></small>
|
||||
</article>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"ok": true,
|
||||
"generated_at": "2026-06-20",
|
||||
"generated_at": "2026-06-21",
|
||||
"skill_dir": ".",
|
||||
"summary": {
|
||||
"evidence_item_count": 4,
|
||||
@@ -802,8 +802,8 @@
|
||||
"artifact_prefill_counts_as_evidence": false,
|
||||
"submission_ref_total_count": 2,
|
||||
"submission_ref_ready_count": 2,
|
||||
"supporting_evidence_total_count": 8,
|
||||
"supporting_evidence_ready_count": 7,
|
||||
"supporting_evidence_total_count": 11,
|
||||
"supporting_evidence_ready_count": 11,
|
||||
"roles": [
|
||||
{
|
||||
"role": "submission-ref",
|
||||
@@ -1946,8 +1946,8 @@
|
||||
"artifact_prefill_counts_as_evidence": false,
|
||||
"submission_ref_total_count": 7,
|
||||
"submission_ref_ready_count": 7,
|
||||
"supporting_evidence_total_count": 28,
|
||||
"supporting_evidence_ready_count": 27,
|
||||
"supporting_evidence_total_count": 31,
|
||||
"supporting_evidence_ready_count": 31,
|
||||
"roles": [
|
||||
{
|
||||
"role": "submission-ref",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# World-Class Evidence Preflight
|
||||
|
||||
Generated at: `2026-06-20`
|
||||
Generated at: `2026-06-21`
|
||||
|
||||
## Summary
|
||||
|
||||
@@ -33,14 +33,14 @@ This preflight report checks whether an operator can start collecting the remain
|
||||
- drafts count as evidence: `false`
|
||||
- artifact prefill counts as evidence: `false`
|
||||
- submission refs ready: `7` / `7`
|
||||
- supporting evidence ready: `27` / `28`
|
||||
- supporting evidence ready: `31` / `31`
|
||||
|
||||
Generate the submission kit after the real provider, human, native-permission, or native-client work exists. The generated JSON drafts remain `template_only: true` until an operator edits them with real aggregate artifact references and matching SHA-256 digests. The prefill command only inserts local artifact SHA-256 digests; it does not make a draft count as evidence.
|
||||
|
||||
| Role | Copy to artifact_refs | Ready | Meaning |
|
||||
| --- | --- | --- | --- |
|
||||
| `submission-ref` | `true` | `7 / 7` | Rows marked submission-ref are the aggregate paths expected in artifact_refs. |
|
||||
| `supporting-evidence` | `false` | `27 / 28` | Supporting-evidence rows help reviewers audit the packet but do not all need to be copied into artifact_refs. |
|
||||
| `supporting-evidence` | `false` | `31 / 31` | Supporting-evidence rows help reviewers audit the packet but do not all need to be copied into artifact_refs. |
|
||||
|
||||
`submission-ref` rows are the only checklist rows expected in `artifact_refs`; `supporting-evidence` rows stay available for audit context and reviewer traceability.
|
||||
|
||||
@@ -149,7 +149,7 @@ Repair rows convert preflight and source blockers into a prioritized operator qu
|
||||
- prepare draft: `python3 scripts/yao.py world-class-submission-kit . --evidence-key native-permission-enforcement --output-dir evidence/world_class/submissions`
|
||||
- prepare draft with artifact SHA prefill: `python3 scripts/yao.py world-class-submission-kit . --evidence-key native-permission-enforcement --output-dir evidence/world_class/submissions --prefill-artifacts`
|
||||
- submission refs ready: `2` / `2`
|
||||
- supporting evidence ready: `7` / `8`
|
||||
- supporting evidence ready: `11` / `11`
|
||||
|
||||
### Prechecks
|
||||
|
||||
|
||||
@@ -258,6 +258,8 @@ def should_skip_archive_path(rel_path: Path) -> bool:
|
||||
parts = rel_path.parts
|
||||
if any(part in EXCLUDED_ARCHIVE_PARTS for part in parts):
|
||||
return True
|
||||
if rel_path.name == "SKILL.md" and parts != ("SKILL.md",):
|
||||
return True
|
||||
if parts == ("reports", "telemetry_events.jsonl"):
|
||||
return True
|
||||
if parts and parts[0] == "tests" and any(part.startswith("tmp") for part in parts[1:]):
|
||||
|
||||
@@ -85,6 +85,11 @@ def top_level_dirs(names: list[str]) -> list[str]:
|
||||
return sorted(roots)
|
||||
|
||||
|
||||
def non_root_skill_entries(names: list[str], package_root: str) -> list[str]:
|
||||
root_entry = f"{package_root}/SKILL.md"
|
||||
return sorted(name for name in names if PurePosixPath(name).name == "SKILL.md" and name != root_entry)
|
||||
|
||||
|
||||
def add_check(checks: list[dict[str, str]], failures: list[str], check_id: str, passed: bool, detail: str) -> None:
|
||||
checks.append({"id": check_id, "status": "pass" if passed else "fail", "detail": detail})
|
||||
if not passed:
|
||||
@@ -221,7 +226,15 @@ def simulate_install(skill_dir: Path, package_dir: Path, install_root: Path | No
|
||||
add_check(checks, failures, "archive-readable", False, f"Archive is not a readable zip: {display_path(archive_path)}")
|
||||
else:
|
||||
unsafe_entries = unsafe_zip_entries(archive_entries)
|
||||
nested_skill_entries = non_root_skill_entries(archive_entries, package_root)
|
||||
add_check(checks, failures, "archive-safe-paths", not unsafe_entries, "Archive has no absolute or parent-traversal entries")
|
||||
add_check(
|
||||
checks,
|
||||
failures,
|
||||
"single-skill-entrypoint",
|
||||
not nested_skill_entries,
|
||||
"Installed package exposes only the root SKILL.md entrypoint",
|
||||
)
|
||||
roots = top_level_dirs(archive_entries)
|
||||
add_check(checks, failures, "single-top-level", roots == [package_root], f"Archive top-level directory is {package_root}")
|
||||
if not unsafe_entries and roots:
|
||||
@@ -289,6 +302,7 @@ def simulate_install(skill_dir: Path, package_dir: Path, install_root: Path | No
|
||||
"summary": {
|
||||
"archive_present": archive_path.exists(),
|
||||
"archive_entry_count": len(archive_entries),
|
||||
"nested_skill_entry_count": len(non_root_skill_entries(archive_entries, package_root)),
|
||||
"archive_extracted": bool(installed_dir and installed_dir.exists()),
|
||||
"entrypoint_loaded": bool(frontmatter),
|
||||
"manifest_loaded": bool(source_manifest),
|
||||
@@ -321,6 +335,7 @@ def render_markdown(report: dict[str, Any]) -> str:
|
||||
f"- OK: `{report['ok']}`",
|
||||
f"- Package directory: `{report['package_dir']}`",
|
||||
f"- Archive extracted: `{summary['archive_extracted']}`",
|
||||
f"- Nested SKILL.md entries: `{summary.get('nested_skill_entry_count', 0)}`",
|
||||
f"- Entrypoint loaded: `{summary['entrypoint_loaded']}`",
|
||||
f"- Manifest loaded: `{summary['manifest_loaded']}`",
|
||||
f"- Interface loaded: `{summary['interface_loaded']}`",
|
||||
|
||||
@@ -59,6 +59,11 @@ def generated_zip_entries(names: list[str]) -> list[str]:
|
||||
return generated
|
||||
|
||||
|
||||
def non_root_skill_entries(names: list[str], package_root: str) -> list[str]:
|
||||
root_entry = f"{package_root}/SKILL.md"
|
||||
return sorted(name for name in names if PurePosixPath(name).name == "SKILL.md" and name != root_entry)
|
||||
|
||||
|
||||
def required_targets(expectations: dict[str, Any], package_dir: Path) -> list[str]:
|
||||
targets = expectations.get("required_targets") or []
|
||||
if targets:
|
||||
@@ -133,6 +138,7 @@ def verify_package(
|
||||
add_check(checks, failures, "archive-readable", False, f"Archive is not a readable zip: {display_path(archive_path)}")
|
||||
else:
|
||||
unsafe_entries = unsafe_zip_entries(archive_entries)
|
||||
nested_skill_entries = non_root_skill_entries(archive_entries, package_root)
|
||||
required_entries = [
|
||||
f"{package_root}/SKILL.md",
|
||||
f"{package_root}/manifest.json",
|
||||
@@ -141,6 +147,13 @@ def verify_package(
|
||||
add_check(checks, failures, "archive-safe-paths", not unsafe_entries, "Archive has no absolute or parent-traversal entries")
|
||||
for entry in required_entries:
|
||||
add_check(checks, failures, f"archive-entry-{entry}", entry in archive_entries, f"Archive contains {entry}")
|
||||
add_check(
|
||||
checks,
|
||||
failures,
|
||||
"archive-single-skill-entrypoint",
|
||||
not nested_skill_entries,
|
||||
"Archive exposes only the root SKILL.md entrypoint",
|
||||
)
|
||||
generated_entries = generated_zip_entries(archive_entries)
|
||||
add_check(checks, failures, "archive-excludes-generated", not generated_entries, "Archive excludes generated dist/, .previews/, and tests/tmp* contents")
|
||||
elif require_zip:
|
||||
@@ -189,6 +202,7 @@ def verify_package(
|
||||
"archive_present": archive_path.exists(),
|
||||
"archive_sha256": archive_sha,
|
||||
"archive_entry_count": len(archive_entries),
|
||||
"nested_skill_entry_count": len(non_root_skill_entries(archive_entries, package_root)),
|
||||
"failure_count": len(failures),
|
||||
"warning_count": len(warnings),
|
||||
},
|
||||
@@ -213,6 +227,7 @@ def render_markdown(report: dict[str, Any]) -> str:
|
||||
f"- Targets: `{summary['adapter_count']} / {summary['target_count']}` adapters present",
|
||||
f"- Archive present: `{summary['archive_present']}`",
|
||||
f"- Archive SHA256: `{summary['archive_sha256'] or 'n/a'}`",
|
||||
f"- Nested SKILL.md entries: `{summary.get('nested_skill_entry_count', 0)}`",
|
||||
f"- Failures: `{summary['failure_count']}`",
|
||||
f"- Warnings: `{summary['warning_count']}`",
|
||||
"",
|
||||
|
||||
@@ -105,6 +105,7 @@ def main() -> None:
|
||||
assert payload["summary"]["entrypoint_loaded"], payload
|
||||
assert payload["summary"]["manifest_loaded"], payload
|
||||
assert payload["summary"]["interface_loaded"], payload
|
||||
assert payload["summary"]["nested_skill_entry_count"] == 0, payload
|
||||
assert payload["summary"]["adapter_count"] == 4, payload
|
||||
assert payload["summary"]["installer_permission_enforced_count"] == 12, payload
|
||||
assert payload["summary"]["installer_permission_failure_count"] == 0, payload
|
||||
@@ -113,6 +114,7 @@ def main() -> None:
|
||||
assert not payload["failures"], payload
|
||||
valid_markdown = (TMP / "install_simulation.md").read_text(encoding="utf-8")
|
||||
assert "Install Simulation" in valid_markdown
|
||||
assert "Nested SKILL.md entries" in valid_markdown
|
||||
assert "Installer permissions enforced" in valid_markdown
|
||||
|
||||
with tempfile.TemporaryDirectory(prefix="renamed-install-root-") as temp_root:
|
||||
@@ -147,6 +149,17 @@ def main() -> None:
|
||||
assert policy_gap_payload["summary"]["installer_permission_failure_count"] >= 1, policy_gap_payload
|
||||
assert any("vscode capability network has target enforcement note" in item for item in policy_gap_payload["failures"]), policy_gap_payload
|
||||
|
||||
nested_skill_dir = TMP / "nested-skill-dist"
|
||||
shutil.copytree(valid_dir, nested_skill_dir)
|
||||
with zipfile.ZipFile(nested_skill_dir / "yao-meta-skill.zip", "a", compression=zipfile.ZIP_DEFLATED) as archive:
|
||||
archive.writestr("yao-meta-skill/tests/fixtures/broken/SKILL.md", "---\nname: broken\n---\n")
|
||||
nested_skill = simulate(nested_skill_dir, TMP / "nested_skill.json", TMP / "nested_skill.md")
|
||||
nested_skill_payload = nested_skill["payload"]
|
||||
assert nested_skill["returncode"] == 2, nested_skill
|
||||
assert not nested_skill_payload["ok"], nested_skill_payload
|
||||
assert nested_skill_payload["summary"]["nested_skill_entry_count"] == 1, nested_skill_payload
|
||||
assert any("Installed package exposes only the root SKILL.md entrypoint" in item for item in nested_skill_payload["failures"]), nested_skill_payload
|
||||
|
||||
unsafe_dir = TMP / "unsafe-dist"
|
||||
shutil.copytree(valid_dir, unsafe_dir)
|
||||
with zipfile.ZipFile(unsafe_dir / "yao-meta-skill.zip", "a", compression=zipfile.ZIP_DEFLATED) as archive:
|
||||
|
||||
@@ -91,8 +91,12 @@ def main() -> None:
|
||||
assert payload["summary"]["adapter_count"] == 4, payload
|
||||
assert payload["summary"]["archive_present"], payload
|
||||
assert payload["summary"]["archive_sha256"], payload
|
||||
assert payload["summary"]["nested_skill_entry_count"] == 0, payload
|
||||
assert not payload["failures"], payload
|
||||
assert (TMP / "package_verification.md").exists(), TMP
|
||||
with zipfile.ZipFile(valid_dir / "yao-meta-skill.zip") as archive:
|
||||
skill_entries = sorted(name for name in archive.namelist() if name.endswith("/SKILL.md"))
|
||||
assert skill_entries == ["yao-meta-skill/SKILL.md"], skill_entries
|
||||
|
||||
with tempfile.TemporaryDirectory(prefix="renamed-package-root-") as temp_root:
|
||||
renamed_root = Path(temp_root) / "checkout-alias"
|
||||
@@ -108,9 +112,20 @@ def main() -> None:
|
||||
with zipfile.ZipFile(renamed_dir / "yao-meta-skill.zip") as archive:
|
||||
names = set(archive.namelist())
|
||||
assert "yao-meta-skill/SKILL.md" in names, sorted(list(names))[:10]
|
||||
assert not [name for name in names if name.endswith("/SKILL.md") and name != "yao-meta-skill/SKILL.md"], names
|
||||
renamed_valid = verify_package(renamed_dir, TMP / "renamed_package_verification.json", TMP / "renamed_package_verification.md", renamed_root)
|
||||
assert renamed_valid["ok"], renamed_valid
|
||||
|
||||
nested_skill_dir = TMP / "nested-skill-dist"
|
||||
shutil.copytree(valid_dir, nested_skill_dir)
|
||||
with zipfile.ZipFile(nested_skill_dir / "yao-meta-skill.zip", "a", compression=zipfile.ZIP_DEFLATED) as archive:
|
||||
archive.writestr("yao-meta-skill/examples/demo/SKILL.md", "---\nname: demo\n---\n")
|
||||
nested = verify_package(nested_skill_dir, TMP / "nested_skill.json", TMP / "nested_skill.md")
|
||||
assert nested["returncode"] == 2, nested
|
||||
nested_payload = nested["payload"]
|
||||
assert nested_payload["summary"]["nested_skill_entry_count"] == 1, nested_payload
|
||||
assert any("Archive exposes only the root SKILL.md entrypoint" in item for item in nested_payload["failures"]), nested_payload
|
||||
|
||||
unsafe_dir = TMP / "unsafe-dist"
|
||||
shutil.copytree(valid_dir, unsafe_dir)
|
||||
with zipfile.ZipFile(unsafe_dir / "yao-meta-skill.zip", "a", compression=zipfile.ZIP_DEFLATED) as archive:
|
||||
|
||||
Reference in New Issue
Block a user