diff --git a/assets/skill-overview.css b/assets/skill-overview.css
index 916d0071..d29609c7 100644
--- a/assets/skill-overview.css
+++ b/assets/skill-overview.css
@@ -351,7 +351,7 @@
}
.metrics-primary {
display: grid;
- grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
+ grid-template-columns: minmax(0, 1fr);
gap: 22px;
align-items: start;
}
@@ -419,7 +419,7 @@
margin-top: 2px;
}
.metric-detail-grid {
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
+ grid-template-columns: repeat(2, minmax(0, 1fr));
align-items: stretch;
}
.list, .compact-list, .step-list {
@@ -690,9 +690,9 @@
.section-head > .world-readiness { grid-column: auto; }
.hero-grid { gap: 24px; }
.score-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
- .metrics-primary, .two-col, .metric-grid, .chart-grid, .roadmap { grid-template-columns: 1fr; }
+ .metrics-primary, .metric-detail-grid, .two-col, .metric-grid, .chart-grid, .roadmap { grid-template-columns: 1fr; }
.evidence-list { grid-template-columns: 1fr; }
- .metric-card { grid-template-columns: 86px minmax(0, 1fr); }
+ .metric-card { grid-template-columns: 1fr; }
h1 { font-size: 2.75rem; }
}
@media (max-width: 540px) {
diff --git a/registry/index.json b/registry/index.json
index e82fd8ff..d7222bbd 100644
--- a/registry/index.json
+++ b/registry/index.json
@@ -1,6 +1,6 @@
{
"schema_version": "2.0",
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-13",
"package_count": 1,
"packages": [
{
@@ -16,7 +16,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
}
]
}
diff --git a/registry/packages/yao-meta-skill.json b/registry/packages/yao-meta-skill.json
index ca8b6f6b..26538c60 100644
--- a/registry/packages/yao-meta-skill.json
+++ b/registry/packages/yao-meta-skill.json
@@ -16,8 +16,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
"compatibility": {
"openai": "pass",
@@ -48,10 +48,10 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
},
- "generated_at": "2026-06-16"
+ "generated_at": "2026-06-13"
}
diff --git a/reports/adaptation_proposals.json b/reports/adaptation_proposals.json
index a8b6c7f9..f43642fa 100644
--- a/reports/adaptation_proposals.json
+++ b/reports/adaptation_proposals.json
@@ -1,7 +1,7 @@
{
"schema_version": "1.0",
"ok": true,
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-16T07:12:11Z",
"skill_dir": ".",
"source_patterns": "reports/user_patterns.json",
"pattern_count": 5,
diff --git a/reports/adaptation_proposals.md b/reports/adaptation_proposals.md
index bd03a988..cd7d3db7 100644
--- a/reports/adaptation_proposals.md
+++ b/reports/adaptation_proposals.md
@@ -1,6 +1,6 @@
# Adaptation Proposals
-- Generated at: `2026-06-16`
+- Generated at: `2026-06-16T07:12:11Z`
- Pattern report: `reports/user_patterns.json`
- Proposal only: `true`
- Writes repository files: `false`
diff --git a/reports/adoption_drift_report.json b/reports/adoption_drift_report.json
index 71fe0fda..30bf5b4a 100644
--- a/reports/adoption_drift_report.json
+++ b/reports/adoption_drift_report.json
@@ -1,7 +1,7 @@
{
"ok": true,
"schema_version": "2.0",
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-16T07:12:10Z",
"skill_dir": ".",
"privacy_contract": {
"storage": "local-first",
diff --git a/reports/architecture_maintainability.json b/reports/architecture_maintainability.json
index 469f18b7..c9b4d1b9 100644
--- a/reports/architecture_maintainability.json
+++ b/reports/architecture_maintainability.json
@@ -15,7 +15,7 @@
"warn_line_threshold": 900,
"watch_line_threshold": 720,
"block_line_threshold": 1500,
- "largest_file_lines": 837,
+ "largest_file_lines": 852,
"watchlist_count": 8,
"hotspot_count": 0,
"blocker_count": 0,
@@ -24,7 +24,7 @@
"largest_files": [
{
"path": "tests/verify_review_studio.py",
- "lines": 837,
+ "lines": 852,
"kind": "test",
"severity": "pass",
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
@@ -85,6 +85,13 @@
"severity": "pass",
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
+ {
+ "path": "scripts/review_studio_gates.py",
+ "lines": 707,
+ "kind": "internal-module",
+ "severity": "pass",
+ "recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
+ },
{
"path": "scripts/apply_adaptation.py",
"lines": 706,
@@ -98,19 +105,12 @@
"kind": "internal-module",
"severity": "pass",
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
- },
- {
- "path": "scripts/render_review_viewer.py",
- "lines": 685,
- "kind": "cli-script",
- "severity": "pass",
- "recommendation": "Split viewer data assembly from HTML section rendering."
}
],
"watchlist": [
{
"path": "tests/verify_review_studio.py",
- "lines": 837,
+ "lines": 852,
"kind": "test",
"severity": "pass",
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
diff --git a/reports/architecture_maintainability.md b/reports/architecture_maintainability.md
index df9f3636..5ceee15b 100644
--- a/reports/architecture_maintainability.md
+++ b/reports/architecture_maintainability.md
@@ -13,7 +13,7 @@ Generated at: `2026-06-16`
- Yao CLI command handlers: `68`
- entrypoint command handlers: `18`
- command modules: `6`
-- largest file lines: `837`
+- largest file lines: `852`
- watch threshold lines: `720`
- watchlist: `8`
- hotspots: `0`
@@ -29,7 +29,7 @@ No file-size hotspots found.
| File | Lines | Kind | Recommended next split |
| --- | ---: | --- | --- |
-| `tests/verify_review_studio.py` | `837` | `test` | Break broad integration assertions into focused verifier helpers when the next behavior change lands. |
+| `tests/verify_review_studio.py` | `852` | `test` | Break broad integration assertions into focused verifier helpers when the next behavior change lands. |
| `scripts/skill_report_model.py` | `800` | `internal-module` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `tests/verify_yao_cli.py` | `785` | `test` | Break broad integration assertions into focused verifier helpers when the next behavior change lands. |
| `scripts/render_evidence_consistency.py` | `766` | `cli-script` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
@@ -42,7 +42,7 @@ No file-size hotspots found.
| File | Lines | Kind | Severity |
| --- | ---: | --- | --- |
-| `tests/verify_review_studio.py` | `837` | `test` | `pass` |
+| `tests/verify_review_studio.py` | `852` | `test` | `pass` |
| `scripts/skill_report_model.py` | `800` | `internal-module` | `pass` |
| `tests/verify_yao_cli.py` | `785` | `test` | `pass` |
| `scripts/render_evidence_consistency.py` | `766` | `cli-script` | `pass` |
@@ -51,9 +51,9 @@ No file-size hotspots found.
| `scripts/compile_skill.py` | `723` | `cli-script` | `pass` |
| `scripts/optimize_description.py` | `723` | `cli-script` | `pass` |
| `scripts/trust_check.py` | `714` | `internal-module` | `pass` |
+| `scripts/review_studio_gates.py` | `707` | `internal-module` | `pass` |
| `scripts/apply_adaptation.py` | `706` | `cli-script` | `pass` |
| `scripts/world_class_evidence_contract.py` | `686` | `internal-module` | `pass` |
-| `scripts/render_review_viewer.py` | `685` | `cli-script` | `pass` |
## Release Rule
diff --git a/reports/benchmark_reproducibility.json b/reports/benchmark_reproducibility.json
index 80c376ad..7aeed6c8 100644
--- a/reports/benchmark_reproducibility.json
+++ b/reports/benchmark_reproducibility.json
@@ -3,23 +3,36 @@
"ok": true,
"generated_at": "2026-06-16",
"skill_dir": ".",
- "commit": "0ee209e7fdbb78f51659d6f92e135d7239ac1bc5",
+ "commit": "538d7ed4017fec0e152a5fd87590dbe4cf75f273",
"git_status": {
"available": true,
- "dirty": false,
- "changed_file_count": 0,
- "sample": [],
+ "dirty": true,
+ "changed_file_count": 45,
+ "sample": [
+ " M assets/skill-overview.css",
+ " M registry/index.json",
+ " M registry/packages/yao-meta-skill.json",
+ " M reports/adaptation_proposals.json",
+ " M reports/adaptation_proposals.md",
+ " M reports/adoption_drift_report.json",
+ " M reports/architecture_maintainability.json",
+ " M reports/architecture_maintainability.md",
+ " M reports/benchmark_reproducibility.json",
+ " M reports/benchmark_reproducibility.md",
+ " M reports/context_budget.json",
+ " M reports/context_budget.md"
+ ],
"scope": "generation-time status before this report is written"
},
"summary": {
"reproducibility_ready": true,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "evidence_bundle_sha256": "813517ab4bc2b504a720544f29c80e1bf7b09bbd1938ffdbb840b33aa5abb76a",
- "source_contract_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "evidence_bundle_sha256": "7d33c2082209f18d4e9530e53fc574eae34fe148316947b166407426922c9961",
+ "source_contract_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -37,14 +50,15 @@
"world_class_source_pass_count": 6,
"world_class_source_blocked_count": 7,
"public_claim_ready": false,
- "public_claim_blocker_count": 4,
- "working_tree_dirty": false,
- "changed_file_count": 0
+ "public_claim_blocker_count": 5,
+ "working_tree_dirty": true,
+ "changed_file_count": 45
},
"public_claim": {
"ready": false,
"scope": "public benchmark or world-class readiness claim",
"blockers": [
+ "release lock is not clean or commit is unavailable",
"provider-backed model holdout evidence is incomplete",
"human blind-review adjudication is incomplete",
"world-class evidence is not accepted yet (4 open gaps, 4 ledger pending)",
@@ -53,10 +67,10 @@
"policy": "Local reproducibility can pass before public claims; public claims require provider evidence, human adjudication, clean release lock, accepted world-class evidence, and complete source checks."
},
"release_lock": {
- "ready": true,
- "commit": "0ee209e7fdbb78f51659d6f92e135d7239ac1bc5",
+ "ready": false,
+ "commit": "538d7ed4017fec0e152a5fd87590dbe4cf75f273",
"status_scope": "generation-time status before this report is written",
- "reason": "clean generation-time HEAD"
+ "reason": "working tree was dirty at generation time"
},
"evidence_bundle": {
"algorithm": "sha256(path,label,exists,artifact_sha256)",
@@ -64,7 +78,7 @@
"existing_count": 25,
"missing_count": 0,
"missing_paths": [],
- "sha256": "813517ab4bc2b504a720544f29c80e1bf7b09bbd1938ffdbb840b33aa5abb76a"
+ "sha256": "7d33c2082209f18d4e9530e53fc574eae34fe148316947b166407426922c9961"
},
"methodology": {
"path": "reports/benchmark_methodology.md",
@@ -138,7 +152,7 @@
"path": "reports/output_execution_runs.json",
"exists": true,
"bytes": 7966,
- "sha256": "93a5679326b29eb9d79c3ada70679f0070be6a8aed6e50d0452c854b48efa475"
+ "sha256": "93beb4bf94e08e6b75f35ff6f1a2029a9b9092717d691f42cf507b09bc590572"
},
{
"label": "blind_review",
@@ -173,7 +187,7 @@
"path": "reports/security_trust_report.json",
"exists": true,
"bytes": 120363,
- "sha256": "bea31eb462ca6e8021e68181ce3c4d34eaa0122dd34476b697ba59d38391cf36"
+ "sha256": "034e530e2efdd5c28f7e6ff97b2c7621aa88f8d6899df4d2b7f73048277f5541"
},
{
"label": "python_compatibility",
@@ -187,21 +201,21 @@
"path": "reports/registry_audit.json",
"exists": true,
"bytes": 3183,
- "sha256": "c6d5cf3c3ec415480b7cc72623b1977c5a98e64707a7dbd13ba239dfd44159fe"
+ "sha256": "eede973e03cdf2193a94efffbff49edaba48a65c86821fa78e0538eeb4c3d4b5"
},
{
"label": "package_verification",
"path": "reports/package_verification.json",
"exists": true,
"bytes": 19338,
- "sha256": "dd90aae6ad68c21bd0db241b033aa00038278fd6396e75fc42f86064911ce51b"
+ "sha256": "892a8e8364a25b1035518bfe69cf3a381e5755235b83f54f4942fa2cee31ccd9"
},
{
"label": "install_simulation",
"path": "reports/install_simulation.json",
"exists": true,
- "bytes": 8604,
- "sha256": "1c3fdea61d50ae05224bc7ebeffcf4ec205de213ab0755f6c6593ef76ad59726"
+ "bytes": 8758,
+ "sha256": "50c23ac052b288665d10c81e80f79c7b1c3437c815012816815715d07cc0d0fc"
},
{
"label": "skill_os2_audit",
diff --git a/reports/benchmark_reproducibility.md b/reports/benchmark_reproducibility.md
index 4dd33d44..e456c742 100644
--- a/reports/benchmark_reproducibility.md
+++ b/reports/benchmark_reproducibility.md
@@ -1,19 +1,19 @@
# Benchmark Reproducibility
Generated at: `2026-06-16`
-Commit: `0ee209e7fdbb78f51659d6f92e135d7239ac1bc5`
-Working tree dirty at generation: `false`
-Evidence bundle SHA256: `813517ab4bc2b504a720544f29c80e1bf7b09bbd1938ffdbb840b33aa5abb76a`
+Commit: `538d7ed4017fec0e152a5fd87590dbe4cf75f273`
+Working tree dirty at generation: `true`
+Evidence bundle SHA256: `7d33c2082209f18d4e9530e53fc574eae34fe148316947b166407426922c9961`
## Summary
- reproducibility ready: `true`
-- release lock ready: `true`
+- release lock ready: `false`
- methodology complete: `true`
- required artifacts: `25`
- missing artifacts: `0`
-- source contract sha256: `363354808bdd`
-- archive sha256: `a5a62aeb079b`
+- source contract sha256: `8fcd68d90682`
+- archive sha256: `11c535377813`
- output cases: `5`
- disclosed failure cases: `3`
- reproduction commands: `23`
@@ -22,8 +22,8 @@ Evidence bundle SHA256: `813517ab4bc2b504a720544f29c80e1bf7b09bbd1938ffdbb840b33
- world-class ready: `false`
- world-class source checks: `6` pass / `13` total; `7` blocked
- public claim ready: `false`
-- public claim blockers: `4`
-- changed files at generation: `0`
+- public claim blockers: `5`
+- changed files at generation: `45`
This report proves local benchmark reproducibility only. It keeps external provider and human-review gaps visible instead of counting them as complete. The git commit is generation-time context; the evidence bundle SHA is the durable anchor for the artifacts listed below.
@@ -35,6 +35,7 @@ This report proves local benchmark reproducibility only. It keeps external provi
| Blocker |
| --- |
+| release lock is not clean or commit is unavailable |
| provider-backed model holdout evidence is incomplete |
| human blind-review adjudication is incomplete |
| world-class evidence is not accepted yet (4 open gaps, 4 ledger pending) |
@@ -42,15 +43,15 @@ This report proves local benchmark reproducibility only. It keeps external provi
## Release Lock
-- ready: `true`
-- reason: clean generation-time HEAD
+- ready: `false`
+- reason: working tree was dirty at generation time
- status scope: generation-time status before this report is written
## Evidence Bundle
- algorithm: `sha256(path,label,exists,artifact_sha256)`
- artifacts: `25` / `25`
-- sha256: `813517ab4bc2b504a720544f29c80e1bf7b09bbd1938ffdbb840b33aa5abb76a`
+- sha256: `7d33c2082209f18d4e9530e53fc574eae34fe148316947b166407426922c9961`
## Methodology Sections
@@ -72,16 +73,16 @@ This report proves local benchmark reproducibility only. It keeps external provi
| output_cases | `evals/output/cases.jsonl` | present | `a6ae96857116` |
| output_schema | `evals/output/schema.json` | present | `8ee340c95064` |
| output_scorecard | `reports/output_quality_scorecard.json` | present | `0806258a8e08` |
-| output_execution | `reports/output_execution_runs.json` | present | `93a5679326b2` |
+| output_execution | `reports/output_execution_runs.json` | present | `93beb4bf94e0` |
| blind_review | `reports/output_blind_review_pack.json` | present | `bbe2db8ec277` |
| review_adjudication | `reports/output_review_adjudication.json` | present | `bb8c72a9291e` |
| trigger_scorecard | `reports/route_scorecard.json` | present | `c164e83e36d0` |
| runtime_conformance | `reports/conformance_matrix.json` | present | `97f9ba949c23` |
-| trust_report | `reports/security_trust_report.json` | present | `bea31eb462ca` |
+| trust_report | `reports/security_trust_report.json` | present | `034e530e2efd` |
| python_compatibility | `reports/python_compatibility.json` | present | `6843f5283fd7` |
-| registry_audit | `reports/registry_audit.json` | present | `c6d5cf3c3ec4` |
-| package_verification | `reports/package_verification.json` | present | `dd90aae6ad68` |
-| install_simulation | `reports/install_simulation.json` | present | `1c3fdea61d50` |
+| registry_audit | `reports/registry_audit.json` | present | `eede973e03cd` |
+| package_verification | `reports/package_verification.json` | present | `892a8e8364a2` |
+| install_simulation | `reports/install_simulation.json` | present | `50c23ac052b2` |
| skill_os2_audit | `reports/skill_os2_audit.json` | present | `c0e499f9f051` |
| world_class_evidence_plan | `reports/world_class_evidence_plan.json` | present | `130161495dc4` |
| world_class_evidence_ledger | `reports/world_class_evidence_ledger.json` | present | `b8976c340da4` |
diff --git a/reports/context_budget.json b/reports/context_budget.json
index 80e62efa..eba4edc9 100644
--- a/reports/context_budget.json
+++ b/reports/context_budget.json
@@ -6,15 +6,15 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 797,
- "other_text_tokens": 1050110,
+ "other_text_tokens": 1051049,
"estimated_initial_load_tokens": 990,
- "estimated_total_text_tokens": 1050907,
- "deferred_resource_tokens": 486227,
+ "estimated_total_text_tokens": 1051846,
+ "deferred_resource_tokens": 486718,
"deferred_resource_warn_threshold": 120000,
"deferred_resource_dirs": [
{
"path": "scripts",
- "estimated_tokens": 426100,
+ "estimated_tokens": 426601,
"file_count": 125
},
{
@@ -29,14 +29,14 @@
},
{
"path": "assets",
- "estimated_tokens": 10044,
+ "estimated_tokens": 10034,
"file_count": 3
}
],
"large_deferred_resource_dirs": [
{
"path": "scripts",
- "estimated_tokens": 426100,
+ "estimated_tokens": 426601,
"file_count": 125
}
],
@@ -59,7 +59,7 @@
],
"missing": [],
"path": "scripts",
- "estimated_tokens": 426100,
+ "estimated_tokens": 426601,
"file_count": 125,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
diff --git a/reports/context_budget.md b/reports/context_budget.md
index 71aaa7bc..d918bd64 100644
--- a/reports/context_budget.md
+++ b/reports/context_budget.md
@@ -2,7 +2,7 @@
| Target | Path | Tier | Limit | Initial | SKILL | Deferred | Resource Governance | Large Deferred Dirs | Quality Density | Unused Dirs | Status |
| --- | --- | --- | ---: | ---: | ---: | ---: | --- | --- | ---: | --- | --- |
-| root | `.` | `production` | 1000 | 990 | 797 | 486227 | `governed` | scripts:426100 | 131.3 | - | ok |
+| root | `.` | `production` | 1000 | 990 | 797 | 486718 | `governed` | scripts:426601 | 131.3 | - | ok |
| complex-release-orchestrator | `examples/complex-release-orchestrator/generated-skill` | `production` | 1000 | 790 | 718 | 1657 | `not-required` | - | 164.6 | - | ok |
| governed-incident-command | `examples/governed-incident-command/generated-skill` | `production` | 1000 | 760 | 658 | 1030 | `not-required` | - | 171.1 | - | ok |
diff --git a/reports/context_budget_summary.json b/reports/context_budget_summary.json
index 488d0e98..fc3424f5 100644
--- a/reports/context_budget_summary.json
+++ b/reports/context_budget_summary.json
@@ -1,5 +1,5 @@
{
- "generated_at": "2026-06-16",
+ "generated_at": "2026-03-31",
"targets": [
{
"label": "root",
@@ -8,11 +8,11 @@
"budget_limit": 1000,
"initial_tokens": 990,
"skill_body_tokens": 797,
- "deferred_resource_tokens": 486227,
+ "deferred_resource_tokens": 486718,
"large_deferred_resource_dirs": [
{
"path": "scripts",
- "estimated_tokens": 426100,
+ "estimated_tokens": 426601,
"file_count": 125
}
],
@@ -35,7 +35,7 @@
],
"missing": [],
"path": "scripts",
- "estimated_tokens": 426100,
+ "estimated_tokens": 426601,
"file_count": 125,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
diff --git a/reports/evidence_consistency.json b/reports/evidence_consistency.json
index 89bc61bf..fed08aa8 100644
--- a/reports/evidence_consistency.json
+++ b/reports/evidence_consistency.json
@@ -189,12 +189,12 @@
"status": "pass",
"expected": {
"status": "pass",
- "detail": "initial load 990/1000; deferred 486227/120000; top deferred scripts 426100; resource governance governed; quality density 131.3",
+ "detail": "initial load 990/1000; deferred 486718/120000; top deferred scripts 426601; resource governance governed; quality density 131.3",
"evidence": "reports/context_budget.json"
},
"actual": {
"status": "pass",
- "detail": "initial load 990/1000; deferred 486227/120000; top deferred scripts 426100; resource governance governed; quality density 131.3",
+ "detail": "initial load 990/1000; deferred 486718/120000; top deferred scripts 426601; resource governance governed; quality density 131.3",
"evidence": "reports/context_budget.json"
},
"paths": [
@@ -207,8 +207,8 @@
"key": "benchmark-release-lock-self-consistency",
"label": "Benchmark release lock matches git dirty state",
"status": "pass",
- "expected": true,
- "actual": true,
+ "expected": false,
+ "actual": false,
"paths": [
"reports/benchmark_reproducibility.json"
],
@@ -248,8 +248,8 @@
"key": "overview-benchmark-commit",
"label": "overview embeds the benchmark commit",
"status": "pass",
- "expected": "0ee209e7fdbb78f51659d6f92e135d7239ac1bc5",
- "actual": "0ee209e7fdbb78f51659d6f92e135d7239ac1bc5",
+ "expected": "538d7ed4017fec0e152a5fd87590dbe4cf75f273",
+ "actual": "538d7ed4017fec0e152a5fd87590dbe4cf75f273",
"paths": [
"reports/benchmark_reproducibility.json",
"reports/skill-overview.json"
@@ -261,30 +261,30 @@
"label": "overview embeds benchmark summary fields",
"status": "pass",
"expected": {
- "release_lock_ready": true,
+ "release_lock_ready": false,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "source_contract_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "source_contract_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"world_class_ledger_pending_count": 4,
"world_class_source_check_count": 13,
"world_class_source_pass_count": 6,
"world_class_source_blocked_count": 7,
"public_claim_ready": false,
- "public_claim_blocker_count": 4
+ "public_claim_blocker_count": 5
},
"actual": {
- "release_lock_ready": true,
+ "release_lock_ready": false,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "source_contract_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "source_contract_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"world_class_ledger_pending_count": 4,
"world_class_source_check_count": 13,
"world_class_source_pass_count": 6,
"world_class_source_blocked_count": 7,
"public_claim_ready": false,
- "public_claim_blocker_count": 4
+ "public_claim_blocker_count": 5
},
"paths": [
"reports/benchmark_reproducibility.json",
@@ -394,8 +394,8 @@
"key": "interpretation-benchmark-commit",
"label": "interpretation embeds the benchmark commit",
"status": "pass",
- "expected": "0ee209e7fdbb78f51659d6f92e135d7239ac1bc5",
- "actual": "0ee209e7fdbb78f51659d6f92e135d7239ac1bc5",
+ "expected": "538d7ed4017fec0e152a5fd87590dbe4cf75f273",
+ "actual": "538d7ed4017fec0e152a5fd87590dbe4cf75f273",
"paths": [
"reports/benchmark_reproducibility.json",
"reports/skill-interpretation.json"
@@ -407,30 +407,30 @@
"label": "interpretation embeds benchmark summary fields",
"status": "pass",
"expected": {
- "release_lock_ready": true,
+ "release_lock_ready": false,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "source_contract_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "source_contract_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"world_class_ledger_pending_count": 4,
"world_class_source_check_count": 13,
"world_class_source_pass_count": 6,
"world_class_source_blocked_count": 7,
"public_claim_ready": false,
- "public_claim_blocker_count": 4
+ "public_claim_blocker_count": 5
},
"actual": {
- "release_lock_ready": true,
+ "release_lock_ready": false,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "source_contract_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "source_contract_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"world_class_ledger_pending_count": 4,
"world_class_source_check_count": 13,
"world_class_source_pass_count": 6,
"world_class_source_blocked_count": 7,
"public_claim_ready": false,
- "public_claim_blocker_count": 4
+ "public_claim_blocker_count": 5
},
"paths": [
"reports/benchmark_reproducibility.json",
diff --git a/reports/install_simulation.json b/reports/install_simulation.json
index 5134bcc8..11f38c56 100644
--- a/reports/install_simulation.json
+++ b/reports/install_simulation.json
@@ -1,11 +1,11 @@
{
"ok": true,
"schema_version": "2.0",
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-13",
"skill_dir": ".",
- "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",
+ "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",
"summary": {
"archive_present": true,
"archive_entry_count": 652,
@@ -26,7 +26,7 @@
{
"id": "archive-present",
"status": "pass",
- "detail": "Package archive exists: dist/yao-meta-skill.zip"
+ "detail": "Package archive exists: tests/tmp_review_studio/dist/yao-meta-skill.zip"
},
{
"id": "archive-safe-paths",
@@ -272,9 +272,9 @@
"failures": [],
"warnings": [],
"artifacts": {
- "archive": "dist/yao-meta-skill.zip",
- "package_manifest": "dist/manifest.json",
- "json": "reports/install_simulation.json",
- "markdown": "reports/install_simulation.md"
+ "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"
}
}
diff --git a/reports/install_simulation.md b/reports/install_simulation.md
index 6750e007..b0d16dae 100644
--- a/reports/install_simulation.md
+++ b/reports/install_simulation.md
@@ -1,7 +1,7 @@
# Install Simulation
- OK: `True`
-- Package directory: `dist`
+- Package directory: `tests/tmp_review_studio/dist`
- Archive extracted: `True`
- Entrypoint loaded: `True`
- Manifest loaded: `True`
@@ -16,7 +16,7 @@
| Check | Status | Detail |
| --- | --- | --- |
-| `archive-present` | `pass` | Package archive exists: dist/yao-meta-skill.zip |
+| `archive-present` | `pass` | Package archive exists: tests/tmp_review_studio/dist/yao-meta-skill.zip |
| `archive-safe-paths` | `pass` | Archive has no absolute or parent-traversal entries |
| `single-top-level` | `pass` | Archive top-level directory is yao-meta-skill |
| `entrypoint-load` | `pass` | Installed SKILL.md frontmatter is readable |
diff --git a/reports/output_execution_runs.json b/reports/output_execution_runs.json
index 3a619d80..f9675a1b 100644
--- a/reports/output_execution_runs.json
+++ b/reports/output_execution_runs.json
@@ -34,7 +34,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.35,
+ "duration_ms": 36.18,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -62,7 +62,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.06,
+ "duration_ms": 37.3,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -85,7 +85,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.69,
+ "duration_ms": 42.52,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -113,7 +113,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 33.39,
+ "duration_ms": 52.72,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -136,7 +136,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.94,
+ "duration_ms": 40.07,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -164,7 +164,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 32.09,
+ "duration_ms": 60.34,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -187,7 +187,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.3,
+ "duration_ms": 50.43,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -214,7 +214,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.15,
+ "duration_ms": 54.34,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -237,7 +237,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.77,
+ "duration_ms": 45.83,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -266,7 +266,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 33.75,
+ "duration_ms": 45.93,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
diff --git a/reports/output_execution_runs.md b/reports/output_execution_runs.md
index e3190579..698304b5 100644
--- a/reports/output_execution_runs.md
+++ b/reports/output_execution_runs.md
@@ -23,16 +23,16 @@ Command runner evidence is present. This proves the eval harness executed an ext
| Case | Variant | Mode | Model | Duration ms | Tokens | Score | Status |
| --- | --- | --- | --- | ---: | ---: | ---: | --- |
-| skill-package-contract | baseline | command | local-output-eval-runner | 31.35 | 33 | 0.0 | pass |
-| skill-package-contract | with_skill | command | local-output-eval-runner | 31.06 | 73 | 100.0 | pass |
-| output-eval-expectation | baseline | command | local-output-eval-runner | 31.69 | 36 | 0.0 | pass |
-| output-eval-expectation | with_skill | command | local-output-eval-runner | 33.39 | 80 | 100.0 | pass |
-| ir-before-packaging | baseline | command | local-output-eval-runner | 31.94 | 33 | 0.0 | pass |
-| ir-before-packaging | with_skill | command | local-output-eval-runner | 32.09 | 80 | 100.0 | pass |
-| near-neighbor-boundary | baseline | command | local-output-eval-runner | 31.3 | 36 | 0.0 | pass |
-| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 31.15 | 65 | 100.0 | pass |
-| file-backed-governed-package | baseline | command | local-output-eval-runner | 31.77 | 37 | 0.0 | pass |
-| file-backed-governed-package | with_skill | command | local-output-eval-runner | 33.75 | 98 | 100.0 | pass |
+| skill-package-contract | baseline | command | local-output-eval-runner | 36.18 | 33 | 0.0 | pass |
+| skill-package-contract | with_skill | command | local-output-eval-runner | 37.3 | 73 | 100.0 | pass |
+| output-eval-expectation | baseline | command | local-output-eval-runner | 42.52 | 36 | 0.0 | pass |
+| output-eval-expectation | with_skill | command | local-output-eval-runner | 52.72 | 80 | 100.0 | pass |
+| ir-before-packaging | baseline | command | local-output-eval-runner | 40.07 | 33 | 0.0 | pass |
+| ir-before-packaging | with_skill | command | local-output-eval-runner | 60.34 | 80 | 100.0 | pass |
+| near-neighbor-boundary | baseline | command | local-output-eval-runner | 50.43 | 36 | 0.0 | pass |
+| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 54.34 | 65 | 100.0 | pass |
+| file-backed-governed-package | baseline | command | local-output-eval-runner | 45.83 | 37 | 0.0 | pass |
+| file-backed-governed-package | with_skill | command | local-output-eval-runner | 45.93 | 98 | 100.0 | pass |
## Next Fixes
diff --git a/reports/package_verification.json b/reports/package_verification.json
index 2ce0684d..85d8e3ec 100644
--- a/reports/package_verification.json
+++ b/reports/package_verification.json
@@ -8,7 +8,7 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"archive_entry_count": 652,
"failure_count": 0,
"warning_count": 0
diff --git a/reports/package_verification.md b/reports/package_verification.md
index 20f34142..69ced74c 100644
--- a/reports/package_verification.md
+++ b/reports/package_verification.md
@@ -4,7 +4,7 @@
- Package directory: `dist`
- Targets: `4 / 4` adapters present
- Archive present: `True`
-- Archive SHA256: `a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482`
+- Archive SHA256: `11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e`
- Failures: `0`
- Warnings: `0`
diff --git a/reports/registry_audit.json b/reports/registry_audit.json
index 503534b5..71fffd16 100644
--- a/reports/registry_audit.json
+++ b/reports/registry_audit.json
@@ -21,8 +21,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
"compatibility": {
"openai": "pass",
@@ -53,16 +53,16 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
},
- "generated_at": "2026-06-16"
+ "generated_at": "2026-06-13"
},
"index": {
"schema_version": "2.0",
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-13",
"package_count": 1,
"packages": [
{
@@ -78,7 +78,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
}
]
},
diff --git a/reports/registry_audit.md b/reports/registry_audit.md
index 87ab4041..28af2785 100644
--- a/reports/registry_audit.md
+++ b/reports/registry_audit.md
@@ -6,8 +6,8 @@
- Maturity: `governed`
- Owner: `Yao Team`
- License: `MIT`
-- Package SHA256: `363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453`
-- Archive SHA256: `a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482`
+- Package SHA256: `8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b`
+- Archive SHA256: `11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e`
- Install simulated: `True`
## Compatibility
diff --git a/reports/review-studio.html b/reports/review-studio.html
index 5ab2bba1..63f87828 100644
--- a/reports/review-studio.html
+++ b/reports/review-studio.html
@@ -740,12 +740,17 @@
核心指标
- Skill IR2.0.05 targets in platform-neutral contract
Compiler5/5target contracts compiled from Skill IR
Output Delta100.05 cases; 1 file-backed
Exec Runs10command 10; model 0; recorded 0
Blind A/B5review pairs hide baseline vs with-skill labels
Review Kit0/5pending 5; answer key hidden
Review A/B0/5adjudication decisions; pending 5
Public Claimblocked4 blockers; local reproducible true
Blueprint21/212.0 coverage; extensions partial 0, planned 0; evidence pending 4
Runtime5/5target conformance pass rate
Perm Probe4/40 native; 4 installer-enforced
Trust0125 scripts scanned; secrets found
Py Compat0199 files scanned for Python 3.11
Arch Debt0837 largest lines; 8 watchlist; 68 CLI handlers; 18 in entrypoint
Atlas512 scanned skills; route collisions
Driftlow1 metadata events; 0 missed triggers
Daily Ops5proposal-review; approval 0; release lock true
Weekly Queue5curator-review; ready 1; top score 88
Waivers00 gates covered; human risk decisions
Intake4/40 valid submissions; 0 invalid
Claim Guard0180 public surfaces scanned
Notes0/00 open blocker annotations
Registry1.1.05 targets; MIT license
Archivepass652 zip entries; package verification
Installpass4 adapters; 12 permissions enforced; 0 permission failures
Upgrademinordeclared minor; 0 breaking changes
+ Skill IR2.0.05 targets in platform-neutral contract
Compiler5/5target contracts compiled from Skill IR
Output Delta100.05 cases; 1 file-backed
Exec Runs10command 10; model 0; recorded 0
Blind A/B5review pairs hide baseline vs with-skill labels
Review Kit0/5pending 5; answer key hidden
Review A/B0/5adjudication decisions; pending 5
Public Claimblocked5 blockers; local reproducible true
Blueprint21/212.0 coverage; extensions partial 0, planned 0; evidence pending 4
Runtime5/5target conformance pass rate
Perm Probe4/40 native; 4 installer-enforced
Trust0125 scripts scanned; secrets found
Py Compat0199 files scanned for Python 3.11
Arch Debt0852 largest lines; 8 watchlist; 68 CLI handlers; 18 in entrypoint
Atlas512 scanned skills; route collisions
Driftlow1 metadata events; 0 missed triggers
Daily Ops5proposal-review; approval 0; release lock false
Weekly Queue5curator-review; ready 1; top score 88
Waivers00 gates covered; human risk decisions
Intake4/40 valid submissions; 0 invalid
Claim Guard0180 public surfaces scanned
Notes0/00 open blocker annotations
Registry1.1.05 targets; MIT license
Archivepass652 zip entries; package verification
Installpass4 adapters; 12 permissions enforced; 0 permission failures
Upgrademinordeclared minor; 0 breaking changes
审查闸门
- 通过
意图画布
intent confidence 100/100; Intent is clear enough to package the first routeable version.
通过
触发实验
13 trigger cases; 0 misroutes; 0 ambiguous
关注
输出实验
5/5 cases; with-skill 100.0; baseline 0.0; file-backed 1; near-neighbor 1; blind A/B 5; exec 10; command 10; model 0; recorded 0; reviewed 0/5; review pending 5
通过
上下文
initial load 990/1000; deferred 486227/120000; top deferred scripts 426100; resource governance governed; quality density 131.3
通过
运行矩阵
5 / 5 targets pass
通过
信任报告
0 secrets; 125 scripts; 3 network-capable scripts; 0 help smoke failures
通过
Python 兼容
Python 3.11; 199 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards
通过
架构维护
196 Python files; 0 hotspots; 8 watchlist files; 0 blockers; largest 837 lines; 68 CLI handlers; 18 in entrypoint
通过
权限批准
3/3 permissions approved; gaps 0; required file_write, network, subprocess
通过
权限探针
4/4 targets probed; native 0; metadata fallback 4; installer 4; residual risks 4
通过
组合治理
12 skills, 1 actionable; 0 actionable route collisions; 0 actionable owner gaps; 0 actionable stale; 0 actionable drift; 24 scoped non-actionable issues
通过
运营回路
1 metadata events; adoption 0; missed 0; bad-output 0; risk low; daily proposals 5; daily decision proposal-review; daily release lock true; weekly queue 5 unique; weekly ready 1; weekly top 88; weekly release lock true
关注
人工批准
0 active waivers; 1 warning gates still need reviewer decision
关注
世界证据
4 pending world-class evidence entries; 1 human pending; 3 external pending; source checks 6/13 pass; 7 blocked; overclaim guard true
通过
注册审计
yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures
通过
发布路线
0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended
+ 通过
意图画布
intent confidence 100/100; Intent is clear enough to package the first routeable version.
通过
触发实验
13 trigger cases; 0 misroutes; 0 ambiguous
关注
输出实验
5/5 cases; with-skill 100.0; baseline 0.0; file-backed 1; near-neighbor 1; blind A/B 5; exec 10; command 10; model 0; recorded 0; reviewed 0/5; review pending 5
通过
上下文
initial load 990/1000; deferred 486718/120000; top deferred scripts 426601; resource governance governed; quality density 131.3
通过
运行矩阵
5 / 5 targets pass
通过
信任报告
0 secrets; 125 scripts; 3 network-capable scripts; 0 help smoke failures
通过
Python 兼容
Python 3.11; 199 files; 0 compatibility issues; 0 syntax; 0 f-string 3.11 hazards
通过
架构维护
196 Python files; 0 hotspots; 8 watchlist files; 0 blockers; largest 852 lines; 68 CLI handlers; 18 in entrypoint
通过
权限批准
3/3 permissions approved; gaps 0; required file_write, network, subprocess
通过
权限探针
4/4 targets probed; native 0; metadata fallback 4; installer 4; residual risks 4
通过
组合治理
12 skills, 1 actionable; 0 actionable route collisions; 0 actionable owner gaps; 0 actionable stale; 0 actionable drift; 24 scoped non-actionable issues
通过
运营回路
1 metadata events; adoption 0; missed 0; bad-output 0; risk low; daily proposals 5; daily decision proposal-review; daily release lock false; weekly queue 5 unique; weekly ready 1; weekly top 88; weekly release lock false
关注
人工批准
0 active waivers; 1 warning gates still need reviewer decision
关注
世界证据
4 pending world-class evidence entries; 1 human pending; 3 external pending; source checks 6/13 pass; 7 blocked; overclaim guard true
通过
注册审计
yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures
通过
发布路线
0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended
+
+
+
+ 闸门契约
+ - Ok
- 是
- 期望 Gate
- 16
- 实际 Gate
- 16
- 缺失 Gate
- 无
- 未知 Gate
- 无
- 重复 Gate
- 无
- 未加权 Gate
- 无
@@ -807,12 +812,12 @@
- 上下文
initial load 990/1000; deferred 486227/120000; top deferred scripts 426100; resource governance governed; quality density 131.3
+ 上下文
initial load 990/1000; deferred 486718/120000; top deferred scripts 426601; resource governance governed; quality density 131.3
编译证据
Review reports/compiled_targets.md before packaging to inspect target adapter modes, generated files, preserved semantics, warnings, and unsupported features.
- 信任报告
- Secret
- 0
- 脚本数
- 125
- 网络脚本
- 3
- Help 失败
- 0
- 包体哈希
363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453
+ 信任报告
- Secret
- 0
- 脚本数
- 125
- 网络脚本
- 3
- Help 失败
- 0
- 包体哈希
8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b
安全边界
高风险 secret、远程 inline execution、缺失依赖策略或无法解释的脚本接口应阻断 governed release。
@@ -837,14 +842,14 @@
- 运营回路
1 metadata events; adoption 0; missed 0; bad-output 0; risk low; daily proposals 5; daily decision proposal-review; daily release lock true; weekly queue 5 unique; weekly ready 1; weekly top 88; weekly release lock true
+ 运营回路
1 metadata events; adoption 0; missed 0; bad-output 0; risk low; daily proposals 5; daily decision proposal-review; daily release lock false; weekly queue 5 unique; weekly ready 1; weekly top 88; weekly release lock false
漂移信号
- 事件数
- 1
- 采用率
- 0
- 漏触发
- 0
- Bad Output Count
- 0
- 风险带
- low
- 日常运维
- 决策
- proposal-review
- 提案数
- 5
- Approval Count
- 0
- Pending Review Count
- 0
- 发布锁
- 是
- 世界级
- 否
- Writes Source Files
- 否
- Auto Patch Enabled
- 否
- 周度队列
- 决策
- curator-review
- Week Id
- 2026-W25
- 日报数
- 1
- 唯一机会
- 5
- 待批准复核
- 1
- 提案复核
- 4
- Top Score
- 88
- 发布锁
- 是
- Writes Source Files
- 否
- Auto Patch Enabled
- 否
+ 日常运维
- 决策
- proposal-review
- 提案数
- 5
- Approval Count
- 0
- Pending Review Count
- 0
- 发布锁
- 否
- 世界级
- 否
- Writes Source Files
- 否
- Auto Patch Enabled
- 否
+ 周度队列
- 决策
- curator-review
- Week Id
- 2026-W25
- 日报数
- 1
- 唯一机会
- 5
- 待批准复核
- 1
- 提案复核
- 4
- Top Score
- 88
- 发布锁
- 否
- Writes Source Files
- 否
- Auto Patch Enabled
- 否
@@ -877,8 +882,8 @@
- 公开声明
- 本地复现
- 是
- 发布锁
- 是
- 可公开声明
- 否
- 声明阻断
- 4
- Provider 证据
- 否
- 人审完成
- 否
- 世界级就绪
- 否
- 声明阻断
- 阻断provider-backed model holdout evidence is incomplete
- 阻断human blind-review adjudication is incomplete
- 阻断world-class evidence is not accepted yet (4 open gaps, 4 ledger pending)
- 阻断world-class source checks are not all accepted (6/13 pass, 7 blocked)
+ 公开声明
- 本地复现
- 是
- 发布锁
- 否
- 可公开声明
- 否
- 声明阻断
- 5
- Provider 证据
- 否
- 人审完成
- 否
- 世界级就绪
- 否
+ 声明阻断
- 阻断release lock is not clean or commit is unavailable
- 阻断provider-backed model holdout evidence is incomplete
- 阻断human blind-review adjudication is incomplete
- 阻断world-class evidence is not accepted yet (4 open gaps, 4 ledger pending)
- 阻断world-class source checks are not all accepted (6/13 pass, 7 blocked)
@@ -898,12 +903,12 @@
注册审计
yao-meta-skill 1.1.0; 6/6 compatibility entries pass; install pass with 4 adapters; installer permissions 12 enforced / 0 failures
- 包体元数据
- 名称
- yao-meta-skill
- 版本
- 1.1.0
- Maturity
- governed
- Owner
- Yao Team
- License
- MIT
- 信任级别
- local
- 目标平台
- openai, claude, generic, agent-skills-compatible, vscode
- 兼容通过
- 6/6
- 归档哈希
a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482
+ 包体元数据
- 名称
- yao-meta-skill
- 版本
- 1.1.0
- Maturity
- governed
- Owner
- Yao Team
- License
- MIT
- 信任级别
- local
- 目标平台
- openai, claude, generic, agent-skills-compatible, vscode
- 兼容通过
- 6/6
- 归档哈希
11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e
发布路线
0 promote; 3 keep current; 0 blocked; upgrade minor declared / minor recommended
- 包体验证
- 目标数
- 4
- Adapter
- 4
- 归档存在
- 是
- Zip 条目
- 652
- 失败数
- 0
- 警告数
- 0
- 归档哈希
a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482
+ 包体验证
- 目标数
- 4
- Adapter
- 4
- 归档存在
- 是
- Zip 条目
- 652
- 失败数
- 0
- 警告数
- 0
- 归档哈希
11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e
diff --git a/reports/review-studio.json b/reports/review-studio.json
index f4550c3a..32e4b0ed 100644
--- a/reports/review-studio.json
+++ b/reports/review-studio.json
@@ -6,6 +6,7 @@
"decision": "review",
"world_class_score": 91,
"gate_count": 16,
+ "gate_contract_ok": true,
"blocker_count": 0,
"warning_count": 3,
"action_count": 3,
@@ -43,7 +44,7 @@
"key": "context-budget",
"label": "上下文",
"status": "pass",
- "detail": "initial load 990/1000; deferred 486227/120000; top deferred scripts 426100; resource governance governed; quality density 131.3",
+ "detail": "initial load 990/1000; deferred 486718/120000; top deferred scripts 426601; resource governance governed; quality density 131.3",
"evidence": "reports/context_budget.json",
"link": "context_budget.md"
},
@@ -75,7 +76,7 @@
"key": "architecture-maintainability",
"label": "架构维护",
"status": "pass",
- "detail": "196 Python files; 0 hotspots; 8 watchlist files; 0 blockers; largest 837 lines; 68 CLI handlers; 18 in entrypoint",
+ "detail": "196 Python files; 0 hotspots; 8 watchlist files; 0 blockers; largest 852 lines; 68 CLI handlers; 18 in entrypoint",
"evidence": "reports/architecture_maintainability.json",
"link": "architecture_maintainability.md"
},
@@ -107,7 +108,7 @@
"key": "operations-loop",
"label": "运营回路",
"status": "pass",
- "detail": "1 metadata events; adoption 0; missed 0; bad-output 0; risk low; daily proposals 5; daily decision proposal-review; daily release lock true; weekly queue 5 unique; weekly ready 1; weekly top 88; weekly release lock true",
+ "detail": "1 metadata events; adoption 0; missed 0; bad-output 0; risk low; daily proposals 5; daily decision proposal-review; daily release lock false; weekly queue 5 unique; weekly ready 1; weekly top 88; weekly release lock false",
"evidence": "reports/adoption_drift_report.json + reports/skillops/daily + reports/skillops/weekly",
"link": "adoption_drift_report.md"
},
@@ -144,6 +145,51 @@
"link": "promotion_decisions.md"
}
],
+ "gate_contract": {
+ "ok": true,
+ "expected_gate_count": 16,
+ "actual_gate_count": 16,
+ "expected_gate_keys": [
+ "architecture-maintainability",
+ "context-budget",
+ "intent-canvas",
+ "operations-loop",
+ "output-lab",
+ "permission-gates",
+ "permission-runtime",
+ "python-compat",
+ "registry-audit",
+ "release-notes",
+ "review-waivers",
+ "runtime-matrix",
+ "skill-atlas",
+ "trigger-lab",
+ "trust-report",
+ "world-class-evidence"
+ ],
+ "rendered_gate_keys": [
+ "intent-canvas",
+ "trigger-lab",
+ "output-lab",
+ "context-budget",
+ "runtime-matrix",
+ "trust-report",
+ "python-compat",
+ "architecture-maintainability",
+ "permission-gates",
+ "permission-runtime",
+ "skill-atlas",
+ "operations-loop",
+ "review-waivers",
+ "world-class-evidence",
+ "registry-audit",
+ "release-notes"
+ ],
+ "missing_gate_keys": [],
+ "unknown_gate_keys": [],
+ "duplicate_gate_keys": [],
+ "unweighted_gate_keys": []
+ },
"blockers": [],
"warnings": [
{
@@ -1922,13 +1968,13 @@
"ok": true,
"summary": {
"reproducibility_ready": true,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "evidence_bundle_sha256": "813517ab4bc2b504a720544f29c80e1bf7b09bbd1938ffdbb840b33aa5abb76a",
- "source_contract_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "evidence_bundle_sha256": "7d33c2082209f18d4e9530e53fc574eae34fe148316947b166407426922c9961",
+ "source_contract_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1946,11 +1992,11 @@
"world_class_source_pass_count": 6,
"world_class_source_blocked_count": 7,
"public_claim_ready": false,
- "public_claim_blocker_count": 4,
- "working_tree_dirty": false,
- "changed_file_count": 0
+ "public_claim_blocker_count": 5,
+ "working_tree_dirty": true,
+ "changed_file_count": 45
},
- "commit": "0ee209e7fdbb78f51659d6f92e135d7239ac1bc5",
+ "commit": "538d7ed4017fec0e152a5fd87590dbe4cf75f273",
"missing_artifacts": [],
"limitations": [
"The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
@@ -2055,7 +2101,7 @@
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 216,
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
},
"skill_atlas": {
"skill_count": 12,
@@ -2093,8 +2139,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
"compatibility": {
"openai": "pass",
@@ -2125,12 +2171,12 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
},
- "generated_at": "2026-06-16"
+ "generated_at": "2026-06-13"
},
"failures": [],
"warnings": []
@@ -2141,7 +2187,7 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"archive_entry_count": 652,
"failure_count": 0,
"warning_count": 0
@@ -2220,12 +2266,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "to": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "to": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
}
]
},
@@ -4642,7 +4688,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.35,
+ "duration_ms": 36.18,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4670,7 +4716,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.06,
+ "duration_ms": 37.3,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4693,7 +4739,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.69,
+ "duration_ms": 42.52,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4721,7 +4767,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 33.39,
+ "duration_ms": 52.72,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4744,7 +4790,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.94,
+ "duration_ms": 40.07,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4772,7 +4818,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 32.09,
+ "duration_ms": 60.34,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4795,7 +4841,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.3,
+ "duration_ms": 50.43,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4822,7 +4868,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.15,
+ "duration_ms": 54.34,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4845,7 +4891,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 31.77,
+ "duration_ms": 45.83,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4874,7 +4920,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
- "duration_ms": 33.75,
+ "duration_ms": 45.93,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5600,23 +5646,36 @@
"ok": true,
"generated_at": "2026-06-16",
"skill_dir": ".",
- "commit": "0ee209e7fdbb78f51659d6f92e135d7239ac1bc5",
+ "commit": "538d7ed4017fec0e152a5fd87590dbe4cf75f273",
"git_status": {
"available": true,
- "dirty": false,
- "changed_file_count": 0,
- "sample": [],
+ "dirty": true,
+ "changed_file_count": 45,
+ "sample": [
+ " M assets/skill-overview.css",
+ " M registry/index.json",
+ " M registry/packages/yao-meta-skill.json",
+ " M reports/adaptation_proposals.json",
+ " M reports/adaptation_proposals.md",
+ " M reports/adoption_drift_report.json",
+ " M reports/architecture_maintainability.json",
+ " M reports/architecture_maintainability.md",
+ " M reports/benchmark_reproducibility.json",
+ " M reports/benchmark_reproducibility.md",
+ " M reports/context_budget.json",
+ " M reports/context_budget.md"
+ ],
"scope": "generation-time status before this report is written"
},
"summary": {
"reproducibility_ready": true,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "evidence_bundle_sha256": "813517ab4bc2b504a720544f29c80e1bf7b09bbd1938ffdbb840b33aa5abb76a",
- "source_contract_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "evidence_bundle_sha256": "7d33c2082209f18d4e9530e53fc574eae34fe148316947b166407426922c9961",
+ "source_contract_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -5634,14 +5693,15 @@
"world_class_source_pass_count": 6,
"world_class_source_blocked_count": 7,
"public_claim_ready": false,
- "public_claim_blocker_count": 4,
- "working_tree_dirty": false,
- "changed_file_count": 0
+ "public_claim_blocker_count": 5,
+ "working_tree_dirty": true,
+ "changed_file_count": 45
},
"public_claim": {
"ready": false,
"scope": "public benchmark or world-class readiness claim",
"blockers": [
+ "release lock is not clean or commit is unavailable",
"provider-backed model holdout evidence is incomplete",
"human blind-review adjudication is incomplete",
"world-class evidence is not accepted yet (4 open gaps, 4 ledger pending)",
@@ -5650,10 +5710,10 @@
"policy": "Local reproducibility can pass before public claims; public claims require provider evidence, human adjudication, clean release lock, accepted world-class evidence, and complete source checks."
},
"release_lock": {
- "ready": true,
- "commit": "0ee209e7fdbb78f51659d6f92e135d7239ac1bc5",
+ "ready": false,
+ "commit": "538d7ed4017fec0e152a5fd87590dbe4cf75f273",
"status_scope": "generation-time status before this report is written",
- "reason": "clean generation-time HEAD"
+ "reason": "working tree was dirty at generation time"
},
"evidence_bundle": {
"algorithm": "sha256(path,label,exists,artifact_sha256)",
@@ -5661,7 +5721,7 @@
"existing_count": 25,
"missing_count": 0,
"missing_paths": [],
- "sha256": "813517ab4bc2b504a720544f29c80e1bf7b09bbd1938ffdbb840b33aa5abb76a"
+ "sha256": "7d33c2082209f18d4e9530e53fc574eae34fe148316947b166407426922c9961"
},
"methodology": {
"path": "reports/benchmark_methodology.md",
@@ -5735,7 +5795,7 @@
"path": "reports/output_execution_runs.json",
"exists": true,
"bytes": 7966,
- "sha256": "93a5679326b29eb9d79c3ada70679f0070be6a8aed6e50d0452c854b48efa475"
+ "sha256": "93beb4bf94e08e6b75f35ff6f1a2029a9b9092717d691f42cf507b09bc590572"
},
{
"label": "blind_review",
@@ -5770,7 +5830,7 @@
"path": "reports/security_trust_report.json",
"exists": true,
"bytes": 120363,
- "sha256": "bea31eb462ca6e8021e68181ce3c4d34eaa0122dd34476b697ba59d38391cf36"
+ "sha256": "034e530e2efdd5c28f7e6ff97b2c7621aa88f8d6899df4d2b7f73048277f5541"
},
{
"label": "python_compatibility",
@@ -5784,21 +5844,21 @@
"path": "reports/registry_audit.json",
"exists": true,
"bytes": 3183,
- "sha256": "c6d5cf3c3ec415480b7cc72623b1977c5a98e64707a7dbd13ba239dfd44159fe"
+ "sha256": "eede973e03cdf2193a94efffbff49edaba48a65c86821fa78e0538eeb4c3d4b5"
},
{
"label": "package_verification",
"path": "reports/package_verification.json",
"exists": true,
"bytes": 19338,
- "sha256": "dd90aae6ad68c21bd0db241b033aa00038278fd6396e75fc42f86064911ce51b"
+ "sha256": "892a8e8364a25b1035518bfe69cf3a381e5755235b83f54f4942fa2cee31ccd9"
},
{
"label": "install_simulation",
"path": "reports/install_simulation.json",
"exists": true,
- "bytes": 8604,
- "sha256": "1c3fdea61d50ae05224bc7ebeffcf4ec205de213ab0755f6c6593ef76ad59726"
+ "bytes": 8758,
+ "sha256": "50c23ac052b288665d10c81e80f79c7b1c3437c815012816815715d07cc0d0fc"
},
{
"label": "skill_os2_audit",
@@ -11633,7 +11693,7 @@
"schema_version": "1.0",
"ok": true,
"skill_dir": ".",
- "package_dir": "dist",
+ "package_dir": "tests/tmp_review_studio/dist",
"expected_capabilities": [
"file_write",
"network",
@@ -11673,7 +11733,7 @@
{
"target": "openai",
"status": "pass",
- "adapter": "dist/targets/openai/adapter.json",
+ "adapter": "tests/tmp_review_studio/dist/targets/openai/adapter.json",
"permission_model": "metadata-only",
"native_enforcement": false,
"metadata_fallback_explicit": true,
@@ -11770,7 +11830,7 @@
{
"target": "claude",
"status": "pass",
- "adapter": "dist/targets/claude/adapter.json",
+ "adapter": "tests/tmp_review_studio/dist/targets/claude/adapter.json",
"permission_model": "neutral-source-plus-adapter",
"native_enforcement": false,
"metadata_fallback_explicit": true,
@@ -11852,7 +11912,7 @@
{
"target": "generic",
"status": "pass",
- "adapter": "dist/targets/generic/adapter.json",
+ "adapter": "tests/tmp_review_studio/dist/targets/generic/adapter.json",
"permission_model": "agent-skills-compatible-metadata",
"native_enforcement": false,
"metadata_fallback_explicit": true,
@@ -11934,7 +11994,7 @@
{
"target": "vscode",
"status": "pass",
- "adapter": "dist/targets/vscode/adapter.json",
+ "adapter": "tests/tmp_review_studio/dist/targets/vscode/adapter.json",
"permission_model": "vscode-workspace-trust-plus-metadata",
"native_enforcement": false,
"metadata_fallback_explicit": true,
@@ -12045,7 +12105,7 @@
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 216,
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
},
"failures": [],
"warnings": [],
@@ -16304,7 +16364,7 @@
"warn_line_threshold": 900,
"watch_line_threshold": 720,
"block_line_threshold": 1500,
- "largest_file_lines": 837,
+ "largest_file_lines": 852,
"watchlist_count": 8,
"hotspot_count": 0,
"blocker_count": 0,
@@ -16313,7 +16373,7 @@
"largest_files": [
{
"path": "tests/verify_review_studio.py",
- "lines": 837,
+ "lines": 852,
"kind": "test",
"severity": "pass",
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
@@ -16374,6 +16434,13 @@
"severity": "pass",
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
+ {
+ "path": "scripts/review_studio_gates.py",
+ "lines": 707,
+ "kind": "internal-module",
+ "severity": "pass",
+ "recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
+ },
{
"path": "scripts/apply_adaptation.py",
"lines": 706,
@@ -16387,19 +16454,12 @@
"kind": "internal-module",
"severity": "pass",
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
- },
- {
- "path": "scripts/render_review_viewer.py",
- "lines": 685,
- "kind": "cli-script",
- "severity": "pass",
- "recommendation": "Split viewer data assembly from HTML section rendering."
}
],
"watchlist": [
{
"path": "tests/verify_review_studio.py",
- "lines": 837,
+ "lines": 852,
"kind": "test",
"severity": "pass",
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
@@ -16469,15 +16529,15 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 797,
- "other_text_tokens": 1050110,
+ "other_text_tokens": 1051049,
"estimated_initial_load_tokens": 990,
- "estimated_total_text_tokens": 1050907,
- "deferred_resource_tokens": 486227,
+ "estimated_total_text_tokens": 1051846,
+ "deferred_resource_tokens": 486718,
"deferred_resource_warn_threshold": 120000,
"deferred_resource_dirs": [
{
"path": "scripts",
- "estimated_tokens": 426100,
+ "estimated_tokens": 426601,
"file_count": 125
},
{
@@ -16492,14 +16552,14 @@
},
{
"path": "assets",
- "estimated_tokens": 10044,
+ "estimated_tokens": 10034,
"file_count": 3
}
],
"large_deferred_resource_dirs": [
{
"path": "scripts",
- "estimated_tokens": 426100,
+ "estimated_tokens": 426601,
"file_count": 125
}
],
@@ -16522,7 +16582,7 @@
],
"missing": [],
"path": "scripts",
- "estimated_tokens": 426100,
+ "estimated_tokens": 426601,
"file_count": 125,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
@@ -17373,7 +17433,7 @@
},
"catalog": {
"workspace_root": ".",
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-13",
"skills": [
{
"name": "yao-meta-skill",
@@ -17587,8 +17647,8 @@
"report": "reports/adoption_drift_report.json",
"risk_band": "low",
"event_count": 1,
- "adoption_sample_count": 0,
- "adoption_rate": 0,
+ "adoption_sample_count": 1,
+ "adoption_rate": 100.0,
"candidate_count": 0
}
},
@@ -18251,7 +18311,7 @@
"name": "incident-command-governor",
"path": "examples/governed-incident-command/generated-skill",
"reason": "review overdue by cadence monthly",
- "age_days": 77,
+ "age_days": 74,
"allowed_days": 31,
"actionable": false,
"scope": "example"
@@ -18419,7 +18479,7 @@
"adoption_drift": {
"ok": true,
"schema_version": "2.0",
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-16T07:12:10Z",
"skill_dir": ".",
"privacy_contract": {
"storage": "local-first",
@@ -18503,7 +18563,7 @@
"daily_skillops": {
"schema_version": "1.0",
"ok": true,
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-16T07:12:11Z",
"skill_dir": ".",
"decision": "proposal-review",
"source_supplied": false,
@@ -18516,7 +18576,7 @@
"local_blueprint_ready": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"evidence_consistency_ok": true,
"writes_source_files": false,
"auto_patch_enabled": false,
@@ -18533,7 +18593,7 @@
"local_blueprint_ready": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"evidence_consistency_ok": true,
"writes_source_files": false,
"auto_patch_enabled": false,
@@ -18982,7 +19042,7 @@
"local_blueprint_ready": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"evidence_consistency_ok": true
},
"actions": [
@@ -19017,7 +19077,7 @@
"weekly_curator": {
"schema_version": "1.0",
"ok": true,
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-16T07:12:11Z",
"skill_dir": ".",
"decision": "curator-review",
"week_id": "2026-W25",
@@ -19031,7 +19091,7 @@
"top_score": 88,
"skill_count": 12,
"actionable_portfolio_issue_count": 0,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"evidence_consistency_ok": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
@@ -19051,7 +19111,7 @@
"top_score": 88,
"skill_count": 12,
"actionable_portfolio_issue_count": 0,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"evidence_consistency_ok": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
@@ -19303,7 +19363,7 @@
"no_route_opportunity_count": 0
},
"release_state": {
- "release_lock_ready": true,
+ "release_lock_ready": false,
"evidence_consistency_ok": true,
"public_world_class_ready": false,
"world_class_pending_count": 4
@@ -19481,7 +19541,7 @@
"adaptation_proposals": {
"schema_version": "1.0",
"ok": true,
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-16T07:12:11Z",
"skill_dir": ".",
"source_patterns": "reports/user_patterns.json",
"pattern_count": 5,
@@ -23413,8 +23473,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
"compatibility": {
"openai": "pass",
@@ -23445,16 +23505,16 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
},
- "generated_at": "2026-06-16"
+ "generated_at": "2026-06-13"
},
"index": {
"schema_version": "2.0",
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-13",
"package_count": 1,
"packages": [
{
@@ -23470,7 +23530,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
}
]
},
@@ -23493,7 +23553,7 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"archive_entry_count": 652,
"failure_count": 0,
"warning_count": 0
@@ -24152,11 +24212,11 @@
"install_simulation": {
"ok": true,
"schema_version": "2.0",
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-13",
"skill_dir": ".",
- "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",
+ "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",
"summary": {
"archive_present": true,
"archive_entry_count": 652,
@@ -24177,7 +24237,7 @@
{
"id": "archive-present",
"status": "pass",
- "detail": "Package archive exists: dist/yao-meta-skill.zip"
+ "detail": "Package archive exists: tests/tmp_review_studio/dist/yao-meta-skill.zip"
},
{
"id": "archive-safe-paths",
@@ -24423,16 +24483,16 @@
"failures": [],
"warnings": [],
"artifacts": {
- "archive": "dist/yao-meta-skill.zip",
- "package_manifest": "dist/manifest.json",
- "json": "reports/install_simulation.json",
- "markdown": "reports/install_simulation.md"
+ "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"
}
},
"upgrade_check": {
"ok": true,
"schema_version": "2.0",
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-13",
"previous": {
"name": "yao-meta-skill",
"version": "1.0.0",
@@ -24501,12 +24561,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "to": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "to": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
}
]
},
@@ -24521,8 +24581,8 @@
"artifacts": {
"previous_package": "registry/examples/yao-meta-skill-1.0.0.json",
"current_package": "reports/registry_audit.json",
- "json": "reports/upgrade_check.json",
- "markdown": "reports/upgrade_check.md"
+ "json": "tests/tmp_review_studio/upgrade_check.json",
+ "markdown": "tests/tmp_review_studio/upgrade_check.md"
}
},
"manifest": {
diff --git a/reports/review-viewer.json b/reports/review-viewer.json
index 98326e1b..4a99996d 100644
--- a/reports/review-viewer.json
+++ b/reports/review-viewer.json
@@ -997,13 +997,13 @@
"ok": true,
"summary": {
"reproducibility_ready": true,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "evidence_bundle_sha256": "813517ab4bc2b504a720544f29c80e1bf7b09bbd1938ffdbb840b33aa5abb76a",
- "source_contract_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "evidence_bundle_sha256": "7d33c2082209f18d4e9530e53fc574eae34fe148316947b166407426922c9961",
+ "source_contract_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1021,11 +1021,11 @@
"world_class_source_pass_count": 6,
"world_class_source_blocked_count": 7,
"public_claim_ready": false,
- "public_claim_blocker_count": 4,
- "working_tree_dirty": false,
- "changed_file_count": 0
+ "public_claim_blocker_count": 5,
+ "working_tree_dirty": true,
+ "changed_file_count": 45
},
- "commit": "0ee209e7fdbb78f51659d6f92e135d7239ac1bc5",
+ "commit": "538d7ed4017fec0e152a5fd87590dbe4cf75f273",
"missing_artifacts": [],
"limitations": [
"The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
@@ -1130,7 +1130,7 @@
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 216,
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
},
"skill_atlas": {
"skill_count": 12,
@@ -1168,8 +1168,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
"compatibility": {
"openai": "pass",
@@ -1200,12 +1200,12 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
},
- "generated_at": "2026-06-16"
+ "generated_at": "2026-06-13"
},
"failures": [],
"warnings": []
@@ -1216,7 +1216,7 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"archive_entry_count": 652,
"failure_count": 0,
"warning_count": 0
@@ -1295,12 +1295,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "to": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "to": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
}
]
},
diff --git a/reports/runtime_permission_probes.json b/reports/runtime_permission_probes.json
index 9c2ffd6e..59c9a1a4 100644
--- a/reports/runtime_permission_probes.json
+++ b/reports/runtime_permission_probes.json
@@ -2,7 +2,7 @@
"schema_version": "1.0",
"ok": true,
"skill_dir": ".",
- "package_dir": "dist",
+ "package_dir": "tests/tmp_review_studio/dist",
"expected_capabilities": [
"file_write",
"network",
@@ -42,7 +42,7 @@
{
"target": "openai",
"status": "pass",
- "adapter": "dist/targets/openai/adapter.json",
+ "adapter": "tests/tmp_review_studio/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": "dist/targets/claude/adapter.json",
+ "adapter": "tests/tmp_review_studio/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": "dist/targets/generic/adapter.json",
+ "adapter": "tests/tmp_review_studio/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": "dist/targets/vscode/adapter.json",
+ "adapter": "tests/tmp_review_studio/dist/targets/vscode/adapter.json",
"permission_model": "vscode-workspace-trust-plus-metadata",
"native_enforcement": false,
"metadata_fallback_explicit": true,
diff --git a/reports/security_trust_report.json b/reports/security_trust_report.json
index a192a449..e84ccb3d 100644
--- a/reports/security_trust_report.json
+++ b/reports/security_trust_report.json
@@ -23,7 +23,7 @@
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 216,
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
},
"failures": [],
"warnings": [],
diff --git a/reports/security_trust_report.md b/reports/security_trust_report.md
index f3d49157..cee75496 100644
--- a/reports/security_trust_report.md
+++ b/reports/security_trust_report.md
@@ -16,7 +16,7 @@
- Interactive scripts: `0`
- Package hash scope: `source-contract-without-generated-reports`
- Package hash files: `216`
-- Package SHA256: `363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453`
+- Package SHA256: `8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b`
## Failures
diff --git a/reports/skill-interpretation.html b/reports/skill-interpretation.html
index 6f246b0a..5be2c66c 100644
--- a/reports/skill-interpretation.html
+++ b/reports/skill-interpretation.html
@@ -358,7 +358,7 @@
}
.metrics-primary {
display: grid;
- grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
+ grid-template-columns: minmax(0, 1fr);
gap: 22px;
align-items: start;
}
@@ -426,7 +426,7 @@
margin-top: 2px;
}
.metric-detail-grid {
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
+ grid-template-columns: repeat(2, minmax(0, 1fr));
align-items: stretch;
}
.list, .compact-list, .step-list {
@@ -697,9 +697,9 @@
.section-head > .world-readiness { grid-column: auto; }
.hero-grid { gap: 24px; }
.score-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
- .metrics-primary, .two-col, .metric-grid, .chart-grid, .roadmap { grid-template-columns: 1fr; }
+ .metrics-primary, .metric-detail-grid, .two-col, .metric-grid, .chart-grid, .roadmap { grid-template-columns: 1fr; }
.evidence-list { grid-template-columns: 1fr; }
- .metric-card { grid-template-columns: 86px minmax(0, 1fr); }
+ .metric-card { grid-template-columns: 1fr; }
h1 { font-size: 2.75rem; }
}
@media (max-width: 540px) {
diff --git a/reports/skill-interpretation.json b/reports/skill-interpretation.json
index a191cce2..41ae9727 100644
--- a/reports/skill-interpretation.json
+++ b/reports/skill-interpretation.json
@@ -1001,13 +1001,13 @@
"ok": true,
"summary": {
"reproducibility_ready": true,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "evidence_bundle_sha256": "813517ab4bc2b504a720544f29c80e1bf7b09bbd1938ffdbb840b33aa5abb76a",
- "source_contract_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "evidence_bundle_sha256": "7d33c2082209f18d4e9530e53fc574eae34fe148316947b166407426922c9961",
+ "source_contract_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1025,11 +1025,11 @@
"world_class_source_pass_count": 6,
"world_class_source_blocked_count": 7,
"public_claim_ready": false,
- "public_claim_blocker_count": 4,
- "working_tree_dirty": false,
- "changed_file_count": 0
+ "public_claim_blocker_count": 5,
+ "working_tree_dirty": true,
+ "changed_file_count": 45
},
- "commit": "0ee209e7fdbb78f51659d6f92e135d7239ac1bc5",
+ "commit": "538d7ed4017fec0e152a5fd87590dbe4cf75f273",
"missing_artifacts": [],
"limitations": [
"The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
@@ -1134,7 +1134,7 @@
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 216,
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
},
"skill_atlas": {
"skill_count": 12,
@@ -1172,8 +1172,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
"compatibility": {
"openai": "pass",
@@ -1204,12 +1204,12 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
},
- "generated_at": "2026-06-16"
+ "generated_at": "2026-06-13"
},
"failures": [],
"warnings": []
@@ -1220,7 +1220,7 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"archive_entry_count": 652,
"failure_count": 0,
"warning_count": 0
@@ -1299,12 +1299,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "to": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "to": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
}
]
},
diff --git a/reports/skill-overview.html b/reports/skill-overview.html
index eb49127f..e27e3b1a 100644
--- a/reports/skill-overview.html
+++ b/reports/skill-overview.html
@@ -358,7 +358,7 @@
}
.metrics-primary {
display: grid;
- grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
+ grid-template-columns: minmax(0, 1fr);
gap: 22px;
align-items: start;
}
@@ -426,7 +426,7 @@
margin-top: 2px;
}
.metric-detail-grid {
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
+ grid-template-columns: repeat(2, minmax(0, 1fr));
align-items: stretch;
}
.list, .compact-list, .step-list {
@@ -697,9 +697,9 @@
.section-head > .world-readiness { grid-column: auto; }
.hero-grid { gap: 24px; }
.score-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
- .metrics-primary, .two-col, .metric-grid, .chart-grid, .roadmap { grid-template-columns: 1fr; }
+ .metrics-primary, .metric-detail-grid, .two-col, .metric-grid, .chart-grid, .roadmap { grid-template-columns: 1fr; }
.evidence-list { grid-template-columns: 1fr; }
- .metric-card { grid-template-columns: 86px minmax(0, 1fr); }
+ .metric-card { grid-template-columns: 1fr; }
h1 { font-size: 2.75rem; }
}
@media (max-width: 540px) {
diff --git a/reports/skill-overview.json b/reports/skill-overview.json
index 29a43077..8617ccd9 100644
--- a/reports/skill-overview.json
+++ b/reports/skill-overview.json
@@ -996,13 +996,13 @@
"ok": true,
"summary": {
"reproducibility_ready": true,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
- "evidence_bundle_sha256": "813517ab4bc2b504a720544f29c80e1bf7b09bbd1938ffdbb840b33aa5abb76a",
- "source_contract_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "evidence_bundle_sha256": "7d33c2082209f18d4e9530e53fc574eae34fe148316947b166407426922c9961",
+ "source_contract_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1020,11 +1020,11 @@
"world_class_source_pass_count": 6,
"world_class_source_blocked_count": 7,
"public_claim_ready": false,
- "public_claim_blocker_count": 4,
- "working_tree_dirty": false,
- "changed_file_count": 0
+ "public_claim_blocker_count": 5,
+ "working_tree_dirty": true,
+ "changed_file_count": 45
},
- "commit": "0ee209e7fdbb78f51659d6f92e135d7239ac1bc5",
+ "commit": "538d7ed4017fec0e152a5fd87590dbe4cf75f273",
"missing_artifacts": [],
"limitations": [
"The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
@@ -1129,7 +1129,7 @@
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 216,
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
},
"skill_atlas": {
"skill_count": 12,
@@ -1167,8 +1167,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
- "package_sha256": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453",
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "package_sha256": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
"compatibility": {
"openai": "pass",
@@ -1199,12 +1199,12 @@
},
"distribution": {
"archive_verified": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
},
- "generated_at": "2026-06-16"
+ "generated_at": "2026-06-13"
},
"failures": [],
"warnings": []
@@ -1215,7 +1215,7 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
- "archive_sha256": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482",
+ "archive_sha256": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e",
"archive_entry_count": 652,
"failure_count": 0,
"warning_count": 0
@@ -1294,12 +1294,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "to": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "to": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
}
]
},
diff --git a/reports/skill_atlas.json b/reports/skill_atlas.json
index 7e366744..54d099a4 100644
--- a/reports/skill_atlas.json
+++ b/reports/skill_atlas.json
@@ -44,7 +44,7 @@
},
"catalog": {
"workspace_root": ".",
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-13",
"skills": [
{
"name": "yao-meta-skill",
@@ -258,8 +258,8 @@
"report": "reports/adoption_drift_report.json",
"risk_band": "low",
"event_count": 1,
- "adoption_sample_count": 0,
- "adoption_rate": 0,
+ "adoption_sample_count": 1,
+ "adoption_rate": 100.0,
"candidate_count": 0
}
},
@@ -922,7 +922,7 @@
"name": "incident-command-governor",
"path": "examples/governed-incident-command/generated-skill",
"reason": "review overdue by cadence monthly",
- "age_days": 77,
+ "age_days": 74,
"allowed_days": 31,
"actionable": false,
"scope": "example"
diff --git a/reports/skillops/daily/2026-06-16.json b/reports/skillops/daily/2026-06-16.json
index a35cbc88..7e48ac44 100644
--- a/reports/skillops/daily/2026-06-16.json
+++ b/reports/skillops/daily/2026-06-16.json
@@ -1,7 +1,7 @@
{
"schema_version": "1.0",
"ok": true,
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-16T07:12:11Z",
"skill_dir": ".",
"decision": "proposal-review",
"source_supplied": false,
@@ -14,7 +14,7 @@
"local_blueprint_ready": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"evidence_consistency_ok": true,
"writes_source_files": false,
"auto_patch_enabled": false,
@@ -31,7 +31,7 @@
"local_blueprint_ready": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"evidence_consistency_ok": true,
"writes_source_files": false,
"auto_patch_enabled": false,
@@ -480,7 +480,7 @@
"local_blueprint_ready": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"evidence_consistency_ok": true
},
"actions": [
diff --git a/reports/skillops/daily/2026-06-16.md b/reports/skillops/daily/2026-06-16.md
index 105c41c3..4f103cda 100644
--- a/reports/skillops/daily/2026-06-16.md
+++ b/reports/skillops/daily/2026-06-16.md
@@ -1,6 +1,6 @@
# Daily SkillOps Report
-Generated at: `2026-06-16`
+Generated at: `2026-06-16T07:12:11Z`
## Summary
@@ -14,7 +14,7 @@ Generated at: `2026-06-16`
- local blueprint ready: `true`
- public world-class ready: `false`
- world-class pending: `4`
-- release lock ready: `true`
+- release lock ready: `false`
- evidence consistency ok: `true`
This report is an operations cockpit for explicit-source SkillOps. It does not scan private logs, write source files, apply patches, or count as world-class external or human evidence.
diff --git a/reports/skillops/weekly/2026-W25.json b/reports/skillops/weekly/2026-W25.json
index 998d23ea..d9337bf5 100644
--- a/reports/skillops/weekly/2026-W25.json
+++ b/reports/skillops/weekly/2026-W25.json
@@ -1,7 +1,7 @@
{
"schema_version": "1.0",
"ok": true,
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-16T07:12:11Z",
"skill_dir": ".",
"decision": "curator-review",
"week_id": "2026-W25",
@@ -15,7 +15,7 @@
"top_score": 88,
"skill_count": 12,
"actionable_portfolio_issue_count": 0,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"evidence_consistency_ok": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
@@ -35,7 +35,7 @@
"top_score": 88,
"skill_count": 12,
"actionable_portfolio_issue_count": 0,
- "release_lock_ready": true,
+ "release_lock_ready": false,
"evidence_consistency_ok": true,
"public_world_class_ready": false,
"world_class_pending_count": 4,
@@ -287,7 +287,7 @@
"no_route_opportunity_count": 0
},
"release_state": {
- "release_lock_ready": true,
+ "release_lock_ready": false,
"evidence_consistency_ok": true,
"public_world_class_ready": false,
"world_class_pending_count": 4
diff --git a/reports/skillops/weekly/2026-W25.md b/reports/skillops/weekly/2026-W25.md
index 4d75fc31..b49aa3e6 100644
--- a/reports/skillops/weekly/2026-W25.md
+++ b/reports/skillops/weekly/2026-W25.md
@@ -1,6 +1,6 @@
# Weekly SkillOps Curator Report
-Generated at: `2026-06-16`
+Generated at: `2026-06-16T07:12:11Z`
Week: `2026-W25`
## Summary
@@ -13,7 +13,7 @@ Week: `2026-W25`
- top_score: `88`
- skill_count: `12`
- actionable_portfolio_issue_count: `0`
-- release_lock_ready: `True`
+- release_lock_ready: `False`
- evidence_consistency_ok: `True`
- public_world_class_ready: `False`
- world_class_pending_count: `4`
diff --git a/reports/upgrade_check.json b/reports/upgrade_check.json
index f1693f00..992f8a46 100644
--- a/reports/upgrade_check.json
+++ b/reports/upgrade_check.json
@@ -1,7 +1,7 @@
{
"ok": true,
"schema_version": "2.0",
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-13",
"previous": {
"name": "yao-meta-skill",
"version": "1.0.0",
@@ -70,12 +70,12 @@
{
"field": "archive_sha256",
"from": "",
- "to": "a5a62aeb079b925fe3e52446a607508209ab40a9fa9b2be2335dee35b182c482"
+ "to": "11c535377813c5424308dbb30a57bbedde6b9acefffbfe0456364b00f130b89e"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
- "to": "363354808bdd7c9517352e7a709ea13cd2a3878e526fb1f7121f71de5e746453"
+ "to": "8fcd68d906823c7bcd96d21c765555ab7d53183876b34806a6b5bc29e817154b"
}
]
},
@@ -90,7 +90,7 @@
"artifacts": {
"previous_package": "registry/examples/yao-meta-skill-1.0.0.json",
"current_package": "reports/registry_audit.json",
- "json": "reports/upgrade_check.json",
- "markdown": "reports/upgrade_check.md"
+ "json": "tests/tmp_review_studio/upgrade_check.json",
+ "markdown": "tests/tmp_review_studio/upgrade_check.md"
}
}
diff --git a/scripts/render_review_studio.py b/scripts/render_review_studio.py
index 1e789322..05783e63 100644
--- a/scripts/render_review_studio.py
+++ b/scripts/render_review_studio.py
@@ -8,7 +8,7 @@ from typing import Any
from review_studio_actions import build_review_actions, render_review_actions
from review_studio_data import evidence_paths, insight_cards, load_review_data
from review_studio_formatting import registry_package_summary, render_kv_grid
-from review_studio_gates import add_blockers_from_gate, build_gates, status_label, weighted_score
+from review_studio_gates import add_blockers_from_gate, build_gates, gate_contract, status_label, weighted_score
from review_studio_layout import render_review_nav, review_studio_css
from review_studio_output_review import render_output_review_section
from review_studio_skillops import render_skillops_section
@@ -123,6 +123,19 @@ def render_html(report: dict[str, Any]) -> str:
description = overview.get("description") or frontmatter.get("description", "")
nav_html = render_review_nav()
gates_html = render_gate_list(gates)
+ gate_contract_panel = render_kv_grid(
+ report.get("gate_contract", {}),
+ [
+ "ok",
+ "expected_gate_count",
+ "actual_gate_count",
+ "missing_gate_keys",
+ "unknown_gate_keys",
+ "duplicate_gate_keys",
+ "unweighted_gate_keys",
+ ],
+ "gate contract missing",
+ )
metrics_html = render_insights(insights)
blockers_html = render_issue_list("阻断事项", blockers)
warnings_html = render_issue_list("关注事项", warnings)
@@ -413,6 +426,11 @@ def render_html(report: dict[str, Any]) -> str:
{gates_html}
+
+ 闸门契约
+ {gate_contract_panel}
+
+
{blockers_html}
{warnings_html}
@@ -584,6 +602,7 @@ def render_review_studio(skill_dir: Path, output_html: Path | None = None, outpu
output_json = output_json or reports_dir / "review-studio.json"
data = load_review_data(skill_dir)
gates = build_gates(skill_dir, output_html, data)
+ contract = gate_contract(gates)
blockers, warnings = add_blockers_from_gate(gates)
review_actions = build_review_actions(gates, skill_dir, output_html, data)
score = weighted_score(gates)
@@ -593,12 +612,13 @@ def render_review_studio(skill_dir: Path, output_html: Path | None = None, outpu
decision = "blocked" if blockers or open_annotation_blockers else ("review" if warnings or open_annotation_warnings else "ready")
report = {
"schema_version": "2.0",
- "ok": True,
+ "ok": contract["ok"],
"skill_dir": display_path(skill_dir, skill_dir),
"summary": {
"decision": decision,
"world_class_score": score,
"gate_count": len(gates),
+ "gate_contract_ok": contract["ok"],
"blocker_count": len(blockers),
"warning_count": len(warnings),
"action_count": len(review_actions),
@@ -608,6 +628,7 @@ def render_review_studio(skill_dir: Path, output_html: Path | None = None, outpu
"open_annotation_warning_count": open_annotation_warnings,
},
"gates": gates,
+ "gate_contract": contract,
"blockers": blockers,
"warnings": warnings,
"review_actions": review_actions,
diff --git a/scripts/review_studio_formatting.py b/scripts/review_studio_formatting.py
index e9107b39..bf460ca0 100644
--- a/scripts/review_studio_formatting.py
+++ b/scripts/review_studio_formatting.py
@@ -19,6 +19,7 @@ LABELS = {
"archive_entry_count": "Zip 条目",
"archive_present": "归档存在",
"archive_sha256": "归档哈希",
+ "actual_gate_count": "实际 Gate",
"answer_revealed_count": "答案揭示",
"baseline_pass_rate": "Baseline",
"breaking_change_count": "破坏变更",
@@ -31,7 +32,9 @@ LABELS = {
"declared_bump": "声明版本",
"decision": "决策",
"delta": "增益",
+ "duplicate_gate_keys": "重复 Gate",
"event_count": "事件数",
+ "expected_gate_count": "期望 Gate",
"failure_count": "失败数",
"file_count": "文件数",
"fstring_311_violation_count": "F-string 3.11",
@@ -56,6 +59,7 @@ LABELS = {
"metadata_fallback_count": "Metadata fallback",
"missed_trigger_count": "漏触发",
"missing_count": "缺失数",
+ "missing_gate_keys": "缺失 Gate",
"module_count": "模块数",
"model_executed_count": "模型执行",
"name": "名称",
@@ -85,6 +89,7 @@ LABELS = {
"recommended_pr_count": "建议 PR",
"recommended_bump": "建议版本",
"release_lock_ready": "发布锁",
+ "rendered_gate_keys": "渲染 Gate",
"residual_risk_count": "残余风险",
"risk_band": "风险带",
"route_collision_count": "路由冲突",
@@ -103,6 +108,8 @@ LABELS = {
"token_estimated_count": "估算 Token",
"token_observed_count": "真实 Token",
"trust_level": "信任级别",
+ "unknown_gate_keys": "未知 Gate",
+ "unweighted_gate_keys": "未加权 Gate",
"unique_opportunity_count": "唯一机会",
"variant_run_count": "运行数",
"valid_submission_count": "有效提交",
diff --git a/scripts/review_studio_gates.py b/scripts/review_studio_gates.py
index e1979267..9ef83617 100644
--- a/scripts/review_studio_gates.py
+++ b/scripts/review_studio_gates.py
@@ -3,6 +3,7 @@
import json
import os
+from collections import Counter
from pathlib import Path
from typing import Any
@@ -80,6 +81,27 @@ def add_blockers_from_gate(gates: list[dict[str, str]]) -> tuple[list[dict[str,
return blockers, warnings
+def gate_contract(gates: list[dict[str, str]]) -> dict[str, Any]:
+ rendered_gate_keys = [str(item.get("key", "")) for item in gates]
+ rendered_gate_set = set(rendered_gate_keys)
+ expected_gate_set = set(REVIEW_STUDIO_GATE_KEYS)
+ duplicate_gate_keys = sorted(key for key, count in Counter(rendered_gate_keys).items() if count > 1)
+ missing_gate_keys = sorted(expected_gate_set - rendered_gate_set)
+ unknown_gate_keys = sorted(rendered_gate_set - expected_gate_set)
+ unweighted_gate_keys = sorted(rendered_gate_set - set(GATE_WEIGHTS))
+ return {
+ "ok": not (missing_gate_keys or unknown_gate_keys or duplicate_gate_keys or unweighted_gate_keys),
+ "expected_gate_count": len(expected_gate_set),
+ "actual_gate_count": len(rendered_gate_keys),
+ "expected_gate_keys": sorted(expected_gate_set),
+ "rendered_gate_keys": rendered_gate_keys,
+ "missing_gate_keys": missing_gate_keys,
+ "unknown_gate_keys": unknown_gate_keys,
+ "duplicate_gate_keys": duplicate_gate_keys,
+ "unweighted_gate_keys": unweighted_gate_keys,
+ }
+
+
def target_maturity(skill_dir: Path, overview: dict[str, Any]) -> str:
manifest = _load_json(skill_dir / "manifest.json")
if manifest.get("maturity_tier"):
diff --git a/skill_atlas/catalog.json b/skill_atlas/catalog.json
index b42c3dc8..2b79ab9f 100644
--- a/skill_atlas/catalog.json
+++ b/skill_atlas/catalog.json
@@ -1,6 +1,6 @@
{
"workspace_root": ".",
- "generated_at": "2026-06-16",
+ "generated_at": "2026-06-13",
"skills": [
{
"name": "yao-meta-skill",
@@ -214,8 +214,8 @@
"report": "reports/adoption_drift_report.json",
"risk_band": "low",
"event_count": 1,
- "adoption_sample_count": 0,
- "adoption_rate": 0,
+ "adoption_sample_count": 1,
+ "adoption_rate": 100.0,
"candidate_count": 0
}
},
diff --git a/skill_atlas/stale_skills.json b/skill_atlas/stale_skills.json
index b57d361d..6602e829 100644
--- a/skill_atlas/stale_skills.json
+++ b/skill_atlas/stale_skills.json
@@ -24,7 +24,7 @@
"name": "incident-command-governor",
"path": "examples/governed-incident-command/generated-skill",
"reason": "review overdue by cadence monthly",
- "age_days": 77,
+ "age_days": 74,
"allowed_days": 31,
"actionable": false,
"scope": "example"
diff --git a/tests/verify_review_studio.py b/tests/verify_review_studio.py
index c44171d6..a92d76f9 100644
--- a/tests/verify_review_studio.py
+++ b/tests/verify_review_studio.py
@@ -295,6 +295,7 @@ def main() -> None:
assert payload["schema_version"] == "2.0", payload
assert payload["summary"]["decision"] == "review", payload
assert payload["summary"]["gate_count"] == 16, payload
+ assert payload["summary"]["gate_contract_ok"] is True, payload
assert payload["summary"]["world_class_score"] == 91, payload
assert payload["summary"]["warning_count"] == 3, payload
assert payload["summary"]["blocker_count"] == 0, payload
@@ -310,6 +311,16 @@ def main() -> None:
gate_keys = {item["key"] for item in payload["gates"]}
assert gate_keys == review_gates.REVIEW_STUDIO_GATE_KEYS, payload
assert set(review_gates.GATE_WEIGHTS) == review_gates.REVIEW_STUDIO_GATE_KEYS, review_gates.GATE_WEIGHTS
+ gate_contract = payload["gate_contract"]
+ assert gate_contract["ok"] is True, gate_contract
+ assert gate_contract["expected_gate_count"] == 16, gate_contract
+ assert gate_contract["actual_gate_count"] == 16, gate_contract
+ assert set(gate_contract["expected_gate_keys"]) == review_gates.REVIEW_STUDIO_GATE_KEYS, gate_contract
+ assert set(gate_contract["rendered_gate_keys"]) == review_gates.REVIEW_STUDIO_GATE_KEYS, gate_contract
+ assert gate_contract["missing_gate_keys"] == [], gate_contract
+ assert gate_contract["unknown_gate_keys"] == [], gate_contract
+ assert gate_contract["duplicate_gate_keys"] == [], gate_contract
+ assert gate_contract["unweighted_gate_keys"] == [], gate_contract
output_gate = next(item for item in payload["gates"] if item["key"] == "output-lab")
assert output_gate["status"] == "warn", output_gate
assert "5/5 cases" in output_gate["detail"], output_gate
@@ -821,6 +832,7 @@ def main() -> None:
assert review_gates.status_label("warn") == "关注"
assert review_gates.weighted_score([{"key": "output-lab", "status": "pass"}]) == 100
assert review_gates.weighted_score([{"key": "output-lab", "status": "warn"}]) == 60
+ assert not review_gates.gate_contract([{"key": "output-lab", "status": "pass"}])["ok"]
assert len(review_layout.REVIEW_STUDIO_NAV) == 16, review_layout.REVIEW_STUDIO_NAV
assert ("#world-class", "世界证据") in review_layout.REVIEW_STUDIO_NAV, review_layout.REVIEW_STUDIO_NAV
assert "position: sticky" in review_layout.review_studio_css(), review_layout.review_studio_css()[:400]
@@ -829,6 +841,9 @@ def main() -> None:
).strip()
assert "#overview" in review_layout.render_review_nav(), review_layout.render_review_nav()
assert "审查总览" in review_layout.render_review_nav(), review_layout.render_review_nav()
+ assert "闸门契约" in html, html[:9000]
+ assert "期望 Gate" in html, html[:9000]
+ assert "实际 Gate" in html, html[:9000]
assert review_layout.render_review_nav([]) == ""
print(json.dumps({"ok": True}, ensure_ascii=False, indent=2))
diff --git a/tests/verify_skill_overview.py b/tests/verify_skill_overview.py
index d884f35e..0b653a8b 100644
--- a/tests/verify_skill_overview.py
+++ b/tests/verify_skill_overview.py
@@ -52,9 +52,12 @@ def main() -> None:
assert ".metrics-primary" in css_contract, css_contract[:7000]
assert ".metrics-flow" in css_contract, css_contract[:9000]
assert ".metric-detail-grid" in css_contract, css_contract[:9000]
- assert "repeat(auto-fit, minmax(min(100%, 340px), 1fr))" in css_contract, css_contract[:9000]
+ assert ".metrics-primary {\n display: grid;\n grid-template-columns: minmax(0, 1fr);" in css_contract, css_contract[:9000]
+ assert ".metric-detail-grid {\n grid-template-columns: repeat(2, minmax(0, 1fr));" in css_contract, css_contract[:9000]
+ assert "repeat(auto-fit, minmax(min(100%, 340px), 1fr))" not in css_contract, css_contract[:9000]
assert "grid-template-columns: minmax(420px, 1fr)" not in css_contract, css_contract[:9000]
assert "overflow-wrap: break-word" in css_contract, css_contract[:9000]
+ assert ".metrics-primary, .metric-detail-grid, .two-col" in css_contract, css_contract[-2600:]
assert "@media (max-width: 980px)" in css_contract, css_contract[-2200:]
script_contract = skill_overview_script()