mcpField
S
spec-generator

spec-generator

github.com/catlog22开发2.1k85 次安装19 周前更新
代码仓库

关于 spec-generator

此 Skill 通过分阶段流程将想法整理为可追溯的规格文档包,涵盖产品简报、PRD、架构和史诗。适用于在交由其他工作流执行前准备需求与设计文档的团队。

主要功能

  1. 01六阶段规格生成流程
  2. 02交互式需求细化
  3. 03Gemini、Codex、Claude 并行分析
  4. 04支持检查点续接会话
  5. 05按规格类型适配模板
  6. 06就绪检查与自动修复

适用场景

  1. 01将产品构想整理为 PRD
  2. 02准备架构与史诗文档
  3. 03续接未完成的规格编写会话

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/catlog22/claude-code-workflow --skill spec-generator

安装后在 Claude Code 中输入/spec-generator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
phases/
01-5-requirement-clarification.md
01-discovery.md
02-product-brief.md
03-requirements.md
04-architecture.md
05-epics-stories.md
06-5-auto-fix.md
06-readiness-check.md
specs/
document-standards.md
glossary-template.json
quality-gates.md
templates/
architecture-doc.md
epics-template.md
product-brief.md
requirements-prd.md
templates/profiles/
api-profile.md
library-profile.md
service-profile.md

详细介绍

规格生成器

结构化规格文档生成器,通过 6 个连续阶段和多 CLI 分析及交互式完善,生成完整的规格文档包(产品简介、PRD、架构、史诗)。仅生成文档——执行交接至现有工作流(lite-plan、plan、req-plan)。

架构概览

Phase 0:   Specification Study (Read specs/ + templates/ - mandatory prerequisite)
           |
Phase 1:   Discovery               -> spec-config.json + discovery-context.json
           |                           (includes spec_type selection)
Phase 1.5: Req Expansion           -> refined-requirements.json (interactive discussion + CLI gap analysis)
           |                           (-y auto mode: auto-expansion, skip interaction)
Phase 2:   Product Brief            -> product-brief.md + glossary.json  (multi-CLI parallel analysis)
           |
Phase 3:   Requirements (PRD)      -> requirements/  (_index.md + REQ-*.md + NFR-*.md)
           |                           (RFC 2119 keywords, data model definitions)
Phase 4:   Architecture            -> architecture/  (_index.md + ADR-*.md, multi-CLI review)
           |                           (state machine, config model, error handling, observability)
Phase 5:   Epics & Stories         -> epics/  (_index.md + EPIC-*.md)
           |
Phase 6:   Readiness Check         -> readiness-report.md + spec-summary.md
           |                           (terminology + scope consistency validation)
           ├── Pass (>=80%): Handoff to execution workflows
           ├── Review (60-79%): Handoff with caveats
           └── Fail (<60%): Phase 6.5 Auto-Fix (max 2 iterations)
                 |
Phase 6.5: Auto-Fix               -> Updated Phase 2-5 documents
                 |
                 └── Re-run Phase 6 validation

核心设计原则

  1. 文档链:每个阶段都基于前一阶段的输出,构建从构想到可执行故事的可追溯规格链
  2. 多视角分析:CLI 工具(Gemini/Codex/Claude)并行提供产品、技术和用户视角
  3. 默认交互式:每个阶段都提供用户确认点;-y 标志可启用全自动模式
  4. 会话可恢复:spec-config.json 跟踪已完成的阶段;-c 标志可从上一个检查点恢复
  5. 模板驱动:所有文档均根据带有 YAML frontmatter 的标准模板生成
  6. 纯文档流程:不生成代码或执行任务——干净地交接给现有执行工作流
  7. 规格类型专用化:模板通过配置文件适配规格类型(service/api/library/platform),提供特定领域的深度
  8. 迭代式质量改进:第 6.5 阶段的自动修复循环会修复就绪性检查中发现的问题(最多迭代 2 次)
  9. 术语一致性:第 2 阶段生成 glossary.json,并注入后续所有阶段

必备前置条件

请勿跳过:在执行任何操作之前,必须完整阅读以下文档。未阅读规格说明就继续操作,生成的输出将无法达到质量标准。

