Expand review studio world-class action cards

This commit is contained in:
yaojingang
2026-06-16 07:02:02 +08:00
parent 5338a77016
commit 30451d41f6
49 changed files with 1278 additions and 1024 deletions
+1 -1
View File
@@ -104,7 +104,7 @@ Clean test-only scratch directories after verification with `find tests -maxdept
- `scripts/render_skill_overview.py`: v2 bilingual skill overview report. Preserve `reports/skill-overview.html` / `.json`, `body data-report-lang="zh-CN"`, default Simplified Chinese, English switch, and inline-chart/no-external-dependency behavior.
- `scripts/skill_report_layout.py` plus `assets/skill-overview.css` / `assets/skill-overview.js`: overview report layout contract and inline assets. Keep the generated report single-file at render time, but keep long CSS/JS source in `assets/` instead of embedding it inside Python.
- `scripts/render_review_studio.py`: Review Studio gate orchestration. Keep gate scoring, evidence links, and action generation separate from layout helpers.
- `scripts/review_studio_layout.py`: Review Studio static layout and CSS contract.
- `scripts/review_studio_layout.py` plus `assets/review-studio.css`: Review Studio static layout and CSS contract. Keep the generated report single-file at render time, but keep long CSS source in `assets/` instead of embedding it inside Python.
- `scripts/review_studio_formatting.py`: Review Studio dictionary-to-panel formatting and Chinese metric labels.
- `scripts/review_studio_gates.py`: Review Studio gate evaluation, release decision scoring, and gate status labels.
- `scripts/render_skill_os2_audit.py`: requirement-by-requirement Skill OS 2.0 completion audit. Keep local evidence, human-required gaps, and external-required gaps separate so reports do not overclaim world-class readiness.
+688
View File
@@ -0,0 +1,688 @@
:root {
--ink: #1B365D;
--text: #24201d;
--muted: #746d66;
--line: #e7ded2;
--soft: #faf8f5;
--pass: #1e6b52;
--warn: #9a6718;
--block: #9b2c2c;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background: #ffffff;
color: var(--text);
font-family: Georgia, "Times New Roman", "Songti SC", serif;
line-height: 1.58;
}
nav {
position: sticky;
top: 0;
z-index: 10;
display: flex;
gap: 4px;
justify-content: center;
flex-wrap: wrap;
padding: 10px 16px;
background: rgba(255,255,255,0.94);
border-bottom: 1px solid var(--line);
backdrop-filter: blur(10px);
}
nav a {
color: var(--ink);
text-decoration: none;
font-size: 14px;
padding: 7px 10px;
border-radius: 6px;
}
nav a:hover { background: var(--soft); }
main { max-width: 1180px; margin: 0 auto; padding: 44px 28px 76px; }
header { border-bottom: 1px solid var(--line); padding-bottom: 28px; margin-bottom: 28px; }
.eyebrow { color: var(--ink); font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
h1, h2, h3 { color: var(--text); font-weight: 500; margin: 0; letter-spacing: 0; }
h1 { font-size: clamp(34px, 5vw, 64px); line-height: 1.03; max-width: 920px; margin-top: 12px; }
h2 { font-size: 30px; margin-bottom: 14px; }
h3 { font-size: 19px; }
p { margin: 0; }
.lede { max-width: 820px; color: var(--muted); font-size: 20px; margin-top: 18px; }
.decision {
display: inline-flex;
align-items: baseline;
gap: 12px;
margin-top: 24px;
padding: 12px 16px;
border: 1px solid var(--line);
border-radius: 8px;
color: var(--ink);
background: var(--soft);
}
.decision strong { font-size: 28px; }
section { padding: 30px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 76px; }
.metrics, .gates {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 14px;
}
.gates { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.metric, .gate {
border: 1px solid var(--line);
border-radius: 8px;
padding: 16px;
background: #fff;
min-width: 0;
}
.metric span, .gate span { display: block; color: var(--muted); font-size: 13px; }
.metric strong { display: block; color: var(--ink); font-size: 34px; line-height: 1.1; margin: 8px 0; }
.metric p, .gate p, .gate footer, .issues span, .evidence span { color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
.gate { display: flex; flex-direction: column; gap: 10px; }
.gate.pass { border-top: 4px solid var(--pass); }
.gate.warn { border-top: 4px solid var(--warn); }
.gate.block { border-top: 4px solid var(--block); }
.gate footer { border-top: 1px solid var(--line); padding-top: 10px; }
a { color: var(--ink); }
.twocol {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
gap: 22px;
align-items: start;
}
.panel {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
}
.panel p { color: var(--muted); }
.kv-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px 12px;
margin: 2px 0 0;
}
.kv-grid div {
min-width: 0;
padding: 9px 0 0;
border-top: 1px solid var(--line);
}
.kv-grid dt {
color: var(--muted);
font-size: 13px;
}
.kv-grid dd {
margin: 2px 0 0;
color: var(--ink);
font-size: 15px;
overflow-wrap: anywhere;
}
.issues, .evidence {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 12px;
}
.issues li, .evidence li {
border-left: 3px solid var(--line);
padding-left: 12px;
display: grid;
gap: 3px;
}
.muted { color: var(--muted); }
.actions-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.annotations-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.action-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 10px;
min-width: 0;
}
.action-card.warn { border-left: 4px solid var(--warn); }
.action-card.block { border-left: 4px solid var(--block); }
.action-card.with-evidence {
grid-column: 1 / -1;
}
.action-evidence-panel {
display: grid;
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
margin-top: 2px;
}
.action-evidence-panel h4 {
margin: 0;
color: var(--ink);
font-size: 16px;
font-weight: 500;
}
.action-evidence-panel p {
color: var(--muted);
font-size: 14px;
}
.action-evidence-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
}
.action-evidence-item {
border: 1px solid var(--line);
border-radius: 8px;
padding: 14px;
display: grid;
gap: 10px;
min-width: 0;
background: var(--soft);
}
.action-evidence-item.pending { border-left: 4px solid var(--warn); }
.action-evidence-item.accepted { border-left: 4px solid var(--pass); }
.action-evidence-item h4,
.action-evidence-item h5 {
margin: 0;
color: var(--ink);
font-weight: 500;
}
.action-evidence-item h4 { font-size: 16px; }
.action-evidence-item h5 { font-size: 14px; }
.action-evidence-item section {
border-top: 1px solid var(--line);
padding-top: 10px;
display: grid;
gap: 8px;
}
.action-command-details,
.action-runbook-details,
.action-collection-details {
border-top: 1px solid var(--line);
padding-top: 10px;
display: grid;
gap: 8px;
}
.action-command-details summary,
.action-runbook-details summary,
.action-collection-details summary {
cursor: pointer;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.action-command-details[open] summary,
.action-runbook-details[open] summary,
.action-collection-details[open] summary {
margin-bottom: 8px;
}
.action-collection-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.action-collection-grid section {
border-top: 1px solid var(--line);
padding-top: 8px;
display: grid;
gap: 6px;
}
.action-collection-grid ul,
.action-collection-grid ol {
margin: 0;
padding-left: 18px;
display: grid;
gap: 5px;
}
.action-collection-grid li {
color: var(--muted);
font-size: 13px;
overflow-wrap: anywhere;
}
.action-evidence-item dl {
display: grid;
grid-template-columns: 76px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.action-evidence-item dt {
color: var(--ink);
font-size: 14px;
}
.action-evidence-item dd {
margin: 0;
min-width: 0;
}
.action-evidence-checks,
.action-command-list,
.action-runbook-list {
margin: 0;
display: grid;
gap: 8px;
}
.action-evidence-checks,
.action-command-list {
padding: 0;
list-style: none;
}
.action-runbook-list {
padding-left: 20px;
}
.action-evidence-check,
.action-command-list li {
display: grid;
gap: 3px;
min-width: 0;
border-top: 1px solid var(--line);
padding-top: 8px;
}
.action-evidence-check.blocked { border-left: 3px solid var(--warn); padding-left: 8px; }
.action-evidence-check.pass { border-left: 3px solid var(--pass); padding-left: 8px; }
.action-evidence-check span,
.action-command-list span {
color: var(--ink);
font-size: 13px;
}
.action-evidence-check code,
.action-evidence-check small,
.action-command-list code,
.action-runbook-list li {
color: var(--muted);
font-size: 13px;
overflow-wrap: anywhere;
}
.action-command-list code {
display: block;
white-space: normal;
}
.annotation-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 10px;
min-width: 0;
}
.annotation-card.warning { border-left: 4px solid var(--warn); }
.annotation-card.blocker { border-left: 4px solid var(--block); }
.annotation-card.resolved { opacity: .72; }
.world-evidence-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
margin-top: 16px;
}
.world-evidence-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.world-evidence-card.pending { border-left: 4px solid var(--warn); }
.world-evidence-card.accepted { border-left: 4px solid var(--pass); }
.world-evidence-card span,
.world-evidence-card p,
.world-evidence-card dd,
.world-evidence-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.world-evidence-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.world-evidence-card dt { color: var(--ink); font-size: 14px; }
.world-evidence-card dd { margin: 0; }
.world-evidence-columns {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-evidence-columns h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.world-evidence-columns ul {
margin: 0;
padding-left: 18px;
}
.world-source-panel {
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-runbook-panel {
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-runbook-panel h4,
.world-source-panel h4 {
margin: 0 0 8px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.world-runbook-panel ul {
margin: 0;
padding-left: 18px;
}
.world-source-checks {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 8px;
}
.world-source-check {
display: grid;
grid-template-columns: minmax(0, .7fr) minmax(0, .6fr) minmax(0, 1fr);
gap: 10px;
align-items: start;
min-width: 0;
padding: 9px 0 0;
border-top: 1px solid var(--line);
}
.world-source-check span {
color: var(--ink);
font-size: 14px;
}
.world-source-check code,
.world-source-check small {
color: var(--muted);
font-size: 13px;
overflow-wrap: anywhere;
}
.world-source-check.pass { border-left: 3px solid var(--pass); padding-left: 8px; }
.world-source-check.blocked { border-left: 3px solid var(--warn); padding-left: 8px; }
.output-review-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
margin-top: 16px;
}
.output-review-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.output-review-card.awaiting-decision,
.output-review-card.fix-decision { border-left: 4px solid var(--warn); }
.output-review-card.adjudicated { border-left: 4px solid var(--pass); }
.output-review-card span,
.output-review-card p,
.output-review-card dd,
.output-review-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.output-review-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.output-review-card dt { color: var(--ink); font-size: 14px; }
.output-review-card dd { margin: 0; min-width: 0; }
.output-review-steps {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.output-review-steps h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.output-review-steps ul {
margin: 0;
padding-left: 18px;
}
.output-review-commands,
.output-review-fields {
list-style: none;
padding: 0;
display: grid;
gap: 8px;
}
.output-review-commands li,
.output-review-fields li {
display: grid;
gap: 2px;
min-width: 0;
padding: 8px 0 0;
border-top: 1px solid var(--line);
}
.output-review-commands code {
overflow-wrap: anywhere;
white-space: normal;
display: block;
}
.world-intake-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
margin-top: 16px;
}
.world-intake-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.world-intake-card.awaiting-submission,
.world-intake-card.fix-submission,
.world-intake-card.fix-template { border-left: 4px solid var(--warn); }
.world-intake-card.ready-for-ledger-review,
.world-intake-card.accepted { border-left: 4px solid var(--pass); }
.world-intake-card span,
.world-intake-card p,
.world-intake-card dd,
.world-intake-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.world-intake-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.world-intake-card dt { color: var(--ink); font-size: 14px; }
.world-intake-card dd { margin: 0; min-width: 0; }
.world-intake-steps {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-intake-steps h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.world-intake-steps ul {
margin: 0;
padding-left: 18px;
}
.world-intake-commands {
list-style: none;
padding: 0;
display: grid;
gap: 8px;
}
.world-intake-commands li {
display: grid;
gap: 2px;
min-width: 0;
padding: 8px 0 0;
border-top: 1px solid var(--line);
}
.world-intake-commands code {
overflow-wrap: anywhere;
white-space: normal;
display: block;
}
.section-subtitle {
margin-top: 22px;
margin-bottom: 12px;
color: var(--ink);
}
.waiver-summary { margin-top: 16px; }
.waiver-candidate-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
}
.waiver-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.waiver-card.allowed { border-left: 4px solid var(--warn); }
.waiver-card.blocked { border-left: 4px solid var(--block); }
.waiver-card span,
.waiver-card p,
.waiver-card dd,
.waiver-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.waiver-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.waiver-card dt {
color: var(--ink);
font-size: 14px;
}
.waiver-card dd { margin: 0; min-width: 0; }
.waiver-review {
border-top: 1px solid var(--line);
padding-top: 12px;
}
.waiver-review h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.waiver-review ul {
margin: 0;
padding-left: 18px;
}
.waiver-command {
display: grid;
gap: 4px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.waiver-command span {
color: var(--ink);
font-size: 14px;
}
.waiver-command code {
display: block;
max-width: 100%;
overflow-wrap: anywhere;
white-space: normal;
}
.action-card span,
.annotation-card span,
.action-card small,
.annotation-card small,
.action-card footer,
.annotation-card footer,
.action-card dd {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.annotation-card dd { color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
.action-card dl, .annotation-card dl {
display: grid;
grid-template-columns: 80px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.action-card dt, .annotation-card dt { color: var(--ink); font-size: 14px; }
.action-card dd, .annotation-card dd { margin: 0; }
.source-ref-list {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 6px;
}
.source-ref-list li {
display: grid;
gap: 2px;
min-width: 0;
padding: 8px 0 0;
border-top: 1px solid var(--line);
}
.source-ref-list a,
.source-ref-list span {
overflow-wrap: anywhere;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 13px;
}
.source-ref-list small {
font-size: 12px;
color: var(--muted);
}
.source-ref-list blockquote {
margin: 2px 0 0;
padding: 7px 9px;
border-left: 3px solid var(--line);
background: var(--soft);
color: var(--muted);
font-size: 12px;
overflow-wrap: anywhere;
}
code {
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 13px;
}
@media (max-width: 980px) {
.metrics, .gates, .twocol, .actions-grid, .annotations-grid, .action-evidence-grid, .action-evidence-item dl, .action-collection-grid, .output-review-grid, .output-review-steps, .world-evidence-grid, .world-evidence-columns, .world-source-check, .world-intake-grid, .world-intake-steps, .waiver-candidate-grid, .waiver-card dl, .kv-grid { grid-template-columns: 1fr; }
main { padding: 32px 18px 60px; }
nav { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; }
nav a { flex: 0 0 auto; }
}
+2
View File
@@ -69,6 +69,8 @@ Each action must include:
The HTML page should render these actions before the detailed supporting sections so a reviewer can move directly from warning to fix. Action entries do not change gate count or score; they make the current decision more operational.
For `world-class-evidence`, the action should also expose an evidence-step card for every pending evidence key. Each card should show the submission path, template path, blocked source checks, command handoff, first runbook steps, provenance requirements, success checks, evidence artifacts, and privacy boundary. These cards are collection guidance only; they must not count as accepted evidence or change world-class readiness.
## Review Annotations
`reports/review_annotations.json` is the structured ledger, and `reports/review_annotations.md` is the human-readable review note surface. Each annotation should include:
+1 -1
View File
@@ -16,7 +16,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
}
]
}
+3 -3
View File
@@ -16,8 +16,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
"compatibility": {
"openai": "pass",
@@ -48,7 +48,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
+5 -5
View File
@@ -52,7 +52,7 @@
},
{
"path": "tests/verify_review_studio.py",
"lines": 803,
"lines": 816,
"kind": "test",
"severity": "pass",
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
@@ -100,9 +100,9 @@
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "scripts/review_studio_layout.py",
"lines": 703,
"kind": "internal-module",
"path": "scripts/render_world_class_preflight.py",
"lines": 693,
"kind": "cli-script",
"severity": "pass",
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
}
@@ -138,7 +138,7 @@
},
{
"path": "tests/verify_review_studio.py",
"lines": 803,
"lines": 816,
"kind": "test",
"severity": "pass",
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
+3 -3
View File
@@ -33,7 +33,7 @@ No file-size hotspots found.
| `scripts/yao_cli_parser.py` | `870` | `internal-module` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `scripts/render_evidence_consistency.py` | `859` | `cli-script` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `tests/verify_world_class_evidence_intake.py` | `842` | `test` | Break broad integration assertions into focused verifier helpers when the next behavior change lands. |
| `tests/verify_review_studio.py` | `803` | `test` | Break broad integration assertions into focused verifier helpers when the next behavior change lands. |
| `tests/verify_review_studio.py` | `816` | `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. |
| `scripts/build_skill_atlas.py` | `730` | `cli-script` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
| `scripts/compile_skill.py` | `723` | `cli-script` | Watch this file before adding new responsibilities; extract a helper module when one concern dominates. |
@@ -47,14 +47,14 @@ No file-size hotspots found.
| `scripts/yao_cli_parser.py` | `870` | `internal-module` | `pass` |
| `scripts/render_evidence_consistency.py` | `859` | `cli-script` | `pass` |
| `tests/verify_world_class_evidence_intake.py` | `842` | `test` | `pass` |
| `tests/verify_review_studio.py` | `803` | `test` | `pass` |
| `tests/verify_review_studio.py` | `816` | `test` | `pass` |
| `scripts/skill_report_model.py` | `800` | `internal-module` | `pass` |
| `scripts/build_skill_atlas.py` | `730` | `cli-script` | `pass` |
| `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/apply_adaptation.py` | `706` | `cli-script` | `pass` |
| `scripts/review_studio_layout.py` | `703` | `internal-module` | `pass` |
| `scripts/render_world_class_preflight.py` | `693` | `cli-script` | `pass` |
## Release Rule
+38 -24
View File
@@ -3,23 +3,36 @@
"ok": true,
"generated_at": "2026-06-16",
"skill_dir": ".",
"commit": "c325269f10a7c691646aefc5f48ca73e0a94542f",
"commit": "5338a770167da589a140c71ff0cd589ee5a3e8f4",
"git_status": {
"available": true,
"dirty": false,
"changed_file_count": 0,
"sample": [],
"dirty": true,
"changed_file_count": 52,
"sample": [
" M AGENTS.md",
" M references/review-studio-method.md",
" M registry/index.json",
" M registry/packages/yao-meta-skill.json",
" M reports/architecture_maintainability.json",
" M reports/architecture_maintainability.md",
" M reports/benchmark_reproducibility.json",
" M reports/benchmark_reproducibility.md",
" M reports/compiled_targets.json",
" M reports/context_budget.json",
" M reports/context_budget.md",
" M reports/context_budget_summary.json"
],
"scope": "generation-time status before this report is written"
},
"summary": {
"reproducibility_ready": true,
"release_lock_ready": true,
"release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"evidence_bundle_sha256": "95a01210eb2bacbef1d295e72bd60fdcce075db27930533679397b5aad82e4cf",
"source_contract_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"evidence_bundle_sha256": "a6a800e88be9348c69020f14560db3a902a8e24bbafc79b5d31200f42d3a6191",
"source_contract_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"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": 52
},
"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": "c325269f10a7c691646aefc5f48ca73e0a94542f",
"ready": false,
"commit": "5338a770167da589a140c71ff0cd589ee5a3e8f4",
"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": "95a01210eb2bacbef1d295e72bd60fdcce075db27930533679397b5aad82e4cf"
"sha256": "a6a800e88be9348c69020f14560db3a902a8e24bbafc79b5d31200f42d3a6191"
},
"methodology": {
"path": "reports/benchmark_methodology.md",
@@ -137,8 +151,8 @@
"label": "output_execution",
"path": "reports/output_execution_runs.json",
"exists": true,
"bytes": 7966,
"sha256": "cefdff4fe2a5d92ab32a6985046bcfe76af6676f376f2556347aa4ca623f47c9"
"bytes": 7967,
"sha256": "dc896e2929e25d8f517ded4024f2bce12030f4be14f885f76255be887117766c"
},
{
"label": "blind_review",
@@ -173,7 +187,7 @@
"path": "reports/security_trust_report.json",
"exists": true,
"bytes": 117850,
"sha256": "10abf9ec2d104908bbdfa0d7b40c04977dd4c0c2361635d17f128e4ae2f0979a"
"sha256": "8a6f0eb0c627b1b8a7ffb45fd431b678827a91590028021e145d6b60d2fc4c2e"
},
{
"label": "python_compatibility",
@@ -187,28 +201,28 @@
"path": "reports/registry_audit.json",
"exists": true,
"bytes": 3183,
"sha256": "ed24d67c538e61177dc30c2a6a9ae1daca9f73db0d61312f65bd97364c49e91f"
"sha256": "bd4b1f1cd5b21d0bda736ea14db4e6839e3729f66c787ef3be97619e8d069267"
},
{
"label": "package_verification",
"path": "reports/package_verification.json",
"exists": true,
"bytes": 19338,
"sha256": "33b28ae80672acda503ef7fe032cecb5f80135f47e558b865da3bdbbd6a39250"
"sha256": "3fe267c06ebba290d312575d3042fc8a1125ebe7c07c1c555eae2948dbf845d0"
},
{
"label": "install_simulation",
"path": "reports/install_simulation.json",
"exists": true,
"bytes": 8604,
"sha256": "60ca2069feba8af6f011888735eab5600d32c513d48f18cb960609850b9f312f"
"sha256": "0a127a000c337bf9d180b30ac7ff4fefd6a3392aa7c4c4b822f6b3727fbcfd50"
},
{
"label": "skill_os2_audit",
"path": "reports/skill_os2_audit.json",
"exists": true,
"bytes": 14310,
"sha256": "d42e33630eb3fea284fb521c0dc33dca3d37bdcd8adec0518f77297098fdc0c1"
"sha256": "de180d2b67b017d5654e10e34d58d56ab0e4861968e282f34777f3677522027e"
},
{
"label": "world_class_evidence_plan",
@@ -235,8 +249,8 @@
"label": "world_class_evidence_preflight",
"path": "reports/world_class_evidence_preflight.json",
"exists": true,
"bytes": 36073,
"sha256": "5576411ceb4aeb9d0c2fd1ecbcd78d08f49c62149615c20cc77d4ab5db1736cc"
"bytes": 36067,
"sha256": "1e6c66fc5e3ceec580313f3dbdc7e26d3526832c591c2c4281f52779d2f6242d"
},
{
"label": "world_class_submission_review",
+19 -18
View File
@@ -1,19 +1,19 @@
# Benchmark Reproducibility
Generated at: `2026-06-16`
Commit: `c325269f10a7c691646aefc5f48ca73e0a94542f`
Working tree dirty at generation: `false`
Evidence bundle SHA256: `95a01210eb2bacbef1d295e72bd60fdcce075db27930533679397b5aad82e4cf`
Commit: `5338a770167da589a140c71ff0cd589ee5a3e8f4`
Working tree dirty at generation: `true`
Evidence bundle SHA256: `a6a800e88be9348c69020f14560db3a902a8e24bbafc79b5d31200f42d3a6191`
## Summary
- reproducibility ready: `true`
- release lock ready: `true`
- release lock ready: `false`
- methodology complete: `true`
- required artifacts: `25`
- missing artifacts: `0`
- source contract sha256: `f7b3e6749356`
- archive sha256: `c26d85598e49`
- source contract sha256: `1b03b1e4bab9`
- archive sha256: `38e8e607c1ed`
- output cases: `5`
- disclosed failure cases: `3`
- reproduction commands: `23`
@@ -22,8 +22,8 @@ Evidence bundle SHA256: `95a01210eb2bacbef1d295e72bd60fdcce075db27930533679397b5
- 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: `52`
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: `95a01210eb2bacbef1d295e72bd60fdcce075db27930533679397b5aad82e4cf`
- sha256: `a6a800e88be9348c69020f14560db3a902a8e24bbafc79b5d31200f42d3a6191`
## Methodology Sections
@@ -72,21 +73,21 @@ 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 | `cefdff4fe2a5` |
| output_execution | `reports/output_execution_runs.json` | present | `dc896e2929e2` |
| 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 | `10abf9ec2d10` |
| trust_report | `reports/security_trust_report.json` | present | `8a6f0eb0c627` |
| python_compatibility | `reports/python_compatibility.json` | present | `364e9bbc8dd4` |
| registry_audit | `reports/registry_audit.json` | present | `ed24d67c538e` |
| package_verification | `reports/package_verification.json` | present | `33b28ae80672` |
| install_simulation | `reports/install_simulation.json` | present | `60ca2069feba` |
| skill_os2_audit | `reports/skill_os2_audit.json` | present | `d42e33630eb3` |
| registry_audit | `reports/registry_audit.json` | present | `bd4b1f1cd5b2` |
| package_verification | `reports/package_verification.json` | present | `3fe267c06ebb` |
| install_simulation | `reports/install_simulation.json` | present | `0a127a000c33` |
| skill_os2_audit | `reports/skill_os2_audit.json` | present | `de180d2b67b0` |
| world_class_evidence_plan | `reports/world_class_evidence_plan.json` | present | `38e95161404d` |
| world_class_evidence_ledger | `reports/world_class_evidence_ledger.json` | present | `d08019f31a78` |
| world_class_evidence_intake | `reports/world_class_evidence_intake.json` | present | `4a9119aba62b` |
| world_class_evidence_preflight | `reports/world_class_evidence_preflight.json` | present | `5576411ceb4a` |
| world_class_evidence_preflight | `reports/world_class_evidence_preflight.json` | present | `1e6c66fc5e3c` |
| world_class_submission_review | `reports/world_class_submission_review.json` | present | `6aaf868374ba` |
| world_class_operator_runbook | `reports/world_class_operator_runbook.json` | present | `40d179696445` |
| world_class_operator_runbook_markdown | `reports/world_class_operator_runbook.md` | present | `ebfa3a4b5280` |
+20 -15
View File
@@ -272,6 +272,7 @@
"scripts/yao_cli_telemetry.py"
],
"assets": [
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
@@ -325,7 +326,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
}
},
@@ -596,7 +597,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -850,7 +851,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -1189,6 +1190,7 @@
"scripts/yao_cli_telemetry.py"
],
"assets": [
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
@@ -1242,7 +1244,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
}
},
@@ -1513,7 +1515,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -1767,7 +1769,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -2106,6 +2108,7 @@
"scripts/yao_cli_telemetry.py"
],
"assets": [
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
@@ -2159,7 +2162,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
}
},
@@ -2430,7 +2433,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -2677,7 +2680,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -3007,6 +3010,7 @@
"scripts/yao_cli_telemetry.py"
],
"assets": [
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
@@ -3060,7 +3064,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
}
},
@@ -3331,7 +3335,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -3578,7 +3582,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -3908,6 +3912,7 @@
"scripts/yao_cli_telemetry.py"
],
"assets": [
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
@@ -3961,7 +3966,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
}
},
@@ -4232,7 +4237,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -4483,7 +4488,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
+10 -10
View File
@@ -6,20 +6,20 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 797,
"other_text_tokens": 1035917,
"other_text_tokens": 1037197,
"estimated_initial_load_tokens": 990,
"estimated_total_text_tokens": 1036714,
"deferred_resource_tokens": 478069,
"estimated_total_text_tokens": 1037994,
"deferred_resource_tokens": 478929,
"deferred_resource_warn_threshold": 120000,
"deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 423106,
"estimated_tokens": 419118,
"file_count": 121
},
{
"path": "references",
"estimated_tokens": 27991,
"estimated_tokens": 28099,
"file_count": 35
},
{
@@ -29,14 +29,14 @@
},
{
"path": "assets",
"estimated_tokens": 5137,
"file_count": 2
"estimated_tokens": 9877,
"file_count": 3
}
],
"large_deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 423106,
"estimated_tokens": 419118,
"file_count": 121
}
],
@@ -59,14 +59,14 @@
],
"missing": [],
"path": "scripts",
"estimated_tokens": 423106,
"estimated_tokens": 419118,
"file_count": 121,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
],
"summary": "Large deferred resources are indexed and backed by evidence."
},
"relevant_file_count": 627,
"relevant_file_count": 628,
"unused_resource_dirs": [],
"quality_signal_points": 130,
"quality_density": 131.3
+1 -1
View File
@@ -2,7 +2,7 @@
| Target | Path | Tier | Limit | Initial | SKILL | Deferred | Resource Governance | Large Deferred Dirs | Quality Density | Unused Dirs | Status |
| --- | --- | --- | ---: | ---: | ---: | ---: | --- | --- | ---: | --- | --- |
| root | `.` | `production` | 1000 | 990 | 797 | 478069 | `governed` | scripts:423106 | 131.3 | - | ok |
| root | `.` | `production` | 1000 | 990 | 797 | 478929 | `governed` | scripts:419118 | 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 |
+3 -3
View File
@@ -8,11 +8,11 @@
"budget_limit": 1000,
"initial_tokens": 990,
"skill_body_tokens": 797,
"deferred_resource_tokens": 478069,
"deferred_resource_tokens": 478929,
"large_deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 423106,
"estimated_tokens": 419118,
"file_count": 121
}
],
@@ -35,7 +35,7 @@
],
"missing": [],
"path": "scripts",
"estimated_tokens": 423106,
"estimated_tokens": 419118,
"file_count": 121,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
+30 -30
View File
@@ -189,12 +189,12 @@
"status": "pass",
"expected": {
"status": "pass",
"detail": "initial load 990/1000; deferred 478069/120000; top deferred scripts 423106; resource governance governed; quality density 131.3",
"detail": "initial load 990/1000; deferred 478929/120000; top deferred scripts 419118; resource governance governed; quality density 131.3",
"evidence": "reports/context_budget.json"
},
"actual": {
"status": "pass",
"detail": "initial load 990/1000; deferred 478069/120000; top deferred scripts 423106; resource governance governed; quality density 131.3",
"detail": "initial load 990/1000; deferred 478929/120000; top deferred scripts 419118; 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": "c325269f10a7c691646aefc5f48ca73e0a94542f",
"actual": "c325269f10a7c691646aefc5f48ca73e0a94542f",
"expected": "5338a770167da589a140c71ff0cd589ee5a3e8f4",
"actual": "5338a770167da589a140c71ff0cd589ee5a3e8f4",
"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": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"source_contract_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"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": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"source_contract_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"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": "c325269f10a7c691646aefc5f48ca73e0a94542f",
"actual": "c325269f10a7c691646aefc5f48ca73e0a94542f",
"expected": "5338a770167da589a140c71ff0cd589ee5a3e8f4",
"actual": "5338a770167da589a140c71ff0cd589ee5a3e8f4",
"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": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"source_contract_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"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": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"source_contract_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"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",
@@ -598,7 +598,7 @@
"label": "上下文成本",
"score": 42,
"reasons": [
"入口约 360 个词/字,references 约 16770 个词/字。",
"入口约 360 个词/字,references 约 16828 个词/字。",
"分数越高代表上下文成本越低。",
"上下文成本偏高,建议压缩入口或拆分 references。"
]
@@ -662,7 +662,7 @@
"label": "上下文成本",
"score": 42,
"reasons": [
"入口约 360 个词/字,references 约 16770 个词/字。",
"入口约 360 个词/字,references 约 16828 个词/字。",
"分数越高代表上下文成本越低。",
"上下文成本偏高,建议压缩入口或拆分 references。"
]
@@ -894,7 +894,7 @@
"已生成 Output Review Adjudication,可记录盲评决策、一致率和待评审项。"
],
"gaps": [
"上下文成本需要补强:入口约 360 个词/字,references 约 16770 个词/字。"
"上下文成本需要补强:入口约 360 个词/字,references 约 16828 个词/字。"
],
"recommendations": [
"先改触发边界,再扩展工作流。",
@@ -942,7 +942,7 @@
"已生成 Output Review Adjudication,可记录盲评决策、一致率和待评审项。"
],
"gaps": [
"上下文成本需要补强:入口约 360 个词/字,references 约 16770 个词/字。"
"上下文成本需要补强:入口约 360 个词/字,references 约 16828 个词/字。"
],
"recommendations": [
"先改触发边界,再扩展工作流。",
@@ -2286,8 +2286,8 @@
"`3` warnings",
"`35` declared internal modules",
"`86 / 86` CLI help smoke checks passing across `121` scripts",
"`645` zip entries",
"archive with `645` entries",
"`646` zip entries",
"archive with `646` entries",
"`12` installer permission checks enforced",
"`0` permission failures",
"`25` required artifacts",
+1 -1
View File
@@ -8,7 +8,7 @@
"installed_skill_dir": "dist/install-simulation/simulate-yao-meta-skill/yao-meta-skill",
"summary": {
"archive_present": true,
"archive_entry_count": 645,
"archive_entry_count": 646,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
+10 -10
View File
@@ -34,7 +34,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 27.0,
"duration_ms": 26.75,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -62,7 +62,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 28.06,
"duration_ms": 25.99,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -85,7 +85,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.41,
"duration_ms": 26.29,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -113,7 +113,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.29,
"duration_ms": 29.72,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -136,7 +136,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 30.36,
"duration_ms": 29.38,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -164,7 +164,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.42,
"duration_ms": 37.41,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -187,7 +187,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.76,
"duration_ms": 26.96,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -214,7 +214,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 30.86,
"duration_ms": 26.52,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -237,7 +237,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 30.13,
"duration_ms": 27.23,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -266,7 +266,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.58,
"duration_ms": 26.38,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
+10 -10
View File
@@ -23,16 +23,16 @@ Command runner evidence is present. This proves the eval harness executed an ext
| Case | Variant | Mode | Model | Duration ms | Tokens | Score | Status |
| --- | --- | --- | --- | ---: | ---: | ---: | --- |
| skill-package-contract | baseline | command | local-output-eval-runner | 27.0 | 33 | 0.0 | pass |
| skill-package-contract | with_skill | command | local-output-eval-runner | 28.06 | 73 | 100.0 | pass |
| output-eval-expectation | baseline | command | local-output-eval-runner | 29.41 | 36 | 0.0 | pass |
| output-eval-expectation | with_skill | command | local-output-eval-runner | 29.29 | 80 | 100.0 | pass |
| ir-before-packaging | baseline | command | local-output-eval-runner | 30.36 | 33 | 0.0 | pass |
| ir-before-packaging | with_skill | command | local-output-eval-runner | 29.42 | 80 | 100.0 | pass |
| near-neighbor-boundary | baseline | command | local-output-eval-runner | 29.76 | 36 | 0.0 | pass |
| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 30.86 | 65 | 100.0 | pass |
| file-backed-governed-package | baseline | command | local-output-eval-runner | 30.13 | 37 | 0.0 | pass |
| file-backed-governed-package | with_skill | command | local-output-eval-runner | 29.58 | 98 | 100.0 | pass |
| skill-package-contract | baseline | command | local-output-eval-runner | 26.75 | 33 | 0.0 | pass |
| skill-package-contract | with_skill | command | local-output-eval-runner | 25.99 | 73 | 100.0 | pass |
| output-eval-expectation | baseline | command | local-output-eval-runner | 26.29 | 36 | 0.0 | pass |
| output-eval-expectation | with_skill | command | local-output-eval-runner | 29.72 | 80 | 100.0 | pass |
| ir-before-packaging | baseline | command | local-output-eval-runner | 29.38 | 33 | 0.0 | pass |
| ir-before-packaging | with_skill | command | local-output-eval-runner | 37.41 | 80 | 100.0 | pass |
| near-neighbor-boundary | baseline | command | local-output-eval-runner | 26.96 | 36 | 0.0 | pass |
| near-neighbor-boundary | with_skill | command | local-output-eval-runner | 26.52 | 65 | 100.0 | pass |
| file-backed-governed-package | baseline | command | local-output-eval-runner | 27.23 | 37 | 0.0 | pass |
| file-backed-governed-package | with_skill | command | local-output-eval-runner | 26.38 | 98 | 100.0 | pass |
## Next Fixes
+2 -2
View File
@@ -8,8 +8,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_entry_count": 645,
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"archive_entry_count": 646,
"failure_count": 0,
"warning_count": 0
},
+1 -1
View File
@@ -4,7 +4,7 @@
- Package directory: `dist`
- Targets: `4 / 4` adapters present
- Archive present: `True`
- Archive SHA256: `c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6`
- Archive SHA256: `38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca`
- Failures: `0`
- Warnings: `0`
+4 -4
View File
@@ -21,8 +21,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
"compatibility": {
"openai": "pass",
@@ -53,7 +53,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -78,7 +78,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
}
]
},
+2 -2
View File
@@ -6,8 +6,8 @@
- Maturity: `governed`
- Owner: `Yao Team`
- License: `MIT`
- Package SHA256: `f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc`
- Archive SHA256: `c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6`
- Package SHA256: `1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60`
- Archive SHA256: `d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096`
- Install simulated: `True`
## Compatibility
File diff suppressed because one or more lines are too long
+214 -106
View File
@@ -43,7 +43,7 @@
"key": "context-budget",
"label": "上下文",
"status": "pass",
"detail": "initial load 990/1000; deferred 478069/120000; top deferred scripts 423106; resource governance governed; quality density 131.3",
"detail": "initial load 990/1000; deferred 478929/120000; top deferred scripts 419118; resource governance governed; quality density 131.3",
"evidence": "reports/context_budget.json",
"link": "context_budget.md"
},
@@ -107,7 +107,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"
},
@@ -497,6 +497,28 @@
"YAO_OUTPUT_EVAL_MODEL=gpt-4.1-mini OPENAI_API_KEY=<redacted> python3 scripts/yao.py output-exec --provider-runner openai --timeout-seconds 60",
"python3 scripts/yao.py skill-os2-audit . --generated-at <YYYY-MM-DD>",
"Copy evidence/world_class/templates/provider-holdout.intake.json to evidence/world_class/submissions/provider-holdout.json and fill only real evidence fields."
],
"provenance_requirements": [
"provider-backed model run",
"observed timing",
"observed token metadata"
],
"success_checks": [
"reports/output_execution_runs.json summary.model_executed_count > 0",
"reports/output_execution_runs.json summary.timing_observed_count > 0",
"reports/output_execution_runs.json summary.token_observed_count > 0",
"reports/skill_os2_audit.json item provider-holdout status becomes pass"
],
"evidence_artifacts": [
"reports/output_execution_runs.json",
"reports/output_execution_runs.md",
"reports/skill_os2_audit.json",
"evidence/world_class/intake.schema.json",
"evidence/world_class/templates/provider-holdout.intake.json"
],
"privacy_contract": [
"Do not commit provider credentials or environment dumps.",
"The output execution report records output hashes and aggregate run metadata, not raw provider prompts."
]
},
{
@@ -560,6 +582,29 @@
"python3 scripts/yao.py output-review-kit --write-template",
"Open reports/output_review_kit.md and choose A or B for each pair without opening the answer key.",
"python3 scripts/adjudicate_output_review.py --write-template"
],
"provenance_requirements": [
"real reviewer identity",
"blind A/B decisions",
"answer key unopened until decisions exist"
],
"success_checks": [
"reports/output_review_adjudication.json summary.pending_count == 0",
"reports/output_review_adjudication.json summary.judgment_count == summary.pair_count",
"reports/output_review_adjudication.json summary.invalid_decision_count == 0",
"reports/skill_os2_audit.json item human-adjudication status becomes pass"
],
"evidence_artifacts": [
"reports/output_blind_review_pack.md",
"reports/output_review_kit.md",
"reports/output_review_decisions.json",
"reports/output_review_adjudication.json",
"reports/output_review_adjudication.md"
],
"privacy_contract": [
"Reviewer decisions should not include raw user data or private customer detail.",
"The decision importer rejects raw prompt, output, transcript, message, and answer-key fields.",
"Keep the answer key separate until after decisions are recorded."
]
},
{
@@ -615,6 +660,28 @@
"Implement or connect a real target client or external installer runtime guard that blocks undeclared network, file_write, or subprocess capabilities.",
"Update the generated target adapter only when the guard is actually enforced by that target.",
"python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip"
],
"provenance_requirements": [
"real target client or external installer runtime guard",
"native enforcement flag or externally accepted guard proof",
"residual risk retained for fallback targets"
],
"success_checks": [
"reports/runtime_permission_probes.json summary.native_enforcement_count > 0",
"reports/runtime_permission_probes.json summary.failure_count == 0",
"reports/runtime_permission_probes.json summary.installer_enforcement_pass_count records local installer enforcement but does not replace native evidence",
"reports/skill_os2_audit.json item native-permission-enforcement status becomes pass"
],
"evidence_artifacts": [
"dist/targets/*/adapter.json",
"reports/runtime_permission_probes.json",
"reports/runtime_permission_probes.md",
"reports/install_simulation.json",
"reports/install_simulation.md"
],
"privacy_contract": [
"Do not mark native_enforcement true for metadata-only fallbacks.",
"Keep residual risks visible for targets that still rely on operator enforcement."
]
},
{
@@ -678,6 +745,27 @@
"python3 scripts/telemetry_native_host.py . --write-launcher /tmp/yao-telemetry-host.sh --write-manifest /tmp/yao-telemetry-host.json --allowed-origin chrome-extension://<extension-id>/",
"Install the generated native messaging manifest for the real client and send at least one accepted skill_activation or skill_output event.",
"python3 scripts/yao.py telemetry-import . --input-jsonl .yao/telemetry_spool/external_events.jsonl"
],
"provenance_requirements": [
"real external client source",
"metadata-only event",
"local-first import path"
],
"success_checks": [
"reports/adoption_drift_report.json summary.source_types.external > 0",
"reports/adoption_drift_report.json summary.adoption_sample_count > 0",
"reports/skill_os2_audit.json item native-client-telemetry status becomes pass"
],
"evidence_artifacts": [
"reports/adoption_drift_report.json",
"reports/adoption_drift_report.md",
"reports/telemetry_hook_recipes.json",
"scripts/telemetry_native_host.py",
"evidence/world_class/intake.schema.json"
],
"privacy_contract": [
"Telemetry must remain metadata-only and local-first.",
"Do not package reports/telemetry_events.jsonl or any raw prompt, output, transcript, note, or message field."
]
}
]
@@ -829,7 +917,7 @@
"label": "上下文成本",
"score": 42,
"reasons": [
"入口约 360 个词/字,references 约 16770 个词/字。",
"入口约 360 个词/字,references 约 16828 个词/字。",
"分数越高代表上下文成本越低。",
"上下文成本偏高,建议压缩入口或拆分 references。"
]
@@ -933,7 +1021,7 @@
"已生成 Output Review Adjudication,可记录盲评决策、一致率和待评审项。"
],
"gaps": [
"上下文成本需要补强:入口约 360 个词/字,references 约 16770 个词/字。"
"上下文成本需要补强:入口约 360 个词/字,references 约 16828 个词/字。"
],
"recommendations": [
"先改触发边界,再扩展工作流。",
@@ -1724,13 +1812,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": "95a01210eb2bacbef1d295e72bd60fdcce075db27930533679397b5aad82e4cf",
"source_contract_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"evidence_bundle_sha256": "a6a800e88be9348c69020f14560db3a902a8e24bbafc79b5d31200f42d3a6191",
"source_contract_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -1748,11 +1836,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": 52
},
"commit": "c325269f10a7c691646aefc5f48ca73e0a94542f",
"commit": "5338a770167da589a140c71ff0cd589ee5a3e8f4",
"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.",
@@ -1836,7 +1924,7 @@
"failures": []
},
"trust_security": {
"scanned_files": 211,
"scanned_files": 212,
"script_count": 121,
"internal_module_count": 35,
"secret_findings": 0,
@@ -1856,8 +1944,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 211,
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"package_hash_file_count": 212,
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
},
"skill_atlas": {
"skill_count": 12,
@@ -1895,8 +1983,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
"compatibility": {
"openai": "pass",
@@ -1927,7 +2015,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1943,8 +2031,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_entry_count": 645,
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"archive_entry_count": 646,
"failure_count": 0,
"warning_count": 0
},
@@ -1955,7 +2043,7 @@
"ok": true,
"summary": {
"archive_present": true,
"archive_entry_count": 645,
"archive_entry_count": 646,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -2022,12 +2110,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"to": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"to": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
}
]
},
@@ -4400,7 +4488,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 27.0,
"duration_ms": 26.75,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4428,7 +4516,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 28.06,
"duration_ms": 25.99,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4451,7 +4539,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.41,
"duration_ms": 26.29,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4479,7 +4567,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.29,
"duration_ms": 29.72,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4502,7 +4590,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 30.36,
"duration_ms": 29.38,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4530,7 +4618,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.42,
"duration_ms": 37.41,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4553,7 +4641,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.76,
"duration_ms": 26.96,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4580,7 +4668,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 30.86,
"duration_ms": 26.52,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4603,7 +4691,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 30.13,
"duration_ms": 27.23,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -4632,7 +4720,7 @@
"execution_mode": "command",
"model_executed": false,
"command_executed": true,
"duration_ms": 29.58,
"duration_ms": 26.38,
"provider": "local-output-eval-runner",
"model": "",
"usage": {
@@ -5358,23 +5446,36 @@
"ok": true,
"generated_at": "2026-06-16",
"skill_dir": ".",
"commit": "c325269f10a7c691646aefc5f48ca73e0a94542f",
"commit": "5338a770167da589a140c71ff0cd589ee5a3e8f4",
"git_status": {
"available": true,
"dirty": false,
"changed_file_count": 0,
"sample": [],
"dirty": true,
"changed_file_count": 52,
"sample": [
" M AGENTS.md",
" M references/review-studio-method.md",
" M registry/index.json",
" M registry/packages/yao-meta-skill.json",
" M reports/architecture_maintainability.json",
" M reports/architecture_maintainability.md",
" M reports/benchmark_reproducibility.json",
" M reports/benchmark_reproducibility.md",
" M reports/compiled_targets.json",
" M reports/context_budget.json",
" M reports/context_budget.md",
" M reports/context_budget_summary.json"
],
"scope": "generation-time status before this report is written"
},
"summary": {
"reproducibility_ready": true,
"release_lock_ready": true,
"release_lock_ready": false,
"methodology_complete": true,
"required_artifact_count": 25,
"missing_artifact_count": 0,
"evidence_bundle_sha256": "95a01210eb2bacbef1d295e72bd60fdcce075db27930533679397b5aad82e4cf",
"source_contract_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"evidence_bundle_sha256": "a6a800e88be9348c69020f14560db3a902a8e24bbafc79b5d31200f42d3a6191",
"source_contract_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"output_case_count": 5,
"failure_disclosure_count": 3,
"command_count": 23,
@@ -5392,14 +5493,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": 52
},
"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)",
@@ -5408,10 +5510,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": "c325269f10a7c691646aefc5f48ca73e0a94542f",
"ready": false,
"commit": "5338a770167da589a140c71ff0cd589ee5a3e8f4",
"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)",
@@ -5419,7 +5521,7 @@
"existing_count": 25,
"missing_count": 0,
"missing_paths": [],
"sha256": "95a01210eb2bacbef1d295e72bd60fdcce075db27930533679397b5aad82e4cf"
"sha256": "a6a800e88be9348c69020f14560db3a902a8e24bbafc79b5d31200f42d3a6191"
},
"methodology": {
"path": "reports/benchmark_methodology.md",
@@ -5492,8 +5594,8 @@
"label": "output_execution",
"path": "reports/output_execution_runs.json",
"exists": true,
"bytes": 7966,
"sha256": "cefdff4fe2a5d92ab32a6985046bcfe76af6676f376f2556347aa4ca623f47c9"
"bytes": 7967,
"sha256": "dc896e2929e25d8f517ded4024f2bce12030f4be14f885f76255be887117766c"
},
{
"label": "blind_review",
@@ -5528,7 +5630,7 @@
"path": "reports/security_trust_report.json",
"exists": true,
"bytes": 117850,
"sha256": "10abf9ec2d104908bbdfa0d7b40c04977dd4c0c2361635d17f128e4ae2f0979a"
"sha256": "8a6f0eb0c627b1b8a7ffb45fd431b678827a91590028021e145d6b60d2fc4c2e"
},
{
"label": "python_compatibility",
@@ -5542,28 +5644,28 @@
"path": "reports/registry_audit.json",
"exists": true,
"bytes": 3183,
"sha256": "ed24d67c538e61177dc30c2a6a9ae1daca9f73db0d61312f65bd97364c49e91f"
"sha256": "bd4b1f1cd5b21d0bda736ea14db4e6839e3729f66c787ef3be97619e8d069267"
},
{
"label": "package_verification",
"path": "reports/package_verification.json",
"exists": true,
"bytes": 19338,
"sha256": "33b28ae80672acda503ef7fe032cecb5f80135f47e558b865da3bdbbd6a39250"
"sha256": "3fe267c06ebba290d312575d3042fc8a1125ebe7c07c1c555eae2948dbf845d0"
},
{
"label": "install_simulation",
"path": "reports/install_simulation.json",
"exists": true,
"bytes": 8604,
"sha256": "60ca2069feba8af6f011888735eab5600d32c513d48f18cb960609850b9f312f"
"sha256": "0a127a000c337bf9d180b30ac7ff4fefd6a3392aa7c4c4b822f6b3727fbcfd50"
},
{
"label": "skill_os2_audit",
"path": "reports/skill_os2_audit.json",
"exists": true,
"bytes": 14310,
"sha256": "d42e33630eb3fea284fb521c0dc33dca3d37bdcd8adec0518f77297098fdc0c1"
"sha256": "de180d2b67b017d5654e10e34d58d56ab0e4861968e282f34777f3677522027e"
},
{
"label": "world_class_evidence_plan",
@@ -5590,8 +5692,8 @@
"label": "world_class_evidence_preflight",
"path": "reports/world_class_evidence_preflight.json",
"exists": true,
"bytes": 36073,
"sha256": "5576411ceb4aeb9d0c2fd1ecbcd78d08f49c62149615c20cc77d4ab5db1736cc"
"bytes": 36067,
"sha256": "1e6c66fc5e3ceec580313f3dbdc7e26d3526832c591c2c4281f52779d2f6242d"
},
{
"label": "world_class_submission_review",
@@ -5969,7 +6071,7 @@
"label": "Registry Distribution",
"status": "pass",
"objective": "Skill packages are installable, versioned, checksumed, and upgrade-reviewable.",
"current": "archive entries 645; install failures 0",
"current": "archive entries 646; install failures 0",
"command": "python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip && python3 scripts/yao.py registry-audit .",
"test": "python3 tests/verify_registry_audit.py",
"evidence": [
@@ -6848,6 +6950,7 @@
"scripts/yao_cli_telemetry.py"
],
"assets": [
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
@@ -6901,7 +7004,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
}
},
@@ -7172,7 +7275,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -7426,7 +7529,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -7765,6 +7868,7 @@
"scripts/yao_cli_telemetry.py"
],
"assets": [
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
@@ -7818,7 +7922,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
}
},
@@ -8089,7 +8193,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -8343,7 +8447,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -8682,6 +8786,7 @@
"scripts/yao_cli_telemetry.py"
],
"assets": [
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
@@ -8735,7 +8840,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
}
},
@@ -9006,7 +9111,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -9253,7 +9358,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -9583,6 +9688,7 @@
"scripts/yao_cli_telemetry.py"
],
"assets": [
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
@@ -9636,7 +9742,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
}
},
@@ -9907,7 +10013,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -10154,7 +10260,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -10484,6 +10590,7 @@
"scripts/yao_cli_telemetry.py"
],
"assets": [
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
@@ -10537,7 +10644,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
}
},
@@ -10808,7 +10915,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -11059,7 +11166,7 @@
"counts": {
"references": 35,
"scripts": 121,
"assets": 4,
"assets": 5,
"reports": 43
},
"generated_files": [
@@ -11777,7 +11884,7 @@
"ok": true,
"skill_dir": ".",
"summary": {
"scanned_files": 211,
"scanned_files": 212,
"script_count": 121,
"internal_module_count": 35,
"secret_findings": 0,
@@ -11797,8 +11904,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 211,
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"package_hash_file_count": 212,
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
},
"failures": [],
"warnings": [],
@@ -15986,7 +16093,7 @@
},
{
"path": "tests/verify_review_studio.py",
"lines": 803,
"lines": 816,
"kind": "test",
"severity": "pass",
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
@@ -16034,9 +16141,9 @@
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
},
{
"path": "scripts/review_studio_layout.py",
"lines": 703,
"kind": "internal-module",
"path": "scripts/render_world_class_preflight.py",
"lines": 693,
"kind": "cli-script",
"severity": "pass",
"recommendation": "Watch this file before adding new responsibilities; extract a helper module when one concern dominates."
}
@@ -16072,7 +16179,7 @@
},
{
"path": "tests/verify_review_studio.py",
"lines": 803,
"lines": 816,
"kind": "test",
"severity": "pass",
"recommendation": "Break broad integration assertions into focused verifier helpers when the next behavior change lands."
@@ -16121,20 +16228,20 @@
"context_budget_tier": "production",
"context_budget_limit": 1000,
"skill_body_tokens": 797,
"other_text_tokens": 1035917,
"other_text_tokens": 1037197,
"estimated_initial_load_tokens": 990,
"estimated_total_text_tokens": 1036714,
"deferred_resource_tokens": 478069,
"estimated_total_text_tokens": 1037994,
"deferred_resource_tokens": 478929,
"deferred_resource_warn_threshold": 120000,
"deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 423106,
"estimated_tokens": 419118,
"file_count": 121
},
{
"path": "references",
"estimated_tokens": 27991,
"estimated_tokens": 28099,
"file_count": 35
},
{
@@ -16144,14 +16251,14 @@
},
{
"path": "assets",
"estimated_tokens": 5137,
"file_count": 2
"estimated_tokens": 9877,
"file_count": 3
}
],
"large_deferred_resource_dirs": [
{
"path": "scripts",
"estimated_tokens": 423106,
"estimated_tokens": 419118,
"file_count": 121
}
],
@@ -16174,14 +16281,14 @@
],
"missing": [],
"path": "scripts",
"estimated_tokens": 423106,
"estimated_tokens": 419118,
"file_count": 121,
"rationale": "Script resources are deterministic deferred tools, not initial-load prompt context."
}
],
"summary": "Large deferred resources are indexed and backed by evidence."
},
"relevant_file_count": 627,
"relevant_file_count": 628,
"unused_resource_dirs": [],
"quality_signal_points": 130,
"quality_density": 131.3
@@ -17201,6 +17308,7 @@
"references/telemetry-drift-method.md",
"references/trust-security-method.md",
"references/user-memory-policy.md",
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
@@ -18163,7 +18271,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,
@@ -18180,7 +18288,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,
@@ -18629,7 +18737,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": [
@@ -18678,7 +18786,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,
@@ -18698,7 +18806,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,
@@ -18950,7 +19058,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
@@ -22053,8 +22161,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
"compatibility": {
"openai": "pass",
@@ -22085,7 +22193,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -22110,7 +22218,7 @@
"vscode"
],
"package_metadata": "registry/packages/yao-meta-skill.json",
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
}
]
},
@@ -22133,8 +22241,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_entry_count": 645,
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"archive_entry_count": 646,
"failure_count": 0,
"warning_count": 0
},
@@ -22799,7 +22907,7 @@
"installed_skill_dir": "dist/install-simulation/simulate-yao-meta-skill/yao-meta-skill",
"summary": {
"archive_present": true,
"archive_entry_count": 645,
"archive_entry_count": 646,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -23141,12 +23249,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"to": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"to": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
}
]
},
+21 -21
View File
@@ -102,7 +102,7 @@
"label": "上下文成本",
"score": 42,
"reasons": [
"入口约 360 个词/字,references 约 16770 个词/字。",
"入口约 360 个词/字,references 约 16828 个词/字。",
"分数越高代表上下文成本越低。",
"上下文成本偏高,建议压缩入口或拆分 references。"
]
@@ -206,7 +206,7 @@
"已生成 Output Review Adjudication,可记录盲评决策、一致率和待评审项。"
],
"gaps": [
"上下文成本需要补强:入口约 360 个词/字,references 约 16770 个词/字。"
"上下文成本需要补强:入口约 360 个词/字,references 约 16828 个词/字。"
],
"recommendations": [
"先改触发边界,再扩展工作流。",
@@ -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": "95a01210eb2bacbef1d295e72bd60fdcce075db27930533679397b5aad82e4cf",
"source_contract_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"evidence_bundle_sha256": "a6a800e88be9348c69020f14560db3a902a8e24bbafc79b5d31200f42d3a6191",
"source_contract_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"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": 52
},
"commit": "c325269f10a7c691646aefc5f48ca73e0a94542f",
"commit": "5338a770167da589a140c71ff0cd589ee5a3e8f4",
"missing_artifacts": [],
"limitations": [
"The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
@@ -1109,7 +1109,7 @@
"failures": []
},
"trust_security": {
"scanned_files": 211,
"scanned_files": 212,
"script_count": 121,
"internal_module_count": 35,
"secret_findings": 0,
@@ -1129,8 +1129,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 211,
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"package_hash_file_count": 212,
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
},
"skill_atlas": {
"skill_count": 12,
@@ -1168,8 +1168,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
"compatibility": {
"openai": "pass",
@@ -1200,7 +1200,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1216,8 +1216,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_entry_count": 645,
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"archive_entry_count": 646,
"failure_count": 0,
"warning_count": 0
},
@@ -1228,7 +1228,7 @@
"ok": true,
"summary": {
"archive_present": true,
"archive_entry_count": 645,
"archive_entry_count": 646,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1295,12 +1295,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"to": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"to": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
}
]
},
+3 -3
View File
@@ -2,7 +2,7 @@
"ok": true,
"skill_dir": ".",
"summary": {
"scanned_files": 211,
"scanned_files": 212,
"script_count": 121,
"internal_module_count": 35,
"secret_findings": 0,
@@ -22,8 +22,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 211,
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"package_hash_file_count": 212,
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
},
"failures": [],
"warnings": [],
+3 -3
View File
@@ -1,7 +1,7 @@
# Security Trust Report
- OK: `True`
- Scanned files: `211`
- Scanned files: `212`
- Scripts: `121`
- Internal script modules: `35`
- Secret findings: `0`
@@ -15,8 +15,8 @@
- CLI help smoke failures: `0`
- Interactive scripts: `0`
- Package hash scope: `source-contract-without-generated-reports`
- Package hash files: `211`
- Package SHA256: `f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc`
- Package hash files: `212`
- Package SHA256: `1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60`
## Failures
+4 -4
View File
@@ -764,7 +764,7 @@
<ul class="list"><li><span data-lang="zh-CN">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span><span data-lang="en">Turn one-off experience into a reusable, evaluable, and portable skill package.</span></li><li><span data-lang="zh-CN">Skill 作者、复用团队和后续 reviewer。</span><span data-lang="en">Skill authors, reuse teams, and later reviewers.</span></li><li><span data-lang="zh-CN">创建完成后建议先打开 reports/skill-interpretation.html,再继续扩展包体。</span><span data-lang="en">After creation, open reports/skill-interpretation.html before expanding the package further.</span></li></ul>
</aside>
</div>
<div class="score-strip" aria-label="报告关键指标"><article class='score-chip'><span><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></span><strong>42</strong><i style='--score:42%'></i><small><span data-lang="zh-CN">入口约 360 个词/字,references 约 16770 个词/字。</span><span data-lang="en">Entrypoint is about 360 words/characters; references are about 16770.</span></small></article></div>
<div class="score-strip" aria-label="报告关键指标"><article class='score-chip'><span><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></span><strong>42</strong><i style='--score:42%'></i><small><span data-lang="zh-CN">入口约 360 个词/字,references 约 16828 个词/字。</span><span data-lang="en">Entrypoint is about 360 words/characters; references are about 16828.</span></small></article></div>
</section>
<section id="overview">
@@ -800,10 +800,10 @@
<figure class="chart-figure" data-chart="radar"><svg viewBox="0 0 300 300" role="img" aria-label="评分雷达"><text data-lang="zh-CN" x="20" y="28" class="chart-title">评分雷达</text><text data-lang="en" x="20" y="28" class="chart-title">Rating Radar</text><polygon points="150.0,127.0 171.9,142.9 163.5,168.6 136.5,168.6 128.1,142.9" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,104.0 193.7,135.8 177.0,187.2 123.0,187.2 106.3,135.8" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,81.0 215.6,128.7 190.6,205.8 109.4,205.8 84.4,128.7" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,58.0 237.5,121.6 204.1,224.4 95.9,224.4 62.5,121.6" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,58.0 237.5,121.6 204.1,224.4 95.9,224.4 62.5,121.6" fill="#E4ECF5" stroke="#1B365D" stroke-width="2"/><text data-lang="zh-CN" x="150.0" y="26.0" text-anchor="middle" dominant-baseline="middle">完整度</text><text data-lang="en" x="150.0" y="26.0" text-anchor="middle" dominant-baseline="middle">Completeness</text><text data-lang="zh-CN" x="267.9" y="111.7" text-anchor="middle" dominant-baseline="middle">触发清晰</text><text data-lang="en" x="267.9" y="111.7" text-anchor="middle" dominant-baseline="middle">Trigger clarity</text><text data-lang="zh-CN" x="222.9" y="250.3" text-anchor="middle" dominant-baseline="middle">证据充分</text><text data-lang="en" x="222.9" y="250.3" text-anchor="middle" dominant-baseline="middle">Evidence depth</text><text data-lang="zh-CN" x="77.1" y="250.3" text-anchor="middle" dominant-baseline="middle">可维护性</text><text data-lang="en" x="77.1" y="250.3" text-anchor="middle" dominant-baseline="middle">Maintainability</text><text data-lang="zh-CN" x="32.1" y="111.7" text-anchor="middle" dominant-baseline="middle">可迁移性</text><text data-lang="en" x="32.1" y="111.7" text-anchor="middle" dominant-baseline="middle">Portability</text></svg><figcaption><span data-lang="zh-CN">评分雷达展示结构完整度、触发边界、证据、维护和迁移的相对强弱。</span><span data-lang="en">The radar chart compares completeness, trigger clarity, evidence, maintainability, and portability.</span></figcaption></figure>
<article class="panel metrics-note metrics-summary-panel">
<h3><span data-lang="zh-CN">成熟度条</span><span data-lang="en">Maturity Bar</span></h3>
<ol class='metric-summary-list'><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></b><em>100</em><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></b><em>100</em><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></b><em>100</em><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">可维护性</span><span data-lang="en">Maintainability</span></b><em>100</em><small><span data-lang="zh-CN">SKILL.md 约 360 个词/字。</span><span data-lang="en">SKILL.md is about 360 words/characters.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">可迁移性</span><span data-lang="en">Portability</span></b><em>100</em><small><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">关注</span><span data-lang="en">Watch</span></span><b><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></b><em>42</em><small><span data-lang="zh-CN">入口约 360 个词/字,references 约 16770 个词/字。</span><span data-lang="en">Entrypoint is about 360 words/characters; references are about 16770.</span></small></li></ol>
<ol class='metric-summary-list'><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></b><em>100</em><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></b><em>100</em><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></b><em>100</em><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">可维护性</span><span data-lang="en">Maintainability</span></b><em>100</em><small><span data-lang="zh-CN">SKILL.md 约 360 个词/字。</span><span data-lang="en">SKILL.md is about 360 words/characters.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">可迁移性</span><span data-lang="en">Portability</span></b><em>100</em><small><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">关注</span><span data-lang="en">Watch</span></span><b><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></b><em>42</em><small><span data-lang="zh-CN">入口约 360 个词/字,references 约 16828 个词/字。</span><span data-lang="en">Entrypoint is about 360 words/characters; references are about 16828.</span></small></li></ol>
</article>
</div>
<div class="metric-grid metric-detail-grid"><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></li><li><span data-lang="zh-CN">README.md 已存在,便于人工阅读。</span><span data-lang="en">README.md exists for human-readable usage.</span></li><li><span data-lang="zh-CN">agents/interface.yaml 已存在,便于跨平台适配。</span><span data-lang="en">agents/interface.yaml exists for cross-platform adaptation.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></li><li><span data-lang="zh-CN">description 有足够长度说明任务边界。</span><span data-lang="en">The description is long enough to explain the task boundary.</span></li><li><span data-lang="zh-CN">description 已包含使用场景或排除边界信号。</span><span data-lang="en">The description includes usage-scenario or exclusion-boundary signals.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></li><li><span data-lang="zh-CN">skill-ir.json 已存在。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">compiled_targets.json 已存在。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">可维护性</span><span data-lang="en">Maintainability</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 约 360 个词/字。</span><span data-lang="en">SKILL.md is about 360 words/characters.</span></li><li><span data-lang="zh-CN">入口文件保持克制,可维护性较好。</span><span data-lang="en">The entrypoint stays restrained, which supports maintainability.</span></li><li><span data-lang="zh-CN">references/ 已承载扩展指导。</span><span data-lang="en">references/ carries extended guidance.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">可迁移性</span><span data-lang="en">Portability</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></li><li><span data-lang="zh-CN">manifest.json 已存在。</span><span data-lang="en">manifest.json exists.</span></li><li><span data-lang="zh-CN">目标平台或 adapter target 已声明。</span><span data-lang="en">Target platforms or adapter targets are declared.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></span><strong>42</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">入口约 360 个词/字,references 约 16770 个词/字。</span><span data-lang="en">Entrypoint is about 360 words/characters; references are about 16770.</span></li><li><span data-lang="zh-CN">分数越高代表上下文成本越低。</span><span data-lang="en">A higher score means lower context cost.</span></li><li><span data-lang="zh-CN">上下文成本偏高,建议压缩入口或拆分 references。</span><span data-lang="en">Context cost is high; compress the entrypoint or split references further.</span></li></ul></div></article></div>
<div class="metric-grid metric-detail-grid"><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></li><li><span data-lang="zh-CN">README.md 已存在,便于人工阅读。</span><span data-lang="en">README.md exists for human-readable usage.</span></li><li><span data-lang="zh-CN">agents/interface.yaml 已存在,便于跨平台适配。</span><span data-lang="en">agents/interface.yaml exists for cross-platform adaptation.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></li><li><span data-lang="zh-CN">description 有足够长度说明任务边界。</span><span data-lang="en">The description is long enough to explain the task boundary.</span></li><li><span data-lang="zh-CN">description 已包含使用场景或排除边界信号。</span><span data-lang="en">The description includes usage-scenario or exclusion-boundary signals.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></li><li><span data-lang="zh-CN">skill-ir.json 已存在。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">compiled_targets.json 已存在。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">可维护性</span><span data-lang="en">Maintainability</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 约 360 个词/字。</span><span data-lang="en">SKILL.md is about 360 words/characters.</span></li><li><span data-lang="zh-CN">入口文件保持克制,可维护性较好。</span><span data-lang="en">The entrypoint stays restrained, which supports maintainability.</span></li><li><span data-lang="zh-CN">references/ 已承载扩展指导。</span><span data-lang="en">references/ carries extended guidance.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">可迁移性</span><span data-lang="en">Portability</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></li><li><span data-lang="zh-CN">manifest.json 已存在。</span><span data-lang="en">manifest.json exists.</span></li><li><span data-lang="zh-CN">目标平台或 adapter target 已声明。</span><span data-lang="en">Target platforms or adapter targets are declared.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></span><strong>42</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">入口约 360 个词/字,references 约 16828 个词/字。</span><span data-lang="en">Entrypoint is about 360 words/characters; references are about 16828.</span></li><li><span data-lang="zh-CN">分数越高代表上下文成本越低。</span><span data-lang="en">A higher score means lower context cost.</span></li><li><span data-lang="zh-CN">上下文成本偏高,建议压缩入口或拆分 references。</span><span data-lang="en">Context cost is high; compress the entrypoint or split references further.</span></li></ul></div></article></div>
</div>
</div>
</section>
@@ -878,7 +878,7 @@
<div>
<table>
<thead><tr><th><span data-lang="zh-CN">类型</span><span data-lang="en">Type</span></th><th><span data-lang="zh-CN">证据</span><span data-lang="en">Evidence</span></th><th><span data-lang="zh-CN">建议</span><span data-lang="en">Action</span></th></tr></thead>
<tbody><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">触发面保持精简,并锚定在 frontmatter description。</span><span data-lang="en">The trigger surface stays lean and anchored in the frontmatter description.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">已生成 Skill IR,核心语义可先于平台打包被审查和迁移。</span><span data-lang="en">Skill IR is generated so core semantics can be reviewed and migrated before platform packaging.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。</span><span data-lang="en">Target compilation evidence is generated to review how IR maps to OpenAI, Claude, generic, and other target contracts.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">缺口</span><span data-lang="en">Gap</span></td><td><span data-lang="zh-CN">上下文成本需要补强:入口约 360 个词/字,references 约 16770 个词/字。</span><span data-lang="en">Context cost needs improvement: Entrypoint is about 360 words/characters; references are about 16770.</span></td><td><span data-lang="zh-CN">纳入下一轮修复</span><span data-lang="en">Fix next</span></td></tr></tbody>
<tbody><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">触发面保持精简,并锚定在 frontmatter description。</span><span data-lang="en">The trigger surface stays lean and anchored in the frontmatter description.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">已生成 Skill IR,核心语义可先于平台打包被审查和迁移。</span><span data-lang="en">Skill IR is generated so core semantics can be reviewed and migrated before platform packaging.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。</span><span data-lang="en">Target compilation evidence is generated to review how IR maps to OpenAI, Claude, generic, and other target contracts.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">缺口</span><span data-lang="en">Gap</span></td><td><span data-lang="zh-CN">上下文成本需要补强:入口约 360 个词/字,references 约 16828 个词/字。</span><span data-lang="en">Context cost needs improvement: Entrypoint is about 360 words/characters; references are about 16828.</span></td><td><span data-lang="zh-CN">纳入下一轮修复</span><span data-lang="en">Fix next</span></td></tr></tbody>
</table>
<div class="two-col quality-panels">
<article class="panel">
+21 -21
View File
@@ -102,7 +102,7 @@
"label": "上下文成本",
"score": 42,
"reasons": [
"入口约 360 个词/字,references 约 16770 个词/字。",
"入口约 360 个词/字,references 约 16828 个词/字。",
"分数越高代表上下文成本越低。",
"上下文成本偏高,建议压缩入口或拆分 references。"
]
@@ -206,7 +206,7 @@
"已生成 Output Review Adjudication,可记录盲评决策、一致率和待评审项。"
],
"gaps": [
"上下文成本需要补强:入口约 360 个词/字,references 约 16770 个词/字。"
"上下文成本需要补强:入口约 360 个词/字,references 约 16828 个词/字。"
],
"recommendations": [
"先改触发边界,再扩展工作流。",
@@ -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": "95a01210eb2bacbef1d295e72bd60fdcce075db27930533679397b5aad82e4cf",
"source_contract_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"evidence_bundle_sha256": "a6a800e88be9348c69020f14560db3a902a8e24bbafc79b5d31200f42d3a6191",
"source_contract_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"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": 52
},
"commit": "c325269f10a7c691646aefc5f48ca73e0a94542f",
"commit": "5338a770167da589a140c71ff0cd589ee5a3e8f4",
"missing_artifacts": [],
"limitations": [
"The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
@@ -1113,7 +1113,7 @@
"failures": []
},
"trust_security": {
"scanned_files": 211,
"scanned_files": 212,
"script_count": 121,
"internal_module_count": 35,
"secret_findings": 0,
@@ -1133,8 +1133,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 211,
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"package_hash_file_count": 212,
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
},
"skill_atlas": {
"skill_count": 12,
@@ -1172,8 +1172,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
"compatibility": {
"openai": "pass",
@@ -1204,7 +1204,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1220,8 +1220,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_entry_count": 645,
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"archive_entry_count": 646,
"failure_count": 0,
"warning_count": 0
},
@@ -1232,7 +1232,7 @@
"ok": true,
"summary": {
"archive_present": true,
"archive_entry_count": 645,
"archive_entry_count": 646,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1299,12 +1299,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"to": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"to": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
}
]
},
+4 -2
View File
@@ -15,6 +15,8 @@ Yao Meta Skill is no longer only a Meta Skill factory. The current working tree
- Bilingual Skill Overview v2 that includes these evidence surfaces.
- Skill Overview Asset Split v0 so long report CSS and JavaScript live in `assets/skill-overview.css` and `assets/skill-overview.js`, while the Python layout module keeps the generated report single-file by inlining those assets at render time.
- Review Studio Source Anchor Excerpts v0 so every non-pass action source ref carries a matched pattern and short line excerpt, letting reviewers understand the anchor before opening the full artifact.
- Review Studio World-Class Collection Contract v0 so each pending world-class evidence action card shows provenance requirements, success checks, evidence artifacts, and privacy boundaries alongside commands and blocked checks.
- Review Studio Asset Split v0 so long Review Studio CSS lives in `assets/review-studio.css`, while the Python layout module still inlines it into the generated static HTML report.
- Skill OS 2.0 Audit v0 for requirement-by-requirement evidence mapping, with explicit separation between local evidence, human-required review, and external-required provider/client integrations.
- World-Class Evidence Plan v0 that turns the remaining provider holdout, human adjudication, native permission enforcement, and native client telemetry gaps into executable runbooks with success checks and privacy contracts.
- World-Class Evidence Ledger v0 that records current acceptance state, provenance requirements, privacy contracts, and anti-overclaim guards for those remaining gaps.
@@ -129,8 +131,8 @@ Next move: add real client or installer permission enforcement integration.
| Runtime Permission Probes | `4 / 4` target adapters probed, `0` native-enforcement adapters, `4` explicit metadata fallbacks, `4` residual risks retained for reviewer visibility |
| Skill Atlas | `12` scanned skills, `1` actionable root skill, `1` telemetry report, `0` actionable route collisions, `0` actionable owner gaps, `0` actionable stale skills, `0` actionable drift signals, `24` scoped non-actionable issue signals retained for visibility |
| Registry Audit | package metadata generated with version, owner, license, source checksum, archive checksum, Skill IR provenance, and compatibility matrix |
| Package Verification | `4 / 4` target adapters present, archive verified, `645` zip entries, `0` failures, `0` warnings |
| Install Simulation | archive with `645` entries extracted into a local verification root, entrypoint/manifest/interface loaded, reports present, `4` adapters readable, `12` installer permission checks enforced, `0` permission failures, `0` failures, `0` warnings |
| Package Verification | `4 / 4` target adapters present, archive verified, `646` zip entries, `0` failures, `0` warnings |
| Install Simulation | archive with `646` entries extracted into a local verification root, entrypoint/manifest/interface loaded, reports present, `4` adapters readable, `12` installer permission checks enforced, `0` permission failures, `0` failures, `0` warnings |
| Local Install Sync Preflight | `make sync-local-install` and `make sync-active-install` rebuild the package first, then sync only after install simulation passes with `12` enforced installer permission checks and `0` permission failures |
| Upgrade Check | current package declares `minor` over the 1.0.0 baseline, recommended bump is `minor`, and release notes include added targets plus checksum changes |
| Adoption Drift | `1` metadata-only review event, `1` adoption sample, adoption `100`, risk band `low`; optional `yao.py` CLI capture, external client `telemetry-emit`, `5` `telemetry-hooks` recipes, Browser/Chrome native messaging host, and validated external JSONL import are available but off by default for reproducible release evidence; raw `reports/telemetry_events.jsonl` is gitignored and blocked from zip packages |
+4 -4
View File
@@ -764,7 +764,7 @@
<ul class="list"><li><span data-lang="zh-CN">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span><span data-lang="en">Turn one-off experience into a reusable, evaluable, and portable skill package.</span></li><li><span data-lang="zh-CN">Skill 作者、复用团队和后续 reviewer。</span><span data-lang="en">Skill authors, reuse teams, and later reviewers.</span></li><li><span data-lang="zh-CN">创建完成后建议先打开 reports/skill-overview.html,再继续扩展包体。</span><span data-lang="en">After creation, open reports/skill-overview.html before expanding the package further.</span></li></ul>
</aside>
</div>
<div class="score-strip" aria-label="报告关键指标"><article class='score-chip'><span><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></span><strong>42</strong><i style='--score:42%'></i><small><span data-lang="zh-CN">入口约 360 个词/字,references 约 16770 个词/字。</span><span data-lang="en">Entrypoint is about 360 words/characters; references are about 16770.</span></small></article></div>
<div class="score-strip" aria-label="报告关键指标"><article class='score-chip'><span><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></small></article><article class='score-chip'><span><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></span><strong>42</strong><i style='--score:42%'></i><small><span data-lang="zh-CN">入口约 360 个词/字,references 约 16828 个词/字。</span><span data-lang="en">Entrypoint is about 360 words/characters; references are about 16828.</span></small></article></div>
</section>
<section id="overview">
@@ -800,10 +800,10 @@
<figure class="chart-figure" data-chart="radar"><svg viewBox="0 0 300 300" role="img" aria-label="评分雷达"><text data-lang="zh-CN" x="20" y="28" class="chart-title">评分雷达</text><text data-lang="en" x="20" y="28" class="chart-title">Rating Radar</text><polygon points="150.0,127.0 171.9,142.9 163.5,168.6 136.5,168.6 128.1,142.9" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,104.0 193.7,135.8 177.0,187.2 123.0,187.2 106.3,135.8" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,81.0 215.6,128.7 190.6,205.8 109.4,205.8 84.4,128.7" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,58.0 237.5,121.6 204.1,224.4 95.9,224.4 62.5,121.6" fill="none" stroke="#e8e6dc" stroke-width="1"/><polygon points="150.0,58.0 237.5,121.6 204.1,224.4 95.9,224.4 62.5,121.6" fill="#E4ECF5" stroke="#1B365D" stroke-width="2"/><text data-lang="zh-CN" x="150.0" y="26.0" text-anchor="middle" dominant-baseline="middle">完整度</text><text data-lang="en" x="150.0" y="26.0" text-anchor="middle" dominant-baseline="middle">Completeness</text><text data-lang="zh-CN" x="267.9" y="111.7" text-anchor="middle" dominant-baseline="middle">触发清晰</text><text data-lang="en" x="267.9" y="111.7" text-anchor="middle" dominant-baseline="middle">Trigger clarity</text><text data-lang="zh-CN" x="222.9" y="250.3" text-anchor="middle" dominant-baseline="middle">证据充分</text><text data-lang="en" x="222.9" y="250.3" text-anchor="middle" dominant-baseline="middle">Evidence depth</text><text data-lang="zh-CN" x="77.1" y="250.3" text-anchor="middle" dominant-baseline="middle">可维护性</text><text data-lang="en" x="77.1" y="250.3" text-anchor="middle" dominant-baseline="middle">Maintainability</text><text data-lang="zh-CN" x="32.1" y="111.7" text-anchor="middle" dominant-baseline="middle">可迁移性</text><text data-lang="en" x="32.1" y="111.7" text-anchor="middle" dominant-baseline="middle">Portability</text></svg><figcaption><span data-lang="zh-CN">评分雷达展示结构完整度、触发边界、证据、维护和迁移的相对强弱。</span><span data-lang="en">The radar chart compares completeness, trigger clarity, evidence, maintainability, and portability.</span></figcaption></figure>
<article class="panel metrics-note metrics-summary-panel">
<h3><span data-lang="zh-CN">成熟度条</span><span data-lang="en">Maturity Bar</span></h3>
<ol class='metric-summary-list'><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></b><em>100</em><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></b><em>100</em><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></b><em>100</em><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">可维护性</span><span data-lang="en">Maintainability</span></b><em>100</em><small><span data-lang="zh-CN">SKILL.md 约 360 个词/字。</span><span data-lang="en">SKILL.md is about 360 words/characters.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">可迁移性</span><span data-lang="en">Portability</span></b><em>100</em><small><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">关注</span><span data-lang="en">Watch</span></span><b><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></b><em>42</em><small><span data-lang="zh-CN">入口约 360 个词/字,references 约 16770 个词/字。</span><span data-lang="en">Entrypoint is about 360 words/characters; references are about 16770.</span></small></li></ol>
<ol class='metric-summary-list'><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></b><em>100</em><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></b><em>100</em><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></b><em>100</em><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">可维护性</span><span data-lang="en">Maintainability</span></b><em>100</em><small><span data-lang="zh-CN">SKILL.md 约 360 个词/字。</span><span data-lang="en">SKILL.md is about 360 words/characters.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b><span data-lang="zh-CN">可迁移性</span><span data-lang="en">Portability</span></b><em>100</em><small><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">关注</span><span data-lang="en">Watch</span></span><b><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></b><em>42</em><small><span data-lang="zh-CN">入口约 360 个词/字,references 约 16828 个词/字。</span><span data-lang="en">Entrypoint is about 360 words/characters; references are about 16828.</span></small></li></ol>
</article>
</div>
<div class="metric-grid metric-detail-grid"><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></li><li><span data-lang="zh-CN">README.md 已存在,便于人工阅读。</span><span data-lang="en">README.md exists for human-readable usage.</span></li><li><span data-lang="zh-CN">agents/interface.yaml 已存在,便于跨平台适配。</span><span data-lang="en">agents/interface.yaml exists for cross-platform adaptation.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></li><li><span data-lang="zh-CN">description 有足够长度说明任务边界。</span><span data-lang="en">The description is long enough to explain the task boundary.</span></li><li><span data-lang="zh-CN">description 已包含使用场景或排除边界信号。</span><span data-lang="en">The description includes usage-scenario or exclusion-boundary signals.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></li><li><span data-lang="zh-CN">skill-ir.json 已存在。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">compiled_targets.json 已存在。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">可维护性</span><span data-lang="en">Maintainability</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 约 360 个词/字。</span><span data-lang="en">SKILL.md is about 360 words/characters.</span></li><li><span data-lang="zh-CN">入口文件保持克制,可维护性较好。</span><span data-lang="en">The entrypoint stays restrained, which supports maintainability.</span></li><li><span data-lang="zh-CN">references/ 已承载扩展指导。</span><span data-lang="en">references/ carries extended guidance.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">可迁移性</span><span data-lang="en">Portability</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></li><li><span data-lang="zh-CN">manifest.json 已存在。</span><span data-lang="en">manifest.json exists.</span></li><li><span data-lang="zh-CN">目标平台或 adapter target 已声明。</span><span data-lang="en">Target platforms or adapter targets are declared.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></span><strong>42</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">入口约 360 个词/字,references 约 16770 个词/字。</span><span data-lang="en">Entrypoint is about 360 words/characters; references are about 16770.</span></li><li><span data-lang="zh-CN">分数越高代表上下文成本越低。</span><span data-lang="en">A higher score means lower context cost.</span></li><li><span data-lang="zh-CN">上下文成本偏高,建议压缩入口或拆分 references。</span><span data-lang="en">Context cost is high; compress the entrypoint or split references further.</span></li></ul></div></article></div>
<div class="metric-grid metric-detail-grid"><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">完整度</span><span data-lang="en">Completeness</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md exists and acts as the skill entrypoint.</span></li><li><span data-lang="zh-CN">README.md 已存在,便于人工阅读。</span><span data-lang="en">README.md exists for human-readable usage.</span></li><li><span data-lang="zh-CN">agents/interface.yaml 已存在,便于跨平台适配。</span><span data-lang="en">agents/interface.yaml exists for cross-platform adaptation.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">触发清晰</span><span data-lang="en">Trigger clarity</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></li><li><span data-lang="zh-CN">description 有足够长度说明任务边界。</span><span data-lang="en">The description is long enough to explain the task boundary.</span></li><li><span data-lang="zh-CN">description 已包含使用场景或排除边界信号。</span><span data-lang="en">The description includes usage-scenario or exclusion-boundary signals.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></li><li><span data-lang="zh-CN">skill-ir.json 已存在。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li><li><span data-lang="zh-CN">compiled_targets.json 已存在。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">可维护性</span><span data-lang="en">Maintainability</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 约 360 个词/字。</span><span data-lang="en">SKILL.md is about 360 words/characters.</span></li><li><span data-lang="zh-CN">入口文件保持克制,可维护性较好。</span><span data-lang="en">The entrypoint stays restrained, which supports maintainability.</span></li><li><span data-lang="zh-CN">references/ 已承载扩展指导。</span><span data-lang="en">references/ carries extended guidance.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">可迁移性</span><span data-lang="en">Portability</span></span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></li><li><span data-lang="zh-CN">manifest.json 已存在。</span><span data-lang="en">manifest.json exists.</span></li><li><span data-lang="zh-CN">目标平台或 adapter target 已声明。</span><span data-lang="en">Target platforms or adapter targets are declared.</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></span><strong>42</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">入口约 360 个词/字,references 约 16828 个词/字。</span><span data-lang="en">Entrypoint is about 360 words/characters; references are about 16828.</span></li><li><span data-lang="zh-CN">分数越高代表上下文成本越低。</span><span data-lang="en">A higher score means lower context cost.</span></li><li><span data-lang="zh-CN">上下文成本偏高,建议压缩入口或拆分 references。</span><span data-lang="en">Context cost is high; compress the entrypoint or split references further.</span></li></ul></div></article></div>
</div>
</div>
</section>
@@ -878,7 +878,7 @@
<div>
<table>
<thead><tr><th><span data-lang="zh-CN">类型</span><span data-lang="en">Type</span></th><th><span data-lang="zh-CN">证据</span><span data-lang="en">Evidence</span></th><th><span data-lang="zh-CN">建议</span><span data-lang="en">Action</span></th></tr></thead>
<tbody><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">触发面保持精简,并锚定在 frontmatter description。</span><span data-lang="en">The trigger surface stays lean and anchored in the frontmatter description.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">已生成 Skill IR,核心语义可先于平台打包被审查和迁移。</span><span data-lang="en">Skill IR is generated so core semantics can be reviewed and migrated before platform packaging.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。</span><span data-lang="en">Target compilation evidence is generated to review how IR maps to OpenAI, Claude, generic, and other target contracts.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">缺口</span><span data-lang="en">Gap</span></td><td><span data-lang="zh-CN">上下文成本需要补强:入口约 360 个词/字,references 约 16770 个词/字。</span><span data-lang="en">Context cost needs improvement: Entrypoint is about 360 words/characters; references are about 16770.</span></td><td><span data-lang="zh-CN">纳入下一轮修复</span><span data-lang="en">Fix next</span></td></tr></tbody>
<tbody><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">触发面保持精简,并锚定在 frontmatter description。</span><span data-lang="en">The trigger surface stays lean and anchored in the frontmatter description.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">已生成 Skill IR,核心语义可先于平台打包被审查和迁移。</span><span data-lang="en">Skill IR is generated so core semantics can be reviewed and migrated before platform packaging.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">强项</span><span data-lang="en">Strength</span></td><td><span data-lang="zh-CN">已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。</span><span data-lang="en">Target compilation evidence is generated to review how IR maps to OpenAI, Claude, generic, and other target contracts.</span></td><td><span data-lang="zh-CN">保留并复用</span><span data-lang="en">Keep</span></td></tr><tr><td><span data-lang="zh-CN">缺口</span><span data-lang="en">Gap</span></td><td><span data-lang="zh-CN">上下文成本需要补强:入口约 360 个词/字,references 约 16828 个词/字。</span><span data-lang="en">Context cost needs improvement: Entrypoint is about 360 words/characters; references are about 16828.</span></td><td><span data-lang="zh-CN">纳入下一轮修复</span><span data-lang="en">Fix next</span></td></tr></tbody>
</table>
<div class="two-col quality-panels">
<article class="panel">
+21 -21
View File
@@ -101,7 +101,7 @@
"label": "上下文成本",
"score": 42,
"reasons": [
"入口约 360 个词/字,references 约 16770 个词/字。",
"入口约 360 个词/字,references 约 16828 个词/字。",
"分数越高代表上下文成本越低。",
"上下文成本偏高,建议压缩入口或拆分 references。"
]
@@ -205,7 +205,7 @@
"已生成 Output Review Adjudication,可记录盲评决策、一致率和待评审项。"
],
"gaps": [
"上下文成本需要补强:入口约 360 个词/字,references 约 16770 个词/字。"
"上下文成本需要补强:入口约 360 个词/字,references 约 16828 个词/字。"
],
"recommendations": [
"先改触发边界,再扩展工作流。",
@@ -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": "95a01210eb2bacbef1d295e72bd60fdcce075db27930533679397b5aad82e4cf",
"source_contract_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"evidence_bundle_sha256": "a6a800e88be9348c69020f14560db3a902a8e24bbafc79b5d31200f42d3a6191",
"source_contract_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"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": 52
},
"commit": "c325269f10a7c691646aefc5f48ca73e0a94542f",
"commit": "5338a770167da589a140c71ff0cd589ee5a3e8f4",
"missing_artifacts": [],
"limitations": [
"The git commit and dirty flag are generation-time context; the evidence bundle hash is the durable artifact anchor inside a committed report.",
@@ -1108,7 +1108,7 @@
"failures": []
},
"trust_security": {
"scanned_files": 211,
"scanned_files": 212,
"script_count": 121,
"internal_module_count": 35,
"secret_findings": 0,
@@ -1128,8 +1128,8 @@
"help_smoke_failed_count": 0,
"interactive_script_count": 0,
"package_hash_scope": "source-contract-without-generated-reports",
"package_hash_file_count": 211,
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"package_hash_file_count": 212,
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
},
"skill_atlas": {
"skill_count": 12,
@@ -1167,8 +1167,8 @@
"trust_level": "local",
"license": "MIT",
"checksums": {
"package_sha256": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc",
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"package_sha256": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
"compatibility": {
"openai": "pass",
@@ -1199,7 +1199,7 @@
},
"distribution": {
"archive_verified": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_sha256": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096",
"package_verification": "reports/package_verification.json",
"install_simulated": true,
"install_simulation": "reports/install_simulation.json"
@@ -1215,8 +1215,8 @@
"target_count": 4,
"adapter_count": 4,
"archive_present": true,
"archive_sha256": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6",
"archive_entry_count": 645,
"archive_sha256": "38e8e607c1ed5bd016ea242f8fac3e8dfdfe16b165876bc4e19f587481e7c5ca",
"archive_entry_count": 646,
"failure_count": 0,
"warning_count": 0
},
@@ -1227,7 +1227,7 @@
"ok": true,
"summary": {
"archive_present": true,
"archive_entry_count": 645,
"archive_entry_count": 646,
"archive_extracted": true,
"entrypoint_loaded": true,
"manifest_loaded": true,
@@ -1294,12 +1294,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"to": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"to": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
}
]
},
+1
View File
@@ -220,6 +220,7 @@
"references/telemetry-drift-method.md",
"references/trust-security-method.md",
"references/user-memory-policy.md",
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
+1 -1
View File
@@ -285,7 +285,7 @@
"key": "registry-distribution",
"label": "Registry Distribution",
"status": "pass",
"current": "zip entries 645; install failures 0; permission failures 0",
"current": "zip entries 646; install failures 0; permission failures 0",
"target": "Package metadata, archive checksum, package verification, and install simulation pass",
"evidence": [
{
+1 -1
View File
@@ -27,7 +27,7 @@ Generated at: `2026-06-16`
| Permission Metadata | pass | 4/4 target probes pass; metadata fallback 4; installer enforcement 4 | Packaged adapters expose explicit permission metadata, residual risks, and installer enforcement evidence when available | Preserve residual-risk notes until real native enforcement exists. |
| Native Permission Enforcement | external-required | native-enforced targets 0; installer-enforced targets 4 | At least one target/client enforces approved permissions at runtime | Integrate a real target-client or external installer runtime guard before claiming native permission enforcement. |
| Skill Atlas | pass | 12 skills; actionable collisions 0 | Workspace catalog, route overlap, stale/owner gaps, drift, and no-route opportunities | Feed real drift data into Atlas once client telemetry is installed. |
| Registry Distribution | pass | zip entries 645; install failures 0; permission failures 0 | Package metadata, archive checksum, package verification, and install simulation pass | Regenerate registry after package verification so checksums stay aligned. |
| Registry Distribution | pass | zip entries 646; install failures 0; permission failures 0 | Package metadata, archive checksum, package verification, and install simulation pass | Regenerate registry after package verification so checksums stay aligned. |
| Review Studio | pass | decision review; warnings 3; score 91 | One page shows gates, evidence paths, blockers, warnings, actions, waivers, and annotations | Resolve human/external warning gates before claiming full release readiness. |
| Telemetry Drift | pass | events 1; risk low; recipes 5 | Local-first metadata-only event contract, aggregate drift report, hook recipes, and import path | Keep raw JSONL out of distributed packages and use aggregate reports for Atlas. |
| Native Client Telemetry | external-required | external source events 0; adoption samples 0 | A real Browser/Chrome/provider client sends production metadata events | Install a real client against the native host and import production metadata-only events. |
+1 -1
View File
@@ -204,7 +204,7 @@
"label": "Registry Distribution",
"status": "pass",
"objective": "Skill packages are installable, versioned, checksumed, and upgrade-reviewable.",
"current": "archive entries 645; install failures 0",
"current": "archive entries 646; install failures 0",
"command": "python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip && python3 scripts/yao.py registry-audit .",
"test": "python3 tests/verify_registry_audit.py",
"evidence": [
+1 -1
View File
@@ -28,7 +28,7 @@ This report maps the Skill OS 2.0 upgrade blueprint to concrete local artifacts,
| Runtime Conformance | `pass` | 5/5 targets pass | `python3 scripts/yao.py conformance .` | `python3 tests/verify_conformance_suite.py` |
| Trust Security | `pass` | 121 scripts; secrets 0; help failures 0 | `python3 scripts/yao.py trust .` | `python3 tests/verify_trust_check.py` |
| Skill Atlas | `pass` | 12 scanned skills; actionable collisions 0 | `python3 scripts/yao.py skill-atlas --workspace-root .` | `python3 tests/verify_skill_atlas.py` |
| Registry Distribution | `pass` | archive entries 645; install failures 0 | `python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip && python3 scripts/yao.py registry-audit .` | `python3 tests/verify_registry_audit.py` |
| Registry Distribution | `pass` | archive entries 646; install failures 0 | `python3 scripts/yao.py package . --platform openai --platform claude --platform generic --platform vscode --output-dir dist --zip && python3 scripts/yao.py registry-audit .` | `python3 tests/verify_registry_audit.py` |
| Review Studio | `pass` | 16 gates; decision review; warnings 3 | `python3 scripts/yao.py review-studio .` | `python3 tests/verify_review_studio.py` |
| Telemetry Drift | `pass` | events 1; recipes 5; risk low | `python3 scripts/yao.py telemetry-hooks . && python3 scripts/yao.py adoption-drift .` | `python3 tests/verify_telemetry_hooks.py` |
+3 -3
View File
@@ -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": [
+1 -1
View File
@@ -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.
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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`
+2 -2
View File
@@ -70,12 +70,12 @@
{
"field": "archive_sha256",
"from": "",
"to": "c26d85598e496b35e5ae4d0867a58652c62541c505c12fab5a9d6ea0598b99a6"
"to": "d543b93ac3b301b4abfb6f749509fac8234e501b2a5e2af93361a7250f8e5096"
},
{
"field": "package_sha256",
"from": "0000000000000000000000000000000000000000000000000000000000000000",
"to": "f7b3e6749356356d3cc8b8e36bdf46a9eeedd6615f6831e033540d5bdda2b2bc"
"to": "1b03b1e4bab90eac18aa1ee7f0ddd1d7293c3bdfb32620531c4fc231e33e2b60"
}
]
},
+44
View File
@@ -22,6 +22,13 @@ def action_command_rows(commands: dict[str, Any]) -> list[dict[str, str]]:
return rows
def first_text_items(*values: Any, limit: int = 4) -> list[str]:
for value in values:
if isinstance(value, list) and value:
return [str(item) for item in value[:limit]]
return []
def world_class_action_steps(data: dict[str, Any]) -> list[dict[str, Any]]:
ledger = data.get("world_class_evidence_ledger", {}) if isinstance(data, dict) else {}
entries = ledger.get("entries", []) if isinstance(ledger, dict) else []
@@ -58,6 +65,7 @@ def world_class_action_steps(data: dict[str, Any]) -> list[dict[str, Any]]:
runbook = entry.get("runbook", [])
if not runbook and isinstance(checklist.get("must_collect", {}), dict):
runbook = checklist["must_collect"].get("runbook", [])
must_collect = checklist.get("must_collect", {}) if isinstance(checklist.get("must_collect", {}), dict) else {}
steps.append(
{
"key": key,
@@ -74,11 +82,31 @@ def world_class_action_steps(data: dict[str, Any]) -> list[dict[str, Any]]:
"blocked_checks": blocked_checks,
"commands": action_command_rows(checklist.get("commands", {}) if isinstance(checklist.get("commands", {}), dict) else {}),
"runbook": [str(item) for item in runbook[:3]],
"provenance_requirements": first_text_items(
must_collect.get("provenance_requirements"),
entry.get("provenance_requirements"),
limit=3,
),
"success_checks": first_text_items(must_collect.get("success_checks"), entry.get("success_checks")),
"evidence_artifacts": first_text_items(
must_collect.get("evidence_artifacts"),
entry.get("evidence_artifacts"),
limit=5,
),
"privacy_contract": first_text_items(must_collect.get("privacy_contract"), entry.get("privacy_contract"), limit=3),
}
)
return steps
def render_small_list(items: list[Any], empty: str, ordered: bool = False) -> str:
if not items:
return f"<p class='muted'>{html.escape(empty)}</p>"
tag = "ol" if ordered else "ul"
rows = "".join(f"<li>{html.escape(str(item))}</li>" for item in items)
return f"<{tag}>{rows}</{tag}>"
def render_action_evidence_steps(steps: list[dict[str, Any]]) -> str:
if not steps:
return ""
@@ -136,6 +164,22 @@ def render_action_evidence_steps(steps: list[dict[str, Any]]) -> str:
else "<p class='muted'>暂无首要步骤。</p>"
)
+ "</details>"
"<details class='action-collection-details'><summary>采集契约</summary>"
"<div class='action-collection-grid'>"
"<section><h5>来源要求</h5>"
+ render_small_list(step.get("provenance_requirements", []), "暂无来源要求。")
+ "</section>"
"<section><h5>通过条件</h5>"
+ render_small_list(step.get("success_checks", []), "暂无通过条件。")
+ "</section>"
"<section><h5>证据资产</h5>"
+ render_small_list(step.get("evidence_artifacts", []), "暂无证据资产。")
+ "</section>"
"<section><h5>隐私边界</h5>"
+ render_small_list(step.get("privacy_contract", []), "暂无隐私边界。")
+ "</section>"
"</div>"
"</details>"
"</article>"
)
return (
+10 -664
View File
@@ -2,12 +2,17 @@
"""Static layout contract for Review Studio HTML."""
import html
from pathlib import Path
SCRIPT_INTERFACE = "internal-module"
SCRIPT_INTERFACE_REASON = "Imported by render_review_studio.py to keep Review Studio layout and CSS out of gate logic."
ROOT = Path(__file__).resolve().parent.parent
ASSET_DIR = ROOT / "assets"
REVIEW_STUDIO_NAV = [
("#overview", "审查总览"),
("#intent", "意图画布"),
@@ -28,6 +33,10 @@ REVIEW_STUDIO_NAV = [
]
def read_layout_asset(filename: str) -> str:
return (ASSET_DIR / filename).read_text(encoding="utf-8").strip()
def render_review_nav(nav_items: list[tuple[str, str]] | None = None) -> str:
items = REVIEW_STUDIO_NAV if nav_items is None else nav_items
return "".join(
@@ -37,667 +46,4 @@ def render_review_nav(nav_items: list[tuple[str, str]] | None = None) -> str:
def review_studio_css() -> str:
return """
:root {
--ink: #1B365D;
--text: #24201d;
--muted: #746d66;
--line: #e7ded2;
--soft: #faf8f5;
--pass: #1e6b52;
--warn: #9a6718;
--block: #9b2c2c;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background: #ffffff;
color: var(--text);
font-family: Georgia, "Times New Roman", "Songti SC", serif;
line-height: 1.58;
}
nav {
position: sticky;
top: 0;
z-index: 10;
display: flex;
gap: 4px;
justify-content: center;
flex-wrap: wrap;
padding: 10px 16px;
background: rgba(255,255,255,0.94);
border-bottom: 1px solid var(--line);
backdrop-filter: blur(10px);
}
nav a {
color: var(--ink);
text-decoration: none;
font-size: 14px;
padding: 7px 10px;
border-radius: 6px;
}
nav a:hover { background: var(--soft); }
main { max-width: 1180px; margin: 0 auto; padding: 44px 28px 76px; }
header { border-bottom: 1px solid var(--line); padding-bottom: 28px; margin-bottom: 28px; }
.eyebrow { color: var(--ink); font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
h1, h2, h3 { color: var(--text); font-weight: 500; margin: 0; letter-spacing: 0; }
h1 { font-size: clamp(34px, 5vw, 64px); line-height: 1.03; max-width: 920px; margin-top: 12px; }
h2 { font-size: 30px; margin-bottom: 14px; }
h3 { font-size: 19px; }
p { margin: 0; }
.lede { max-width: 820px; color: var(--muted); font-size: 20px; margin-top: 18px; }
.decision {
display: inline-flex;
align-items: baseline;
gap: 12px;
margin-top: 24px;
padding: 12px 16px;
border: 1px solid var(--line);
border-radius: 8px;
color: var(--ink);
background: var(--soft);
}
.decision strong { font-size: 28px; }
section { padding: 30px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 76px; }
.metrics, .gates {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 14px;
}
.gates { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.metric, .gate {
border: 1px solid var(--line);
border-radius: 8px;
padding: 16px;
background: #fff;
min-width: 0;
}
.metric span, .gate span { display: block; color: var(--muted); font-size: 13px; }
.metric strong { display: block; color: var(--ink); font-size: 34px; line-height: 1.1; margin: 8px 0; }
.metric p, .gate p, .gate footer, .issues span, .evidence span { color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
.gate { display: flex; flex-direction: column; gap: 10px; }
.gate.pass { border-top: 4px solid var(--pass); }
.gate.warn { border-top: 4px solid var(--warn); }
.gate.block { border-top: 4px solid var(--block); }
.gate footer { border-top: 1px solid var(--line); padding-top: 10px; }
a { color: var(--ink); }
.twocol {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
gap: 22px;
align-items: start;
}
.panel {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
}
.panel p { color: var(--muted); }
.kv-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px 12px;
margin: 2px 0 0;
}
.kv-grid div {
min-width: 0;
padding: 9px 0 0;
border-top: 1px solid var(--line);
}
.kv-grid dt {
color: var(--muted);
font-size: 13px;
}
.kv-grid dd {
margin: 2px 0 0;
color: var(--ink);
font-size: 15px;
overflow-wrap: anywhere;
}
.issues, .evidence {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 12px;
}
.issues li, .evidence li {
border-left: 3px solid var(--line);
padding-left: 12px;
display: grid;
gap: 3px;
}
.muted { color: var(--muted); }
.actions-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.annotations-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.action-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 10px;
min-width: 0;
}
.action-card.warn { border-left: 4px solid var(--warn); }
.action-card.block { border-left: 4px solid var(--block); }
.action-card.with-evidence {
grid-column: 1 / -1;
}
.action-evidence-panel {
display: grid;
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
margin-top: 2px;
}
.action-evidence-panel h4 {
margin: 0;
color: var(--ink);
font-size: 16px;
font-weight: 500;
}
.action-evidence-panel p {
color: var(--muted);
font-size: 14px;
}
.action-evidence-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
}
.action-evidence-item {
border: 1px solid var(--line);
border-radius: 8px;
padding: 14px;
display: grid;
gap: 10px;
min-width: 0;
background: var(--soft);
}
.action-evidence-item.pending { border-left: 4px solid var(--warn); }
.action-evidence-item.accepted { border-left: 4px solid var(--pass); }
.action-evidence-item h4,
.action-evidence-item h5 {
margin: 0;
color: var(--ink);
font-weight: 500;
}
.action-evidence-item h4 { font-size: 16px; }
.action-evidence-item h5 { font-size: 14px; }
.action-evidence-item section {
border-top: 1px solid var(--line);
padding-top: 10px;
display: grid;
gap: 8px;
}
.action-command-details,
.action-runbook-details {
border-top: 1px solid var(--line);
padding-top: 10px;
display: grid;
gap: 8px;
}
.action-command-details summary,
.action-runbook-details summary {
cursor: pointer;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.action-command-details[open] summary,
.action-runbook-details[open] summary {
margin-bottom: 8px;
}
.action-evidence-item dl {
display: grid;
grid-template-columns: 76px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.action-evidence-item dt {
color: var(--ink);
font-size: 14px;
}
.action-evidence-item dd {
margin: 0;
min-width: 0;
}
.action-evidence-checks,
.action-command-list,
.action-runbook-list {
margin: 0;
display: grid;
gap: 8px;
}
.action-evidence-checks,
.action-command-list {
padding: 0;
list-style: none;
}
.action-runbook-list {
padding-left: 20px;
}
.action-evidence-check,
.action-command-list li {
display: grid;
gap: 3px;
min-width: 0;
border-top: 1px solid var(--line);
padding-top: 8px;
}
.action-evidence-check.blocked { border-left: 3px solid var(--warn); padding-left: 8px; }
.action-evidence-check.pass { border-left: 3px solid var(--pass); padding-left: 8px; }
.action-evidence-check span,
.action-command-list span {
color: var(--ink);
font-size: 13px;
}
.action-evidence-check code,
.action-evidence-check small,
.action-command-list code,
.action-runbook-list li {
color: var(--muted);
font-size: 13px;
overflow-wrap: anywhere;
}
.action-command-list code {
display: block;
white-space: normal;
}
.annotation-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 10px;
min-width: 0;
}
.annotation-card.warning { border-left: 4px solid var(--warn); }
.annotation-card.blocker { border-left: 4px solid var(--block); }
.annotation-card.resolved { opacity: .72; }
.world-evidence-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
margin-top: 16px;
}
.world-evidence-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.world-evidence-card.pending { border-left: 4px solid var(--warn); }
.world-evidence-card.accepted { border-left: 4px solid var(--pass); }
.world-evidence-card span,
.world-evidence-card p,
.world-evidence-card dd,
.world-evidence-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.world-evidence-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.world-evidence-card dt { color: var(--ink); font-size: 14px; }
.world-evidence-card dd { margin: 0; }
.world-evidence-columns {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-evidence-columns h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.world-evidence-columns ul {
margin: 0;
padding-left: 18px;
}
.world-source-panel {
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-runbook-panel {
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-runbook-panel h4,
.world-source-panel h4 {
margin: 0 0 8px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.world-runbook-panel ul {
margin: 0;
padding-left: 18px;
}
.world-source-checks {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 8px;
}
.world-source-check {
display: grid;
grid-template-columns: minmax(0, .7fr) minmax(0, .6fr) minmax(0, 1fr);
gap: 10px;
align-items: start;
min-width: 0;
padding: 9px 0 0;
border-top: 1px solid var(--line);
}
.world-source-check span {
color: var(--ink);
font-size: 14px;
}
.world-source-check code,
.world-source-check small {
color: var(--muted);
font-size: 13px;
overflow-wrap: anywhere;
}
.world-source-check.pass { border-left: 3px solid var(--pass); padding-left: 8px; }
.world-source-check.blocked { border-left: 3px solid var(--warn); padding-left: 8px; }
.output-review-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
margin-top: 16px;
}
.output-review-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.output-review-card.awaiting-decision,
.output-review-card.fix-decision { border-left: 4px solid var(--warn); }
.output-review-card.adjudicated { border-left: 4px solid var(--pass); }
.output-review-card span,
.output-review-card p,
.output-review-card dd,
.output-review-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.output-review-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.output-review-card dt { color: var(--ink); font-size: 14px; }
.output-review-card dd { margin: 0; min-width: 0; }
.output-review-steps {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.output-review-steps h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.output-review-steps ul {
margin: 0;
padding-left: 18px;
}
.output-review-commands,
.output-review-fields {
list-style: none;
padding: 0;
display: grid;
gap: 8px;
}
.output-review-commands li,
.output-review-fields li {
display: grid;
gap: 2px;
min-width: 0;
padding: 8px 0 0;
border-top: 1px solid var(--line);
}
.output-review-commands code {
overflow-wrap: anywhere;
white-space: normal;
display: block;
}
.world-intake-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
margin-top: 16px;
}
.world-intake-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.world-intake-card.awaiting-submission,
.world-intake-card.fix-submission,
.world-intake-card.fix-template { border-left: 4px solid var(--warn); }
.world-intake-card.ready-for-ledger-review,
.world-intake-card.accepted { border-left: 4px solid var(--pass); }
.world-intake-card span,
.world-intake-card p,
.world-intake-card dd,
.world-intake-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.world-intake-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.world-intake-card dt { color: var(--ink); font-size: 14px; }
.world-intake-card dd { margin: 0; min-width: 0; }
.world-intake-steps {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.world-intake-steps h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.world-intake-steps ul {
margin: 0;
padding-left: 18px;
}
.world-intake-commands {
list-style: none;
padding: 0;
display: grid;
gap: 8px;
}
.world-intake-commands li {
display: grid;
gap: 2px;
min-width: 0;
padding: 8px 0 0;
border-top: 1px solid var(--line);
}
.world-intake-commands code {
overflow-wrap: anywhere;
white-space: normal;
display: block;
}
.section-subtitle {
margin-top: 22px;
margin-bottom: 12px;
color: var(--ink);
}
.waiver-summary { margin-top: 16px; }
.waiver-candidate-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 16px;
}
.waiver-card {
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
background: #fff;
display: grid;
gap: 12px;
min-width: 0;
}
.waiver-card.allowed { border-left: 4px solid var(--warn); }
.waiver-card.blocked { border-left: 4px solid var(--block); }
.waiver-card span,
.waiver-card p,
.waiver-card dd,
.waiver-card li {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.waiver-card dl {
display: grid;
grid-template-columns: 86px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.waiver-card dt {
color: var(--ink);
font-size: 14px;
}
.waiver-card dd { margin: 0; min-width: 0; }
.waiver-review {
border-top: 1px solid var(--line);
padding-top: 12px;
}
.waiver-review h4 {
margin: 0 0 6px;
color: var(--ink);
font-size: 14px;
font-weight: 500;
}
.waiver-review ul {
margin: 0;
padding-left: 18px;
}
.waiver-command {
display: grid;
gap: 4px;
border-top: 1px solid var(--line);
padding-top: 12px;
}
.waiver-command span {
color: var(--ink);
font-size: 14px;
}
.waiver-command code {
display: block;
max-width: 100%;
overflow-wrap: anywhere;
white-space: normal;
}
.action-card span,
.annotation-card span,
.action-card small,
.annotation-card small,
.action-card footer,
.annotation-card footer,
.action-card dd {
color: var(--muted);
font-size: 14px;
overflow-wrap: anywhere;
}
.annotation-card dd { color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
.action-card dl, .annotation-card dl {
display: grid;
grid-template-columns: 80px minmax(0, 1fr);
gap: 6px 10px;
margin: 0;
}
.action-card dt, .annotation-card dt { color: var(--ink); font-size: 14px; }
.action-card dd, .annotation-card dd { margin: 0; }
.source-ref-list {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 6px;
}
.source-ref-list li {
display: grid;
gap: 2px;
min-width: 0;
padding: 8px 0 0;
border-top: 1px solid var(--line);
}
.source-ref-list a,
.source-ref-list span {
overflow-wrap: anywhere;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 13px;
}
.source-ref-list small {
font-size: 12px;
color: var(--muted);
}
.source-ref-list blockquote {
margin: 2px 0 0;
padding: 7px 9px;
border-left: 3px solid var(--line);
background: var(--soft);
color: var(--muted);
font-size: 12px;
overflow-wrap: anywhere;
}
code {
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 13px;
}
@media (max-width: 980px) {
.metrics, .gates, .twocol, .actions-grid, .annotations-grid, .action-evidence-grid, .action-evidence-item dl, .output-review-grid, .output-review-steps, .world-evidence-grid, .world-evidence-columns, .world-source-check, .world-intake-grid, .world-intake-steps, .waiver-candidate-grid, .waiver-card dl, .kv-grid { grid-template-columns: 1fr; }
main { padding: 32px 18px 60px; }
nav { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; }
nav a { flex: 0 0 auto; }
}
""".strip()
return read_layout_asset("review-studio.css")
+1
View File
@@ -235,6 +235,7 @@
"scripts/yao_cli_telemetry.py"
],
"assets": [
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
+1
View File
@@ -176,6 +176,7 @@
"references/telemetry-drift-method.md",
"references/trust-security-method.md",
"references/user-memory-policy.md",
"assets/review-studio.css",
"assets/skill-overview.css",
"assets/skill-overview.js",
"templates/basic_skill.md.j2",
+1 -1
View File
@@ -55,7 +55,6 @@ def copy_reports(dst: Path) -> None:
def refresh_embedded_reports() -> None:
script_names = [
"render_context_reports.py",
"render_benchmark_reproducibility.py",
"render_skill_os2_coverage.py",
"render_world_class_evidence_plan.py",
"render_world_class_evidence_ledger.py",
@@ -64,6 +63,7 @@ def refresh_embedded_reports() -> None:
"render_world_class_submission_review.py",
"render_world_class_operator_runbook.py",
"render_world_class_claim_guard.py",
"render_benchmark_reproducibility.py",
"render_skill_overview.py",
"render_skill_interpretation.py",
"render_review_viewer.py",
+13
View File
@@ -540,6 +540,10 @@ def main() -> None:
assert any("world-class-intake" in item["command"] for item in provider_action_step["commands"]), provider_action_step
assert any("world-class-ledger" in item["command"] for item in provider_action_step["commands"]), provider_action_step
assert any("output-exec --provider-runner openai" in item for item in provider_action_step["runbook"]), provider_action_step
assert "provider-backed model run" in provider_action_step["provenance_requirements"], provider_action_step
assert "reports/output_execution_runs.json summary.model_executed_count > 0" in provider_action_step["success_checks"], provider_action_step
assert "reports/output_execution_runs.json" in provider_action_step["evidence_artifacts"], provider_action_step
assert any("provider credentials" in item for item in provider_action_step["privacy_contract"]), provider_action_step
assert full_payload["data"]["world_class_evidence_ledger"]["summary"]["pending_count"] == 4, full_payload["data"]["world_class_evidence_ledger"]
assert full_payload["data"]["world_class_evidence_intake"]["summary"]["decision"] == "awaiting-submissions", full_payload["data"]["world_class_evidence_intake"]
assert full_payload["data"]["world_class_submission_review"]["summary"]["decision"] == "awaiting-submissions", full_payload["data"]["world_class_submission_review"]
@@ -662,6 +666,12 @@ def main() -> None:
assert "action-evidence-checks" in html, html
assert "action-command-list" in html, html
assert "action-runbook-list" in html, html
assert "采集契约" in html, html
assert "action-collection-grid" in html, html
assert "来源要求" in html, html
assert "通过条件" in html, html
assert "证据资产" in html, html
assert "隐私边界" in html, html
assert "世界证据" in html, html
assert "证据台账" in html, html
assert "证据入口" in html, html
@@ -793,6 +803,9 @@ def main() -> None:
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]
assert review_layout.review_studio_css() == (ROOT / "assets" / "review-studio.css").read_text(
encoding="utf-8"
).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 review_layout.render_review_nav([]) == ""
+1
View File
@@ -53,6 +53,7 @@ def main() -> None:
assert expected_scripts <= actual_scripts, sorted(expected_scripts - actual_scripts)
assert "assets/skill-overview.css" in payload["resources"]["assets"], payload["resources"]["assets"]
assert "assets/skill-overview.js" in payload["resources"]["assets"], payload["resources"]["assets"]
assert "assets/review-studio.css" in payload["resources"]["assets"], payload["resources"]["assets"]
assert payload["resources"]["reports"], payload
assert "evals/trigger_cases.json" in payload["eval_plan"]["trigger"], payload["eval_plan"]
assert payload["risk"]["trust_boundary"] == "external", payload
+1
View File
@@ -66,6 +66,7 @@ def main() -> None:
scanned_paths = {relpath(ROOT, path) for path in iter_scan_files(ROOT)}
assert "assets/skill-overview.css" in scanned_paths, scanned_paths
assert "assets/skill-overview.js" in scanned_paths, scanned_paths
assert "assets/review-studio.css" in scanned_paths, scanned_paths
assert payload["summary"]["internal_module_count"] >= 3, payload
assert payload["summary"]["network_script_count"] == 3, payload
assert payload["summary"]["network_policy_covered_count"] == payload["summary"]["network_script_count"], payload