Files
yao-meta-skill/reports/skill-overview-v2-plan.md
T
2026-06-12 17:36:15 +08:00

12 KiB

Skill Overview v2 报告升级方案

结论

建议把 reports/skill-overview.html 从“Skill 概览页”升级为“Skill 生成审计报告”。它不只说明新 Skill 是什么,还要解释它为什么这样设计、质量如何、风险在哪里、后续怎么升级。

本版方案在上一版基础上做了三点修正:

  1. 在最前面新增“技能概述”模块,让用户先读懂这个 Skill 的一句话定位、核心价值、适用对象和交付结果,再看指标和图表。
  2. 将“总览指标”后移为第二模块,避免用户一打开页面就看到抽象分数,却还不知道这个 Skill 是什么。
  3. 将报告定位从“好看的说明页”收紧为“可解释、可评估、可复盘的生成报告”,所有图表和分数都必须能从本地 Skill 文件或已有 reports 推导出来。

目标

每次创建一个全新 Skill 后,同时生成一份双语 HTML 报告:

  • 默认中文简体,右上角可以切换英文。
  • 白色背景,沿用 Kami 的长文档排版节奏。
  • 顶部吸顶导航,每个一级模块保持四个汉字。
  • 模块足够细,既能让普通用户理解 Skill,也能让维护者评估质量。
  • 包含图表、矩阵、数字化指标和后续升级建议。
  • 静态 HTML 可离线打开,不依赖外部图表库或在线资源。

非目标

  • 不把报告做成复杂 Web App。
  • 不引入外部 JS 图表库。
  • 不让报告替代 SKILL.mdREADME.mdagents/interface.yaml 等源文件。
  • 不用模型主观打分冒充事实评分;所有分数必须可解释。
  • 不在报告里暴露用户私密原文,除非这些内容已经存在于 Skill 包体内且适合展示。

报告模块

顶部导航建议保留 9 个一级模块,全部四字:

  1. 技能概述
  2. 总览指标
  3. 能力画像
  4. 原理结构
  5. 契约边界
  6. 质量评估
  7. 风险治理
  8. 包体资产
  9. 迭代路线

1. 技能概述

作用:让用户先用一分钟读懂这个新 Skill。

内容:

  • Skill 名称、显示名称、创建时间、成熟度。
  • 一句话定位:这个 Skill 主要解决什么重复任务。
  • 核心价值:它能帮用户少做什么、稳定什么、交付什么。
  • 适用对象:个人使用、团队复用、平台迁移或库级能力。
  • 交付结果:最终生成哪些文件和报告。
  • 使用提醒:最应该打开的文件和下一步建议。

图表:

  • “Skill 名片”信息块。
  • “从输入到交付”的三段式流程条:输入材料 -> Skill 包体 -> 可复用能力。

数据来源:

  • SKILL.md frontmatter
  • README.md
  • manifest.json
  • agents/interface.yaml
  • reports/intent-context.json
  • reports/skill-overview.json

2. 总览指标

作用:用数字化方式快速判断这个 Skill 的当前状态。

内容:

  • 完整度分数
  • 触发清晰度分数
  • 证据充分度分数
  • 可维护性分数
  • 可迁移性分数
  • 上下文成本估算

图表:

  • 5 维雷达图。
  • 指标卡片。
  • “当前成熟度”状态条。

评分原则:

  • 分数必须来自结构化规则,而不是主观判断。
  • 每个分数旁边必须显示 1 到 3 条原因。
  • 缺失数据时显示“未生成 / 证据不足”,而不是编造结论。

3. 能力画像

作用:说明这个 Skill 在能力地图中的位置。

内容:

  • 它属于创建型、评审型、执行型、研究型、写作型还是工具型 Skill。
  • 使用模式:Scaffold / Production / Library。
  • 触发强度:显式调用、自然语言匹配、上下文辅助。
  • 复用范围:个人、团队、跨项目、跨平台。

图表:

  • 能力定位矩阵:横轴为“执行确定性”,纵轴为“知识密度”。
  • 使用对象标签组。

数据来源:

  • manifest.json
  • agents/interface.yaml
  • reports/prompt-quality-profile.json
  • reports/system-model.json

4. 原理结构

作用:解释这个 Skill 为什么这样组织。

内容:

  • 意图澄清
  • 边界路由
  • 资产分层
  • 证据回路
  • 漂移观察
  • 杠杆升级