规格说明文档(必读)
文档用途优先级
specs/document-standards.md文档格式、frontmatter、命名约定P0 - 执行前必须阅读
specs/quality-gates.md各阶段的质量门槛标准和评分P0 - 执行前必须阅读
模板文件(生成前必读)
文档用途
templates/product-brief.md产品简介文档模板
templates/requirements-prd.mdPRD 文档模板
templates/architecture-doc.md架构文档模板
templates/epics-template.md史诗/故事文档模板

执行流程

Input Parsing:
   |- Parse $ARGUMENTS: extract idea/topic, flags (-y, -c, -m)
   |- Detect mode: new | continue
   |- If continue: read spec-config.json, resume from first incomplete phase
   |- If new: proceed to Phase 1

Phase 1: Discovery & Seed Analysis
   |- Ref: phases/01-discovery.md
   |- Generate session ID: SPEC-{slug}-{YYYY-MM-DD}
   |- Parse input (text or file reference)
   |- Gemini CLI seed analysis (problem, users, domain, dimensions)
   |- Codebase exploration (conditional, if project detected)
   |- Spec type selection: service|api|library|platform (interactive, -y defaults to service)
   |- User confirmation (interactive, -y skips)
   |- Output: spec-config.json, discovery-context.json (optional)

Phase 1.5: Requirement Expansion & Clarification
   |- Ref: phases/01-5-requirement-clarification.md
   |- CLI gap analysis: completeness scoring, missing dimensions detection
   |- Multi-round interactive discussion (max 5 rounds)
   |  |- Round 1: present gap analysis + expansion suggestions
   |  |- Round N: follow-up refinement based on user responses
   |- User final confirmation of requirements
   |- Auto mode (-y): CLI auto-expansion without interaction
   |- Output: refined-requirements.json

Phase 2: Product Brief
   |- Ref: phases/02-product-brief.md
   |- 3 parallel CLI analyses: Product (Gemini) + Technical (Codex) + User (Claude)
   |- Synthesize perspectives: convergent themes + conflicts
   |- Generate glossary.json (terminology from product brief + CLI analysis)
   |- Interactive refinement (-y skips)
   |- Output: product-brief.md (from template), glossary.json

Phase 3: Requirements / PRD
   |- Ref: phases/03-requirements.md
   |- Gemini CLI: expand goals into functional + non-functional requirements
   |- Generate acceptance criteria per requirement
   |- RFC 2119 behavioral constraints (MUST/SHOULD/MAY)
   |- Core entity data model definitions
   |- Glossary injection for terminology consistency
   |- User priority sorting: MoSCoW (interactive, -y auto-assigns)
   |- Output: requirements/ directory (_index.md + REQ-*.md + NFR-*.md, from template)

Phase 4: Architecture
   |- Ref: phases/04-architecture.md
   |- Gemini CLI: core components, tech stack, ADRs
   |- Codebase integration mapping (conditional)
   |- State machine generation (ASCII diagrams for lifecycle entities)
   |- Configuration model definition (fields, types, defaults, constraints)
   |- Error handling strategy (per-component classification + recovery)
   |- Observability specification (metrics, logs, health checks)
   |- Spec type profile injection (templates/profiles/{type}-profile.md)
   |- Glossary injection for terminology consistency
   |- Codex CLI: architecture challenge + review
   |- Interactive ADR decisions (-y auto-accepts)
   |- Output: architecture/ directory (_index.md + ADR-*.md, from template)

Phase 5: Epics & Stories
   |- Ref: phases/05-epics-stories.md
   |- Gemini CLI: requirement grouping into Epics, MVP subset tagging
   |- Story generation: As a...I want...So that...
   |- Dependency mapping (Mermaid)
   |- Interactive validation (-y skips)
   |- Output: epics/ directory (_index.md + EPIC-*.md, from template)

Phase 6: Readiness Check
   |- Ref: phases/06-readiness-check.md
   |- Cross-document validation (completeness, consistency, traceability)
   |- Quality scoring per dimension
   |- Terminology consistency validation (glossary compliance)
   |- Scope containment validation (PRD <= Brief scope)
   |- Output: readiness-report.md, spec-summary.md
   |- Handoff options: lite-plan, req-plan, plan, issue:new, export only, iterate

