Skip to content

/product-design

产品设计契约。需求确认后、技术方案前使用。

产品设计契约

基于已确认的需求(spec.md / prd.md / 用户描述),生成两份项目级契约文件:

  • docs/product-spec.md — 产品结构契约(信息架构、用户旅程、权限、埋点)
  • docs/design-spec.md — 设计规范契约(Token、组件、交互、组合模式)

红线

  • MUST 基于已确认的需求源,不凭空发明页面和功能
  • MUST product-spec 先于 design-spec 填写(产品结构决定视觉需求)
  • MUST 共享组件词汇表(product-spec §0.2)在两份文件中保持一致
  • MUST 每个页面在站点地图(§2.1)和页面注册表(§4.1)中双重登记
  • MUST 页面状态矩阵(§4.2)按页面类型覆盖所有必需状态
  • NEVER 自行开始编码或技术方案设计
  • NEVER 跳过走查清单(product-spec §9、design-spec §9)

步骤

Step 0: 搜集上下文

并行读取:

  1. 需求源docs/spec.mddocs/*-spec.mddocs/*-prd.md
  2. 已有产品/设计文件 — 检查 docs/product-spec.mddocs/design-spec.md 是否已存在(增量更新 vs 从零创建)
  3. 模板 — 读取 docs/templates/product-spec-template.mddocs/templates/design-spec-template.md;如果项目 docs/templates/ 不存在,读取 ~/.claude/product-spec-template.md~/.claude/design-spec-template.md
  4. 技术栈 — 读取 CLAUDE.md 了解项目技术栈(影响平台标记 [MP]/[WEB])

向用户确认:

"已读取 [需求源列表],识别出 N 个页面、M 条用户旅程、K 个用户角色。将生成 product-spec.md 和 design-spec.md。确认?"

Step 1: 生成 product-spec.md

基于需求源,按模板结构逐章填写。核心章节的填写要点:

§1 产品定义 — 从 spec.md §1-§3 提取定位、用户画像、价值主张

§2 信息架构 — 这是最关键的章节:

  • 站点地图:列出所有页面及层级关系,标注访问级别
  • 导航模型:主导航 + 辅助导航
  • 路由规范:每个页面的路由路径和参数
  • 内容模型:从 spec.md §7 或 prd.md 数据模型映射实体关系

§3 用户旅程 — 从 spec.md §5 用户故事展开为完整跨页面旅程:

  • 首次体验旅程(到 Aha 时刻)
  • 核心价值循环
  • 转化/付费旅程
  • 旅程间衔接和中断恢复

§4 页面注册与职责

  • 页面注册表:站点地图中的每个页面都必须出现
  • 状态矩阵:按页面类型覆盖必需状态(列表页 7 种、详情页 4 种、表单页 3 种 + 提交流)
  • 页面间数据流:传 ID 不传对象

§5 用户状态与权限 — 从 prd.md 状态机(如有)映射:

  • 状态定义和转换规则
  • 权限矩阵:功能 × 角色的完整映射
  • 权限拒绝时的用户体验

§8 数据分析 — 从 spec.md §13 成功指标转化:

  • 北极星指标
  • 按旅程阶段定义漏斗和事件
  • 事件命名遵循 snake_case + 名词_动词 规范

§0.2 共享组件词汇表 — 注册本项目使用的所有 UI 组件,与 design-spec 保持一致。

Step 2: 生成 design-spec.md

基于 product-spec 确定的页面和状态需求,按模板结构填写:

§1 设计原则 — 与用户确认风格关键词和优先级

§2 Token 系统 — 这是 design-spec 的核心:

  • 色彩:主色、语义色(success/warning/error/info)、中性色阶梯
  • 字体:层级(h1-h6 + body + caption)、行高、字重
  • 间距:4px 基数倍数系统
  • 阴影、圆角、动效持续时间

如果有 Figma 设计稿:用 get_variable_defs 提取 Token 值填入。 如果没有:使用模板默认值或与用户协商确认。

§4 组件规范 — 基于 product-spec §0.2 词汇表中注册的组件,逐一定义:

  • 尺寸变体(sm/md/lg)
  • 状态(default/hover/active/disabled/loading)
  • 无障碍要求

§5 交互模式 — 基于 product-spec §7 异常目录:

  • 表单验证(实时 vs 提交时)
  • 加载/错误/空态处理
  • 手势(如移动端)

§6 组合模式 — 基于 product-spec §4.1 页面类型:

  • 每种页面类型的标准布局结构
  • 与 product-spec 的页面类型一一对应

Step 3: 走查

依次运行两份走查清单:

  1. product-spec §9 走查清单(6 维度):

    • 信息架构:无孤立页面、深度 ≤ 3
    • 用户旅程:核心旅程完整、入口/出口已映射
    • 页面状态:所有必需状态已定义
    • 权限:矩阵完备
    • 异常:已编目并有恢复路径
    • 数据分析:事件与旅程阶段一致
  2. design-spec §9 走查清单(如模板提供)

  3. 跨规范一致性

    • 组件名称与共享词汇表一致
    • 页面类型与组合模式对应
    • 错误/空/加载状态使用 design-spec 定义的组件

Step 4: 等待确认

IMPORTANT:输出后等待用户确认,不自行开始技术方案或编码。

"已生成 product-spec.md(N 个页面、M 条旅程、K 个角色、J 个埋点事件)和 design-spec.md(X 个 Token、Y 个组件规范)。走查清单全部通过。请审阅,下一步 /plan。"


Quality Gate

  • [ ] 基于已确认的需求源
  • [ ] product-spec 先于 design-spec 生成
  • [ ] 站点地图中的每个页面都在页面注册表中登记
  • [ ] 每个页面的状态矩阵按类型覆盖所有必需状态
  • [ ] 权限矩阵覆盖所有功能 × 所有角色
  • [ ] 每条核心旅程的每个阶段都有对应的埋点事件
  • [ ] 共享组件词汇表在两份文件中一致
  • [ ] 两份走查清单通过
  • [ ] 用户已确认

Tips

  • 小项目(< 5 页面):design-spec 的 Token 系统可以精简,只填色彩和字体,间距/阴影用模板默认值
  • 已有 Figma 设计稿:design-spec 的 Token 直接从 Figma 提取,不手工填
  • 增量更新:项目迭代新增页面时,只更新受影响的章节,不重写全文
  • 与 /prd 的配合:/prd 的状态机和数据模型是 product-spec 的重要输入,如果已有 prd.md 会大幅简化 §2.4 和 §5.1 的填写

面向个人开发者的 AI 辅助编程工程化方案