图表:

  • 闭环流程图。
  • 分层架构图:入口层、参考层、脚本层、评估层、报告层。
  • 如果存在 system model,展示反馈回路。

数据来源:

  • SKILL.md
  • references/
  • scripts/
  • evals/
  • reports/system-model.json

5. 契约边界

作用:说明什么时候该触发,输入输出是什么,边界在哪里。

内容:

  • 触发描述
  • 应触发场景
  • 不应触发场景
  • 输入材料
  • 输出结果
  • 排除项
  • 失败或缺资料时的处理方式

图表:

  • 输入输出矩阵。
  • should-trigger / should-not-trigger 对照表。
  • 边界卡片:Owned / Adjacent / Excluded。

数据来源:

  • SKILL.md frontmatter
  • reports/intent-dialogue.json
  • reports/intent-confidence.json
  • evals/
  • agents/interface.yaml

6. 质量评估

作用:评估这个 Skill 是否可靠、清晰、可维护。

内容:

  • description 是否清楚。
  • SKILL.md 是否过重。
  • references/ 是否承担了长指导。
  • scripts/ 是否承担了确定性逻辑。
  • evals/ 是否覆盖触发和质量。
  • prompt quality、artifact design、system model 摘要。

图表:

  • 条形评分图。
  • 质量证据表。
  • “强项 / 缺口 / 建议”三列分析。

数据来源:

  • reports/prompt-quality-profile.json
  • reports/artifact-design-profile.json
  • reports/system-model.json
  • reports/output-risk-profile.json
  • 包体文件统计

7. 风险治理

作用:让用户看到这个 Skill 当前最可能失败在哪里。

内容:

  • 误触发风险
  • 输出漂移风险
  • 证据不足风险
  • 包体膨胀风险
  • 跨平台迁移风险
  • 人工判断边界

图表:

  • 风险热力图:影响程度 x 发生概率。
  • 风险清单:风险、信号、应对方式、证据来源。

数据来源:

  • reports/output-risk-profile.json
  • reports/system-model.json
  • reports/intent-confidence.json
  • reports/portability_score.json

8. 包体资产

作用:让 reviewer 快速确认这个 Skill 的文件结构是否合理。

内容:

  • SKILL.md
  • README.md
  • agents/interface.yaml
  • manifest.json
  • references/
  • scripts/
  • evals/
  • reports/

图表:

  • 包体树状图。
  • 文件类型分布 donut。
  • 资产状态表:存在、缺失、可选、过重、建议补充。

数据来源:

  • 本地文件系统扫描
  • manifest.json
  • agents/interface.yaml

9. 迭代路线

作用:把下一步升级方向讲清楚,避免无序扩张。

内容:

  • Top 3 下一步升级方向。
  • 每个方向的原因、动作、收益和暂缓项。
  • 哪些内容现在不应该做。
  • 哪些前置条件满足后再升级。

图表:

  • 优先级矩阵:价值 x 成本。
  • 迭代时间线。

数据来源:

  • reports/iteration-directions.json
  • reports/system-model.json
  • reports/intent-confidence.json

指标设计

completeness_score

衡量关键资产是否齐全。

参考规则:

  • SKILL.md 存在:基础分
  • agents/interface.yaml 存在:加分
  • README.md 存在:加分
  • manifest.json 存在:加分
  • references/scripts/evals/reports/ 根据成熟度判断是否加分

trigger_score

衡量触发是否清晰。

参考规则:

  • frontmatter description 是否存在
  • 是否说明任务、输入、输出和非目标
  • 是否有 should-trigger / should-not-trigger 样例
  • 是否有 route eval

evidence_score

衡量报告证据是否充分。

参考规则:

  • 是否有 intent 报告
  • 是否有 artifact design 报告
  • 是否有 prompt quality 报告
  • 是否有 system model 报告
  • 是否有 iteration directions 报告

maintainability_score

衡量是否容易维护。

参考规则:

  • SKILL.md 不过长
  • 长指导进入 references/
  • 确定性逻辑进入 scripts/
  • 测试或 eval 可随包体迁移
  • 报告和 manifest 保持同步

portability_score

衡量跨环境复用能力。

参考规则:

  • agents/interface.yaml 是否完整
  • manifest.json 是否声明目标平台
  • 是否有降级策略
  • 是否避免硬编码私有路径

context_cost

估算上下文成本。

参考规则:

  • SKILL.md 字数
  • references 文件数量和总字数
  • reports 是否只在需要时读取
  • 是否把长说明放到入口文件

