# pmassist Changelog ## [v2.1.0] - 2026-02-09 ### 新增功能:会话恢复(Session Resumption) #### 核心特性 - ✅ **自动状态回顾**:读取 session.yaml、summary.md、questions/* 生成完整的会话状态报告 - ✅ **5 种工作模式**:继续/修改/局部/原型/定稿,精准匹配不同使用场景 - ✅ **触发词识别**:支持"继续之前的工作"、"修改 XXX 的 PRD"等自然语言触发 - ✅ **版本升级检测**:自动识别 v1.x 会话并提示升级到 v2.x #### 文件变更 **1. SKILL.md** - 新增 `## 1.5) 会话恢复(Resume Session)` - 位置:第 1 节(确认工作目录)与第 2 节(初始化工作区)之间 - 内容: - 触发条件与验证逻辑 - 状态回顾报告模板(包含 Round、章节、问题、原型状态) - 5 种工作模式(A-E)详细流程 - 特殊处理:版本升级、损坏会话恢复 #### 5 种工作模式 **A. 继续模式**(Continue) - 接续当前 Round,补充未完成章节 - 优先解决 P0 遗留问题 - 继续执行 PDCA 循环直到本轮收敛 **B. 修改模式**(Revise) - 开启新 Round(N+1),基于新需求/反馈修订 - 重新走一轮完整 PDCA - 记录修改诉求到新 round 文件 **C. 局部模式**(Patch) - 只修改特定章节/段落,不开启新 Round - 不触发完整 PDCA,快速修改 - 追加修改记录到 decision_log.md **D. 原型模式**(Prototype) - 独立于文档迭代,执行 Proto Round 1-3 - 支持更新/重新生成原型 - 与 2.6 节原型设计环节联动 **E. 定稿模式**(Finalize) - 最终审核并定稿,不再修改内容 - 完整性检查(证据覆盖、图表齐全、问题清零) - 生成 `{doc_type}_final.md` 并更新状态 #### 状态报告模板 ```markdown 📊 会话状态报告 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📁 工作目录:{workdir} 📄 文档类型:{PRD/FRD/DAR} 📌 项目简称:{alias} 🔢 当前 Round:{current_round} 📝 已完成内容:章节数、证据数、图表数 ❓ 遗留问题:P0/P1/P2 统计 🎨 原型状态:技术路径、产出文件 ⏰ 上次更新:时间戳 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` #### 特殊处理 **会话版本升级** - 检测旧版 session.yaml(缺少 `prototype` 块) - 提示用户升级到 v2.0,自动创建 prototypes/ 目录 **损坏会话恢复** - 尝试从 `.backup/` 恢复 - 若无备份,提供重建或创建新会话选项 #### 使用场景 **场景 1:继续未完成工作** ``` 用户:"继续 dual-billing-20260209-1500 的 PRD" Claude: 1. 读取 session.yaml → Round 2 2. 生成状态报告 → 已完成 3 章,遗留 5 个 P1 问题 3. 询问:"[A] 继续当前 Round 2" 4. 用户选 A → 解决 P1 问题并补充第 4 章 ``` **场景 2:基于新需求修改** ``` 用户:"修改 dual-billing 的计费逻辑,增加时长计费" Claude: 1. 读取会话 → 当前 Round 3 2. 生成状态报告 3. 询问:"[B] 修改模式 - 开启 Round 4" 4. 用户选 B → 记录修改诉求,重新 PDCA ``` **场景 3:快速修正单章节** ``` 用户:"把 dual-billing PRD 的第 3 章重写一下" Claude: 1. 读取会话 2. 生成状态报告 3. 询问:"[C] 局部模式 - 只修改第 3 章" 4. 用户选 C → 重写第 3 章,更新证据,不开新 Round ``` **场景 4:更新原型** ``` 用户:"dual-billing 的原型需要增加一个结算页面" Claude: 1. 读取会话 → prototype.status = "proto_complete" 2. 生成状态报告 → 已有 Pencil 设计稿 3. 询问:"[D] 原型模式 - Proto Round 2(增量)" 4. 用户选 D → 执行 Proto Round 补充结算页面 ``` **场景 5:最终定稿** ``` 用户:"dual-billing PRD 可以定稿了" Claude: 1. 读取会话 → Round 5 2. 生成状态报告 3. 询问:"[E] 定稿模式" 4. 用户选 E → 完整性检查 → 生成 prd_final.md ``` #### 向后兼容 - ✅ v1.x 会话可自动识别并提示升级 - ✅ 不影响现有新建会话流程(第 1-2 节) - ✅ 所有恢复功能为可选,不破坏原有工作流 #### 文档更新 - [x] SKILL.md - 新增 1.5 节会话恢复 - [x] CHANGELOG.md - 记录 v2.1.0 变更 #### 设计原则 - **手动触发**:无需额外脚本,Claude 读取文件并生成报告 - **明确模式**:5 种模式覆盖所有工作场景,避免混淆 - **状态透明**:报告模板清晰展示会话状态 - **灵活切换**:用户可根据需求自由选择工作模式 --- ## [v2.0.0] - 2026-02-09 ### 新增功能:原型设计环节 #### 核心特性 - ✅ **多轮问答式原型需求收集** (Proto Round 1-3) - ✅ **4 种输入方式支持**: URL 范本、截图范本、文字描述、从零设计 - ✅ **2 条技术路径**: - Pencil (.pen) - 静态设计稿、视觉展示 - Web Artifact (React/HTML) - 交互原型、可点击 PoC - ✅ **证据链增强**: 原型文件作为新型证据类型 `[PROTO:...]` #### 文件变更 **1. SKILL.md** - 新增 `## 2.6) 原型设计环节(可选但推荐)` - 内容:触发条件、执行流程(Proto Round 1-3)、技术选择、目录结构、证据标注规则 - 更新 `## 资源` 章节,增加原型模板引用 **2. scripts/init_session.py** - 新增参数:`--enable-prototype` - 新增目录创建逻辑: - `materials/prototypes/`(reference / analysis) - `prototypes/`(screenshots / webapp) - session.yaml 模板扩展:增加 `prototype` 配置块 **3. references/proto_requirements_template.yaml** (新增) - Proto Round 1 的问题清单模板 - 5 个标准问题(PROTO-1-1 到 PROTO-1-5) - 优先级:2 个 P0、2 个 P1、1 个 P2 **4. references/prototype_coverage_template.md** (新增) - 原型覆盖度对照表模板 - 章节 vs 原型文件映射表 - 原型文件清单 - 反馈记录与验收标准 **5. design/prototype-integration.md** (新增) - 完整的原型集成方案设计文档 - 包含:设计目标、触发时机、流程图、风险应对、成功指标 #### 目录结构变化 **启用原型前**: ``` {workdir}/ ├── materials/ ├── rounds/ ├── questions/ └── outputs/ ``` **启用原型后** (`--enable-prototype`): ``` {workdir}/ ├── materials/ │ └── prototypes/ # 新增 │ ├── reference/ # 截图/URL 快照 │ └── analysis/ # 竞品分析 ├── rounds/ ├── questions/ │ ├── proto_requirements.yaml # 新增 │ └── proto_feedback_N.yaml # 新增 ├── outputs/ └── prototypes/ # 新增 ├── design.pen # Pencil 设计稿 ├── screenshots/ # 原型截图 ├── webapp/ # Web 原型代码 ├── design_analysis.md # 设计决策 └── prototype_coverage.md # 覆盖度对照 ``` #### session.yaml 扩展 新增 `prototype` 配置块: ```yaml prototype: enabled: true status: "proto_pending" # proto_pending | proto_in_progress | proto_complete proto_round: 0 tech_stack: [] outputs: [] unresolved_proto_questions: [] ``` #### 使用示例 **基础用法** (不启用原型): ```bash python3 skills/pmassist/scripts/init_session.py \ --path ./myproject-20260209-1500 \ --doc prd \ --alias myproject \ --title "我的产品需求文档" \ --desc "需求描述..." ``` **启用原型**: ```bash python3 skills/pmassist/scripts/init_session.py \ --path ./myproject-20260209-1500 \ --doc prd \ --alias myproject \ --title "我的产品需求文档" \ --desc "需求描述,需要可视化原型" \ --enable-prototype # 新增参数 ``` #### 工作流程集成 原型环节融入现有 PDCA 流程: ``` Round N (文档迭代) ├── Plan │ ├── 本轮文档目标 │ ├── [新增] 是否需要原型? │ └── 需要提出的问题 ├── Do │ ├── 读取证据 │ ├── 分析并更新文档 │ └── [新增] 若启用原型 → 执行 Proto Round 1-3 ├── Check │ ├── 证据充足性 │ ├── [新增] 原型覆盖度检查 │ └── 逻辑一致性 └── Act ├── 更新 summary.md ├── [新增] 更新 prototype 状态 └── 规划下一轮 ``` **Proto Round 子流程**: 1. **Round 1**: 需求收集(问答 PROTO-1-1 到 PROTO-1-5) 2. **Round 2**: 实现原型(选择技术路径 A/B/C) 3. **Round 3**: 验证迭代(覆盖度检查/反馈/归档) #### 技术依赖 **MCP 工具**: - `pencil` - Pencil 设计稿生成 - `chrome-devtools` - URL 范本抓取 - `document-skills:frontend-design` - Web Artifact 生成 - `document-skills:webapp-testing` - 原型交互测试(可选) **证据类型扩展**: - `[PROTO:prototypes/screenshots/xxx.png]` - 原型截图 - `[PROTO:prototypes/webapp/index.html#section]` - 交互原型 #### 向后兼容 - ✅ 未使用 `--enable-prototype` 时,行为与 v1.x 完全一致 - ✅ 现有会话目录不受影响 - ✅ 所有原型功能为可选特性 #### 文档更新 - [x] SKILL.md - 新增 2.6 章节 - [x] init_session.py - 新增参数和目录逻辑 - [x] 新增 proto_requirements_template.yaml - [x] 新增 prototype_coverage_template.md - [x] 新增 design/prototype-integration.md #### 测试验证 - [x] `--help` 显示 `--enable-prototype` 参数 - [x] 创建会话时正确生成原型目录结构 - [x] session.yaml 包含 `prototype` 配置块 - [x] 清理测试环境 #### 下一步计划 (P1) - [ ] 创建 Pencil 原型生成流程文档 - [ ] 创建 Web Artifact 原型生成流程文档 - [ ] 更新 PRD/FRD 模板增加原型证据示例 - [ ] 在真实项目中测试完整流程 --- ## [v1.0.0] - 2026-02-08 ### 初始版本 - WWH + PDCA 工作流程 - PRD/FRD/DAR 三类文档支持 - 证据映射机制 - 问题清单管理(P0/P1/P2) - 初始化脚本 `init_session.py`