Phase 6.5: Auto-Fix (conditional, triggered when Phase 6 score < 60%)
   |- Ref: phases/06-5-auto-fix.md
   |- Parse readiness-report.md for Error/Warning items
   |- Group issues by originating Phase (2-5)
   |- Re-generate affected sections via CLI with error context
   |- Re-run Phase 6 validation
   |- Max 2 iterations, then force handoff
   |- Output: Updated Phase 2-5 documents

Complete: Full specification package ready for execution

Phase 6 → Handoff Bridge (conditional, based on user selection):
   ├─ lite-plan: Extract first MVP Epic description → direct text input
   ├─ plan / req-plan: Create WFS session + .brainstorming/ bridge files
   │   ├─ guidance-specification.md (synthesized from spec outputs)
   │   ├─ feature-specs/feature-index.json (Epic → Feature mapping)
   │   └─ feature-specs/F-{num}-{slug}.md (one per Epic)
   ├─ issue:new: Create issues per Epic
   └─ context-search-agent auto-discovers .brainstorming/
       → context-package.json.brainstorm_artifacts populated
       → action-planning-agent consumes: guidance_spec (P1) → feature_index (P2)

目录设置

// Session ID generation
const slug = topic.toLowerCase().replace(/[^a-z0-9\u4e00-\u9fff]+/g, '-').slice(0, 40);
const date = new Date().toISOString().slice(0, 10);
const sessionId = `SPEC-${slug}-${date}`;
const workDir = `.workflow/.spec/${sessionId}`;

Bash(`mkdir -p "${workDir}"`);

输出结构

.workflow/.spec/SPEC-{slug}-{YYYY-MM-DD}/
├── spec-config.json              # Session configuration + phase state
├── discovery-context.json        # Codebase exploration results (optional)
├── refined-requirements.json     # Phase 1.5: Confirmed requirements after discussion
├── glossary.json                 # Phase 2: Terminology glossary for cross-doc consistency
├── product-brief.md              # Phase 2: Product brief
├── requirements/                 # Phase 3: Detailed PRD (directory)
│   ├── _index.md                 #   Summary, MoSCoW table, traceability, links
│   ├── REQ-NNN-{slug}.md         #   Individual functional requirement
│   └── NFR-{type}-NNN-{slug}.md  #   Individual non-functional requirement
├── architecture/                 # Phase 4: Architecture decisions (directory)
│   ├── _index.md                 #   Overview, components, tech stack, links
│   └── ADR-NNN-{slug}.md         #   Individual Architecture Decision Record
├── epics/                        # Phase 5: Epic/Story breakdown (directory)
│   ├── _index.md                 #   Epic table, dependency map, MVP scope
│   └── EPIC-NNN-{slug}.md        #   Individual Epic with Stories
├── readiness-report.md           # Phase 6: Quality report
└── spec-summary.md               # Phase 6: One-page executive summary

状态管理

spec-config.json 是核心状态文件:

{
  "session_id": "SPEC-xxx-2026-02-11",
  "seed_input": "User input text",
  "input_type": "text",
  "timestamp": "ISO8601",
  "mode": "interactive",
  "complexity": "moderate",
  "depth": "standard",
  "focus_areas": [],
  "spec_type": "service",
  "iteration_count": 0,
  "iteration_history": [],
  "seed_analysis": {
    "problem_statement": "...",
    "target_users": [],
    "domain": "...",
    "constraints": [],
    "dimensions": []
  },
  "has_codebase": false,
  "refined_requirements_file": "refined-requirements.json",
  "phasesCompleted": [
    { "phase": 1, "name": "discovery", "output_file": "spec-config.json", "completed_at": "ISO8601" },
    { "phase": 1.5, "name": "requirement-clarification", "output_file": "refined-requirements.json", "discussion_rounds": 2, "completed_at": "ISO8601" },
    { "phase": 3, "name": "requirements", "output_dir": "requirements/", "output_index": "requirements/_index.md", "file_count": 8, "completed_at": "ISO8601" }
  ]
}

