Improve bilingual skill overview reports

This commit is contained in:
yaojingang
2026-06-15 18:11:09 +08:00
parent 78430c6b7f
commit f3e7831a3b
9 changed files with 454 additions and 245 deletions
@@ -633,16 +633,16 @@
<p class="eyebrow"><span data-lang="zh-CN">YAO Skill 生成审计报告</span><span data-lang="en">YAO Skill Generation Audit</span></p>
<p class="slug">geo-content-brief-skill</p>
<h1 id="report-title"><span data-lang="zh-CN">技能审计报告</span><span data-lang="en">Geo Content Brief Skill Audit Report</span></h1>
<p class="lead"><span data-lang="zh-CN">这份报告默认使用中文简体,把新 Skill 的定位、指标、原理、契约、质量、风险、资产和迭代路线整理为一份可审计的 HTML 报告。</span><span data-lang="en">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span></p>
<p class="lead"><span data-lang="zh-CN">这份报告默认使用中文简体,把新 Skill 的定位、指标、原理、契约、质量、风险、资产和迭代路线整理为一份可审计的 HTML 报告。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></p>
<div class="hero-meta"><span><span data-lang="zh-CN">技能名称:geo-content-brief-skill</span><span data-lang="en">Skill name: geo-content-brief-skill</span></span><span><span data-lang="zh-CN">成熟度:生产</span><span data-lang="en">Maturity: production</span></span><span><span data-lang="zh-CN">格式:Agent Skills</span><span data-lang="en">Format: agent-skills</span></span><span><span data-lang="zh-CN">更新时间:2026-06-15</span><span data-lang="en">Updated: 2026-06-15</span></span></div>
<div class="badges"><span><span data-lang="zh-CN">openai</span><span data-lang="en">openai</span></span><span><span data-lang="zh-CN">claude</span><span data-lang="en">claude</span></span><span><span data-lang="zh-CN">generic</span><span data-lang="en">generic</span></span><span><span data-lang="zh-CN">vscode</span><span data-lang="en">vscode</span></span></div>
</div>
<aside class="hero-card">
<h3><span data-lang="zh-CN">核心判断</span><span data-lang="en">Core reading</span></h3>
<ul class="list"><li><span data-lang="zh-CN">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span><span data-lang="en">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span></li><li><span data-lang="zh-CN">Skill 作者、复用团队和后续 reviewer。</span><span data-lang="en">Skill 作者、复用团队和后续 reviewer</span></li><li><span data-lang="zh-CN">创建完成后建议先打开 reports/skill-overview.html,再继续扩展包体。</span><span data-lang="en">创建完成后建议先打开 reports/skill-overview.html,再继续扩展包体。</span></li></ul>
<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><strong>92</strong><i style='--score:92%'></i><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md 已存在,是 Skill 的入口。</span></small></article><article class='score-chip'><span>触发清晰</span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">frontmatter description 已存在,具备基础路由面。</span></small></article><article class='score-chip'><span>证据充分</span><strong>60</strong><i style='--score:60%'></i><small><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">已生成 12 / 20 类报告证据。</span></small></article><article class='score-chip'><span>上下文成本</span><strong>78</strong><i style='--score:78%'></i><small><span data-lang="zh-CN">入口约 864 个词/字,references 约 565 个词/字。</span><span data-lang="en">入口约 864 个词/字,references 约 565 个词/字。</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>92</strong><i style='--score:92%'></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>60</strong><i style='--score:60%'></i><small><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 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>78</strong><i style='--score:78%'></i><small><span data-lang="zh-CN">入口约 864 个词/字,references 约 565 个词/字。</span><span data-lang="en">Entrypoint is about 864 words/characters; references are about 565.</span></small></article></div>
</section>
<section id="overview">
@@ -654,9 +654,9 @@
<div class="two-col">
<article class="panel">
<h3><span data-lang="zh-CN">作用定位</span><span data-lang="en">Role</span></h3>
<ul class="list"><li><span data-lang="zh-CN">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span><span data-lang="en">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span></li><li><span data-lang="zh-CN">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span><span data-lang="en">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span></li><li><span data-lang="zh-CN">交付结果:SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/conformance_matrix.md, reports/security_trust_report.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-overview.html</span><span data-lang="en">交付结果:SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/conformance_matrix.md, reports/security_trust_report.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-overview.html</span></li></ul>
<ul class="list"><li><span data-lang="zh-CN">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</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">把一次性经验沉淀为可复用、可评估、可迁移的 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.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/conformance_matrix.md, reports/security_trust_report.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-overview.html</span><span data-lang="en">Deliverables: SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/conformance_matrix.md, reports/security_trust_report.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-overview.html</span></li></ul>
</article>
<figure class="chart-figure" data-chart="flow"><svg viewBox="0 0 620 170" role="img" aria-label="交付流程"><text x="20" y="28" class="chart-title">交付流程</text><path d="M188 93 H248 M398 93 H458" class="chart-line"/><g><rect x="38" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text x="113" y="99" text-anchor="middle">输入材料</text></g><g><rect x="248" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text x="323" y="99" text-anchor="middle">Skill 包体</text></g><g><rect x="458" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text x="533" y="99" text-anchor="middle">可复用能力</text></g></svg><figcaption>交付流程把用户输入、生成的包体和可复用能力放在一条线上。</figcaption></figure>
<figure class="chart-figure" data-chart="flow"><svg viewBox="0 0 620 170" 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">Delivery Flow</text><path d="M188 93 H248 M398 93 H458" class="chart-line"/><g><rect x="38" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="113" y="99" text-anchor="middle">输入材料</text><text data-lang="en" x="113" y="99" text-anchor="middle">Input material</text></g><g><rect x="248" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="323" y="99" text-anchor="middle">Skill 包体</text><text data-lang="en" x="323" y="99" text-anchor="middle">Skill package</text></g><g><rect x="458" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="533" y="99" text-anchor="middle">可复用能力</text><text data-lang="en" x="533" y="99" text-anchor="middle">Reusable capability</text></g></svg><figcaption><span data-lang="zh-CN">交付流程把用户输入、生成的包体和可复用能力放在一条线上。</span><span data-lang="en">The delivery flow places user input, generated package, and reusable capability on one path.</span></figcaption></figure>
</div>
</div>
</section>
@@ -675,13 +675,13 @@
<div class="section-body metrics-report">
<div class="metrics-flow">
<div class="metrics-primary">
<figure class="chart-figure" data-chart="radar"><svg viewBox="0 0 300 300" role="img" aria-label="评分雷达"><text x="20" y="28" class="chart-title">评分雷达</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,65.4 237.5,121.6 182.4,194.7 104.0,213.3 62.5,121.6" fill="#E4ECF5" stroke="#1B365D" stroke-width="2"/><text x="150.0" y="26.0" text-anchor="middle" dominant-baseline="middle">完整度</text><text x="267.9" y="111.7" text-anchor="middle" dominant-baseline="middle">触发清晰</text><text x="222.9" y="250.3" text-anchor="middle" dominant-baseline="middle">证据充分</text><text x="77.1" y="250.3" text-anchor="middle" dominant-baseline="middle">可维护性</text><text x="32.1" y="111.7" text-anchor="middle" dominant-baseline="middle">可迁移性</text></svg><figcaption>评分雷达展示结构完整度、触发边界、证据、维护和迁移的相对强弱。</figcaption></figure>
<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,65.4 237.5,121.6 182.4,194.7 104.0,213.3 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>完整度</b><em>92</em><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md 已存在,是 Skill 的入口。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>触发清晰</b><em>100</em><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">frontmatter description 已存在,具备基础路由面。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">关注</span><span data-lang="en">Watch</span></span><b>证据充分</b><em>60</em><small><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">已生成 12 / 20 类报告证据。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>可维护性</b><em>85</em><small><span data-lang="zh-CN">SKILL.md 约 864 个词/字。</span><span data-lang="en">SKILL.md 约 864 个词/字。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>可迁移性</b><em>100</em><small><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml 已存在。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">可用</span><span data-lang="en">Usable</span></span><b>上下文成本</b><em>78</em><small><span data-lang="zh-CN">入口约 864 个词/字,references 约 565 个词/字。</span><span data-lang="en">入口约 864 个词/字,references 约 565 个词/字。</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>92</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">Watch</span></span><b><span data-lang="zh-CN">证据充分</span><span data-lang="en">Evidence depth</span></b><em>60</em><small><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 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>85</em><small><span data-lang="zh-CN">SKILL.md 约 864 个词/字。</span><span data-lang="en">SKILL.md is about 864 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">Usable</span></span><b><span data-lang="zh-CN">上下文成本</span><span data-lang="en">Context cost</span></b><em>78</em><small><span data-lang="zh-CN">入口约 864 个词/字,references 约 565 个词/字。</span><span data-lang="en">Entrypoint is about 864 words/characters; references are about 565.</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><strong>92</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 已存在,是 Skill 的入口。</span></li><li><span data-lang="zh-CN">README.md 已存在,便于人工阅读。</span><span data-lang="en">README.md 已存在,便于人工阅读。</span></li><li><span data-lang="zh-CN">agents/interface.yaml 已存在,便于跨平台适配。</span><span data-lang="en">agents/interface.yaml 已存在,便于跨平台适配。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>触发清晰</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">frontmatter description 已存在,具备基础路由面。</span></li><li><span data-lang="zh-CN">description 有足够长度说明任务边界。</span><span data-lang="en">description 有足够长度说明任务边界。</span></li><li><span data-lang="zh-CN">description 已包含使用场景或排除边界信号。</span><span data-lang="en">description 已包含使用场景或排除边界信号。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>证据充分</span><strong>60</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">已生成 12 / 20 类报告证据。</span></li><li><span data-lang="zh-CN">skill-ir.json 已存在。</span><span data-lang="en">skill-ir.json 已存在。</span></li><li><span data-lang="zh-CN">compiled_targets.json 已存在。</span><span data-lang="en">compiled_targets.json 已存在。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>可维护性</span><strong>85</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 约 864 个词/字。</span><span data-lang="en">SKILL.md 约 864 个词/字。</span></li><li><span data-lang="zh-CN">入口文件保持克制,可维护性较好。</span><span data-lang="en">入口文件保持克制,可维护性较好。</span></li><li><span data-lang="zh-CN">references/ 已承载扩展指导。</span><span data-lang="en">references/ 已承载扩展指导。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>可迁移性</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 已存在。</span></li><li><span data-lang="zh-CN">manifest.json 已存在。</span><span data-lang="en">manifest.json 已存在。</span></li><li><span data-lang="zh-CN">目标平台或 adapter target 已声明。</span><span data-lang="en">目标平台或 adapter target 已声明。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>上下文成本</span><strong>78</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">入口约 864 个词/字,references 约 565 个词/字。</span><span data-lang="en">入口约 864 个词/字,references 约 565 个词/字。</span></li><li><span data-lang="zh-CN">分数越高代表上下文成本越低。</span><span data-lang="en">分数越高代表上下文成本越低。</span></li><li><span data-lang="zh-CN">上下文成本处于可控区间。</span><span data-lang="en">上下文成本处于可控区间。</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>92</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>60</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 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>85</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 约 864 个词/字。</span><span data-lang="en">SKILL.md is about 864 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>78</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">入口约 864 个词/字,references 约 565 个词/字。</span><span data-lang="en">Entrypoint is about 864 words/characters; references are about 565.</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">上下文成本处于可控区间。</span><span data-lang="en">Context cost is within a controlled range.</span></li></ul></div></article></div>
</div>
</div>
</section>
@@ -693,10 +693,10 @@
<p><span data-lang="zh-CN">判断这个 Skill 在能力地图中的位置和复用范围。</span><span data-lang="en">Places this skill on a capability map and clarifies reuse scope.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="matrix"><svg viewBox="0 0 520 460" role="img" aria-label="能力矩阵"><text x="20" y="30" class="chart-title">能力矩阵</text><rect x="70" y="70" width="380" height="320" fill="#faf9f5" stroke="#e8e6dc"/><line x1="260" y1="70" x2="260" y2="390" stroke="#e8e6dc"/><line x1="70" y1="230" x2="450" y2="230" stroke="#e8e6dc"/><text x="260" y="424" text-anchor="middle">执行确定性</text><text x="22" y="230" transform="rotate(-90 22 230)" text-anchor="middle">知识密度</text><circle cx="343.6" cy="174.0" r="12" fill="#1B365D"/><text x="361.6" y="179.0">Creative generation</text></svg><figcaption>能力矩阵说明这个 Skill 更偏知识密集还是执行确定。</figcaption></figure>
<figure class="chart-figure" data-chart="matrix"><svg viewBox="0 0 520 460" role="img" aria-label="能力矩阵"><text data-lang="zh-CN" x="20" y="30" class="chart-title">能力矩阵</text><text data-lang="en" x="20" y="30" class="chart-title">Capability Matrix</text><rect x="70" y="70" width="380" height="320" fill="#faf9f5" stroke="#e8e6dc"/><line x1="260" y1="70" x2="260" y2="390" stroke="#e8e6dc"/><line x1="70" y1="230" x2="450" y2="230" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="424" text-anchor="middle">执行确定性</text><text data-lang="en" x="260" y="424" text-anchor="middle">Execution certainty</text><text data-lang="zh-CN" x="22" y="230" transform="rotate(-90 22 230)" text-anchor="middle">知识密度</text><text data-lang="en" x="22" y="230" transform="rotate(-90 22 230)" text-anchor="middle">Knowledge density</text><circle cx="343.6" cy="174.0" r="12" fill="#1B365D"/><text data-lang="zh-CN" x="361.6" y="179.0">Creative generation</text><text data-lang="en" x="361.6" y="179.0">Creative generation</text></svg><figcaption><span data-lang="zh-CN">能力矩阵说明这个 Skill 更偏知识密集还是执行确定。</span><span data-lang="en">The capability matrix shows whether the skill leans toward knowledge density or execution certainty.</span></figcaption></figure>
<article class="panel">
<h3><span data-lang="zh-CN">画像摘要</span><span data-lang="en">Profile</span></h3>
<ul class="list"><li><span data-lang="zh-CN">能力类型:Creative generation</span><span data-lang="en">能力类型:Creative generation</span></li><li><span data-lang="zh-CN">成熟度:production</span><span data-lang="en">成熟度:production</span></li><li><span data-lang="zh-CN">触发强度:手动触发 + description 路由</span><span data-lang="en">触发强度:手动触发 + description 路由</span></li><li><span data-lang="zh-CN">复用范围:跨平台</span><span data-lang="en">复用范围:跨平台</span></li></ul>
<ul class="list"><li><span data-lang="zh-CN">能力类型:Creative generation</span><span data-lang="en">Capability type: Creative generation</span></li><li><span data-lang="zh-CN">成熟度:production</span><span data-lang="en">Maturity: production</span></li><li><span data-lang="zh-CN">触发强度:手动触发 + description 路由</span><span data-lang="en">Trigger strength: Manual activation plus description-based routing</span></li><li><span data-lang="zh-CN">复用范围:跨平台</span><span data-lang="en">Reuse scope: Cross-platform</span></li></ul>
</article>
</div>
</div>
@@ -709,15 +709,15 @@
<p><span data-lang="zh-CN">说明入口、参考、脚本、评估和报告如何组成一个稳定闭环。</span><span data-lang="en">Explains how entrypoint, references, scripts, evals, and reports form a stable loop.</span></p>
</div>
<div>
<div class="chart-grid"><figure class="chart-figure" data-chart="layers"><svg viewBox="0 0 520 320" role="img" aria-label="Skill principle flow"><text x="20" y="30" class="chart-title">分层结构</text><rect x="70" y="55" width="380" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text x="260" y="77" text-anchor="middle">入口层</text><rect x="88" y="103" width="344" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text x="260" y="125" text-anchor="middle">参考层</text><rect x="106" y="151" width="308" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text x="260" y="173" text-anchor="middle">脚本层</text><rect x="124" y="199" width="272" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text x="260" y="221" text-anchor="middle">评估层</text><rect x="142" y="247" width="236" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text x="260" y="269" text-anchor="middle">报告层</text></svg><figcaption>分层结构展示入口、参考、脚本、评估和报告如何各司其职。</figcaption></figure></div>
<div class="chart-grid"><figure class="chart-figure" data-chart="layers"><svg viewBox="0 0 520 320" role="img" aria-label="Skill principle flow"><text data-lang="zh-CN" x="20" y="30" class="chart-title">分层结构</text><text data-lang="en" x="20" y="30" class="chart-title">Layered Structure</text><rect x="70" y="55" width="380" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="77" text-anchor="middle">入口层</text><text data-lang="en" x="260" y="77" text-anchor="middle">Entrypoint layer</text><rect x="88" y="103" width="344" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="125" text-anchor="middle">参考层</text><text data-lang="en" x="260" y="125" text-anchor="middle">Reference layer</text><rect x="106" y="151" width="308" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="173" text-anchor="middle">脚本层</text><text data-lang="en" x="260" y="173" text-anchor="middle">Script layer</text><rect x="124" y="199" width="272" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="221" text-anchor="middle">评估层</text><text data-lang="en" x="260" y="221" text-anchor="middle">Evaluation layer</text><rect x="142" y="247" width="236" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="269" text-anchor="middle">报告层</text><text data-lang="en" x="260" y="269" text-anchor="middle">Report layer</text></svg><figcaption><span data-lang="zh-CN">分层结构展示入口、参考、脚本、评估和报告如何各司其职。</span><span data-lang="en">The layered structure shows how entrypoint, references, scripts, evals, and reports each carry a distinct role.</span></figcaption></figure></div>
<div class="two-col">
<article class="panel">
<h3><span data-lang="zh-CN">执行流程</span><span data-lang="en">Execution Flow</span></h3>
<ol class="step-list"><li><span data-lang="zh-CN">读取用户输入,识别目标受众、内容渠道、关键词、品牌边界、禁止表达和必须覆盖的信息。</span><span data-lang="en">读取用户输入,识别目标受众、内容渠道、关键词、品牌边界、禁止表达和必须覆盖的信息。</span></li><li><span data-lang="zh-CN">对照 `references/brief-structure.md` 生成简报骨架:目标、洞察、角度、关键词、结构、证据、风险和验收标准。</span><span data-lang="en">对照 `references/brief-structure.md` 生成简报骨架:目标、洞察、角度、关键词、结构、证据、风险和验收标准。</span></li><li><span data-lang="zh-CN">如果缺少核心输入,先提出最多三个澄清问题,不用假设补全用户没有提供的事实。</span><span data-lang="en">如果缺少核心输入,先提出最多三个澄清问题,不用假设补全用户没有提供的事实。</span></li><li><span data-lang="zh-CN">用 `evals/trigger_cases.jsonl` 检查当前请求是否属于 GEO 内容简报场景。</span><span data-lang="en">用 `evals/trigger_cases.jsonl` 检查当前请求是否属于 GEO 内容简报场景。</span></li><li><span data-lang="zh-CN">用 `evals/output_cases.jsonl` 检查输出是否包含输入摘要、内容结构、证据要求、禁区和下一步动作。</span><span data-lang="en">用 `evals/output_cases.jsonl` 检查输出是否包含输入摘要、内容结构、证据要求、禁区和下一步动作。</span></li></ol>
<ol class="step-list"><li><span data-lang="zh-CN">读取用户输入,识别目标受众、内容渠道、关键词、品牌边界、禁止表达和必须覆盖的信息。</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">对照 `references/brief-structure.md` 生成简报骨架:目标、洞察、角度、关键词、结构、证据、风险和验收标准。</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">如果缺少核心输入,先提出最多三个澄清问题,不用假设补全用户没有提供的事实。</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">用 `evals/trigger_cases.jsonl` 检查当前请求是否属于 GEO 内容简报场景。</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">用 `evals/output_cases.jsonl` 检查输出是否包含输入摘要、内容结构、证据要求、禁区和下一步动作。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li></ol>
</article>
<article class="panel">
<h3><span data-lang="zh-CN">调用方式</span><span data-lang="en">How To Use</span></h3>
<ol class="step-list"><li><span data-lang="zh-CN">当你需要把访谈纪要、关键词、竞品线索和渠道限制整理成中文 GEO 内容简报时,使用 $geo-content-brief-skill。</span><span data-lang="en">当你需要把访谈纪要、关键词、竞品线索和渠道限制整理成中文 GEO 内容简报时,使用 $geo-content-brief-skill。</span></li><li><span data-lang="zh-CN">Use this skill when the request matches: 将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span><span data-lang="en">Use this skill when the request matches: 将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span></li></ol>
<ol class="step-list"><li><span data-lang="zh-CN">当你需要把访谈纪要、关键词、竞品线索和渠道限制整理成中文 GEO 内容简报时,使用 $geo-content-brief-skill。</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">Use this skill when the request matches: 将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span><span data-lang="en">Use this skill when the request matches the frontmatter description.</span></li></ol>
</article>
</div>
</div>
@@ -733,15 +733,15 @@
<div class="two-col">
<article class="panel">
<h3><span data-lang="zh-CN">触发描述</span><span data-lang="en">Trigger</span></h3>
<p><span data-lang="zh-CN">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span><span data-lang="en">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span></p>
<p><span data-lang="zh-CN">将 GEO 内容访谈、关键词笔记、竞品线索和渠道约束整理成可执行的中文内容简报。用于团队复用、选题规划、内容生产交接和质量评审;不用于直接代写完整长文或替代品牌策略判断。</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></p>
<h3><span data-lang="zh-CN">输入材料</span><span data-lang="en">Inputs</span></h3>
<ul class="list"><li><span data-lang="zh-CN">用户提供的工作流、提示词、文档、记录或散乱笔记</span><span data-lang="en">用户提供的工作流、提示词、文档、记录或散乱笔记</span></li><li><span data-lang="zh-CN">期望沉淀的复用场景、排除项、约束和质量标准</span><span data-lang="en">期望沉淀的复用场景、排除项、约束和质量标准</span></li></ul>
<ul class="list"><li><span data-lang="zh-CN">用户提供的工作流、提示词、文档、记录或散乱笔记</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">期望沉淀的复用场景、排除项、约束和质量标准</span><span data-lang="en">Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording.</span></li></ul>
</article>
<article class="panel">
<h3><span data-lang="zh-CN">输出结果</span><span data-lang="en">Outputs</span></h3>
<ul class="list"><li><span data-lang="zh-CN">可路由的 SKILL.md</span><span data-lang="en">可路由的 SKILL.md</span></li><li><span data-lang="zh-CN">agents/interface.yaml 元数据</span><span data-lang="en">agents/interface.yaml 元数据</span></li><li><span data-lang="zh-CN">必要的 references、scripts、evals、reports 证据</span><span data-lang="en">必要的 references、scripts、evals、reports 证据</span></li><li><span data-lang="zh-CN">结构化 Skill 目录,共 8 类关键资产。</span><span data-lang="en">结构化 Skill 目录,共 8 类关键资产。</span></li></ul>
<ul class="list"><li><span data-lang="zh-CN">可路由的 SKILL.md</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">agents/interface.yaml 元数据</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">必要的 references、scripts、evals、reports 证据</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">结构化 Skill 目录,共 8 类关键资产。</span><span data-lang="en">Structured skill directory with 8 key asset groups.</span></li></ul>
<h3><span data-lang="zh-CN">不应触发</span><span data-lang="en">Should Not Trigger</span></h3>
<ul class="list"><li><span data-lang="zh-CN">只需要一次性回答、没有复用价值的临时请求。</span><span data-lang="en">只需要一次性回答、没有复用价值的临时请求。</span></li><li><span data-lang="zh-CN">要求直接执行相邻任务,而不是沉淀或使用这个 Skill。</span><span data-lang="en">要求直接执行相邻任务,而不是沉淀或使用这个 Skill。</span></li><li><span data-lang="zh-CN">缺少必要事实且用户不允许澄清的场景。</span><span data-lang="en">缺少必要事实且用户不允许澄清的场景。</span></li></ul>
<ul class="list"><li><span data-lang="zh-CN">只需要一次性回答、没有复用价值的临时请求。</span><span data-lang="en">One-off requests that do not need reusable skill behavior.</span></li><li><span data-lang="zh-CN">要求直接执行相邻任务,而不是沉淀或使用这个 Skill。</span><span data-lang="en">Requests to perform an adjacent task directly rather than create or use this skill.</span></li><li><span data-lang="zh-CN">缺少必要事实且用户不允许澄清的场景。</span><span data-lang="en">Cases that lack required facts and do not allow clarification.</span></li></ul>
</article>
</div>
</div>
@@ -756,7 +756,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,核心语义可先于平台打包被审查和迁移。</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">已生成目标编译报告,可审查 IR 到 OpenAIClaudegeneric 等目标契约的映射。</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">证据充分需要补强:已生成 12 / 20 类报告证据。</span><span data-lang="en">证据充分需要补强:已生成 12 / 20 类报告证据。</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">证据充分需要补强:已生成 12 / 20 类报告证据。</span><span data-lang="en">Evidence depth needs improvement: Generated 12 / 20 evidence report types.</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">
@@ -789,11 +789,11 @@
<p><span data-lang="zh-CN">提前暴露误触发、漂移、证据不足和迁移风险。</span><span data-lang="en">Surfaces trigger, drift, evidence, and portability risks before the package grows.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="risk_heatmap"><svg viewBox="0 0 380 300" role="img" aria-label="风险热力"><text x="20" y="30" class="chart-title">风险热力</text><rect x="80" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="119" y="224" text-anchor="middle">0</text><rect x="166" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="205" y="224" text-anchor="middle">0</text><rect x="252" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="224" text-anchor="middle">0</text><rect x="80" y="124" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="119" y="158" text-anchor="middle">0</text><rect x="166" y="124" width="78" height="58" rx="6" fill="#D0DCE9" stroke="#e8e6dc"/><text x="205" y="158" text-anchor="middle">2</text><rect x="252" y="124" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="158" text-anchor="middle">0</text><rect x="80" y="58" width="78" height="58" rx="6" fill="#D0DCE9" stroke="#e8e6dc"/><text x="119" y="92" text-anchor="middle">2</text><rect x="166" y="58" width="78" height="58" rx="6" fill="#EEF2F7" stroke="#e8e6dc"/><text x="205" y="92" text-anchor="middle">1</text><rect x="252" y="58" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="92" text-anchor="middle">0</text><text x="210" y="278" text-anchor="middle">发生概率</text><text x="24" y="160" transform="rotate(-90 24 160)" text-anchor="middle">影响程度</text></svg><figcaption>风险热力图用影响程度和发生概率标出当前治理重点。</figcaption></figure>
<figure class="chart-figure" data-chart="risk_heatmap"><svg viewBox="0 0 380 300" role="img" aria-label="风险热力"><text data-lang="zh-CN" x="20" y="30" class="chart-title">风险热力</text><text data-lang="en" x="20" y="30" class="chart-title">Risk Heatmap</text><rect x="80" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="119" y="224" text-anchor="middle">0</text><rect x="166" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="205" y="224" text-anchor="middle">0</text><rect x="252" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="224" text-anchor="middle">0</text><rect x="80" y="124" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="119" y="158" text-anchor="middle">0</text><rect x="166" y="124" width="78" height="58" rx="6" fill="#D0DCE9" stroke="#e8e6dc"/><text x="205" y="158" text-anchor="middle">2</text><rect x="252" y="124" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="158" text-anchor="middle">0</text><rect x="80" y="58" width="78" height="58" rx="6" fill="#D0DCE9" stroke="#e8e6dc"/><text x="119" y="92" text-anchor="middle">2</text><rect x="166" y="58" width="78" height="58" rx="6" fill="#EEF2F7" stroke="#e8e6dc"/><text x="205" y="92" text-anchor="middle">1</text><rect x="252" y="58" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="92" text-anchor="middle">0</text><text data-lang="zh-CN" x="210" y="278" text-anchor="middle">发生概率</text><text data-lang="en" x="210" y="278" text-anchor="middle">Probability</text><text data-lang="zh-CN" x="24" y="160" transform="rotate(-90 24 160)" text-anchor="middle">影响程度</text><text data-lang="en" x="24" y="160" transform="rotate(-90 24 160)" text-anchor="middle">Impact</text></svg><figcaption><span data-lang="zh-CN">风险热力图用影响程度和发生概率标出当前治理重点。</span><span data-lang="en">The risk heatmap marks governance priorities by impact and probability.</span></figcaption></figure>
<div>
<table>
<thead><tr><th><span data-lang="zh-CN">风险</span><span data-lang="en">Risk</span></th><th><span data-lang="zh-CN">信号</span><span data-lang="en">Signal</span></th><th><span data-lang="zh-CN">应对</span><span data-lang="en">Response</span></th></tr></thead>
<tbody><tr><td><span data-lang="zh-CN">误触发风险</span><span data-lang="en">误触发风险</span></td><td><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">frontmatter description 已存在,具备基础路由面。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">输出漂移风险</span><span data-lang="en">输出漂移风险</span></td><td><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">已生成 12 / 20 类报告证据。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">证据不足风险</span><span data-lang="en">证据不足风险</span></td><td><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">已生成 12 / 20 类报告证据。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">包体膨胀风险</span><span data-lang="en">包体膨胀风险</span></td><td><span data-lang="zh-CN">SKILL.md 约 864 个词/字。</span><span data-lang="en">SKILL.md 约 864 个词/字。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">跨平台迁移风险</span><span data-lang="en">跨平台迁移风险</span></td><td><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml 已存在。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr></tbody>
<tbody><tr><td><span data-lang="zh-CN">误触发风险</span><span data-lang="en">Trigger risk</span></td><td><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">输出漂移风险</span><span data-lang="en">Output drift risk</span></td><td><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 20 evidence report types.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">证据不足风险</span><span data-lang="en">Evidence gap risk</span></td><td><span data-lang="zh-CN">已生成 12 / 20 类报告证据。</span><span data-lang="en">Generated 12 / 20 evidence report types.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">包体膨胀风险</span><span data-lang="en">Package bloat risk</span></td><td><span data-lang="zh-CN">SKILL.md 约 864 个词/字。</span><span data-lang="en">SKILL.md is about 864 words/characters.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">跨平台迁移风险</span><span data-lang="en">Portability risk</span></td><td><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr></tbody>
</table>
</div>
</div>
@@ -807,7 +807,7 @@
<p><span data-lang="zh-CN">让 reviewer 快速确认关键文件、目录和资产分布。</span><span data-lang="en">Lets reviewers confirm key files, directories, and asset distribution quickly.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text x="20" y="30" class="chart-title">资产分布</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-14.3" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-28.6" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-42.9" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="28.6 71.4" stroke-dashoffset="-57.1" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-85.7" pathLength="100" transform="rotate(-90 130 130)"/><text x="130" y="136" text-anchor="middle">42项</text><text x="235" y="78">SKILL.md</text><text x="235" y="100">README.md</text><text x="235" y="122">agents/interface.yaml</text><text x="235" y="144">manifest.json</text><text x="235" y="166">references</text><text x="235" y="188">scripts</text></svg><figcaption>资产分布图展示当前包体的文件和目录重心。</figcaption></figure>
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-14.3" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-28.6" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-42.9" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="28.6 71.4" stroke-dashoffset="-57.1" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="14.3 85.7" stroke-dashoffset="-85.7" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">42项</text><text data-lang="en" x="130" y="136" text-anchor="middle">42 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
<table>
<thead><tr><th><span data-lang="zh-CN">路径</span><span data-lang="en">Path</span></th><th><span data-lang="zh-CN">作用</span><span data-lang="en">Role</span></th><th><span data-lang="zh-CN">类型</span><span data-lang="en">Type</span></th></tr></thead>
<tbody><tr><td>SKILL.md</td><td><span data-lang="zh-CN">Skill 入口文件</span><span data-lang="en">Skill entrypoint</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>README.md</td><td><span data-lang="zh-CN">人类可读使用说明</span><span data-lang="en">Human-readable usage guide</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>agents/interface.yaml</td><td><span data-lang="zh-CN">跨平台接口元数据</span><span data-lang="en">Neutral interface metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>manifest.json</td><td><span data-lang="zh-CN">生命周期与打包元数据</span><span data-lang="en">Lifecycle and portability metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>references</td><td><span data-lang="zh-CN">扩展指导与复用资料</span><span data-lang="en">Extended guidance and reusable notes</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>scripts</td><td><span data-lang="zh-CN">确定性脚本或本地工具</span><span data-lang="en">Deterministic helpers or local tooling</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>evals</td><td><span data-lang="zh-CN">触发与质量检查</span><span data-lang="en">Trigger and quality checks</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>reports</td><td><span data-lang="zh-CN">生成的证据与总结报告</span><span data-lang="en">Generated evidence and overview artifacts</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr></tbody>
@@ -823,7 +823,7 @@
<p><span data-lang="zh-CN">把下一步升级收束为少数高价值动作。</span><span data-lang="en">Keeps next iteration moves focused and actionable.</span></p>
</div>
<div>
<div class="chart-grid"><figure class="chart-figure" data-chart="timeline"><svg viewBox="0 0 520 210" role="img" aria-label="迭代时间"><text x="20" y="30" class="chart-title">迭代时间</text><line x1="60" y1="92" x2="440" y2="92" class="chart-line"/><circle cx="60" cy="92" r="10" fill="#1B365D"/><text x="60" y="126" text-anchor="middle">下一步 1</text><text x="60" y="150" text-anchor="middle">Tighten trigger a…</text><circle cx="250" cy="92" r="10" fill="#1B365D"/><text x="250" y="126" text-anchor="middle">下一步 2</text><text x="250" y="150" text-anchor="middle">Add the first exe…</text><circle cx="440" cy="92" r="10" fill="#1B365D"/><text x="440" y="126" text-anchor="middle">下一步 3</text><text x="440" y="150" text-anchor="middle">Promote from scaf…</text></svg><figcaption>迭代时间线把下一步升级收束成少数可执行动作。</figcaption></figure></div>
<div class="chart-grid"><figure class="chart-figure" data-chart="timeline"><svg viewBox="0 0 520 210" role="img" aria-label="迭代时间"><text data-lang="zh-CN" x="20" y="30" class="chart-title">迭代时间</text><text data-lang="en" x="20" y="30" class="chart-title">Iteration Timeline</text><line x1="60" y1="92" x2="440" y2="92" class="chart-line"/><circle cx="60" cy="92" r="10" fill="#1B365D"/><text data-lang="zh-CN" x="60" y="126" text-anchor="middle">下一步 1</text><text data-lang="en" x="60" y="126" text-anchor="middle">Next 1</text><text data-lang="zh-CN" x="60" y="150" text-anchor="middle">Tighten trigger a…</text><text data-lang="en" x="60" y="150" text-anchor="middle">Tighten trigger a…</text><circle cx="250" cy="92" r="10" fill="#1B365D"/><text data-lang="zh-CN" x="250" y="126" text-anchor="middle">下一步 2</text><text data-lang="en" x="250" y="126" text-anchor="middle">Next 2</text><text data-lang="zh-CN" x="250" y="150" text-anchor="middle">Add the first exe…</text><text data-lang="en" x="250" y="150" text-anchor="middle">Add the first exe…</text><circle cx="440" cy="92" r="10" fill="#1B365D"/><text data-lang="zh-CN" x="440" y="126" text-anchor="middle">下一步 3</text><text data-lang="en" x="440" y="126" text-anchor="middle">Next 3</text><text data-lang="zh-CN" x="440" y="150" text-anchor="middle">Promote from scaf…</text><text data-lang="en" x="440" y="150" text-anchor="middle">Promote from scaf…</text></svg><figcaption><span data-lang="zh-CN">迭代时间线把下一步升级收束成少数可执行动作。</span><span data-lang="en">The iteration timeline narrows the next upgrade into a few executable moves.</span></figcaption></figure></div>
<div class="roadmap"><article class='roadmap-item'><span class='step'><span data-lang="zh-CN">下一步 1</span><span data-lang="en">Next 1</span></span><h3><span data-lang="zh-CN">收紧触发与排除边界</span><span data-lang="en">Tighten trigger and exclusions</span></h3><p><span data-lang="zh-CN">在继续扩展前,需要先把相邻但不应触发的场景说清楚。</span><span data-lang="en">The package needs clearer near-neighbor exclusions before it grows.</span></p><ul class="compact-list"><li><span data-lang="zh-CN">增加 3 到 5 个应触发和不应触发的例子。</span><span data-lang="en">Add 3 to 5 should-trigger and should-not-trigger examples.</span></li><li><span data-lang="zh-CN">精炼 frontmatter description,明确重复任务和非目标。</span><span data-lang="en">Refine the frontmatter description to name the recurring job and non-goals.</span></li><li><span data-lang="zh-CN">扩展包体前先跑一轮触发评估。</span><span data-lang="en">Run a first trigger evaluation pass before expanding the package.</span></li></ul><p class='unlock'><span data-lang="zh-CN">路由更清晰,误触发更少。</span><span data-lang="en">Cleaner routing and fewer accidental activations.</span></p></article><article class='roadmap-item'><span class='step'><span data-lang="zh-CN">下一步 2</span><span data-lang="en">Next 2</span></span><h3><span data-lang="zh-CN">补上第一个执行资产</span><span data-lang="en">Add the first execution asset</span></h3><p><span data-lang="zh-CN">当前包体仍偏文本说明,应先增加一个能减少重复人工操作的资产。</span><span data-lang="en">The package is still mostly prose. Add one asset that removes repeated manual work.</span></p><ul class="compact-list"><li><span data-lang="zh-CN">如果用户会反复使用某段流程说明,把它沉淀到 references。</span><span data-lang="en">Move stable procedural guidance into references if users will need it repeatedly.</span></li><li><span data-lang="zh-CN">如果某个重复步骤可以执行而不是描述,就沉淀成一个确定性 helper script。</span><span data-lang="en">Create one deterministic helper script if a repeated step can be executed instead of described.</span></li><li><span data-lang="zh-CN">保持主 SKILL.md 简洁,并围绕路由与入口组织。</span><span data-lang="en">Keep the main SKILL.md compact and route-oriented.</span></li></ul><p class='unlock'><span data-lang="zh-CN">在不膨胀入口文件的前提下提升执行质量。</span><span data-lang="en">Stronger execution quality without bloating the entrypoint.</span></p></article><article class='roadmap-item'><span class='step'><span data-lang="zh-CN">下一步 3</span><span data-lang="en">Next 3</span></span><h3><span data-lang="zh-CN">从脚手架推进到生产可用</span><span data-lang="en">Promote from scaffold to production-ready</span></h3><p><span data-lang="zh-CN">第一版已经存在,下一步收益通常来自补上最小但有效的质量门禁。</span><span data-lang="en">The first version exists; the next gain usually comes from adding the smallest useful gates.</span></p><ul class="compact-list"><li><span data-lang="zh-CN">判断这个 Skill 是个人使用、团队复用,还是库级基础能力。</span><span data-lang="en">Decide whether this skill is personal, team-reused, or library-grade.</span></li><li><span data-lang="zh-CN">只添加与风险等级匹配的质量门禁。</span><span data-lang="en">Add only the gates that match that risk level.</span></li><li><span data-lang="zh-CN">一旦进入真实复用,就记录生命周期元数据和评审节奏。</span><span data-lang="en">Record lifecycle metadata and review cadence once reuse becomes real.</span></li></ul><p class='unlock'><span data-lang="zh-CN">更清晰地从探索性包体走向可维护资产。</span><span data-lang="en">A clearer path from exploratory package to maintained asset.</span></p></article></div>
</div>
</div>
+20 -20
View File
@@ -639,10 +639,10 @@
</div>
<aside class="hero-card">
<h3><span data-lang="zh-CN">核心判断</span><span data-lang="en">Core reading</span></h3>
<ul class="list"><li><span data-lang="zh-CN">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span><span data-lang="en">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span></li><li><span data-lang="zh-CN">Skill 作者、复用团队和后续 reviewer。</span><span data-lang="en">Skill 作者、复用团队和后续 reviewer</span></li><li><span data-lang="zh-CN">创建完成后建议先打开 reports/skill-overview.html,再继续扩展包体。</span><span data-lang="en">创建完成后建议先打开 reports/skill-overview.html,再继续扩展包体。</span></li></ul>
<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><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md 已存在,是 Skill 的入口。</span></small></article><article class='score-chip'><span>触发清晰</span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">frontmatter description 已存在,具备基础路由面。</span></small></article><article class='score-chip'><span>证据充分</span><strong>100</strong><i style='--score:100%'></i><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></small></article><article class='score-chip'><span>上下文成本</span><strong>42</strong><i style='--score:42%'></i><small><span data-lang="zh-CN">入口约 356 个词/字,references 约 15566 个词/字。</span><span data-lang="en">入口约 356 个词/字,references 约 15566 个词/字。</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">入口约 356 个词/字,references 约 15566 个词/字。</span><span data-lang="en">Entrypoint is about 356 words/characters; references are about 15566.</span></small></article></div>
</section>
<section id="overview">
@@ -654,9 +654,9 @@
<div class="two-col">
<article class="panel">
<h3><span data-lang="zh-CN">作用定位</span><span data-lang="en">Role</span></h3>
<ul class="list"><li><span data-lang="zh-CN">从工作流、提示词、对话记录、文档或笔记中创建、重构、评估和打包 agent skill;适用于新建 Skill、沉淀重复流程、改进现有 Skill、补充 eval 或团队复用打包。</span><span data-lang="en">Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.</span></li><li><span data-lang="zh-CN">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span><span data-lang="en">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span></li><li><span data-lang="zh-CN">交付结果:SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/output_execution_runs.md, reports/output_blind_review_pack.md, reports/output_review_kit.md, reports/output_review_adjudication.md, reports/benchmark_reproducibility.md, reports/output_blind_answer_key.json, reports/conformance_matrix.md, reports/security_trust_report.md, reports/runtime_permission_probes.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/world_class_evidence_plan.md, reports/world_class_evidence_ledger.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-overview.html</span><span data-lang="en">交付结果:SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/output_execution_runs.md, reports/output_blind_review_pack.md, reports/output_review_kit.md, reports/output_review_adjudication.md, reports/benchmark_reproducibility.md, reports/output_blind_answer_key.json, reports/conformance_matrix.md, reports/security_trust_report.md, reports/runtime_permission_probes.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/world_class_evidence_plan.md, reports/world_class_evidence_ledger.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-overview.html</span></li></ul>
<ul class="list"><li><span data-lang="zh-CN">从工作流、提示词、对话记录、文档或笔记中创建、重构、评估和打包 agent skill;适用于新建 Skill、沉淀重复流程、改进现有 Skill、补充 eval 或团队复用打包。</span><span data-lang="en">Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.</span></li><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.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/output_execution_runs.md, reports/output_blind_review_pack.md, reports/output_review_kit.md, reports/output_review_adjudication.md, reports/benchmark_reproducibility.md, reports/output_blind_answer_key.json, reports/conformance_matrix.md, reports/security_trust_report.md, reports/runtime_permission_probes.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/world_class_evidence_plan.md, reports/world_class_evidence_ledger.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-overview.html</span><span data-lang="en">Deliverables: SKILL.md, agents/interface.yaml, reports/skill-ir.json, reports/compiled_targets.md, reports/output_quality_scorecard.md, reports/output_execution_runs.md, reports/output_blind_review_pack.md, reports/output_review_kit.md, reports/output_review_adjudication.md, reports/benchmark_reproducibility.md, reports/output_blind_answer_key.json, reports/conformance_matrix.md, reports/security_trust_report.md, reports/runtime_permission_probes.md, reports/skill_atlas.html, reports/registry_audit.md, reports/package_verification.md, reports/install_simulation.md, reports/upgrade_check.md, reports/adoption_drift_report.md, reports/review_waivers.md, reports/world_class_evidence_plan.md, reports/world_class_evidence_ledger.md, reports/review_annotations.md, reports/review-studio.html, reports/skill-overview.html</span></li></ul>
</article>
<figure class="chart-figure" data-chart="flow"><svg viewBox="0 0 620 170" role="img" aria-label="交付流程"><text x="20" y="28" class="chart-title">交付流程</text><path d="M188 93 H248 M398 93 H458" class="chart-line"/><g><rect x="38" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text x="113" y="99" text-anchor="middle">输入材料</text></g><g><rect x="248" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text x="323" y="99" text-anchor="middle">Skill 包体</text></g><g><rect x="458" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text x="533" y="99" text-anchor="middle">可复用能力</text></g></svg><figcaption>交付流程把用户输入、生成的包体和可复用能力放在一条线上。</figcaption></figure>
<figure class="chart-figure" data-chart="flow"><svg viewBox="0 0 620 170" 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">Delivery Flow</text><path d="M188 93 H248 M398 93 H458" class="chart-line"/><g><rect x="38" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="113" y="99" text-anchor="middle">输入材料</text><text data-lang="en" x="113" y="99" text-anchor="middle">Input material</text></g><g><rect x="248" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="323" y="99" text-anchor="middle">Skill 包体</text><text data-lang="en" x="323" y="99" text-anchor="middle">Skill package</text></g><g><rect x="458" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="533" y="99" text-anchor="middle">可复用能力</text><text data-lang="en" x="533" y="99" text-anchor="middle">Reusable capability</text></g></svg><figcaption><span data-lang="zh-CN">交付流程把用户输入、生成的包体和可复用能力放在一条线上。</span><span data-lang="en">The delivery flow places user input, generated package, and reusable capability on one path.</span></figcaption></figure>
</div>
</div>
</section>
@@ -675,13 +675,13 @@
<div class="section-body metrics-report">
<div class="metrics-flow">
<div class="metrics-primary">
<figure class="chart-figure" data-chart="radar"><svg viewBox="0 0 300 300" role="img" aria-label="评分雷达"><text x="20" y="28" class="chart-title">评分雷达</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 x="150.0" y="26.0" text-anchor="middle" dominant-baseline="middle">完整度</text><text x="267.9" y="111.7" text-anchor="middle" dominant-baseline="middle">触发清晰</text><text x="222.9" y="250.3" text-anchor="middle" dominant-baseline="middle">证据充分</text><text x="77.1" y="250.3" text-anchor="middle" dominant-baseline="middle">可维护性</text><text x="32.1" y="111.7" text-anchor="middle" dominant-baseline="middle">可迁移性</text></svg><figcaption>评分雷达展示结构完整度、触发边界、证据、维护和迁移的相对强弱。</figcaption></figure>
<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>完整度</b><em>100</em><small><span data-lang="zh-CN">SKILL.md 已存在,是 Skill 的入口。</span><span data-lang="en">SKILL.md 已存在,是 Skill 的入口。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>触发清晰</b><em>100</em><small><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">frontmatter description 已存在,具备基础路由面。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>证据充分</b><em>100</em><small><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>可维护性</b><em>100</em><small><span data-lang="zh-CN">SKILL.md 约 356 个词/字。</span><span data-lang="en">SKILL.md 约 356 个词/字。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">稳定</span><span data-lang="en">Stable</span></span><b>可迁移性</b><em>100</em><small><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml 已存在。</span></small></li><li><span class='metric-status'><span data-lang="zh-CN">关注</span><span data-lang="en">Watch</span></span><b>上下文成本</b><em>42</em><small><span data-lang="zh-CN">入口约 356 个词/字,references 约 15566 个词/字。</span><span data-lang="en">入口约 356 个词/字,references 约 15566 个词/字。</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 约 356 个词/字。</span><span data-lang="en">SKILL.md is about 356 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">入口约 356 个词/字,references 约 15566 个词/字。</span><span data-lang="en">Entrypoint is about 356 words/characters; references are about 15566.</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><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 已存在,是 Skill 的入口。</span></li><li><span data-lang="zh-CN">README.md 已存在,便于人工阅读。</span><span data-lang="en">README.md 已存在,便于人工阅读。</span></li><li><span data-lang="zh-CN">agents/interface.yaml 已存在,便于跨平台适配。</span><span data-lang="en">agents/interface.yaml 已存在,便于跨平台适配。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>触发清晰</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">frontmatter description 已存在,具备基础路由面。</span></li><li><span data-lang="zh-CN">description 有足够长度说明任务边界。</span><span data-lang="en">description 有足够长度说明任务边界。</span></li><li><span data-lang="zh-CN">description 已包含使用场景或排除边界信号。</span><span data-lang="en">description 已包含使用场景或排除边界信号。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>证据充分</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">已生成 20 / 20 类报告证据。</span></li><li><span data-lang="zh-CN">skill-ir.json 已存在。</span><span data-lang="en">skill-ir.json 已存在。</span></li><li><span data-lang="zh-CN">compiled_targets.json 已存在。</span><span data-lang="en">compiled_targets.json 已存在。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>可维护性</span><strong>100</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">SKILL.md 约 356 个词/字。</span><span data-lang="en">SKILL.md 约 356 个词/字。</span></li><li><span data-lang="zh-CN">入口文件保持克制,可维护性较好。</span><span data-lang="en">入口文件保持克制,可维护性较好。</span></li><li><span data-lang="zh-CN">references/ 已承载扩展指导。</span><span data-lang="en">references/ 已承载扩展指导。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>可迁移性</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 已存在。</span></li><li><span data-lang="zh-CN">manifest.json 已存在。</span><span data-lang="en">manifest.json 已存在。</span></li><li><span data-lang="zh-CN">目标平台或 adapter target 已声明。</span><span data-lang="en">目标平台或 adapter target 已声明。</span></li></ul></div></article><article class='metric-card'><div class='metric-card-head'><span class='metric-label'>上下文成本</span><strong>42</strong></div><div class='metric-card-body'><ul class="compact-list"><li><span data-lang="zh-CN">入口约 356 个词/字,references 约 15566 个词/字。</span><span data-lang="en">入口约 356 个词/字,references 约 15566 个词/字。</span></li><li><span data-lang="zh-CN">分数越高代表上下文成本越低。</span><span data-lang="en">分数越高代表上下文成本越低。</span></li><li><span data-lang="zh-CN">上下文成本偏高,建议压缩入口或拆分 references。</span><span data-lang="en">上下文成本偏高,建议压缩入口或拆分 references</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 约 356 个词/字。</span><span data-lang="en">SKILL.md is about 356 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">入口约 356 个词/字,references 约 15566 个词/字。</span><span data-lang="en">Entrypoint is about 356 words/characters; references are about 15566.</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>
@@ -693,10 +693,10 @@
<p><span data-lang="zh-CN">判断这个 Skill 在能力地图中的位置和复用范围。</span><span data-lang="en">Places this skill on a capability map and clarifies reuse scope.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="matrix"><svg viewBox="0 0 520 460" role="img" aria-label="能力矩阵"><text x="20" y="30" class="chart-title">能力矩阵</text><rect x="70" y="70" width="380" height="320" fill="#faf9f5" stroke="#e8e6dc"/><line x1="260" y1="70" x2="260" y2="390" stroke="#e8e6dc"/><line x1="70" y1="230" x2="450" y2="230" stroke="#e8e6dc"/><text x="260" y="424" text-anchor="middle">执行确定性</text><text x="22" y="230" transform="rotate(-90 22 230)" text-anchor="middle">知识密度</text><circle cx="343.6" cy="174.0" r="12" fill="#1B365D"/><text x="361.6" y="179.0">Execution operation</text></svg><figcaption>能力矩阵说明这个 Skill 更偏知识密集还是执行确定。</figcaption></figure>
<figure class="chart-figure" data-chart="matrix"><svg viewBox="0 0 520 460" role="img" aria-label="能力矩阵"><text data-lang="zh-CN" x="20" y="30" class="chart-title">能力矩阵</text><text data-lang="en" x="20" y="30" class="chart-title">Capability Matrix</text><rect x="70" y="70" width="380" height="320" fill="#faf9f5" stroke="#e8e6dc"/><line x1="260" y1="70" x2="260" y2="390" stroke="#e8e6dc"/><line x1="70" y1="230" x2="450" y2="230" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="424" text-anchor="middle">执行确定性</text><text data-lang="en" x="260" y="424" text-anchor="middle">Execution certainty</text><text data-lang="zh-CN" x="22" y="230" transform="rotate(-90 22 230)" text-anchor="middle">知识密度</text><text data-lang="en" x="22" y="230" transform="rotate(-90 22 230)" text-anchor="middle">Knowledge density</text><circle cx="343.6" cy="174.0" r="12" fill="#1B365D"/><text data-lang="zh-CN" x="361.6" y="179.0">Execution operation</text><text data-lang="en" x="361.6" y="179.0">Execution operation</text></svg><figcaption><span data-lang="zh-CN">能力矩阵说明这个 Skill 更偏知识密集还是执行确定。</span><span data-lang="en">The capability matrix shows whether the skill leans toward knowledge density or execution certainty.</span></figcaption></figure>
<article class="panel">
<h3><span data-lang="zh-CN">画像摘要</span><span data-lang="en">Profile</span></h3>
<ul class="list"><li><span data-lang="zh-CN">能力类型:Execution operation</span><span data-lang="en">能力类型:Execution operation</span></li><li><span data-lang="zh-CN">成熟度:governed</span><span data-lang="en">成熟度:governed</span></li><li><span data-lang="zh-CN">触发强度:手动触发 + description 路由</span><span data-lang="en">触发强度:手动触发 + description 路由</span></li><li><span data-lang="zh-CN">复用范围:跨平台</span><span data-lang="en">复用范围:跨平台</span></li></ul>
<ul class="list"><li><span data-lang="zh-CN">能力类型:Execution operation</span><span data-lang="en">Capability type: Execution operation</span></li><li><span data-lang="zh-CN">成熟度:governed</span><span data-lang="en">Maturity: governed</span></li><li><span data-lang="zh-CN">触发强度:手动触发 + description 路由</span><span data-lang="en">Trigger strength: Manual activation plus description-based routing</span></li><li><span data-lang="zh-CN">复用范围:跨平台</span><span data-lang="en">Reuse scope: Cross-platform</span></li></ul>
</article>
</div>
</div>
@@ -709,7 +709,7 @@
<p><span data-lang="zh-CN">说明入口、参考、脚本、评估和报告如何组成一个稳定闭环。</span><span data-lang="en">Explains how entrypoint, references, scripts, evals, and reports form a stable loop.</span></p>
</div>
<div>
<div class="chart-grid"><figure class="chart-figure" data-chart="layers"><svg viewBox="0 0 520 320" role="img" aria-label="Skill principle flow"><text x="20" y="30" class="chart-title">分层结构</text><rect x="70" y="55" width="380" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text x="260" y="77" text-anchor="middle">入口层</text><rect x="88" y="103" width="344" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text x="260" y="125" text-anchor="middle">参考层</text><rect x="106" y="151" width="308" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text x="260" y="173" text-anchor="middle">脚本层</text><rect x="124" y="199" width="272" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text x="260" y="221" text-anchor="middle">评估层</text><rect x="142" y="247" width="236" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text x="260" y="269" text-anchor="middle">报告层</text></svg><figcaption>分层结构展示入口、参考、脚本、评估和报告如何各司其职。</figcaption></figure></div>
<div class="chart-grid"><figure class="chart-figure" data-chart="layers"><svg viewBox="0 0 520 320" role="img" aria-label="Skill principle flow"><text data-lang="zh-CN" x="20" y="30" class="chart-title">分层结构</text><text data-lang="en" x="20" y="30" class="chart-title">Layered Structure</text><rect x="70" y="55" width="380" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="77" text-anchor="middle">入口层</text><text data-lang="en" x="260" y="77" text-anchor="middle">Entrypoint layer</text><rect x="88" y="103" width="344" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="125" text-anchor="middle">参考层</text><text data-lang="en" x="260" y="125" text-anchor="middle">Reference layer</text><rect x="106" y="151" width="308" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="173" text-anchor="middle">脚本层</text><text data-lang="en" x="260" y="173" text-anchor="middle">Script layer</text><rect x="124" y="199" width="272" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="221" text-anchor="middle">评估层</text><text data-lang="en" x="260" y="221" text-anchor="middle">Evaluation layer</text><rect x="142" y="247" width="236" height="34" rx="7" fill="#F6F8FB" stroke="#e8e6dc"/><text data-lang="zh-CN" x="260" y="269" text-anchor="middle">报告层</text><text data-lang="en" x="260" y="269" text-anchor="middle">Report layer</text></svg><figcaption><span data-lang="zh-CN">分层结构展示入口、参考、脚本、评估和报告如何各司其职。</span><span data-lang="en">The layered structure shows how entrypoint, references, scripts, evals, and reports each carry a distinct role.</span></figcaption></figure></div>
<div class="two-col">
<article class="panel">
<h3><span data-lang="zh-CN">执行流程</span><span data-lang="en">Execution Flow</span></h3>
@@ -717,7 +717,7 @@
</article>
<article class="panel">
<h3><span data-lang="zh-CN">调用方式</span><span data-lang="en">How To Use</span></h3>
<ol class="step-list"><li><span data-lang="zh-CN">当你需要把工作流或笔记沉淀成结构精简、触发清晰且带必要 eval 的可复用 Skill 时使用 $yao-meta-skill。</span><span data-lang="en">Use $yao-meta-skill to turn my workflow or notes into a reusable skill with lean structure, clear triggering, and the right evals.</span></li><li><span data-lang="zh-CN">当用户请求与该 Skill 的触发描述匹配时使用。</span><span data-lang="en">Use this skill when the request matches: Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.</span></li></ol>
<ol class="step-list"><li><span data-lang="zh-CN">当你需要把工作流或笔记沉淀成结构精简、触发清晰且带必要 eval 的可复用 Skill 时使用 $yao-meta-skill。</span><span data-lang="en">Use $yao-meta-skill to turn my workflow or notes into a reusable skill with lean structure, clear triggering, and the right evals.</span></li><li><span data-lang="zh-CN">当用户请求与该 Skill 的触发描述匹配时使用。</span><span data-lang="en">Use this skill when the request matches the frontmatter description.</span></li></ol>
</article>
</div>
</div>
@@ -739,9 +739,9 @@
</article>
<article class="panel">
<h3><span data-lang="zh-CN">输出结果</span><span data-lang="en">Outputs</span></h3>
<ul class="list"><li><span data-lang="zh-CN">原始说明可切换到英文查看;默认中文报告保留结论与结构说明。</span><span data-lang="en">A working skill package with lean SKILL.md, aligned agents/interface.yaml, justified references, scripts only when useful, eval evidence, reports, packaging metadata, and clear next iteration recommendations.</span></li><li><span data-lang="zh-CN">结构化 Skill 目录,共 8 类关键资产。</span><span data-lang="en">结构化 Skill 目录,共 8 类关键资产。</span></li></ul>
<ul class="list"><li><span data-lang="zh-CN">原始说明可切换到英文查看;默认中文报告保留结论与结构说明。</span><span data-lang="en">A working skill package with lean SKILL.md, aligned agents/interface.yaml, justified references, scripts only when useful, eval evidence, reports, packaging metadata, and clear next iteration recommendations.</span></li><li><span data-lang="zh-CN">结构化 Skill 目录,共 8 类关键资产。</span><span data-lang="en">Structured skill directory with 8 key asset groups.</span></li></ul>
<h3><span data-lang="zh-CN">不应触发</span><span data-lang="en">Should Not Trigger</span></h3>
<ul class="list"><li><span data-lang="zh-CN">只需要一次性回答、没有复用价值的临时请求。</span><span data-lang="en">只需要一次性回答、没有复用价值的临时请求。</span></li><li><span data-lang="zh-CN">要求直接执行相邻任务,而不是沉淀或使用这个 Skill。</span><span data-lang="en">要求直接执行相邻任务,而不是沉淀或使用这个 Skill。</span></li><li><span data-lang="zh-CN">缺少必要事实且用户不允许澄清的场景。</span><span data-lang="en">缺少必要事实且用户不允许澄清的场景。</span></li></ul>
<ul class="list"><li><span data-lang="zh-CN">只需要一次性回答、没有复用价值的临时请求。</span><span data-lang="en">One-off requests that do not need reusable skill behavior.</span></li><li><span data-lang="zh-CN">要求直接执行相邻任务,而不是沉淀或使用这个 Skill。</span><span data-lang="en">Requests to perform an adjacent task directly rather than create or use this skill.</span></li><li><span data-lang="zh-CN">缺少必要事实且用户不允许澄清的场景。</span><span data-lang="en">Cases that lack required facts and do not allow clarification.</span></li></ul>
</article>
</div>
</div>
@@ -756,16 +756,16 @@
<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,核心语义可先于平台打包被审查和迁移。</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">已生成目标编译报告,可审查 IR 到 OpenAIClaudegeneric 等目标契约的映射。</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">上下文成本需要补强:入口约 356 个词/字,references 约 15566 个词/字。</span><span data-lang="en">上下文成本需要补强:入口约 356 个词/字,references 约 15566 个词/字。</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">上下文成本需要补强:入口约 356 个词/字,references 约 15566 个词/字。</span><span data-lang="en">Context cost needs improvement: Entrypoint is about 356 words/characters; references are about 15566.</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">
<h3><span data-lang="zh-CN">执行证据</span><span data-lang="en">Execution Evidence</span></h3>
<ul class="list"><li><span data-lang="zh-CN">变体运行:10</span><span data-lang="en">变体运行:10</span></li><li><span data-lang="zh-CN">模型执行:0</span><span data-lang="en">模型执行:0</span></li><li><span data-lang="zh-CN">记录样本:0</span><span data-lang="en">记录样本:0</span></li><li><span data-lang="zh-CN">Token 估算:10</span><span data-lang="en">Token 估算:10</span></li></ul>
<ul class="list"><li><span data-lang="zh-CN">变体运行:10</span><span data-lang="en">Variant runs: 10</span></li><li><span data-lang="zh-CN">模型执行:0</span><span data-lang="en">Model executions: 0</span></li><li><span data-lang="zh-CN">记录样本:0</span><span data-lang="en">Recorded fixtures: 0</span></li><li><span data-lang="zh-CN">Token 估算:10</span><span data-lang="en">Token estimates: 10</span></li></ul>
</article>
<article class="panel">
<h3><span data-lang="zh-CN">盲评审定</span><span data-lang="en">Blind Adjudication</span></h3>
<ul class="list"><li><span data-lang="zh-CN">评审进度:0 / 5</span><span data-lang="en">评审进度:0 / 5</span></li><li><span data-lang="zh-CN">待评审:5</span><span data-lang="en">待评审:5</span></li><li><span data-lang="zh-CN">一致率:暂无</span><span data-lang="en">一致率:暂无</span></li><li><span data-lang="zh-CN">非法决策:0</span><span data-lang="en">非法决策:0</span></li></ul>
<ul class="list"><li><span data-lang="zh-CN">评审进度:0 / 5</span><span data-lang="en">Review progress: 0 / 5</span></li><li><span data-lang="zh-CN">待评审:5</span><span data-lang="en">Pending review: 5</span></li><li><span data-lang="zh-CN">一致率:暂无</span><span data-lang="en">Agreement rate: not available yet</span></li><li><span data-lang="zh-CN">非法决策:0</span><span data-lang="en">Invalid decisions: 0</span></li></ul>
</article>
</div>
<div class="two-col quality-panels">
@@ -789,11 +789,11 @@
<p><span data-lang="zh-CN">提前暴露误触发、漂移、证据不足和迁移风险。</span><span data-lang="en">Surfaces trigger, drift, evidence, and portability risks before the package grows.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="risk_heatmap"><svg viewBox="0 0 380 300" role="img" aria-label="风险热力"><text x="20" y="30" class="chart-title">风险热力</text><rect x="80" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="119" y="224" text-anchor="middle">0</text><rect x="166" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="205" y="224" text-anchor="middle">0</text><rect x="252" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="224" text-anchor="middle">0</text><rect x="80" y="124" width="78" height="58" rx="6" fill="#D0DCE9" stroke="#e8e6dc"/><text x="119" y="158" text-anchor="middle">2</text><rect x="166" y="124" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="205" y="158" text-anchor="middle">0</text><rect x="252" y="124" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="158" text-anchor="middle">0</text><rect x="80" y="58" width="78" height="58" rx="6" fill="#1B365D" stroke="#e8e6dc"/><text x="119" y="92" text-anchor="middle">3</text><rect x="166" y="58" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="205" y="92" text-anchor="middle">0</text><rect x="252" y="58" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="92" text-anchor="middle">0</text><text x="210" y="278" text-anchor="middle">发生概率</text><text x="24" y="160" transform="rotate(-90 24 160)" text-anchor="middle">影响程度</text></svg><figcaption>风险热力图用影响程度和发生概率标出当前治理重点。</figcaption></figure>
<figure class="chart-figure" data-chart="risk_heatmap"><svg viewBox="0 0 380 300" role="img" aria-label="风险热力"><text data-lang="zh-CN" x="20" y="30" class="chart-title">风险热力</text><text data-lang="en" x="20" y="30" class="chart-title">Risk Heatmap</text><rect x="80" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="119" y="224" text-anchor="middle">0</text><rect x="166" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="205" y="224" text-anchor="middle">0</text><rect x="252" y="190" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="224" text-anchor="middle">0</text><rect x="80" y="124" width="78" height="58" rx="6" fill="#D0DCE9" stroke="#e8e6dc"/><text x="119" y="158" text-anchor="middle">2</text><rect x="166" y="124" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="205" y="158" text-anchor="middle">0</text><rect x="252" y="124" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="158" text-anchor="middle">0</text><rect x="80" y="58" width="78" height="58" rx="6" fill="#1B365D" stroke="#e8e6dc"/><text x="119" y="92" text-anchor="middle">3</text><rect x="166" y="58" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="205" y="92" text-anchor="middle">0</text><rect x="252" y="58" width="78" height="58" rx="6" fill="#faf9f5" stroke="#e8e6dc"/><text x="291" y="92" text-anchor="middle">0</text><text data-lang="zh-CN" x="210" y="278" text-anchor="middle">发生概率</text><text data-lang="en" x="210" y="278" text-anchor="middle">Probability</text><text data-lang="zh-CN" x="24" y="160" transform="rotate(-90 24 160)" text-anchor="middle">影响程度</text><text data-lang="en" x="24" y="160" transform="rotate(-90 24 160)" text-anchor="middle">Impact</text></svg><figcaption><span data-lang="zh-CN">风险热力图用影响程度和发生概率标出当前治理重点。</span><span data-lang="en">The risk heatmap marks governance priorities by impact and probability.</span></figcaption></figure>
<div>
<table>
<thead><tr><th><span data-lang="zh-CN">风险</span><span data-lang="en">Risk</span></th><th><span data-lang="zh-CN">信号</span><span data-lang="en">Signal</span></th><th><span data-lang="zh-CN">应对</span><span data-lang="en">Response</span></th></tr></thead>
<tbody><tr><td><span data-lang="zh-CN">误触发风险</span><span data-lang="en">误触发风险</span></td><td><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">frontmatter description 已存在,具备基础路由面。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">输出漂移风险</span><span data-lang="en">输出漂移风险</span></td><td><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">证据不足风险</span><span data-lang="en">证据不足风险</span></td><td><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">已生成 20 / 20 类报告证据。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">包体膨胀风险</span><span data-lang="en">包体膨胀风险</span></td><td><span data-lang="zh-CN">SKILL.md 约 356 个词/字。</span><span data-lang="en">SKILL.md 约 356 个词/字。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr><tr><td><span data-lang="zh-CN">跨平台迁移风险</span><span data-lang="en">跨平台迁移风险</span></td><td><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml 已存在。</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">先补证据和边界,再增加包体复杂度。</span></td></tr></tbody>
<tbody><tr><td><span data-lang="zh-CN">误触发风险</span><span data-lang="en">Trigger risk</span></td><td><span data-lang="zh-CN">frontmatter description 已存在,具备基础路由面。</span><span data-lang="en">The frontmatter description exists, giving the skill a basic routing surface.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">输出漂移风险</span><span data-lang="en">Output drift risk</span></td><td><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">证据不足风险</span><span data-lang="en">Evidence gap risk</span></td><td><span data-lang="zh-CN">已生成 20 / 20 类报告证据。</span><span data-lang="en">Generated 20 / 20 evidence report types.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">包体膨胀风险</span><span data-lang="en">Package bloat risk</span></td><td><span data-lang="zh-CN">SKILL.md 约 356 个词/字。</span><span data-lang="en">SKILL.md is about 356 words/characters.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr><tr><td><span data-lang="zh-CN">跨平台迁移风险</span><span data-lang="en">Portability risk</span></td><td><span data-lang="zh-CN">agents/interface.yaml 已存在。</span><span data-lang="en">agents/interface.yaml exists.</span></td><td><span data-lang="zh-CN">先补证据和边界,再增加包体复杂度。</span><span data-lang="en">Improve evidence and boundaries before adding package complexity.</span></td></tr></tbody>
</table>
</div>
</div>
@@ -807,7 +807,7 @@
<p><span data-lang="zh-CN">让 reviewer 快速确认关键文件、目录和资产分布。</span><span data-lang="en">Lets reviewers confirm key files, directories, and asset distribution quickly.</span></p>
</div>
<div class="two-col">
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text x="20" y="30" class="chart-title">资产分布</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-0.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-1.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-2.2" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="23.7 76.3" stroke-dashoffset="-3.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="73.3 26.7" stroke-dashoffset="-26.7" pathLength="100" transform="rotate(-90 130 130)"/><text x="130" y="136" text-anchor="middle">370</text><text x="235" y="78">SKILL.md</text><text x="235" y="100">README.md</text><text x="235" y="122">agents/interface.yaml</text><text x="235" y="144">manifest.json</text><text x="235" y="166">references</text><text x="235" y="188">scripts</text></svg><figcaption>资产分布图展示当前包体的文件和目录重心。</figcaption></figure>
<figure class="chart-figure" data-chart="asset_donut"><svg viewBox="0 0 430 270" role="img" aria-label="资产分布"><text data-lang="zh-CN" x="20" y="30" class="chart-title">资产分布</text><text data-lang="en" x="20" y="30" class="chart-title">Asset Distribution</text><circle cx="130" cy="130" r="70" fill="none" stroke="#1B365D" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="0.0" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#2D5A8A" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-0.7" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#D0DCE9" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-1.5" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#E4ECF5" stroke-width="24" stroke-dasharray="0.7 99.3" stroke-dashoffset="-2.2" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#e8e6dc" stroke-width="24" stroke-dasharray="23.4 76.6" stroke-dashoffset="-2.9" pathLength="100" transform="rotate(-90 130 130)"/><circle cx="130" cy="130" r="70" fill="none" stroke="#504e49" stroke-width="24" stroke-dasharray="73.7 26.3" stroke-dashoffset="-26.3" pathLength="100" transform="rotate(-90 130 130)"/><text data-lang="zh-CN" x="130" y="136" text-anchor="middle">372</text><text data-lang="en" x="130" y="136" text-anchor="middle">372 items</text><text data-lang="zh-CN" x="235" y="78">SKILL.md</text><text data-lang="en" x="235" y="78">SKILL.md</text><text data-lang="zh-CN" x="235" y="100">README.md</text><text data-lang="en" x="235" y="100">README.md</text><text data-lang="zh-CN" x="235" y="122">agents/interface.yaml</text><text data-lang="en" x="235" y="122">agents/interface.yaml</text><text data-lang="zh-CN" x="235" y="144">manifest.json</text><text data-lang="en" x="235" y="144">manifest.json</text><text data-lang="zh-CN" x="235" y="166">references</text><text data-lang="en" x="235" y="166">references</text><text data-lang="zh-CN" x="235" y="188">scripts</text><text data-lang="en" x="235" y="188">scripts</text></svg><figcaption><span data-lang="zh-CN">资产分布图展示当前包体的文件和目录重心。</span><span data-lang="en">The asset distribution chart shows where files and directories are concentrated.</span></figcaption></figure>
<table>
<thead><tr><th><span data-lang="zh-CN">路径</span><span data-lang="en">Path</span></th><th><span data-lang="zh-CN">作用</span><span data-lang="en">Role</span></th><th><span data-lang="zh-CN">类型</span><span data-lang="en">Type</span></th></tr></thead>
<tbody><tr><td>SKILL.md</td><td><span data-lang="zh-CN">Skill 入口文件</span><span data-lang="en">Skill entrypoint</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>README.md</td><td><span data-lang="zh-CN">人类可读使用说明</span><span data-lang="en">Human-readable usage guide</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>agents/interface.yaml</td><td><span data-lang="zh-CN">跨平台接口元数据</span><span data-lang="en">Neutral interface metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>manifest.json</td><td><span data-lang="zh-CN">生命周期与打包元数据</span><span data-lang="en">Lifecycle and portability metadata</span></td><td><span data-lang="zh-CN">文件</span><span data-lang="en">file</span></td></tr><tr><td>references</td><td><span data-lang="zh-CN">扩展指导与复用资料</span><span data-lang="en">Extended guidance and reusable notes</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>scripts</td><td><span data-lang="zh-CN">确定性脚本或本地工具</span><span data-lang="en">Deterministic helpers or local tooling</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>evals</td><td><span data-lang="zh-CN">触发与质量检查</span><span data-lang="en">Trigger and quality checks</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr><tr><td>reports</td><td><span data-lang="zh-CN">生成的证据与总结报告</span><span data-lang="en">Generated evidence and overview artifacts</span></td><td><span data-lang="zh-CN">目录</span><span data-lang="en">folder</span></td></tr></tbody>
@@ -823,7 +823,7 @@
<p><span data-lang="zh-CN">把下一步升级收束为少数高价值动作。</span><span data-lang="en">Keeps next iteration moves focused and actionable.</span></p>
</div>
<div>
<div class="chart-grid"><figure class="chart-figure" data-chart="timeline"><svg viewBox="0 0 520 210" role="img" aria-label="迭代时间"><text x="20" y="30" class="chart-title">迭代时间</text><line x1="60" y1="92" x2="440" y2="92" class="chart-line"/><circle cx="60" cy="92" r="10" fill="#1B365D"/><text x="60" y="126" text-anchor="middle">下一步 1</text><text x="60" y="150" text-anchor="middle">Borrow one proven…</text><circle cx="250" cy="92" r="10" fill="#1B365D"/><text x="250" y="126" text-anchor="middle">下一步 2</text><text x="250" y="150" text-anchor="middle">Harden portabilit…</text><circle cx="440" cy="92" r="10" fill="#1B365D"/><text x="440" y="126" text-anchor="middle">下一步 3</text><text x="440" y="150" text-anchor="middle">Create an iterati…</text></svg><figcaption>迭代时间线把下一步升级收束成少数可执行动作。</figcaption></figure></div>
<div class="chart-grid"><figure class="chart-figure" data-chart="timeline"><svg viewBox="0 0 520 210" role="img" aria-label="迭代时间"><text data-lang="zh-CN" x="20" y="30" class="chart-title">迭代时间</text><text data-lang="en" x="20" y="30" class="chart-title">Iteration Timeline</text><line x1="60" y1="92" x2="440" y2="92" class="chart-line"/><circle cx="60" cy="92" r="10" fill="#1B365D"/><text data-lang="zh-CN" x="60" y="126" text-anchor="middle">下一步 1</text><text data-lang="en" x="60" y="126" text-anchor="middle">Next 1</text><text data-lang="zh-CN" x="60" y="150" text-anchor="middle">Borrow one proven…</text><text data-lang="en" x="60" y="150" text-anchor="middle">Borrow one proven…</text><circle cx="250" cy="92" r="10" fill="#1B365D"/><text data-lang="zh-CN" x="250" y="126" text-anchor="middle">下一步 2</text><text data-lang="en" x="250" y="126" text-anchor="middle">Next 2</text><text data-lang="zh-CN" x="250" y="150" text-anchor="middle">Harden portabilit…</text><text data-lang="en" x="250" y="150" text-anchor="middle">Harden portabilit…</text><circle cx="440" cy="92" r="10" fill="#1B365D"/><text data-lang="zh-CN" x="440" y="126" text-anchor="middle">下一步 3</text><text data-lang="en" x="440" y="126" text-anchor="middle">Next 3</text><text data-lang="zh-CN" x="440" y="150" text-anchor="middle">Create an iterati…</text><text data-lang="en" x="440" y="150" text-anchor="middle">Create an iterati…</text></svg><figcaption><span data-lang="zh-CN">迭代时间线把下一步升级收束成少数可执行动作。</span><span data-lang="en">The iteration timeline narrows the next upgrade into a few executable moves.</span></figcaption></figure></div>
<div class="roadmap"><article class='roadmap-item'><span class='step'><span data-lang="zh-CN">下一步 1</span><span data-lang="en">Next 1</span></span><h3><span data-lang="zh-CN">有选择地借鉴一个成熟模式</span><span data-lang="en">Borrow one proven pattern on purpose</span></h3><p><span data-lang="zh-CN">已经有公开 benchmark 对象,下一步应主动选择一个模式借鉴,而不是松散吸收所有做法。</span><span data-lang="en">You already have public benchmark objects. The next gain is to choose one pattern intentionally instead of absorbing everything loosely.</span></p><ul class="compact-list"><li><span data-lang="zh-CN">阅读 `obra/superpowers` 中最值得借鉴的模式。</span><span data-lang="en">Read the strongest pattern from obra/superpowers.</span></li><li><span data-lang="zh-CN">先判断要借鉴的是方法、结构、执行方式还是可迁移性,并且第一轮只借鉴其中一个。</span><span data-lang="en">Decide whether to borrow method, structure, execution, or portability, but only one of them first.</span></li><li><span data-lang="zh-CN">记录本轮不借鉴的内容,避免包体过重。</span><span data-lang="en">Record what you will not borrow so the package stays light.</span></li></ul><p class='unlock'><span data-lang="zh-CN">包体形态更清晰,也减少偶然过度设计。</span><span data-lang="en">A cleaner package shape with less accidental over-design.</span></p></article><article class='roadmap-item'><span class='step'><span data-lang="zh-CN">下一步 2</span><span data-lang="en">Next 2</span></span><h3><span data-lang="zh-CN">加固跨环境语义</span><span data-lang="en">Harden portability semantics</span></h3><p><span data-lang="zh-CN">这个 Skill 已经面向跨环境复用,因此早期就需要把契约语义说清楚。</span><span data-lang="en">The skill already signals reuse across environments, so contract clarity matters early.</span></p><ul class="compact-list"><li><span data-lang="zh-CN">确认激活模式、执行上下文和信任假设。</span><span data-lang="en">Confirm activation mode, execution context, and trust assumptions.</span></li><li><span data-lang="zh-CN">补充或复核非原生目标端的降级策略。</span><span data-lang="en">Add or review degradation strategy for non-native targets.</span></li><li><span data-lang="zh-CN">至少打包一次 Skill,用来验证 adapter 预期。</span><span data-lang="en">Package the skill once to verify adapter expectations.</span></li></ul><p class='unlock'><span data-lang="zh-CN">跨环境复用更安全,目标漂移更少。</span><span data-lang="en">Safer cross-environment reuse with less target drift.</span></p></article><article class='roadmap-item'><span class='step'><span data-lang="zh-CN">下一步 3</span><span data-lang="en">Next 3</span></span><h3><span data-lang="zh-CN">建立迭代证据回路</span><span data-lang="en">Create an iteration evidence loop</span></h3><p><span data-lang="zh-CN">第一版之后,包体应该能说明改了什么以及为什么改。</span><span data-lang="en">The package should show what changed and why after the first draft.</span></p><ul class="compact-list"><li><span data-lang="zh-CN">生成 HTML Skill 报告,并保持它与包体内容一致。</span><span data-lang="en">Generate the HTML skill report and keep it aligned with the package.</span></li><li><span data-lang="zh-CN">记录参考扫描的取舍和非目标。</span><span data-lang="en">Record reference scan choices and non-goals.</span></li><li><span data-lang="zh-CN">在继续增加文件前,明确记录下一轮迭代选择。</span><span data-lang="en">Capture the next iteration choice explicitly before adding more files.</span></li></ul><p class='unlock'><span data-lang="zh-CN">让下一位作者或评审者更容易接手。</span><span data-lang="en">A clearer path for the next author or reviewer.</span></p></article></div>
</div>
</div>
+4 -4
View File
@@ -437,7 +437,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 99
"file_count": 101
},
{
"path": "evals",
@@ -452,7 +452,7 @@
"file_count": 207
}
],
"file_count": 370,
"file_count": 372,
"folder_count": 4,
"distribution": [
{
@@ -477,7 +477,7 @@
},
{
"label": "scripts",
"value": 99
"value": 101
},
{
"label": "evals",
@@ -606,7 +606,7 @@
"path": "scripts",
"label": "Deterministic helpers or local tooling",
"kind": "folder",
"file_count": 99
"file_count": 101
},
{
"path": "evals",
+15 -169
View File
@@ -5,174 +5,20 @@ import json
from pathlib import Path
from skill_report_charts import render_chart_set
from skill_report_i18n import (
KIND_ZH,
LABEL_EN,
PACKAGE_LABEL_ZH,
bi_item,
bi_span,
en_for,
mode_zh,
readable_description_zh,
)
from skill_report_layout import render_language_switch, render_report_nav, skill_overview_css, skill_overview_script
from skill_report_model import REPORT_NAV_V2, build_report_model
TEXT_ZH = {
"Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.": "从工作流、提示词、对话记录、文档或笔记中创建、重构、评估和打包 agent skill;适用于新建 Skill、沉淀重复流程、改进现有 Skill、补充 eval 或团队复用打包。",
"Understand the request.": "理解用户请求。",
"Execute the main task.": "执行核心任务。",
"Validate the result.": "校验交付结果。",
"Understand the request": "理解用户请求。",
"Execute the main task": "执行核心任务。",
"Validate the result": "校验交付结果。",
"Decide whether the request should become a skill and choose the lightest fit.": "判断请求是否应该沉淀为 Skill,并选择最轻量可靠的模式。",
"Capture job, output, exclusions, constraints, and standards.": "捕捉任务、输出、排除项、约束和质量标准。",
"Run reference scan: external benchmarks first, user references second, local fit third; surface only uncertainty or conflict.": "运行参考扫描:先看外部 benchmark,再看用户材料,最后校验本地适配;只暴露不确定性或冲突。",
"Write the `description` early and test route quality before expanding the package.": "尽早写出 `description`,先测试路由质量,再扩展包体。",
"Add output-risk, artifact-design, prompt-quality, and system-model reports only when they matter.": "只在确有价值时添加 output-risk、artifact-design、prompt-quality 和 system-model 报告。",
"Use $yao-meta-skill to turn my workflow or notes into a reusable skill with lean structure, clear triggering, and the right evals.": "当你需要把工作流或笔记沉淀成结构精简、触发清晰且带必要 eval 的可复用 Skill 时使用 $yao-meta-skill。",
"Turn rough requests into a compact reusable demo skill.": "把粗糙请求整理成紧凑、可复用的演示 Skill。",
"Tighten trigger and exclusions": "收紧触发与排除边界",
"Add the first execution asset": "补上第一个执行资产",
"Promote from scaffold to production-ready": "从脚手架推进到生产可用",
"Borrow one proven pattern on purpose": "有选择地借鉴一个成熟模式",
"Harden portability semantics": "加固跨环境语义",
"Create an iteration evidence loop": "建立迭代证据回路",
"The package needs clearer near-neighbor exclusions before it grows.": "在继续扩展前,需要先把相邻但不应触发的场景说清楚。",
"The package is still mostly prose. Add one asset that removes repeated manual work.": "当前包体仍偏文本说明,应先增加一个能减少重复人工操作的资产。",
"The first version exists; the next gain usually comes from adding the smallest useful gates.": "第一版已经存在,下一步收益通常来自补上最小但有效的质量门禁。",
"You already have public benchmark objects. The next gain is to choose one pattern intentionally instead of absorbing everything loosely.": "已经有公开 benchmark 对象,下一步应主动选择一个模式借鉴,而不是松散吸收所有做法。",
"The skill already signals reuse across environments, so contract clarity matters early.": "这个 Skill 已经面向跨环境复用,因此早期就需要把契约语义说清楚。",
"The package should show what changed and why after the first draft.": "第一版之后,包体应该能说明改了什么以及为什么改。",
"Add 3 to 5 should-trigger and should-not-trigger examples.": "增加 3 到 5 个应触发和不应触发的例子。",
"Refine the frontmatter description to name the recurring job and non-goals.": "精炼 frontmatter description,明确重复任务和非目标。",
"Run a first trigger evaluation pass before expanding the package.": "扩展包体前先跑一轮触发评估。",
"Move stable procedural guidance into references if users will need it repeatedly.": "如果用户会反复使用某段流程说明,把它沉淀到 references。",
"Create one deterministic helper script if a repeated step can be executed instead of described.": "如果某个重复步骤可以执行而不是描述,就沉淀成一个确定性 helper script。",
"Keep the main SKILL.md compact and route-oriented.": "保持主 SKILL.md 简洁,并围绕路由与入口组织。",
"Decide whether this skill is personal, team-reused, or library-grade.": "判断这个 Skill 是个人使用、团队复用,还是库级基础能力。",
"Add only the gates that match that risk level.": "只添加与风险等级匹配的质量门禁。",
"Record lifecycle metadata and review cadence once reuse becomes real.": "一旦进入真实复用,就记录生命周期元数据和评审节奏。",
"Decide whether to borrow method, structure, execution, or portability, but only one of them first.": "先判断要借鉴的是方法、结构、执行方式还是可迁移性,并且第一轮只借鉴其中一个。",
"Record what you will not borrow so the package stays light.": "记录本轮不借鉴的内容,避免包体过重。",
"Confirm activation mode, execution context, and trust assumptions.": "确认激活模式、执行上下文和信任假设。",
"Add or review degradation strategy for non-native targets.": "补充或复核非原生目标端的降级策略。",
"Package the skill once to verify adapter expectations.": "至少打包一次 Skill,用来验证 adapter 预期。",
"Generate the HTML skill report and keep it aligned with the package.": "生成 HTML Skill 报告,并保持它与包体内容一致。",
"Record reference scan choices and non-goals.": "记录参考扫描的取舍和非目标。",
"Capture the next iteration choice explicitly before adding more files.": "在继续增加文件前,明确记录下一轮迭代选择。",
"Cleaner routing and fewer accidental activations.": "路由更清晰,误触发更少。",
"Stronger execution quality without bloating the entrypoint.": "在不膨胀入口文件的前提下提升执行质量。",
"A clearer path from exploratory package to maintained asset.": "更清晰地从探索性包体走向可维护资产。",
"A cleaner package shape with less accidental over-design.": "包体形态更清晰,也减少偶然过度设计。",
"Safer cross-environment reuse with less target drift.": "跨环境复用更安全,目标漂移更少。",
"A clearer path for the next author or reviewer.": "让下一位作者或评审者更容易接手。",
}
TEXT_EN = {
"触发面保持精简,并锚定在 frontmatter description。": "The trigger surface stays lean and anchored in the frontmatter description.",
"已打包 agents/interface.yaml,便于后续做跨平台适配。": "Portable interface metadata is packaged for later adapter-based export.",
"长指导被拆到 references 中,入口文件可以保持轻量。": "Extended guidance is separated into references so the entrypoint can stay compact.",
"确定性辅助逻辑放在 scripts 中,而不是藏在提示词里。": "Deterministic helper logic lives in scripts instead of hidden prompt text.",
"包内包含可随 Skill 迁移的质量门禁或触发检查。": "The package includes portable quality gates or trigger checks.",
"这份报告用于快速理解新生成 Skill 的定位、原理、触发边界和交付内容。": "Use this report to quickly understand the generated skill's role, principles, trigger boundary, and deliverables.",
"先确认重复任务、真实输入形态和可交付输出,再决定是否继续加 references、scripts 或 evals。": "Clarify the recurring job, real input shape, and deliverable output before adding references, scripts, or evals.",
"如果需求仍然模糊,优先回到 intent dialogue 收紧边界,再扩展包体结构。": "If the request is still fuzzy, tighten the boundary through intent dialogue before expanding the package.",
"已生成 Output Review Adjudication,可记录盲评决策、一致率和待评审项。": "Output Review Adjudication is generated to record blind-review decisions, agreement rate, and pending cases.",
"已生成 Output Execution Runs,可区分记录样本、命令执行和模型执行证据。": "Output Execution Runs is generated to distinguish recorded fixtures, command runs, and model-run evidence.",
"尚未生成盲评审定报告。": "The blind review adjudication report has not been generated yet.",
"尚未生成输出执行证据报告。": "The output execution evidence report has not been generated yet.",
"先记录 reviewer 对 A/B 的选择,再打开答案 key 计算一致率。": "Record the reviewer's A/B choice before opening the answer key and calculating agreement.",
"缺少真实 reviewer 决策时只显示待评审,不伪造人工结论。": "When real reviewer decisions are missing, show pending status instead of fabricating human conclusions.",
"recorded fixture 只能证明可复现样本,不等同于模型执行。": "A recorded fixture proves reproducible samples only; it is not model execution.",
"只有 provider runner 返回 model metadata 时才计入 model-executed。": "Only provider runners that return model metadata count as model-executed.",
}
MODE_ZH = {
"scaffold": "脚手架",
"production": "生产",
"library": "库级",
"governed": "治理",
"manual": "手动",
"inline": "内联",
"agent-skills": "Agent Skills",
}
PACKAGE_LABEL_ZH = {
"SKILL.md": "Skill 入口文件",
"README.md": "人类可读使用说明",
"agents/interface.yaml": "跨平台接口元数据",
"manifest.json": "生命周期与打包元数据",
"references": "扩展指导与复用资料",
"scripts": "确定性脚本或本地工具",
"evals": "触发与质量检查",
"reports": "生成的证据与总结报告",
}
KIND_ZH = {"file": "文件", "folder": "目录"}
LABEL_EN = {
"强项": "Strength",
"缺口": "Gap",
"保留并复用": "Keep",
"纳入下一轮修复": "Fix next",
}
def contains_cjk(text: str) -> bool:
return any("\u4e00" <= char <= "\u9fff" for char in str(text))
def zh_for(text: str) -> str:
value = str(text).strip()
if not value:
return ""
if value in TEXT_ZH:
return TEXT_ZH[value]
if value in TEXT_EN or contains_cjk(value):
return value
if value.startswith("Use this skill when the request matches:"):
return "当用户请求与该 Skill 的触发描述匹配时使用。"
if value.startswith("用户说出类似需求时:"):
return "当用户提出与该 Skill 触发描述相近的请求时使用。"
if value.startswith("Use $") and " when you need to " in value:
skill, need = value.removeprefix("Use ").split(" when you need to ", 1)
return f"当你需要{zh_for(need).rstrip('')}时使用 `{skill}`。"
if value.startswith("Read the strongest pattern from "):
repo = value.removeprefix("Read the strongest pattern from ").rstrip(".")
return f"阅读 `{repo}` 中最值得借鉴的模式。"
if value.startswith("Primary prompt task family:"):
return "主要提示任务类型已记录在 prompt quality profile 中。"
if value.startswith("Complexity:"):
return "复杂度判断已记录在 prompt quality profile 中。"
if value.startswith("Stability:"):
return "系统稳定性评分已记录在 system model 中。"
if value.startswith("Owned job:"):
return "负责的核心任务已在 system model 中说明。"
if value.startswith("Leverage:"):
return "关键杠杆点已在 system model 中说明。"
return "原始说明可切换到英文查看;默认中文报告保留结论与结构说明。"
def en_for(text: str) -> str:
value = str(text).strip()
return TEXT_EN.get(value, value)
def bi_span(zh: str, en: str | None = None) -> str:
english = en if en is not None else en_for(zh)
return (
f'<span data-lang="zh-CN">{html.escape(str(zh))}</span>'
f'<span data-lang="en">{html.escape(str(english))}</span>'
)
def bi_item(text: str) -> str:
return bi_span(zh_for(text), en_for(text))
def mode_zh(value: str) -> str:
return MODE_ZH.get(str(value), str(value))
def readable_description_zh(description: str) -> str:
if contains_cjk(description):
return description
return "该 Skill 的触发描述来自 SKILL.md frontmatter;默认中文报告先呈现能力边界,原始英文描述可切换到英文查看。"
def render_list(items: list[str], class_name: str = "list") -> str:
if not items:
return f'<ul class="{class_name}"><li>{bi_span("暂无记录。", "No records yet.")}</li></ul>'
@@ -192,7 +38,7 @@ def render_metric_cards(scorecard: dict) -> str:
cards.append(
"<article class='metric-card'>"
"<div class='metric-card-head'>"
f"<span class='metric-label'>{html.escape(str(item.get('label', key)))}</span>"
f"<span class='metric-label'>{bi_item(str(item.get('label', key)))}</span>"
f"<strong>{html.escape(str(item.get('score', 'n/a')))}</strong>"
"</div>"
f"<div class='metric-card-body'>{reasons}</div>"
@@ -219,7 +65,7 @@ def render_metric_summary(scorecard: dict) -> str:
items.append(
"<li>"
f"<span class='metric-status'>{bi_span(verdict, verdict_en)}</span>"
f"<b>{html.escape(label)}</b>"
f"<b>{bi_item(label)}</b>"
f"<em>{score}</em>"
f"<small>{bi_item(reason)}</small>"
"</li>"
@@ -253,7 +99,7 @@ def render_score_strip(scorecard: dict) -> str:
reason = item.get("reasons", [""])[0]
cards.append(
"<article class='score-chip'>"
f"<span>{html.escape(str(item.get('label', key)))}</span>"
f"<span>{bi_item(str(item.get('label', key)))}</span>"
f"<strong>{score}</strong>"
f"<i style='--score:{score}%'></i>"
f"<small>{bi_item(str(reason))}</small>"
@@ -375,7 +221,7 @@ def render_html(summary: dict) -> str:
<p class="eyebrow">{bi_span("YAO Skill 生成审计报告", "YAO Skill Generation Audit")}</p>
<p class="slug">{html.escape(summary['name'])}</p>
<h1 id="report-title">{bi_span("技能审计报告", f"{summary['display_name']} Audit Report")}</h1>
<p class="lead">{bi_span("这份报告默认使用中文简体,把新 Skill 的定位、指标、原理、契约、质量、风险、资产和迭代路线整理为一份可审计的 HTML 报告。", summary["description"])}</p>
<p class="lead">{bi_span("这份报告默认使用中文简体,把新 Skill 的定位、指标、原理、契约、质量、风险、资产和迭代路线整理为一份可审计的 HTML 报告。", en_for(str(summary["description"])))}</p>
<div class="hero-meta">{hero_meta_html}</div>
<div class="badges">{target_badges}</div>
</div>
@@ -475,7 +321,7 @@ def render_html(summary: dict) -> str:
<div class="two-col">
<article class="panel">
<h3>{bi_span("触发描述", "Trigger")}</h3>
<p>{bi_span(readable_description_zh(str(trigger.get("description", ""))), str(trigger.get("description", "")))}</p>
<p>{bi_span(readable_description_zh(str(trigger.get("description", ""))), en_for(str(trigger.get("description", ""))))}</p>
<h3>{bi_span("输入材料", "Inputs")}</h3>
{render_list(contract.get("inputs", []))}
</article>
+48 -30
View File
@@ -2,6 +2,8 @@
import html
import math
from skill_report_i18n import bi_span, en_for
SCRIPT_INTERFACE = "internal-module"
SCRIPT_INTERFACE_REASON = "Imported by render_skill_overview.py to render inline SVG report charts."
@@ -17,11 +19,26 @@ def esc(value) -> str:
return html.escape(str(value))
def figure(name: str, svg: str, caption: str) -> str:
def svg_text(zh: str, en: str | None = None, **attrs) -> str:
def attr_name(key: str) -> str:
if key.endswith("_"):
key = key[:-1]
return key.replace("_", "-")
attr = " ".join(f'{attr_name(key)}="{esc(value)}"' for key, value in attrs.items() if value is not None)
if attr:
attr = " " + attr
return (
f'<text data-lang="zh-CN"{attr}>{esc(zh)}</text>'
f'<text data-lang="en"{attr}>{esc(en_for(en if en is not None else zh))}</text>'
)
def figure(name: str, svg: str, caption: str, caption_en: str | None = None) -> str:
return (
f'<figure class="chart-figure" data-chart="{esc(name)}">'
f"{svg}"
f"<figcaption>{esc(caption)}</figcaption>"
f"<figcaption>{bi_span(caption, caption_en)}</figcaption>"
"</figure>"
)
@@ -47,12 +64,10 @@ def render_radar(scorecard: dict) -> str:
data_points.append(f"{center + data_radius * math.cos(angle):.1f},{center + data_radius * math.sin(angle):.1f}")
lx = center + (radius + 32) * math.cos(angle)
ly = center + (radius + 32) * math.sin(angle)
label_nodes.append(
f'<text x="{lx:.1f}" y="{ly:.1f}" text-anchor="middle" dominant-baseline="middle">{esc(labels[i])}</text>'
)
label_nodes.append(svg_text(labels[i], x=f"{lx:.1f}", y=f"{ly:.1f}", text_anchor="middle", dominant_baseline="middle"))
svg = (
'<svg viewBox="0 0 300 300" role="img" aria-label="评分雷达">'
f'<text x="20" y="28" class="chart-title">评分雷达</text>'
+ svg_text("评分雷达", x="20", y="28", class_="chart-title")
+ "".join(rings)
+ f'<polygon points="{" ".join(data_points)}" fill="#E4ECF5" stroke="{BRAND}" stroke-width="2"/>'
+ "".join(label_nodes)
@@ -68,12 +83,12 @@ def render_flow(summary: dict) -> str:
x = 38 + index * 210
nodes.append(
f'<g><rect x="{x}" y="56" width="150" height="74" rx="8" fill="#F6F8FB" stroke="{BORDER}"/>'
f'<text x="{x + 75}" y="99" text-anchor="middle">{esc(label)}</text></g>'
f'{svg_text(label, x=str(x + 75), y="99", text_anchor="middle")}</g>'
)
svg = (
'<svg viewBox="0 0 620 170" role="img" aria-label="交付流程">'
'<text x="20" y="28" class="chart-title">交付流程</text>'
'<path d="M188 93 H248 M398 93 H458" class="chart-line"/>'
+ svg_text("交付流程", x="20", y="28", class_="chart-title")
+ '<path d="M188 93 H248 M398 93 H458" class="chart-line"/>'
+ "".join(nodes)
+ "</svg>"
)
@@ -86,15 +101,15 @@ def render_matrix(profile: dict) -> str:
y = 430 - matrix.get("knowledge_density", 60) * 3.2
svg = (
'<svg viewBox="0 0 520 460" role="img" aria-label="能力矩阵">'
'<text x="20" y="30" class="chart-title">能力矩阵</text>'
f'<rect x="70" y="70" width="380" height="320" fill="{SOFT}" stroke="{BORDER}"/>'
f'<line x1="260" y1="70" x2="260" y2="390" stroke="{BORDER}"/>'
f'<line x1="70" y1="230" x2="450" y2="230" stroke="{BORDER}"/>'
'<text x="260" y="424" text-anchor="middle">执行确定性</text>'
'<text x="22" y="230" transform="rotate(-90 22 230)" text-anchor="middle">知识密度</text>'
f'<circle cx="{x:.1f}" cy="{y:.1f}" r="12" fill="{BRAND}"/>'
f'<text x="{x + 18:.1f}" y="{y + 5:.1f}">{esc(profile.get("task_family", "Skill workflow"))}</text>'
"</svg>"
+ svg_text("能力矩阵", x="20", y="30", class_="chart-title")
+ f'<rect x="70" y="70" width="380" height="320" fill="{SOFT}" stroke="{BORDER}"/>'
+ f'<line x1="260" y1="70" x2="260" y2="390" stroke="{BORDER}"/>'
+ f'<line x1="70" y1="230" x2="450" y2="230" stroke="{BORDER}"/>'
+ svg_text("执行确定性", x="260", y="424", text_anchor="middle")
+ svg_text("知识密度", x="22", y="230", transform="rotate(-90 22 230)", text_anchor="middle")
+ f'<circle cx="{x:.1f}" cy="{y:.1f}" r="12" fill="{BRAND}"/>'
+ svg_text(str(profile.get("task_family", "Skill workflow")), x=f"{x + 18:.1f}", y=f"{y + 5:.1f}")
+ "</svg>"
)
return figure("matrix", svg, "能力矩阵说明这个 Skill 更偏知识密集还是执行确定。")
@@ -106,11 +121,11 @@ def render_layers(principle: dict) -> str:
y = 55 + index * 48
blocks.append(
f'<rect x="{70 + index * 18}" y="{y}" width="{380 - index * 36}" height="34" rx="7" fill="#F6F8FB" stroke="{BORDER}"/>'
f'<text x="260" y="{y + 22}" text-anchor="middle">{esc(layer)}</text>'
+ svg_text(layer, x="260", y=str(y + 22), text_anchor="middle")
)
svg = (
'<svg viewBox="0 0 520 320" role="img" aria-label="Skill principle flow">'
'<text x="20" y="30" class="chart-title">分层结构</text>'
+ svg_text("分层结构", x="20", y="30", class_="chart-title")
+ "".join(blocks)
+ "</svg>"
)
@@ -132,10 +147,10 @@ def render_risk_heatmap(risk: dict) -> str:
)
svg = (
'<svg viewBox="0 0 380 300" role="img" aria-label="风险热力">'
'<text x="20" y="30" class="chart-title">风险热力</text>'
+ svg_text("风险热力", x="20", y="30", class_="chart-title")
+ "".join(cells)
+ '<text x="210" y="278" text-anchor="middle">发生概率</text>'
+ '<text x="24" y="160" transform="rotate(-90 24 160)" text-anchor="middle">影响程度</text>'
+ svg_text("发生概率", x="210", y="278", text_anchor="middle")
+ svg_text("影响程度", x="24", y="160", transform="rotate(-90 24 160)", text_anchor="middle")
+ "</svg>"
)
return figure("risk_heatmap", svg, "风险热力图用影响程度和发生概率标出当前治理重点。")
@@ -157,12 +172,12 @@ def render_asset_donut(assets: dict) -> str:
'pathLength="100" transform="rotate(-90 130 130)"/>'
)
offset += dash
labels.append(f'<text x="235" y="{78 + index * 22}">{esc(item.get("label", "asset"))}</text>')
labels.append(svg_text(str(item.get("label", "asset")), x="235", y=str(78 + index * 22)))
svg = (
'<svg viewBox="0 0 430 270" role="img" aria-label="资产分布">'
'<text x="20" y="30" class="chart-title">资产分布</text>'
+ svg_text("资产分布", x="20", y="30", class_="chart-title")
+ "".join(circles)
+ f'<text x="130" y="136" text-anchor="middle">{assets.get("file_count", 0)}项</text>'
+ svg_text(f'{assets.get("file_count", 0)}', f'{assets.get("file_count", 0)} items', x="130", y="136", text_anchor="middle")
+ "".join(labels)
+ "</svg>"
)
@@ -177,15 +192,18 @@ def render_timeline(roadmap: dict) -> str:
title = str(item.get("title", "升级"))
if len(title) > 18:
title = title[:17] + ""
title_en = en_for(title)
if len(title_en) > 24:
title_en = title_en[:23] + "..."
blocks.append(
f'<circle cx="{x}" cy="92" r="10" fill="{BRAND}"/>'
f'<text x="{x}" y="126" text-anchor="middle">下一步 {index + 1}</text>'
f'<text x="{x}" y="150" text-anchor="middle">{esc(title)}</text>'
+ svg_text(f"下一步 {index + 1}", f"Next {index + 1}", x=str(x), y="126", text_anchor="middle")
+ svg_text(title, title_en, x=str(x), y="150", text_anchor="middle")
)
svg = (
'<svg viewBox="0 0 520 210" role="img" aria-label="迭代时间">'
'<text x="20" y="30" class="chart-title">迭代时间</text>'
f'<line x1="60" y1="92" x2="{60 + max(0, len(items) - 1) * 190}" y2="92" class="chart-line"/>'
+ svg_text("迭代时间", x="20", y="30", class_="chart-title")
+ f'<line x1="60" y1="92" x2="{60 + max(0, len(items) - 1) * 190}" y2="92" class="chart-line"/>'
+ "".join(blocks)
+ "</svg>"
)
+322
View File
@@ -0,0 +1,322 @@
"""Bilingual text helpers for the static skill overview report."""
import html
import re
SCRIPT_INTERFACE = "internal-module"
SCRIPT_INTERFACE_REASON = "Imported by render_skill_overview.py to keep bilingual report copy and fallback rules out of HTML rendering."
TEXT_ZH = {
"Create, refactor, evaluate, and package agent skills from workflows, prompts, transcripts, docs, or notes. Use when asked to create a skill, turn a repeated process into a reusable skill, improve an existing skill, add evals, or package a skill for team reuse.": "从工作流、提示词、对话记录、文档或笔记中创建、重构、评估和打包 agent skill;适用于新建 Skill、沉淀重复流程、改进现有 Skill、补充 eval 或团队复用打包。",
"Understand the request.": "理解用户请求。",
"Execute the main task.": "执行核心任务。",
"Validate the result.": "校验交付结果。",
"Understand the request": "理解用户请求。",
"Execute the main task": "执行核心任务。",
"Validate the result": "校验交付结果。",
"Decide whether the request should become a skill and choose the lightest fit.": "判断请求是否应该沉淀为 Skill,并选择最轻量可靠的模式。",
"Capture job, output, exclusions, constraints, and standards.": "捕捉任务、输出、排除项、约束和质量标准。",
"Run reference scan: external benchmarks first, user references second, local fit third; surface only uncertainty or conflict.": "运行参考扫描:先看外部 benchmark,再看用户材料,最后校验本地适配;只暴露不确定性或冲突。",
"Write the `description` early and test route quality before expanding the package.": "尽早写出 `description`,先测试路由质量,再扩展包体。",
"Add output-risk, artifact-design, prompt-quality, and system-model reports only when they matter.": "只在确有价值时添加 output-risk、artifact-design、prompt-quality 和 system-model 报告。",
"Use $yao-meta-skill to turn my workflow or notes into a reusable skill with lean structure, clear triggering, and the right evals.": "当你需要把工作流或笔记沉淀成结构精简、触发清晰且带必要 eval 的可复用 Skill 时使用 $yao-meta-skill。",
"Turn rough requests into a compact reusable demo skill.": "把粗糙请求整理成紧凑、可复用的演示 Skill。",
"Tighten trigger and exclusions": "收紧触发与排除边界",
"Add the first execution asset": "补上第一个执行资产",
"Promote from scaffold to production-ready": "从脚手架推进到生产可用",
"Borrow one proven pattern on purpose": "有选择地借鉴一个成熟模式",
"Harden portability semantics": "加固跨环境语义",
"Create an iteration evidence loop": "建立迭代证据回路",
"The package needs clearer near-neighbor exclusions before it grows.": "在继续扩展前,需要先把相邻但不应触发的场景说清楚。",
"The package is still mostly prose. Add one asset that removes repeated manual work.": "当前包体仍偏文本说明,应先增加一个能减少重复人工操作的资产。",
"The first version exists; the next gain usually comes from adding the smallest useful gates.": "第一版已经存在,下一步收益通常来自补上最小但有效的质量门禁。",
"You already have public benchmark objects. The next gain is to choose one pattern intentionally instead of absorbing everything loosely.": "已经有公开 benchmark 对象,下一步应主动选择一个模式借鉴,而不是松散吸收所有做法。",
"The skill already signals reuse across environments, so contract clarity matters early.": "这个 Skill 已经面向跨环境复用,因此早期就需要把契约语义说清楚。",
"The package should show what changed and why after the first draft.": "第一版之后,包体应该能说明改了什么以及为什么改。",
"Add 3 to 5 should-trigger and should-not-trigger examples.": "增加 3 到 5 个应触发和不应触发的例子。",
"Refine the frontmatter description to name the recurring job and non-goals.": "精炼 frontmatter description,明确重复任务和非目标。",
"Run a first trigger evaluation pass before expanding the package.": "扩展包体前先跑一轮触发评估。",
"Move stable procedural guidance into references if users will need it repeatedly.": "如果用户会反复使用某段流程说明,把它沉淀到 references。",
"Create one deterministic helper script if a repeated step can be executed instead of described.": "如果某个重复步骤可以执行而不是描述,就沉淀成一个确定性 helper script。",
"Keep the main SKILL.md compact and route-oriented.": "保持主 SKILL.md 简洁,并围绕路由与入口组织。",
"Decide whether this skill is personal, team-reused, or library-grade.": "判断这个 Skill 是个人使用、团队复用,还是库级基础能力。",
"Add only the gates that match that risk level.": "只添加与风险等级匹配的质量门禁。",
"Record lifecycle metadata and review cadence once reuse becomes real.": "一旦进入真实复用,就记录生命周期元数据和评审节奏。",
"Decide whether to borrow method, structure, execution, or portability, but only one of them first.": "先判断要借鉴的是方法、结构、执行方式还是可迁移性,并且第一轮只借鉴其中一个。",
"Record what you will not borrow so the package stays light.": "记录本轮不借鉴的内容,避免包体过重。",
"Confirm activation mode, execution context, and trust assumptions.": "确认激活模式、执行上下文和信任假设。",
"Add or review degradation strategy for non-native targets.": "补充或复核非原生目标端的降级策略。",
"Package the skill once to verify adapter expectations.": "至少打包一次 Skill,用来验证 adapter 预期。",
"Generate the HTML skill report and keep it aligned with the package.": "生成 HTML Skill 报告,并保持它与包体内容一致。",
"Record reference scan choices and non-goals.": "记录参考扫描的取舍和非目标。",
"Capture the next iteration choice explicitly before adding more files.": "在继续增加文件前,明确记录下一轮迭代选择。",
"Cleaner routing and fewer accidental activations.": "路由更清晰,误触发更少。",
"Stronger execution quality without bloating the entrypoint.": "在不膨胀入口文件的前提下提升执行质量。",
"A clearer path from exploratory package to maintained asset.": "更清晰地从探索性包体走向可维护资产。",
"A cleaner package shape with less accidental over-design.": "包体形态更清晰,也减少偶然过度设计。",
"Safer cross-environment reuse with less target drift.": "跨环境复用更安全,目标漂移更少。",
"A clearer path for the next author or reviewer.": "让下一位作者或评审者更容易接手。",
}
TEXT_EN = {
"把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。": "Turn one-off experience into a reusable, evaluable, and portable skill package.",
"Skill 作者、复用团队和后续 reviewer。": "Skill authors, reuse teams, and later reviewers.",
"创建完成后建议先打开 reports/skill-overview.html,再继续扩展包体。": "After creation, open reports/skill-overview.html before expanding the package further.",
"触发面保持精简,并锚定在 frontmatter description。": "The trigger surface stays lean and anchored in the frontmatter description.",
"已生成 Skill IR,核心语义可先于平台打包被审查和迁移。": "Skill IR is generated so core semantics can be reviewed and migrated before platform packaging.",
"已生成目标编译报告,可审查 IR 到 OpenAI、Claude、generic 等目标契约的映射。": "Target compilation evidence is generated to review how IR maps to OpenAI, Claude, generic, and other target contracts.",
"已生成 Output Eval Lab scorecard,可比较 with-skill 与 baseline 输出质量。": "Output Eval Lab scorecard is generated to compare with-skill and baseline output quality.",
"已生成 Output Execution Runs,可区分记录样本、命令执行和模型执行证据。": "Output Execution Runs is generated to distinguish recorded fixtures, command runs, and model-run evidence.",
"已生成 Output Review Adjudication,可记录盲评决策、一致率和待评审项。": "Output Review Adjudication is generated to record blind-review decisions, agreement rate, and pending cases.",
"已生成 Runtime Conformance Matrix,可审查目标端消费能力。": "Runtime Conformance Matrix is generated to review target-side consumption capability.",
"已生成 Security Trust Report,可审查脚本、依赖、secret 和包完整性风险。": "Security Trust Report is generated to review scripts, dependencies, secrets, and package-integrity risk.",
"已生成 Skill Atlas,可审查多 Skill 组合中的路由冲突、过期资产和 owner 缺口。": "Skill Atlas is generated to review route collisions, stale assets, and owner gaps across a skill library.",
"已生成 Registry Audit,可审查版本、owner、license、checksum 和目标兼容矩阵。": "Registry Audit is generated to review version, owner, license, checksum, and target compatibility metadata.",
"已生成 Install Simulation,可审查 zip 解压、入口加载、接口元数据和 adapter 可读性。": "Install Simulation is generated to review zip extraction, entrypoint loading, interface metadata, and adapter readability.",
"已生成 Adoption Drift Report,可把本地使用反馈转为下一轮迭代信号。": "Adoption Drift Report is generated to turn local usage feedback into next-iteration signals.",
"已生成 Review Waivers 台账,可记录 reviewer 对 warning 风险的批准、理由和到期时间。": "Review Waivers ledger is generated to record reviewer approval, rationale, scope, and expiry for accepted warning risk.",
"已生成 Review Annotations 台账,可把 reviewer 批注挂到 gate、文件和行号。": "Review Annotations ledger is generated to attach reviewer notes to gates, files, and line numbers.",
"已生成 Review Studio 2.0,可在一页中查看 blocker、warning、证据路径和发布闸门。": "Review Studio 2.0 is generated to inspect blockers, warnings, evidence paths, and release gates on one page.",
"已打包 agents/interface.yaml,便于后续做跨平台适配。": "Portable interface metadata is packaged for later adapter-based export.",
"长指导被拆到 references 中,入口文件可以保持轻量。": "Extended guidance is separated into references so the entrypoint can stay compact.",
"确定性辅助逻辑放在 scripts 中,而不是藏在提示词里。": "Deterministic helper logic lives in scripts instead of hidden prompt text.",
"包内包含可随 Skill 迁移的质量门禁或触发检查。": "The package includes portable quality gates or trigger checks.",
"这份报告用于快速理解新生成 Skill 的定位、原理、触发边界和交付内容。": "Use this report to quickly understand the generated skill's role, principles, trigger boundary, and deliverables.",
"先确认重复任务、真实输入形态和可交付输出,再决定是否继续加 references、scripts 或 evals。": "Clarify the recurring job, real input shape, and deliverable output before adding references, scripts, or evals.",
"如果需求仍然模糊,优先回到 intent dialogue 收紧边界,再扩展包体结构。": "If the request is still fuzzy, tighten the boundary through intent dialogue before expanding the package.",
"尚未生成盲评审定报告。": "The blind review adjudication report has not been generated yet.",
"尚未生成输出执行证据报告。": "The output execution evidence report has not been generated yet.",
"先记录 reviewer 对 A/B 的选择,再打开答案 key 计算一致率。": "Record the reviewer's A/B choice before opening the answer key and calculating agreement.",
"缺少真实 reviewer 决策时只显示待评审,不伪造人工结论。": "When real reviewer decisions are missing, show pending status instead of fabricating human conclusions.",
"recorded fixture 只能证明可复现样本,不等同于模型执行。": "A recorded fixture proves reproducible samples only; it is not model execution.",
"只有 provider runner 返回 model metadata 时才计入 model-executed。": "Only provider runners that return model metadata count as model-executed.",
"SKILL.md 已存在,是 Skill 的入口。": "SKILL.md exists and acts as the skill entrypoint.",
"README.md 已存在,便于人工阅读。": "README.md exists for human-readable usage.",
"agents/interface.yaml 已存在,便于跨平台适配。": "agents/interface.yaml exists for cross-platform adaptation.",
"manifest.json 已存在,生命周期信息可追踪。": "manifest.json exists so lifecycle metadata is traceable.",
"reports/ 已存在,生成证据可以随包体迁移。": "reports/ exists so generated evidence can travel with the package.",
"references/ 已存在,长指导可以从入口文件拆出。": "references/ exists so long guidance can stay out of the entrypoint.",
"scripts/ 已存在,确定性逻辑有位置承载。": "scripts/ exists to hold deterministic logic.",
"evals/ 已存在,触发或质量检查可以随包体迁移。": "evals/ exists so trigger or quality checks can travel with the package.",
"frontmatter description 已存在,具备基础路由面。": "The frontmatter description exists, giving the skill a basic routing surface.",
"description 有足够长度说明任务边界。": "The description is long enough to explain the task boundary.",
"description 已包含使用场景或排除边界信号。": "The description includes usage-scenario or exclusion-boundary signals.",
"evals/ 已存在,可承载触发样例或质量检查。": "evals/ exists and can hold trigger examples or quality checks.",
"intent-confidence 报告已生成,可辅助判断触发稳定性。": "The intent-confidence report exists and helps judge trigger stability.",
"入口文件保持克制,可维护性较好。": "The entrypoint stays restrained, which supports maintainability.",
"references/ 已承载扩展指导。": "references/ carries extended guidance.",
"scripts/ 已承载确定性逻辑。": "scripts/ carries deterministic logic.",
"evals/ 已承载可迁移检查。": "evals/ carries portable checks.",
"agents/interface.yaml 已存在。": "agents/interface.yaml exists.",
"manifest.json 已存在。": "manifest.json exists.",
"目标平台或 adapter target 已声明。": "Target platforms or adapter targets are declared.",
"入口文件未发现明显私有绝对路径。": "No obvious private absolute paths were found in the entrypoint.",
"分数越高代表上下文成本越低。": "A higher score means lower context cost.",
"上下文成本处于可控区间。": "Context cost is within a controlled range.",
"上下文成本偏高,建议压缩入口或拆分 references。": "Context cost is high; compress the entrypoint or split references further.",
"手动触发 + description 路由": "Manual activation plus description-based routing",
"跨平台": "Cross-platform",
"本地复用": "Local reuse",
"输入材料": "Input material",
"Skill 包体": "Skill package",
"可复用能力": "Reusable capability",
"入口层": "Entrypoint layer",
"参考层": "Reference layer",
"脚本层": "Script layer",
"评估层": "Evaluation layer",
"报告层": "Report layer",
"评分雷达": "Rating Radar",
"交付流程": "Delivery Flow",
"能力矩阵": "Capability Matrix",
"分层结构": "Layered Structure",
"风险热力": "Risk Heatmap",
"资产分布": "Asset Distribution",
"迭代时间": "Iteration Timeline",
"执行确定性": "Execution certainty",
"知识密度": "Knowledge density",
"发生概率": "Probability",
"影响程度": "Impact",
"评分雷达展示结构完整度、触发边界、证据、维护和迁移的相对强弱。": "The radar chart compares completeness, trigger clarity, evidence, maintainability, and portability.",
"交付流程把用户输入、生成的包体和可复用能力放在一条线上。": "The delivery flow places user input, generated package, and reusable capability on one path.",
"能力矩阵说明这个 Skill 更偏知识密集还是执行确定。": "The capability matrix shows whether the skill leans toward knowledge density or execution certainty.",
"分层结构展示入口、参考、脚本、评估和报告如何各司其职。": "The layered structure shows how entrypoint, references, scripts, evals, and reports each carry a distinct role.",
"风险热力图用影响程度和发生概率标出当前治理重点。": "The risk heatmap marks governance priorities by impact and probability.",
"资产分布图展示当前包体的文件和目录重心。": "The asset distribution chart shows where files and directories are concentrated.",
"迭代时间线把下一步升级收束成少数可执行动作。": "The iteration timeline narrows the next upgrade into a few executable moves.",
"只需要一次性回答、没有复用价值的临时请求。": "One-off requests that do not need reusable skill behavior.",
"要求直接执行相邻任务,而不是沉淀或使用这个 Skill。": "Requests to perform an adjacent task directly rather than create or use this skill.",
"缺少必要事实且用户不允许澄清的场景。": "Cases that lack required facts and do not allow clarification.",
"相邻任务需要先确认是否应转为独立 Skill。": "Adjacent tasks should first be checked for whether they need a separate skill.",
"不替代人工事实核查,也不静默扩大职责。": "Does not replace human fact checking or silently expand responsibility.",
"先改触发边界,再扩展工作流。": "Tighten trigger boundaries before expanding the workflow.",
"只把重复且稳定的步骤沉淀为脚本。": "Turn only repeated and stable steps into scripts.",
"每次升级后重新生成报告并检查分数原因。": "Regenerate the report after each upgrade and inspect score reasons.",
"先补证据和边界,再增加包体复杂度。": "Improve evidence and boundaries before adding package complexity.",
}
MODE_ZH = {
"scaffold": "脚手架",
"production": "生产",
"library": "库级",
"governed": "治理",
"manual": "手动",
"inline": "内联",
"agent-skills": "Agent Skills",
}
PACKAGE_LABEL_ZH = {
"SKILL.md": "Skill 入口文件",
"README.md": "人类可读使用说明",
"agents/interface.yaml": "跨平台接口元数据",
"manifest.json": "生命周期与打包元数据",
"references": "扩展指导与复用资料",
"scripts": "确定性脚本或本地工具",
"evals": "触发与质量检查",
"reports": "生成的证据与总结报告",
}
KIND_ZH = {"file": "文件", "folder": "目录"}
LABEL_EN = {
"强项": "Strength",
"缺口": "Gap",
"保留并复用": "Keep",
"纳入下一轮修复": "Fix next",
"误触发风险": "Trigger risk",
"输出漂移风险": "Output drift risk",
"证据不足风险": "Evidence gap risk",
"包体膨胀风险": "Package bloat risk",
"跨平台迁移风险": "Portability risk",
}
METRIC_LABEL_EN = {
"完整度": "Completeness",
"触发清晰": "Trigger clarity",
"证据充分": "Evidence depth",
"可维护性": "Maintainability",
"可迁移性": "Portability",
"上下文成本": "Context cost",
}
def contains_cjk(text: str) -> bool:
return any("\u4e00" <= char <= "\u9fff" for char in str(text))
def zh_for(text: str) -> str:
value = str(text).strip()
if not value:
return ""
if value in TEXT_ZH:
return TEXT_ZH[value]
if value in TEXT_EN or contains_cjk(value):
return value
if value.startswith("Use this skill when the request matches:"):
return "当用户请求与该 Skill 的触发描述匹配时使用。"
if value.startswith("用户说出类似需求时:"):
return "当用户提出与该 Skill 触发描述相近的请求时使用。"
if value.startswith("Use $") and " when you need to " in value:
skill, need = value.removeprefix("Use ").split(" when you need to ", 1)
return f"当你需要{zh_for(need).rstrip('')}时使用 `{skill}`。"
if value.startswith("Read the strongest pattern from "):
repo = value.removeprefix("Read the strongest pattern from ").rstrip(".")
return f"阅读 `{repo}` 中最值得借鉴的模式。"
if value.startswith("Primary prompt task family:"):
return "主要提示任务类型已记录在 prompt quality profile 中。"
if value.startswith("Complexity:"):
return "复杂度判断已记录在 prompt quality profile 中。"
if value.startswith("Stability:"):
return "系统稳定性评分已记录在 system model 中。"
if value.startswith("Owned job:"):
return "负责的核心任务已在 system model 中说明。"
if value.startswith("Leverage:"):
return "关键杠杆点已在 system model 中说明。"
return "原始说明可切换到英文查看;默认中文报告保留结论与结构说明。"
def en_for(text: str) -> str:
value = str(text).strip()
if not value:
return ""
if value in TEXT_EN:
return TEXT_EN[value]
if value in METRIC_LABEL_EN:
return METRIC_LABEL_EN[value]
if value.startswith("交付结果:"):
return "Deliverables: " + value.removeprefix("交付结果:")
if value.startswith("能力类型:"):
return "Capability type: " + value.removeprefix("能力类型:")
if value.startswith("成熟度:"):
return "Maturity: " + value.removeprefix("成熟度:")
if value.startswith("触发强度:"):
return "Trigger strength: " + en_for(value.removeprefix("触发强度:"))
if value.startswith("复用范围:"):
return "Reuse scope: " + en_for(value.removeprefix("复用范围:"))
if value.startswith("评审进度:"):
return "Review progress: " + value.removeprefix("评审进度:")
if value.startswith("待评审:"):
return "Pending review: " + value.removeprefix("待评审:")
if value.startswith("一致率:"):
tail = value.removeprefix("一致率:")
return "Agreement rate: " + ("not available yet" if tail == "暂无" else tail)
if value.startswith("非法决策:"):
return "Invalid decisions: " + value.removeprefix("非法决策:")
if value.startswith("变体运行:"):
return "Variant runs: " + value.removeprefix("变体运行:")
if value.startswith("模型执行:"):
return "Model executions: " + value.removeprefix("模型执行:")
if value.startswith("记录样本:"):
return "Recorded fixtures: " + value.removeprefix("记录样本:")
if value.startswith("Token 估算:"):
return "Token estimates: " + value.removeprefix("Token 估算:")
match = re.match(r"^已生成\s+(\d+)\s+/\s+(\d+)\s+类报告证据。$", value)
if match:
return f"Generated {match.group(1)} / {match.group(2)} evidence report types."
match = re.match(r"^SKILL\.md 约\s+(.+?)\s+个词/字。$", value)
if match:
return f"SKILL.md is about {match.group(1)} words/characters."
match = re.match(r"^入口约\s+(.+?)\s+个词/字,references 约\s+(.+?)\s+个词/字。$", value)
if match:
return f"Entrypoint is about {match.group(1)} words/characters; references are about {match.group(2)}."
match = re.match(r"^结构化 Skill 目录,共\s+(.+?)\s+类关键资产。$", value)
if match:
return f"Structured skill directory with {match.group(1)} key asset groups."
if value.startswith("证据不足:缺少 "):
return "Evidence gap: missing " + value.removeprefix("证据不足:缺少 ").rstrip("") + "."
for metric_label in METRIC_LABEL_EN:
prefix = metric_label + "需要补强:"
if value.startswith(prefix):
return f"{METRIC_LABEL_EN[metric_label]} needs improvement: {en_for(value.removeprefix(prefix))}"
if value.startswith("Use this skill when the request matches:"):
return "Use this skill when the request matches the frontmatter description."
if value.startswith("用户说出类似需求时:"):
return "Use this skill when the user asks for a matching scenario."
if value.startswith("当你需要") and "时使用" in value:
return "Use this skill when the request matches its stated scenario."
if contains_cjk(value):
return "Skill-specific source text is authored in Chinese; switch to Simplified Chinese for the exact wording."
return value
def bi_span(zh: str, en: str | None = None) -> str:
english = en_for(en) if en is not None else en_for(zh)
return (
f'<span data-lang="zh-CN">{html.escape(str(zh))}</span>'
f'<span data-lang="en">{html.escape(str(english))}</span>'
)
def bi_item(text: str) -> str:
return bi_span(zh_for(text), en_for(text))
def mode_zh(value: str) -> str:
return MODE_ZH.get(str(value), str(value))
def readable_description_zh(description: str) -> str:
if contains_cjk(description):
return description
return "该 Skill 的触发描述来自 SKILL.md frontmatter;默认中文报告先呈现能力边界,原始英文描述可切换到英文查看。"
+17
View File
@@ -10,6 +10,7 @@ CLI = ROOT / "scripts" / "yao.py"
sys.path.insert(0, str(ROOT / "scripts"))
from skill_report_layout import render_language_switch, render_report_nav, skill_overview_css, skill_overview_script
from skill_report_i18n import en_for
from skill_report_model import REPORT_NAV_V2
@@ -60,6 +61,18 @@ def main() -> None:
assert "scaleX(" in script_contract, script_contract
assert "aria-current" in script_contract, script_contract
assert en_for("把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。") == (
"Turn one-off experience into a reusable, evaluable, and portable skill package."
)
assert en_for("交付结果:SKILL.md, agents/interface.yaml") == "Deliverables: SKILL.md, agents/interface.yaml"
assert en_for("已生成 12 / 20 类报告证据。") == "Generated 12 / 20 evidence report types."
assert en_for("入口约 864 个词/字,references 约 565 个词/字。") == (
"Entrypoint is about 864 words/characters; references are about 565."
)
assert en_for("Use this skill when the request matches: 中文描述") == (
"Use this skill when the request matches the frontmatter description."
)
tmp_root = ROOT / "tests" / "tmp_skill_overview"
if tmp_root.exists():
subprocess.run(["rm", "-rf", str(tmp_root)], check=True)
@@ -207,6 +220,10 @@ def main() -> None:
assert "成熟度" in report_html, report_html[:5000]
assert "更新时间" in report_html, report_html[:5000]
assert "Skill name" in report_html, report_html[:5000]
assert "Turn one-off experience into a reusable, evaluable, and portable skill package." in report_html, report_html[:9000]
assert "After creation, open reports/skill-overview.html before expanding the package further." in report_html, report_html[:9000]
assert '<span data-lang="en">把一次性经验沉淀为可复用、可评估、可迁移的 Skill 包体。</span>' not in report_html, report_html[:9000]
assert '<span data-lang="en">创建完成后建议先打开 reports/skill-overview.html,再继续扩展包体。</span>' not in report_html, report_html[:9000]
assert "输入材料" in report_html, report_html[:3000]
assert "输出结果" in report_html, report_html[:3400]
assert "Top 3 Next Moves" not in report_html, report_html[:3800]
+4
View File
@@ -53,10 +53,14 @@ def main() -> None:
assert svg.startswith("<figure"), (key, svg[:200])
assert "<svg" in svg and "</svg>" in svg, (key, svg[:400])
assert "<figcaption>" in svg, (key, svg[:400])
assert 'data-lang="zh-CN"' in svg and 'data-lang="en"' in svg, (key, svg[:600])
assert "http://" not in svg and "https://" not in svg, (key, svg[:400])
assert "data:image" not in svg, (key, svg[:400])
if key in {"flow", "layers"}:
assert 'fill="#F6F8FB"' in svg, (key, svg[:500])
assert "Rating Radar" in charts["radar"], charts["radar"][:900]
assert "Delivery Flow" in charts["flow"], charts["flow"][:900]
assert "The radar chart compares" in charts["radar"], charts["radar"][-500:]
print(json.dumps({"ok": True}, ensure_ascii=False, indent=2))
+2
View File
@@ -92,6 +92,7 @@ def main() -> None:
"scripts/review_studio_gates.py",
"scripts/review_studio_layout.py",
"scripts/skill_report_charts.py",
"scripts/skill_report_i18n.py",
"scripts/skill_report_layout.py",
"scripts/skill_report_metrics.py",
"scripts/skill_report_model.py",
@@ -108,6 +109,7 @@ def main() -> None:
assert "review_studio_gates.py" not in warning_text, payload["warnings"]
assert "review_studio_layout.py" not in warning_text, payload["warnings"]
assert "skill_report_charts.py" not in warning_text, payload["warnings"]
assert "skill_report_i18n.py" not in warning_text, payload["warnings"]
assert "skill_report_layout.py" not in warning_text, payload["warnings"]
assert "skill_report_metrics.py" not in warning_text, payload["warnings"]
assert "skill_report_model.py" not in warning_text, payload["warnings"]