数据模型建议

建议生成一个中间报告模型:

reports/skill-overview.json

核心结构:

{
  "skill_summary": {},
  "scorecard": {},
  "capability_profile": {},
  "principle_model": {},
  "contract_boundary": {},
  "quality_review": {},
  "risk_governance": {},
  "package_assets": {},
  "iteration_roadmap": {},
  "report_contract": {}
}

HTML 只负责渲染这个模型,不直接到处读取文件。

实现拆分

建议把现有报告渲染器拆成四层:

Skill package
  -> report model builder
  -> metrics calculator
  -> chart renderer
  -> HTML renderer

建议文件:

  • scripts/render_skill_overview.py:保留 CLI 入口和编排。
  • scripts/skill_report_model.py:汇总 Skill 数据和各模块内容。
  • scripts/skill_report_metrics.py:计算分数和原因。
  • scripts/skill_report_charts.py:生成内联 SVG 图表。
  • tests/verify_skill_overview.py:验收 HTML 主结构。
  • tests/verify_skill_report_metrics.py:验收分数规则。
  • tests/verify_skill_report_charts.py:验收 SVG 图表和无外部依赖。

排版约束

  • 背景保持纯白。
  • 使用 ink-blue 作为强调色。
  • 采用 Kami 式长文档节奏:先结论,再证据,再解释。
  • 图表必须有 caption,caption 要说洞察,不只说图表名称。
  • 不使用外部字体、外部图片或外部图表库。
  • 顶部导航吸顶。
  • 一级菜单全部四字。
  • 默认中文简体,英文作为切换视图。
  • 每个模块要能独立扫描,不依赖读者从头读到尾。

生成完成后的用户文案

创建 Skill 后,CLI / 输出摘要建议显示:

Skill 已创建完成。

建议先打开总结报告:
<absolute-path>/reports/skill-overview.html

这份报告默认使用中文简体,右上角可切换英文。它会展示这个 Skill 的概述、指标、原理、触发边界、输入输出、质量评估、风险治理、包体资产和后续升级路线。

验收标准

功能验收:

  • 新建 Skill 后自动生成 reports/skill-overview.htmlreports/skill-overview.json
  • HTML 默认中文简体。
  • 右上角可以切换英文。
  • 顶部导航吸顶,一级菜单均为四字。
  • 页面至少包含 9 个一级模块。
  • 页面至少包含 4 类 SVG 图表:雷达图、流程图、风险热力图、资产分布图。
  • 每个数字分数都有原因说明。
  • 缺失数据时显示证据不足,不编造结论。

测试验收:

  • python3 tests/verify_skill_overview.py
  • python3 tests/verify_yao_cli.py
  • python3 tests/verify_skill_report_metrics.py
  • python3 tests/verify_skill_report_charts.py
  • make ci-test

视觉验收:

  • 桌面端顶部导航不遮挡正文。
  • 移动端导航可以换行或紧凑展示,不溢出。
  • 图表在白底上清晰可读。
  • 中文默认视图没有大段英文占位。
  • 报告可直接用浏览器打开。

风险与应对

风险一:报告变得过重

应对:模块多,但数据来源要轻。没有证据的模块显示“暂无证据”,不要额外生成大量报告。

风险二:分数看起来像主观评价

应对:每个分数绑定规则和原因,报告展示“为什么得这个分”。

风险三:渲染器继续膨胀

应对:先拆 model、metrics、charts,再扩 HTML。不要继续把所有逻辑塞进 render_skill_overview.py

风险四:英文切换质量不足

应对:默认中文必须完整;英文可以先作为解释层,不要求每个用户原文都翻译,但不能影响中文体验。

推荐实施顺序

  1. 定义 v2 skill-overview.json 数据结构。
  2. 新增 metrics 计算器,先产出 scorecard 和原因。
  3. 新增 chart renderer,生成内联 SVG。
  4. 重构 HTML 为 9 个一级模块。
  5. 更新 init_skill.pyyao.py 的报告输出文案。
  6. 生成示例 Skill 报告,做视觉检查。
  7. 跑专项测试和完整 CI。

最小可行版本

如果希望先小步迭代,第一版只做:

  • 新增“技能概述”模块。
  • 新增“总览指标”模块。
  • 新增 5 维雷达图。
  • 新增分数原因说明。
  • 保留现有其他模块结构。

这能最快提升报告的第一屏价值,同时为后续 9 模块完整版本铺好数据结构。