恢复机制:-c|--continue 标志会读取 spec-config.json.phasesCompleted,并从第一个未完成的阶段恢复。

核心规则

  1. 立即开始:首先通过 TaskCreate 初始化,然后执行第 0 阶段(规格研究),再执行第 1 阶段
  2. 按阶段加载:仅在某阶段即将执行时,才读取该阶段的文档
  3. 自动继续:所有阶段均自主运行;检查 TaskList 以执行下一个待处理阶段
  4. 解析每项输出:从每个阶段提取所需数据,供下一阶段使用
  5. 不得停止:持续运行 6 阶段流水线,直到所有阶段完成或用户退出
  6. 遵循 -y 标志:处于自动模式时,跳过所有 AskUserQuestion 调用并采用推荐默认值
  7. 遵循 -c 标志:处于继续模式时,加载 spec-config.json 并从检查点恢复
  8. 注入术语表:从第 3 阶段开始,将 glossary.json 中的术语注入每个 CLI 提示词
  9. 加载配置文件:读取 templates/profiles/{spec_type}-profile.md,并将其中的要求注入第 2 至第 5 阶段的提示词
  10. 失败后迭代:第 6 阶段评分低于 60% 时,自动触发第 6.5 阶段(最多迭代 2 次)

各阶段参考文档

阶段 1:发现
文档用途使用时机
phases/01-discovery.md种子分析和会话设置阶段开始
templates/profiles/规范类型配置文件选择规范类型
specs/document-standards.mdspec-config.json 的 Frontmatter 格式生成配置
阶段 1.5:需求扩展与澄清
文档用途使用时机
phases/01-5-requirement-clarification.md交互式需求讨论工作流阶段开始
specs/quality-gates.md优化后需求的质量标准验证
阶段 2:产品概要
文档用途使用时机
phases/02-product-brief.md多 CLI 分析编排阶段开始
templates/product-brief.md文档模板生成文档
specs/glossary-template.json术语表架构生成术语表
阶段 3:需求
文档用途使用时机
phases/03-requirements.mdPRD 生成工作流阶段开始
templates/requirements-prd.md文档模板生成文档
阶段 4:架构
文档用途使用时机
phases/04-architecture.md架构决策工作流阶段开始
templates/architecture-doc.md文档模板生成文档
阶段 5:史诗与故事
文档用途使用时机
phases/05-epics-stories.md史诗/故事分解阶段开始
templates/epics-template.md文档模板生成文档
阶段 6:就绪检查
文档用途使用时机
phases/06-readiness-check.md跨文档验证阶段开始
specs/quality-gates.md质量评分标准验证
阶段 6.5:自动修复
文档用途使用时机
phases/06-5-auto-fix.md就绪问题的自动修复工作流阶段 6 评分低于 60% 时
specs/quality-gates.md迭代退出标准验证
调试与故障排除
问题解决方案文档
阶段执行失败参阅相关阶段文档
输出不符合预期specs/quality-gates.md
文档格式问题specs/document-standards.md

错误处理

阶段错误是否阻塞?操作
阶段 1输入为空是报错并退出
阶段 1CLI 种子分析失败否使用基础解析作为回退方案
阶段 1.5差距分析 CLI 失败否使用基础提示词跳转至用户提问
阶段 1.5用户跳过讨论否按原样继续使用 seed_analysis
阶段 1.5达到最大轮数(5 轮)否使用当前状态强制确认
阶段 2单个 CLI 视角分析失败否使用可用的视角继续
阶段 2所有 CLI 调用均失败否根据种子分析生成基础简报
阶段 3Gemini CLI 失败否使用 codex 回退
阶段 4架构审查失败否跳过审查,使用初始分析继续
阶段 5故事生成失败否生成史诗,不包含详细故事
阶段 6验证 CLI 失败否使用可用数据生成部分报告
阶段 6.5自动修复 CLI 失败否记录失败,带着 Review 状态继续交接
阶段 6.5达到最大迭代次数否强制交接,并报告剩余问题
CLI 回退链

Gemini -> Codex -> Claude -> 降级模式(仅限本地分析)

评论

支持 Markdown