# prototypes-spec
**Repository Path**: saugage/prototypes-spec
## Basic Information
- **Project Name**: prototypes-spec
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2026-07-22
- **Last Updated**: 2026-08-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: PMskill, PM-Skill
## README
# prototypes-spec · 原型→开发交付物生成器
从原型工具导出的 HTML 目录(或单个 HTML 文件)中自动识别页面结构、页面内容、控件和交互,生成 PRD、功能清单、测试用例、数据字典、页面跳转关系图、用户故事、开发计划等开发交付物。
支持 Axure RP、墨刀 Mockplus、MasterGo、蓝湖 Lanhu 及未知工具的 HTML 导出(退化为通用解析)。
---
## 目录
- [安装](#安装)
- [依赖](#依赖)
- [支持的原型工具](#支持的原型工具)
- [使用方法](#使用方法)
- [交付物清单与输出格式](#交付物清单与输出格式)
- [页面分类与截图拼接识别](#页面分类与截图拼接识别)
- [便签/备注说明的纳入](#便签备注说明的纳入)
- [解析引擎说明](#解析引擎说明)
- [边界条件与异常处理](#边界条件与异常处理)
- [示例](#示例)
- [技能目录结构](#技能目录结构)
- [优化历史](#优化历史)
---
## 安装
### 方式 1:通过 .skill 文件安装
1. 获取 `prototypes-spec.skill` 包文件
2. 在 Claude Code 或 Claude.ai 中导入该 .skill 文件
3. 安装后技能会出现在 `~/.claude/skills/prototypes-spec/`
### 方式 2:手动放置源文件
将 `prototypes-spec/` 目录复制到 `~/.claude/skills/` 下,保持以下结构:
```
~/.claude/skills/prototypes-spec/
├── SKILL.md # 主技能文档(257 行)
├── scripts/
│ └── parse_axure.py # 多工具解析引擎
└── references/
├── PRD-template.md # PRD 格式规范
├── 功能清单.md # 功能清单 xlsx 规范
├── 测试用例.md # 测试用例 xlsx 规范
├── 数据字典.md # 数据字典 md 触范
├── 开发计划.md # 开发计划 md 规范
├── 页面跳转关系图.md # 页面跳转关系图 md 规范
└ 用户故事.md # 用户故事 md 规范
```
安装完成后,当你在对话中提到"原型""Axure""生成 PRD""原型转文档"等触发词时,Claude 会自动调用此技能。
---
## 依赖
| 依赖 | 用途 | 是否必装 |
| ----------- | ---------------------- | ----------------------------- |
| python3 | 运行解析脚本 | 必装(系统自带) |
| openpyxl | 生成 xlsx 交付物(功能清单/测试用例) | 必装(`pip install openpyxl`) |
| python-docx | 生成 Word 格式 PRD(可选) | 选装(`pip install python-docx`) |
---
## 支持的原型工具
| 工具 | 导出形式 | 识别特征 | 解析深度 |
| ----------- | ------------------ | --------------------------------------------- | --------------------- |
| Axure RP | HTML 离线包 | `data/document.js`、`resources/scripts/axure/` | 完整:页面树 + 控件 + 交互 + 便签 |
| 墨刀 Mockplus | HTML 离线演示包 | `index.html` 含 mockplus 字样、`mockplus.js` | 页面文本 + 控件类型 + 便签 |
| MasterGo | 离线标注导出 | JS 文件含 `PAGED_FRAMES`/`FILE_DATA` | 画板名称列表 |
| 蓝湖 Lanhu | Schema JSON 或 HTML | `.schema.json` 文件、`lanhutext`/`lanhuimage` 类型 | 图层树 + 文本 + 控件类型 |
| 未知工具 | HTML 文件 | 无上述特征 | 退化为通用 HTML 文本提取 + 便签 |
---
## 使用方法
### 快速开始
直接在对话中告诉 Claude 你的需求,例如:
> "我这边有一个 Axure 原型导出的目录,在 /path/to/prototype 下面,请帮我解析这个原型,然后生成一份 PRD(Markdown 格式)。"
Claude 会自动:
1. **识别原型类型** — 调用 `parse_axure.py` 脚本自动识别工具类型
2. **解析原型结构** — 提取页面树、文本内容、控件类型、交互事件、便签/备注
3. **询问交付物**(若未明确指定) — 展示解析摘要,等待你确认范围
4. **生成交付物** — 按对应 reference 规范生成文件,保存到 `output/` 或你指定的位置
### 输入形式
技能接受以下输入形式:
- **完整导出目录**:包含多个 HTML 文件和资源子目录的文件夹路径
- **单个 HTML 文件**:独立的原型页面文件路径
- **Schema JSON 文件**(蓝湖):`.schema.json` 文件所在目录路径
### 指定交付物
你可以在对话中明确指定要生成什么:
- "生成 PRD" → 只生成 PRD.md
- "做一份功能清单和测试用例" → 生成功能清单.xlsx + 测试用例.xlsx
- "生成所有交付物" / "能生成的都生成" → 生成全部 7 类
- "分析这个原型" 但未指定交付物 → Claude 会询问你要生成什么
### 指定输出格式
- "Markdown 格式" / "md 格式" → 生成 .md 文件
- "xlsx 格式" / "Excel 格式" → 生成 .xlsx 文件
- "Word 格式" / "docx 格式" → 生成 .docx 文件(需 python-docx)
### 输出位置
- 默认:原型目录下的 `output/` 文件夹
- 自定义:在对话中指定路径,如 "保存到 ~/Desktop/"
---
## 交付物清单与输出格式
共支持 7 类交付物,每类有独立的格式规范文件(位于 `references/`):
| # | 交付物 | 默认格式 | 文件名 | 规范文件 | 列数/结构 |
| --- | -------------- | ---- | ------------ | ----------------- | ----------------------- |
| 1 | 📄 PRD(产品需求文档) | md | `PRD.md` | `PRD-template.md` | 7 章节 |
| 2 | 📋 功能清单 | xlsx | `功能清单.xlsx` | `功能清单.md` | 8 列,主表 + 副表「说明」 |
| 3 | 🧪 测试用例 | xlsx | `测试用例.xlsx` | `测试用例.md` | 8 列,主表 + 副表「说明」 |
| 4 | 📊 数据字典 | md | `数据字典.md` | `数据字典.md` | 9 列字段定义表 |
| 5 | 🔗 页面跳转关系图 | md | `页面跳转关系图.md` | `页面跳转关系图.md` | Mermaid 流程图 + 详表 + 孤立页面 |
| 6 | 🎯 用户故事 | md | `用户故事.md` | `用户故事.md` | 角色定义 + 故事地图 + 详表 + 验收标准 |
| 7 | 📅 开发计划 | md | `开发计划.md` | `开发计划.md` | 模块拆分表 + 4 里程碑 + 风险项 |
### 各交付物详细说明
#### 📄 PRD(产品需求文档)
- 格式:Markdown
- 文件名:`PRD.md`
- 7 章节:文档信息 / 产品概述 / 页面结构 / 功能需求 / 非功能需求 / 页面流程图 / 附录
- 便签/备注说明纳入功能需求项和附录汇总
#### 📋 功能清单
- 格式:xlsx(Excel)
- 文件名:`功能清单.xlsx`
- 主表 8 列:功能编号 / 模块 / 功能名称 / 功能描述 / 优先级 / 所属页面 / 关联功能 / 备注
- 副表「说明」:项目元信息 + 便签纳入标注
- 按页面分组,合并单元格做模块标题行
- 便签说明补为独立功能条目或备注列
#### 🧪 测试用例
- 格式:xlsx(Excel)
- 文件名:`测试用例.xlsx`
- 主表 8 列:用例编号 / 模块 / 功能点 / 用例标题 / 前置条件 / 测试步骤 / 预期结果 / 优先级
- 副表「说明」:项目元信息 + 便签纳入标注
- 按模块分组,用例编号全局递增(`TC-001`、`TC-002`...)
- 便签说明补为业务规则用例或前置条件
#### 📊 数据字典
- 格式:Markdown
- 文件名:`数据字典.md`
- 9 列字段定义表:字段名 / 中文名 / 类型 / 长度 / 必填 / 默认值 / 说明 / 所属页面 / 备注
- 按页面分组组织
- 便签说明优先填入"说明"和"备注"列
#### 🔗 页面跳转关系图
- 格式:Markdown
- 文件名:`页面跳转关系图.md`
- 含 Mermaid 流程图代码块 + 跳转关系详表 + 孤立页面清单
- 跳转来源优先级:onClick 交互事件 > 按钮文字 > 链接 href > 页面名推断
- 便签说明补入跳转条件与备注列
#### 🎯 用户故事
- 格式:Markdown
- 文件名:`用户故事.md`
- 含角色定义 + 用户故事地图(角色 × 模块) + 详表(按角色分组) + 验收标准汇总
- 故事格式:作为 [角色] / 我想要 [功能] / 以便于 [业务价值] + 验收标准 + 优先级
- 便签说明补为独立故事、验收标准或角色识别依据
#### 📅 开发计划
- 格式:Markdown
- 文件名:`开发计划.md`
- 含模块拆分表(工时/依赖/角色) + 4 个里程碑(M1 核心框架 → M4 优化收尾) + 风险项
- 工时基于功能数估算,需团队确认
- 便签说明影响工时估算与风险评估
### xlsx 输出规则
- 功能清单和测试用例各自独立 xlsx 文件,不合并到同一 xlsx
- 每个 xlsx 含主表 + 副表「说明」共 2 张 sheet
- 主表冻结首行,列宽固定,模块标题行合并单元格
### md 输出规则
- 每份 md 交付物独立单文件,不合并
- 末尾含"数据来源说明"章节,标注便签/备注说明是否已纳入
---
## 页面分类与截图拼接识别
解析时每页新增以下字段,所有交付物都应基于这些字段生成:
| 字段 | 类型 | 说明 |
|------|------|------|
| `page_category` | string | 页面分类标签 |
| `is_screenshot_composite` | bool | 页面是否由多张截图拼出来 |
| `screenshot_evidence` | string | 截图拼接判定的证据描述 |
| `strict_fields` | list | 严格基于页面出现内容提取的字段说明(禁止臆想) |
| `ambiguous_fields` | list | 模糊字段,需先与用户确认再写入 PRD/数据字典 |
| `filter_area` | dict | 筛选区域识别(管理后台常见) |
### 页面分类(page_category)
| 分类 | 含义 |
|------|------|
| `admin_console` | 管理后台页面 |
| `config_page` | 配置页 |
| `mobile_page` | 移动端页面 |
| `flow_diagram` | 流程图 / 拓扑图 |
| `login_page` | 登录 / 注册 / 验证码页 |
| `list_page` | 列表页 |
| `detail_page` | 详情页 |
| `form_page` | 表单页 |
| `modal_dialog` | 弹窗 / 对话框 |
| `dashboard` | 仪表盘 / 数据看板 |
| `image_composite` | 截图拼接页 |
| `unknown` | 无法判定 |
识别优先级:关键词匹配(页面名+文本)> 控件组合推断 > 截图拼接 > unknown。
### 截图拼接识别(is_screenshot_composite)
满足以下任一条件即判定为截图拼接:
1. 多张大图:≥2 张宽度 ≥600px 的 `
`
2. 多张 background-image 切片:≥2 个不同 url 的 `background-image`
3. 文本极少 + 图片多:文本 ≤5 条且 `
` ≥3 张
4. 单张超大图 + 几乎无文本:一张宽度 ≥800px 的图且文本 ≤5 条
判定为截图拼接的页面,PRD 上必须有明确标识(见 `references/PRD-template.md` 的"截图拼接页标识"章节)。
### 严格字段提取(禁止臆想)
字段说明严格基于页面出现的内容输出:
1. **字段标签必须出现在页面 `texts` 中**——以":"或":"结尾,或匹配常见字段后缀(名称/编号/状态/时间/日期/类型/分类/部门/创建时间/更新时间/手机/邮箱/地区/标签/级别 等)
2. **字段类型从对应控件推断**:标签后紧跟"请选择"则下拉,"请输入"则输入框,"请选择日期"则日期选择器;控件对应不上时标"待确认"
3. **必填/默认值/校验规则**:原型未明确显示时,一律标"待确认",**不得凭空臆想**
4. **模糊字段归入 `ambiguous_fields`**:标签后无对应控件文本,或类型完全无法推断;**必须先与用户确认后再写入 PRD/数据字典**
5. **英文字段名(name)**:不臆想,留空待用户/后端确认
### 筛选区域识别(filter_area,管理后台常见)
后台管理页面若有筛选区域,识别并输出筛选字段说明:
- `has_filter`:是否存在筛选区(含筛选关键词且同时存在下拉/输入/日期控件,或含筛选操作按钮)
- `filter_fields`:筛选条件列表,每项含 `label`(筛选条件名称)/`control_type`(控件类型,待确认时不臆想)/`required`/`default_value`/`note`
- `filter_actions`:筛选操作按钮列表(查询/搜索/重置/清空等)
筛选字段的控件类型/必填/默认值若原型未明确显示,标"待确认",需对照原型或与用户确认后再补充。
---
## 便签/备注说明的纳入
技能已支持解析原型中的便签和矩形内备注说明:
- **Axure 便签**:以 `id` 后缀 `_ann` 的 div 标识,文本在 `` 内
- **矩形内备注说明**:以"备注"字样开头的矩形/文本段落
解析后归入每页的 `notes` 字段。所有 7 类交付物都应纳入 `notes` 字段,具体纳入方式见各 reference 文件的"便签/备注说明的纳入"章节:
| 交付物 | 纳入方式 |
| ------- | ---------------------- |
| PRD | 补入功能需求的"备注说明"项和附录的便签汇总 |
| 功能清单 | 补为独立功能条目或备注列 |
| 测试用例 | 补为业务规则用例或前置条件 |
| 数据字典 | 优先填入"说明"和"备注"列 |
| 页面跳转关系图 | 补入跳转条件与备注列 |
| 用户故事 | 补为独立故事、验收标准或角色识别依据 |
| 开发计划 | 影响工时估算与风险评估 |
每份交付物末尾的"数据来源说明"章节会标注:便签/矩形内备注说明已纳入。
---
## 解析引擎说明
### 脚本调用
```bash
# 完整目录解析,输出可读摘要(自动识别工具类型)
python3 scripts/parse_axure.py <原型目录路径>
# 输出 JSON 摘要(推荐,便于后续程序化处理)
python3 scripts/parse_axure.py <原型目录路径> --json-summary
# 输出完整 JSON(含所有文本/控件/交互/便签)
python3 scripts/parse_axure.py <原型目录路径> --json
# 单个 HTML 文件
python3 scripts/parse_axure.py <页面.html>
```
### 工具识别顺序
脚本按以下顺序识别工具类型,第一个匹配成功即返回:
1. **Axure**:`data/document.js` 或 `resources/scripts/axure/`
2. **墨刀**:`index.html` 含 `mockplus`/`mp-`,或含 `mockplus.js`/`mp.js`
3. **MasterGo**:`index.html` 含 `mastergo`,或 JS 含 `PAGED_FRAMES`/`FILE_DATA`
4. **蓝湖**:含 `lanhu`/`lanhuapp`、`.schema.json` 文件,或 JS 含 `lanhutext`/`lanhuimage`
5. **未知**:退化为通用 HTML 扫描
### 各工具解析深度对比
| 工具 | 数据源 | 页面树 | 文本 | 控件类型 | 交互事件 | 便签/备注 |
| -------- | -------------------------------- | ------- | ----------- | -------------- | --------- | ------------------- |
| Axure | `document.js` + HTML + `data.js` | ✓ 树形 | ✓ span | ✓ friendlyType | ✓ onClick | ✓ `_ann` div + 矩形备注 |
| 墨刀 | HTML + `index.html` 链接 | ✗ 扁平 | ✓ span | ✓ 注释 | ✗ | ✓ 矩形备注 |
| MasterGo | `PAGED_FRAMES` JS | ✗ 画板列表 | ✗ | ✗ | ✗ | ✗ |
| 蓝湖 | `.schema.json` 图层树 | ✗ 每画板独立 | ✓ lanhutext | ✓ 图层类型 | ✗ | ✗ |
| 未知 | HTML 扫描 | ✗ 扁平 | ✓ span | ✓ 注释 | ✗ | ✓ 矩形备注 |
### Axure 数据键说明
- `document.js`:用 `"pageName"`/`"url"`/`"children"` 标识页面层级
- 每页 `data.js`:用 `friendlyType`/`label`/`interactionMap`/`style` 描述控件
- HTML 中:`` 装载可见文本、`` 标识控件、`table_cell` 类标识表格、`
` 引用 `images/`
### 降级原则
任一工具缺数据源时退化为通用 HTML 扫描,输出中标注"降级版本"。
---
## 边界条件与异常处理
出现异常按以下 fallback 处理,不静默失败。原则:**即使原型不完整,也要交付一份降级版文档,而非直接报错退出。**
| 异常场景 | 处理动作 |
| ------------------------------ | ------------------------------------------------------------------------------------------- |
| 路径不存在 | 报告用户 + glob 父目录搜候选让用户选 + 不自行假设路径 |
| parse_axure.py 报错 | 单独跑一次捕获 stderr 展示 + 降级为直接 read_file HTML 提取 `` 文本和控件注释(标注"降级输出,未含交互/树结构")+ 降级也失败则终止告知 |
| `files/<页面名>/data.js` 缺失 | 仅 HTML 解析,标注"本页无 data.js,交互事件未提取" |
| 页面 HTML 无 `` 文本 | 标注"本页无可见文本,可能为纯图片/流程图页面",保留条目功能描述写"(待补充)" |
| `document.js` 解析后页面数为 0 或树构建失败 | 降级扁平扫描 glob `*.html`(排除 index/start),标注"层级关系待补充" |
| `output/` 不可写 | 尝试用户指定路径 → CWD → /tmp/,告知实际保存路径 |
---
## 示例
### 示例 1:Axure 完整目录 → PRD
**输入**:
```
我这边有一个 Axure 原型导出的目录,在 /Users/wikky/Net Scaler 下面,是一个服务管理后台的原型。
请帮我解析这个原型,然后生成一份 PRD(产品需求文档),输出 Markdown 格式。
```
**执行过程**:
1. 脚本识别为 Axure(存在 `data/document.js`)
2. 解析得到 17 个页面 + 5 根节点树结构 + 每页文本/控件/交互/便签
3. 展示解析摘要,等待用户确认范围
4. 读取 `references/PRD-template.md`
5. 生成 `output/PRD.md`,含 7 章节,便签说明纳入功能需求和附录
**输出**:`/Users/wikky/Net Scaler/output/PRD.md`
### 示例 2:Axure → 功能清单 + 测试用例
**输入**:
```
请帮我分析 /Users/wikky/Net Scaler 这个 Axure 原型,生成一份功能清单(Excel xlsx 格式)
和一份测试用例文档(xlsx 格式)。功能清单需要包含模块、功能名称、功能描述、优先级这些列。
测试用例需要包含模块、功能点、测试场景、前置条件、测试步骤、预期结果。
```
**执行过程**:
1. 脚本识别为 Axure,解析 17 页面
2. 展示解析摘要
3. 读取 `references/功能清单.md` 和 `references/测试用例.md`
4. 用 openpyxl 生成两个独立 xlsx,各含主表 + 副表「说明」
5. 功能清单按页面分组,测试用例按模块分组,便签说明补入
**输出**:
- `/Users/wikky/Net Scaler/output/功能清单.xlsx`
- `/Users/wikky/Net Scaler/output/测试用例.xlsx`
### 示例 3:单个 HTML 文件 → 页面分析报告
**输入**:
```
我这里有一个 Axure 原型导出的单个 HTML 页面,是 /Users/wikky/Net Scaler/实例管理.html,
请帮我解析这个页面,然后生成一份页面分析报告,包括页面名称、核心功能、页面上的所有控件和交互、
以及数据字段定义。
```
**执行过程**:
1. 脚本识别为单文件模式
2. 解析 HTML 提取文本/控件注释/便签;查找同级 data.js(若有)
3. 生成页面分析报告(含数据字段定义,参考 `数据字典.md` 规范)
**输出**:`/Users/wikky/Net Scaler/output/页面分析报告.md`
### 示例 4:墨刀离线包 → PRD + 功能清单
**输入**:
```
我有一个墨刀导出的离线 HTML 演示包,解压后放在 ~/Downloads/订单管理原型/ 下面,
是一个电商后台订单管理的原型。请帮我解析这个墨刀原型,识别里面的页面,
生成一份 PRD(Markdown 格式)和一份功能清单(xlsx 格式)。
```
**执行过程**:
1. 脚本识别为 mockplus(`index.html` 含 mockplus 字样)
2. 扫描所有 HTML 文件提取页面文本和控件注释
3. 标注"不支持交互提取"(墨刀离线包格式不固定)
4. 生成 PRD.md(含页面清单、功能描述)和功能清单.xlsx
**输出**:
- `~/Downloads/订单管理原型/output/PRD.md`
- `~/Downloads/订单管理原型/output/功能清单.xlsx`
### 示例 5:MasterGo 离线标注 → 页面清单 + 测试用例
**输入**:
```
我从 MasterGo 离线标注插件导出了一个设计稿,文件夹在 ./mastergo_export/ 下,
里面有一个含 PAGED_FRAMES 的 js 数据文件和 index.html。
请帮我分析这个导出,列出所有画板名称,生成一份页面清单和测试用例文档。
```
**执行过程**:
1. 脚本识别为 mastergo(JS 含 `PAGED_FRAMES`)
2. 定位数据 JS 文件,提取画板名称和 ID 列表
3. 标注"不含图层文本"(画板级数据不含图层文本)
4. 生成页面清单.md 和测试用例.md
**输出**:
- `./mastergo_export/output/页面清单.md`
- `./mastergo_export/output/测试用例.md`
### 示例 6:蓝湖 Schema JSON → 页面分析报告 + 数据字典
**输入**:
```
蓝湖导出的设计稿 schema JSON 文件在 ./lanhu_schema/ 目录下,有几个 .schema.json 文件,
每个对应一个画板。请帮我解析这些 schema,提取每个画板的文本内容和图层类型,
生成一份页面分析报告和数据字典。
```
**执行过程**:
1. 脚本识别为 lanhu(存在 `.schema.json` 文件)
2. 递归遍历图层树提取 `lanhutext` 文本和图层类型
3. 生成页面分析报告.md 和数据字典.md
**输出**:
- `./lanhu_schema/output/页面分析报告.md`
- `./lanhu_schema/output/数据字典.md`
### 示例 7:未知工具 → PRD(降级)
**输入**:
```
我这边有一个原型导出的 HTML 文件夹,但我不确定是什么工具导出的,
在 ./unknown_prototype/ 下面,有十几个 html 文件和一些图片资源。
请帮我分析这个原型,生成一份 PRD。
```
**执行过程**:
1. 脚本识别为 unknown(退化 fallback)
2. 扫描所有 HTML 提取文本和控件注释
3. 标注"工具类型未识别,输出为降级版本"
4. 生成 PRD.md
**输出**:`./unknown_prototype/output/PRD.md`
---
## 技能目录结构
```
prototypes-spec/
├── SKILL.md # 主技能文档(257 行,触发词 + 工作流 + 边界条件)
├── scripts/
│ └ parse_axure.py # 多工具解析引擎(1000+ 行)
├── references/ # 各交付物的格式规范(渐进披露,按需加载)
│ ├── PRD-template.md # PRD 7 章节结构规范
│ ├── 功能清单.md # 功能清单 8 列 xlsx 规范 + 生成代码模板
│ ├── 测试用例.md # 测试用例 8 列 xlsx 规范 + 生成代码模板
│ ├── 数据字典.md # 数据字典 9 列字段定义规范 + 生成代码模板
│ ├── 开发计划.md # 开发计划模块拆分 + 里程碑规范 + 生成代码模板
│ ├── 页面跳转关系图.md # Mermaid 流程图 + 跳转详表规范 + 生成代码模板
│ └ 用户故事.md # 角色定义 + 故事地图规范 + 生成代码模板
├── evals/
│ └ evals.json # 3 个测试用例(用于技能评估)
├── test-prompts.json # 7 个测试 prompt(覆盖 5 工具 + 边界场景)
├── results.tsv # Darwin Skill 优化日志
├── result-card.html # 成果卡片 HTML(优化前后对比可视化)
├── result-card.png # 成果卡片截图
前 readme.md # 本文件
```
### 渐进披露设计
技能采用三层加载系统:
1. **元数据**(name + description)— 始终在上下文中(~100 词),用于触发判断
2. **SKILL.md 正文**(257 行)— 技能触发时加载,含工作流 + 边界条件
3. **reference 文件**(按需加载)— 只在生成对应交付物时读取,含详细列定义 + 生成代码模板
这样设计的原因:每种交付物的列定义、生成代码模板、便签纳入规则都较复杂,全塞进 SKILL.md 会超过 500 行上限。拆分到 reference 后,只在真正生成某交付物时加载对应规范,节省上下文。
---
## 优化历史
本技能经 Darwin Skill 自主优化循环持续改进,完整优化日志见 `results.tsv`。
### 历次优化摘要
| 阶段 | 分数 | 改进维度 | 改进内容 |
| -------- | ---- | ----- | --------------------------------------------------- |
| 初始基线 | 71.1 | — | axure-prototypes-prd 命名,初始版本 |
| Round 1 | 74.1 | 边界条件 | 补充 5 条 fallback 路径 |
| Round 2 | 76.2 | 检查点设计 | 补充跳过询问规则 |
| Round 3 | 79.2 | 指令具体性 | 补充 parse_axure.py 调用命令 |
| 重基线 | 84.5 | — | 改名 prototypes-spec + 新增 6 reference + 便签解析 + PRD 精简 |
| Round 1' | 86.0 | 指令具体性 | 询问环节补列速查 + 输出管理补 xlsx 多 sheet 规则 |
| Round 2' | 87.5 | 整体架构 | 解析引擎说明精简为对比表 |
| Round 3' | 88.2 | 检查点设计 | 询问环节补"展示后暂停等待确认"指令 |
**当前分数:88.2/100**
### 8 维度评分明细
| # | 维度 | 权重 | 当前分 | 加权 |
| --- | -------------- | --- | --- | -------- |
| 1 | Frontmatter 质量 | 8 | 9 | 7.2 |
| 2 | 工作流清晰度 | 15 | 9 | 13.5 |
| 3 | 边界条件覆盖 | 10 | 9 | 9.0 |
| 4 | 检查点设计 | 7 | 10 | 7.0 |
| 5 | 指令具体性 | 15 | 9 | 13.5 |
| 6 | 资源整合度 | 5 | 9 | 4.5 |
| 7 | 整体架构 | 15 | 9 | 13.5 |
| 8 | 实测表现 | 25 | 8 | 20.0 |
| | **总分** | 100 | | **88.2** |
---
#