cc-devflow 2.4.6 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/CLAUDE.md +1065 -48
- package/.claude/agents/dev-implementer.md +195 -0
- package/.claude/commands/{flow-archive.md → flow/archive.md} +46 -11
- package/.claude/commands/flow/context.md +150 -0
- package/.claude/commands/flow/delta.md +245 -0
- package/.claude/commands/{flow-dev.md → flow/dev.md} +112 -11
- package/.claude/commands/flow/init.md +45 -0
- package/.claude/commands/flow/quality.md +159 -0
- package/.claude/commands/flow/spec.md +186 -0
- package/.claude/commands/flow/workspace.md +146 -0
- package/.claude/commands/{cancel-ralph.md → util/cancel-ralph.md} +1 -0
- package/.claude/config/quality-gates.yml +305 -0
- package/.claude/docs/guides/TEAM_MODE_GUIDE.md +313 -0
- package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +91 -0
- package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +151 -0
- package/.claude/docs/templates/JOURNAL_TEMPLATE.md +75 -0
- package/.claude/docs/templates/_shared/CLAUDE.md +36 -0
- package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +125 -0
- package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +187 -0
- package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +164 -0
- package/.claude/docs/templates/context/dev.jsonl.template +6 -0
- package/.claude/docs/templates/context/epic.jsonl.template +5 -0
- package/.claude/docs/templates/context/prd.jsonl.template +4 -0
- package/.claude/docs/templates/context/research.jsonl.template +4 -0
- package/.claude/docs/templates/context/review.jsonl.template +5 -0
- package/.claude/docs/templates/context/tech.jsonl.template +5 -0
- package/.claude/hooks/CLAUDE.md +342 -0
- package/.claude/hooks/inject-agent-context.ts +480 -0
- package/.claude/hooks/inject-skill-context.ts +359 -0
- package/.claude/hooks/ralph-loop.ts +931 -0
- package/.claude/hooks/task-completed-hook.ts +593 -0
- package/.claude/hooks/teammate-idle-hook.ts +690 -0
- package/.claude/hooks/types/team-types.d.ts +238 -0
- package/.claude/rules/devflow-conventions.md +82 -9
- package/.claude/scripts/archive-requirement.sh +44 -1
- package/.claude/scripts/common.sh +670 -3
- package/.claude/scripts/delta-parser.ts +527 -0
- package/.claude/scripts/detect-file-conflicts.sh +151 -0
- package/.claude/scripts/flow-context-add.sh +134 -0
- package/.claude/scripts/flow-context-init.sh +133 -0
- package/.claude/scripts/flow-context-validate.sh +144 -0
- package/.claude/scripts/flow-delta-apply.sh +297 -0
- package/.claude/scripts/flow-delta-archive.sh +71 -0
- package/.claude/scripts/flow-delta-create.sh +202 -0
- package/.claude/scripts/flow-delta-list.sh +142 -0
- package/.claude/scripts/flow-delta-status.sh +235 -0
- package/.claude/scripts/flow-quality-full.sh +184 -0
- package/.claude/scripts/flow-quality-quick.sh +64 -0
- package/.claude/scripts/flow-workspace-init.sh +117 -0
- package/.claude/scripts/flow-workspace-record.sh +164 -0
- package/.claude/scripts/flow-workspace-start.sh +88 -0
- package/.claude/scripts/get-workflow-status.sh +415 -0
- package/.claude/scripts/parse-task-dependencies.js +334 -0
- package/.claude/scripts/record-quality-error.sh +165 -0
- package/.claude/scripts/run-quality-gates.sh +242 -0
- package/.claude/scripts/team-dev-init.sh +319 -0
- package/.claude/scripts/team-state-recovery.sh +229 -0
- package/.claude/scripts/workflow-status.ts +433 -0
- package/.claude/settings.json +19 -0
- package/.claude/skills/cc-devflow-orchestrator/SKILL.md +85 -200
- package/.claude/skills/domain/using-git-worktrees/SKILL.md +252 -0
- package/.claude/skills/domain/using-git-worktrees/assets/SHELL_ALIASES.md +133 -0
- package/.claude/skills/domain/using-git-worktrees/context.jsonl +4 -0
- package/.claude/skills/domain/using-git-worktrees/scripts/worktree-cleanup.sh +218 -0
- package/.claude/skills/domain/using-git-worktrees/scripts/worktree-create.sh +232 -0
- package/.claude/skills/domain/using-git-worktrees/scripts/worktree-list.sh +130 -0
- package/.claude/skills/domain/using-git-worktrees/scripts/worktree-status.sh +140 -0
- package/.claude/skills/domain/using-git-worktrees/scripts/worktree-switch.sh +70 -0
- package/.claude/skills/skill-rules.json +72 -1
- package/.claude/skills/utility/journey-checker/SKILL.md +199 -0
- package/.claude/skills/utility/journey-checker/pressure-scenarios.md +164 -0
- package/.claude/skills/utility/skill-creator/LICENSE.txt +202 -0
- package/.claude/skills/utility/skill-creator/SKILL.md +356 -0
- package/.claude/skills/utility/skill-creator/references/output-patterns.md +82 -0
- package/.claude/skills/utility/skill-creator/references/workflows.md +28 -0
- package/.claude/skills/utility/skill-creator/scripts/init_skill.py +303 -0
- package/.claude/skills/utility/skill-creator/scripts/package_skill.py +110 -0
- package/.claude/skills/utility/skill-creator/scripts/quick_validate.py +95 -0
- package/.claude/skills/workflow/flow-dev/CLAUDE.md +78 -0
- package/.claude/skills/workflow/flow-dev/SKILL.md +96 -0
- package/.claude/skills/workflow/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +71 -0
- package/.claude/skills/workflow/flow-dev/context.jsonl +8 -0
- package/.claude/skills/workflow/flow-dev/dev-implementer.jsonl +8 -0
- package/.claude/skills/workflow/flow-dev/scripts/entry-gate.sh +116 -0
- package/.claude/skills/workflow/flow-dev/scripts/exit-gate.sh +101 -0
- package/.claude/skills/workflow/flow-dev/scripts/task-orchestrator.sh +106 -0
- package/.claude/skills/workflow/flow-fix/SKILL.md +105 -0
- package/.claude/skills/workflow/flow-fix/context.jsonl +6 -0
- package/.claude/skills/workflow/flow-fix/references/bug-analyzer.md +381 -0
- package/.claude/skills/workflow/flow-init/SKILL.md +211 -0
- package/.claude/skills/workflow/flow-init/assets/BRAINSTORM_TEMPLATE.md +148 -0
- package/.claude/skills/workflow/flow-init/assets/INIT_FLOW_TEMPLATE.md +198 -0
- package/.claude/skills/workflow/flow-init/assets/RESEARCH_TEMPLATE.md +276 -0
- package/.claude/skills/workflow/flow-init/context.jsonl +5 -0
- package/.claude/skills/workflow/flow-init/references/flow-researcher.md +132 -0
- package/.claude/skills/workflow/flow-init/scripts/check-prerequisites.sh +232 -0
- package/.claude/skills/workflow/flow-init/scripts/consolidate-research.sh +182 -0
- package/.claude/skills/workflow/flow-init/scripts/create-requirement.sh +515 -0
- package/.claude/skills/workflow/flow-init/scripts/generate-research-tasks.sh +157 -0
- package/.claude/skills/workflow/flow-init/scripts/populate-research-tasks.sh +284 -0
- package/.claude/skills/workflow/flow-init/scripts/validate-research.sh +332 -0
- package/.claude/skills/workflow/flow-quality/SKILL.md +94 -0
- package/.claude/skills/workflow/flow-quality/context.jsonl +6 -0
- package/.claude/skills/workflow/flow-quality/references/code-quality-reviewer.md +205 -0
- package/.claude/skills/workflow/flow-quality/references/qa-tester.md +313 -0
- package/.claude/skills/workflow/flow-quality/references/security-reviewer.md +314 -0
- package/.claude/skills/workflow/flow-quality/references/spec-reviewer.md +221 -0
- package/.claude/skills/workflow/flow-release/SKILL.md +126 -0
- package/.claude/skills/workflow/flow-release/context.jsonl +7 -0
- package/.claude/skills/workflow/flow-release/references/release-manager.md +295 -0
- package/.claude/skills/workflow/flow-spec/CLAUDE.md +103 -0
- package/.claude/skills/workflow/flow-spec/SKILL.md +545 -0
- package/.claude/skills/workflow/flow-spec/context.jsonl +7 -0
- package/.claude/skills/workflow/flow-spec/scripts/entry-gate.sh +194 -0
- package/.claude/skills/workflow/flow-spec/scripts/exit-gate.sh +244 -0
- package/.claude/skills/workflow/flow-spec/scripts/parallel-orchestrator.sh +205 -0
- package/.claude/skills/workflow/flow-spec/scripts/team-communication.sh +353 -0
- package/.claude/skills/workflow/flow-spec/scripts/team-init.sh +195 -0
- package/.claude/skills/workflow/flow-spec/scripts/test-team-mode.sh +496 -0
- package/.claude/skills/workflow/flow-spec/team-config.json +165 -0
- package/.claude/skills/workflow.yaml +417 -0
- package/CHANGELOG.md +254 -0
- package/README.md +193 -33
- package/README.zh-CN.md +206 -46
- package/lib/compiler/CLAUDE.md +77 -46
- package/lib/compiler/__tests__/multi-module-emitters.test.js +508 -0
- package/lib/compiler/context-expander.js +179 -0
- package/lib/compiler/emitters/antigravity-emitter.js +195 -5
- package/lib/compiler/emitters/base-emitter.js +217 -2
- package/lib/compiler/emitters/codex-emitter.js +200 -4
- package/lib/compiler/emitters/cursor-emitter.js +307 -3
- package/lib/compiler/emitters/qwen-emitter.js +196 -4
- package/lib/compiler/index.js +197 -2
- package/lib/compiler/platforms.js +270 -21
- package/package.json +1 -1
- package/.claude/commands/flow-epic.md +0 -183
- package/.claude/commands/flow-init.md +0 -370
- package/.claude/commands/flow-prd.md +0 -144
- package/.claude/commands/flow-qa.md +0 -93
- package/.claude/commands/flow-review.md +0 -257
- package/.claude/commands/flow-tech.md +0 -142
- package/.claude/commands/flow-ui.md +0 -189
- package/.claude/skills/file-header-guardian/SKILL.md +0 -56
- package/.claude/skills/skill-developer/ADVANCED.md +0 -197
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
- package/.claude/skills/skill-developer/SKILL.md +0 -426
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
- package/.claude/skills/writing-skills/SKILL.md +0 -655
- package/.claude/skills/writing-skills/anthropic-best-practices.md +0 -1150
- package/.claude/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
- package/.claude/skills/writing-skills/graphviz-conventions.dot +0 -172
- package/.claude/skills/writing-skills/persuasion-principles.md +0 -187
- package/.claude/skills/writing-skills/render-graphs.js +0 -168
- package/.claude/skills/writing-skills/testing-skills-with-subagents.md +0 -384
- package/.claude/tsc-cache/795ba6e3-b98a-423b-bab2-51aa62812569/affected-repos.txt +0 -1
- package/.claude/tsc-cache/ae335694-be5a-4ba4-a1a0-b676c09a7906/affected-repos.txt +0 -1
- /package/.claude/commands/{core-architecture.md → core/architecture.md} +0 -0
- /package/.claude/commands/{core-guidelines.md → core/guidelines.md} +0 -0
- /package/.claude/commands/{core-roadmap.md → core/roadmap.md} +0 -0
- /package/.claude/commands/{core-style.md → core/style.md} +0 -0
- /package/.claude/commands/{flow-checklist.md → flow/checklist.md} +0 -0
- /package/.claude/commands/{flow-clarify.md → flow/clarify.md} +0 -0
- /package/.claude/commands/{flow-constitution.md → flow/constitution.md} +0 -0
- /package/.claude/commands/{flow-fix.md → flow/fix.md} +0 -0
- /package/.claude/commands/{flow-ideate.md → flow/ideate.md} +0 -0
- /package/.claude/commands/{flow-new.md → flow/new.md} +0 -0
- /package/.claude/commands/{flow-release.md → flow/release.md} +0 -0
- /package/.claude/commands/{flow-restart.md → flow/restart.md} +0 -0
- /package/.claude/commands/{flow-status.md → flow/status.md} +0 -0
- /package/.claude/commands/{flow-update.md → flow/update.md} +0 -0
- /package/.claude/commands/{flow-upgrade.md → flow/upgrade.md} +0 -0
- /package/.claude/commands/{flow-verify.md → flow/verify.md} +0 -0
- /package/.claude/commands/{code-review-high.md → util/code-review.md} +0 -0
- /package/.claude/commands/{git-commit.md → util/git-commit.md} +0 -0
- /package/.claude/commands/{problem-analyzer.md → util/problem-analyzer.md} +0 -0
- /package/.claude/skills/{flow-attention-refresh → domain/attention-refresh}/SKILL.md +0 -0
- /package/.claude/skills/{flow-brainstorming → domain/brainstorming}/SKILL.md +0 -0
- /package/.claude/skills/{flow-debugging → domain/debugging}/SKILL.md +0 -0
- /package/.claude/skills/{flow-finishing-branch → domain/finishing-branch}/SKILL.md +0 -0
- /package/.claude/skills/{flow-receiving-review → domain/receiving-review}/SKILL.md +0 -0
- /package/.claude/skills/{flow-tdd → domain/tdd}/SKILL.md +0 -0
- /package/.claude/skills/{verification-before-completion → domain/verification}/SKILL.md +0 -0
- /package/.claude/skills/{constitution-guardian → guardrail/constitution-guardian}/SKILL.md +0 -0
- /package/.claude/skills/{devflow-tdd-enforcer → guardrail/tdd-enforcer}/SKILL.md +0 -0
- /package/.claude/skills/{devflow-constitution-quick-ref → utility/constitution-quick-ref}/SKILL.md +0 -0
- /package/.claude/skills/{devflow-file-standards → utility/file-standards}/SKILL.md +0 -0
- /package/.claude/skills/{fractal-docs-generator → utility/fractal-docs}/SKILL.md +0 -0
- /package/.claude/skills/{npm-release → utility/npm-release}/SKILL.md +0 -0
|
@@ -1,370 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow-init
|
|
3
|
-
description: 'Initialize requirement structure. Usage: /flow-init "REQ-123|Title|URLs"'
|
|
4
|
-
scripts:
|
|
5
|
-
create: .claude/scripts/create-requirement.sh
|
|
6
|
-
prereq: .claude/scripts/check-prerequisites.sh
|
|
7
|
-
research_tasks: .claude/scripts/generate-research-tasks.sh
|
|
8
|
-
populate_tasks: .claude/scripts/populate-research-tasks.sh
|
|
9
|
-
consolidate: .claude/scripts/consolidate-research.sh
|
|
10
|
-
validate_research: .claude/scripts/validate-research.sh
|
|
11
|
-
templates:
|
|
12
|
-
flow: .claude/docs/templates/INIT_FLOW_TEMPLATE.md
|
|
13
|
-
research: .claude/docs/templates/RESEARCH_TEMPLATE.md
|
|
14
|
-
brainstorm: .claude/docs/templates/BRAINSTORM_TEMPLATE.md
|
|
15
|
-
guides:
|
|
16
|
-
troubleshoot: .claude/docs/guides/INIT_TROUBLESHOOTING.md
|
|
17
|
-
skills:
|
|
18
|
-
brainstorming: .claude/skills/flow-brainstorming/SKILL.md
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
<!-- ============================================================
|
|
22
|
-
头文件引用语法规范 (Header File Reference Syntax)
|
|
23
|
-
============================================================
|
|
24
|
-
|
|
25
|
-
命令头文件格式:
|
|
26
|
-
```yaml
|
|
27
|
-
scripts:
|
|
28
|
-
create: .claude/scripts/create-requirement.sh
|
|
29
|
-
templates:
|
|
30
|
-
flow: .claude/docs/templates/INIT_FLOW_TEMPLATE.md
|
|
31
|
-
guides:
|
|
32
|
-
troubleshoot: .claude/docs/guides/INIT_TROUBLESHOOTING.md
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
引用语法:
|
|
36
|
-
- {SCRIPT:create} → 执行 .claude/scripts/create-requirement.sh
|
|
37
|
-
- {TEMPLATE:flow} → 加载 .claude/docs/templates/INIT_FLOW_TEMPLATE.md
|
|
38
|
-
- {GUIDE:troubleshoot} → 参考 .claude/docs/guides/INIT_TROUBLESHOOTING.md
|
|
39
|
-
|
|
40
|
-
使用案例:
|
|
41
|
-
```markdown
|
|
42
|
-
# 正文中遇到:
|
|
43
|
-
→ Run: {SCRIPT:create} "REQ-123" --title "User Auth"
|
|
44
|
-
# 解释为:
|
|
45
|
-
→ 执行命令: bash .claude/scripts/create-requirement.sh "REQ-123" --title "User Auth"
|
|
46
|
-
|
|
47
|
-
# 正文中遇到:
|
|
48
|
-
→ 详见 {TEMPLATE:flow} Stage 2.5
|
|
49
|
-
# 解释为:
|
|
50
|
-
→ 打开并阅读 .claude/docs/templates/INIT_FLOW_TEMPLATE.md 中的 Stage 2.5 章节
|
|
51
|
-
|
|
52
|
-
# 正文中遇到:
|
|
53
|
-
→ 遇到问题参考 {GUIDE:troubleshoot}
|
|
54
|
-
# 解释为:
|
|
55
|
-
→ 打开并阅读 .claude/docs/guides/INIT_TROUBLESHOOTING.md
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
规则: 遇到 {TYPE:key} 占位符时,去头文件 YAML 中找对应类型的 key,获取文件路径并执行/加载。
|
|
59
|
-
============================================================ -->
|
|
60
|
-
|
|
61
|
-
# Flow-Init - 需求初始化命令
|
|
62
|
-
|
|
63
|
-
## User Input
|
|
64
|
-
```text
|
|
65
|
-
$ARGUMENTS = "REQ_ID|TITLE|PLAN_URLS?" 或 --interactive
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
**格式**:
|
|
69
|
-
- REQ_ID: `^(REQ|BUG)-[0-9]+$` (例如: REQ-123, BUG-456)
|
|
70
|
-
- TITLE: 需求简短标题
|
|
71
|
-
- PLAN_URLS: 计划文档URL,多个用逗号分隔 (可选)
|
|
72
|
-
|
|
73
|
-
**示例**:
|
|
74
|
-
```
|
|
75
|
-
/flow-init "REQ-123|User Authentication"
|
|
76
|
-
/flow-init "REQ-124|数据导出|https://docs.example.com/export-spec.md"
|
|
77
|
-
/flow-init --interactive
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
## 执行前加载
|
|
83
|
-
|
|
84
|
-
**详细流程**:
|
|
85
|
-
→ 参见 `{TEMPLATE:flow}` 获取完整执行流程
|
|
86
|
-
|
|
87
|
-
**研究模板**:
|
|
88
|
-
→ 参见 `{TEMPLATE:research}` 了解研究文档格式
|
|
89
|
-
|
|
90
|
-
**故障排查**:
|
|
91
|
-
→ 遇到问题参考 `{GUIDE:troubleshoot}`
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## 执行流程
|
|
96
|
-
|
|
97
|
-
### Stage 1: Entry Gate (参数验证)
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
1. 解析参数: REQ_ID|TITLE|PLAN_URLS
|
|
101
|
-
→ 验证 REQ_ID 格式: ^(REQ|BUG)-[0-9]+$
|
|
102
|
-
→ 提取 TITLE 和 PLAN_URLS
|
|
103
|
-
→ 若 TITLE 含中文/非ASCII,使用模型意译生成 BRANCH_TITLE_EN(英文语义翻译,禁止拼音/音译)
|
|
104
|
-
→ BRANCH_TITLE_EN 仅用于分支名,文档标题仍使用原始 TITLE
|
|
105
|
-
→ 若意译不确定或未生成 ASCII 结果,向用户确认英文分支标题
|
|
106
|
-
|
|
107
|
-
2. 前置条件检查
|
|
108
|
-
→ Run: {SCRIPT:prereq} --json --paths-only
|
|
109
|
-
→ 检查 Git 状态是否干净
|
|
110
|
-
→ 验证 devflow/ 目录存在
|
|
111
|
-
|
|
112
|
-
3. 目录唯一性检查
|
|
113
|
-
→ 确认 devflow/requirements/${REQ_ID}/ 不存在
|
|
114
|
-
→ 如果存在 → ERROR (使用 --force 强制覆盖)
|
|
115
|
-
|
|
116
|
-
4. 验证通过 → 继续 Stage 1.5
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
### Stage 1.2: Git Branch Creation
|
|
122
|
-
|
|
123
|
-
```
|
|
124
|
-
创建功能分支:
|
|
125
|
-
→ Requirements: feature/${REQ_ID}-${slug(BRANCH_TITLE_EN)}
|
|
126
|
-
→ Bug Fixes: bugfix/${BUG_ID}-${slug(BRANCH_TITLE_EN)}
|
|
127
|
-
|
|
128
|
-
Where BRANCH_TITLE_EN = TITLE 的英文意译 (语义为准,非拼音,使用模型意译)
|
|
129
|
-
slug() = lowercase, replace spaces/special chars with hyphens
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
### Stage 1.5: Context Loading (路线图与架构)
|
|
135
|
-
|
|
136
|
-
**目标**: 理解需求在项目中的位置
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
检查 ROADMAP.md 和 ARCHITECTURE.md:
|
|
140
|
-
→ 如果存在: 加载上下文,展示需求位置
|
|
141
|
-
→ 如果不存在: 提示可选运行 /core-roadmap
|
|
142
|
-
|
|
143
|
-
→ 详见 {TEMPLATE:flow} Stage 1.5
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
**输出**: 显示需求在路线图和架构中的位置 (如果可用)
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
### Stage 2: Directory Initialization
|
|
151
|
-
|
|
152
|
-
```
|
|
153
|
-
创建需求目录结构:
|
|
154
|
-
→ Run: {SCRIPT:create} "${REQ_ID}" --title "${TITLE}" --branch-title "${BRANCH_TITLE_EN}" --json (如有)
|
|
155
|
-
|
|
156
|
-
生成文件:
|
|
157
|
-
- devflow/requirements/${REQ_ID}/README.md
|
|
158
|
-
- devflow/requirements/${REQ_ID}/EXECUTION_LOG.md
|
|
159
|
-
- devflow/requirements/${REQ_ID}/orchestration_status.json
|
|
160
|
-
- devflow/requirements/${REQ_ID}/research/ (目录)
|
|
161
|
-
|
|
162
|
-
→ 详见 {TEMPLATE:flow} Stage 2
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
### Stage 2.3: Brainstorming (North Star Capture)
|
|
168
|
-
|
|
169
|
-
**目标**: 捕捉需求的原始意图,确保后续流程有明确的「北极星」可追溯
|
|
170
|
-
|
|
171
|
-
**Iron Law**: `NO FLOW EXECUTION WITHOUT BRAINSTORM ALIGNMENT`
|
|
172
|
-
|
|
173
|
-
```
|
|
174
|
-
触发 flow-brainstorming skill:
|
|
175
|
-
→ 参见 {SKILL:brainstorming} 了解完整流程
|
|
176
|
-
|
|
177
|
-
执行步骤:
|
|
178
|
-
1. Understanding the Idea
|
|
179
|
-
→ 一次问一个问题,不要压垮用户
|
|
180
|
-
→ 优先多选题,更容易回答
|
|
181
|
-
→ 理解: 目的、约束、成功标准
|
|
182
|
-
|
|
183
|
-
2. Exploring Approaches
|
|
184
|
-
→ 提出 2-3 种方案及取舍
|
|
185
|
-
→ 给出推荐方案和理由
|
|
186
|
-
→ 让用户做最终决策
|
|
187
|
-
|
|
188
|
-
3. Presenting the Design
|
|
189
|
-
→ 分段呈现设计 (200-300 字/段)
|
|
190
|
-
→ 每段后确认是否正确
|
|
191
|
-
→ 涵盖: 架构、组件、数据流、测试
|
|
192
|
-
|
|
193
|
-
4. Documentation
|
|
194
|
-
→ 使用 {TEMPLATE:brainstorm} 模板
|
|
195
|
-
→ 输出: devflow/requirements/${REQ_ID}/BRAINSTORM.md
|
|
196
|
-
→ 必须包含: 原始需求、核心问题、成功标准、方案探索、最终决策
|
|
197
|
-
|
|
198
|
-
Rationalization Prevention:
|
|
199
|
-
| Excuse | Reality |
|
|
200
|
-
|--------|---------|
|
|
201
|
-
| "需求已经很清楚了" | Brainstorm 确保没有遗漏假设 |
|
|
202
|
-
| "用户赶时间" | 头脑风暴节省后续返工时间 |
|
|
203
|
-
| "这是小需求" | 小需求也有核心问题和成功标准 |
|
|
204
|
-
|
|
205
|
-
Red Flags - STOP:
|
|
206
|
-
→ 跳过问问题直接开始做
|
|
207
|
-
→ 没有记录方案取舍就选定
|
|
208
|
-
→ 没有写 BRAINSTORM.md 就进入下一阶段
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
**输出**: `devflow/requirements/${REQ_ID}/BRAINSTORM.md`
|
|
212
|
-
|
|
213
|
-
**验证**:
|
|
214
|
-
- [ ] BRAINSTORM.md 存在
|
|
215
|
-
- [ ] 包含「原始需求」章节 (用户原话)
|
|
216
|
-
- [ ] 包含「成功标准」章节
|
|
217
|
-
- [ ] 包含「方案探索」章节 (2-3种)
|
|
218
|
-
- [ ] 包含「最终决策」章节
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
### Stage 2.5: Research (Subagent Mandatory)
|
|
223
|
-
|
|
224
|
-
**目标**: 研究默认必跑,但将“研究型内容”隔离到 subagent,避免主会话上下文耗尽。
|
|
225
|
-
|
|
226
|
-
**Iron Law**: 大内容落盘,主会话只返回「决策摘要 + 文件路径」。
|
|
227
|
-
|
|
228
|
-
#### ✅ Mandatory: Call `flow-researcher` Subagent
|
|
229
|
-
|
|
230
|
-
> subagent 负责内部/外部研究、落盘、任务回填、研究整合与质量验证;主 agent 只做编排与最终 Gate。
|
|
231
|
-
|
|
232
|
-
```
|
|
233
|
-
Task tool call:
|
|
234
|
-
description: "Run mandatory research for /flow-init (file-based memory)"
|
|
235
|
-
subagent_type: "flow-researcher"
|
|
236
|
-
model: "inherit"
|
|
237
|
-
prompt: (JSON)
|
|
238
|
-
{
|
|
239
|
-
"reqId": "${REQ_ID}",
|
|
240
|
-
"reqDir": "devflow/requirements/${REQ_ID}",
|
|
241
|
-
"title": "${TITLE}",
|
|
242
|
-
"planUrls": ["..."],
|
|
243
|
-
"contextFiles": {
|
|
244
|
-
"brainstorm": "devflow/requirements/${REQ_ID}/BRAINSTORM.md",
|
|
245
|
-
"roadmap": "devflow/ROADMAP.md",
|
|
246
|
-
"architecture": "devflow/ARCHITECTURE.md"
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
**期望输出** (由 subagent 写入):
|
|
252
|
-
- `devflow/requirements/${REQ_ID}/research/internal/codebase-overview.md`
|
|
253
|
-
- `devflow/requirements/${REQ_ID}/research/mcp/$(date +%Y%m%d)/**`
|
|
254
|
-
- `devflow/requirements/${REQ_ID}/research/research-summary.md`
|
|
255
|
-
- `devflow/requirements/${REQ_ID}/research/tasks.json` (decision/rationale/alternatives 完整)
|
|
256
|
-
- `devflow/requirements/${REQ_ID}/research/research.md` (可通过 validate-research)
|
|
257
|
-
|
|
258
|
-
---
|
|
259
|
-
|
|
260
|
-
### Stage 2.6: Research Consolidation
|
|
261
|
-
|
|
262
|
-
> 该阶段由 `flow-researcher` subagent 执行(包含 tasks 生成/回填/整合/校验)。
|
|
263
|
-
|
|
264
|
-
主 agent 在 Exit Gate 中只做最终验证与状态更新:
|
|
265
|
-
- Run: `{SCRIPT:validate_research} "${REQ_DIR}" --strict`
|
|
266
|
-
- `orchestration_status.json.phase0_complete = true`
|
|
267
|
-
|
|
268
|
-
---
|
|
269
|
-
### Stage 3: README Generation
|
|
270
|
-
|
|
271
|
-
```
|
|
272
|
-
生成工作流指南:
|
|
273
|
-
→ devflow/requirements/${REQ_ID}/README.md
|
|
274
|
-
→ 包含: 需求概述、工作流步骤、检查清单
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
|
-
### Stage 4: Exit Gate (5-Level Quality Check)
|
|
280
|
-
|
|
281
|
-
**5层验证**:
|
|
282
|
-
|
|
283
|
-
```
|
|
284
|
-
Level 1: File Existence Check
|
|
285
|
-
→ 验证所有必需文件已创建
|
|
286
|
-
|
|
287
|
-
Level 2: Research.md Structure Validation
|
|
288
|
-
→ Run: {SCRIPT:validate_research} "${REQ_DIR}" --strict
|
|
289
|
-
→ 检查 research.md 结构
|
|
290
|
-
|
|
291
|
-
Level 3: Research.md Content Quality
|
|
292
|
-
→ 无 TODO/FIXME/{{PLACEHOLDER}} 标记
|
|
293
|
-
→ 每个 Decision block 完整
|
|
294
|
-
|
|
295
|
-
Level 4: Research Tasks Validation
|
|
296
|
-
→ 验证 tasks.json 格式和内容
|
|
297
|
-
|
|
298
|
-
Level 5: Git & Status & Constitution
|
|
299
|
-
→ Git 分支创建成功
|
|
300
|
-
→ orchestration_status.json 正确
|
|
301
|
-
→ Constitution 符合性检查
|
|
302
|
-
|
|
303
|
-
→ 详见 {TEMPLATE:flow} Stage 4
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
---
|
|
307
|
-
|
|
308
|
-
## 输出产物
|
|
309
|
-
|
|
310
|
-
### Requirements
|
|
311
|
-
|
|
312
|
-
```
|
|
313
|
-
devflow/requirements/${REQ_ID}/
|
|
314
|
-
├── README.md
|
|
315
|
-
├── BRAINSTORM.md # 需求的北极星 (Stage 2.3)
|
|
316
|
-
├── research/
|
|
317
|
-
│ ├── internal/
|
|
318
|
-
│ │ └── codebase-overview.md
|
|
319
|
-
│ ├── mcp/
|
|
320
|
-
│ │ └── $(date +%Y%m%d)/
|
|
321
|
-
│ │ ├── official/
|
|
322
|
-
│ │ ├── guides/
|
|
323
|
-
│ │ ├── tutorials/
|
|
324
|
-
│ │ └── examples/
|
|
325
|
-
│ ├── research.md
|
|
326
|
-
│ ├── research-summary.md
|
|
327
|
-
│ └── tasks.json
|
|
328
|
-
├── EXECUTION_LOG.md
|
|
329
|
-
└── orchestration_status.json
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
### Git
|
|
333
|
-
|
|
334
|
-
- **Branch**: `feature/${REQ_ID}-${slug(BRANCH_TITLE_EN)}`
|
|
335
|
-
- **Status**: orchestration_status.json.status = "initialized"
|
|
336
|
-
- **Phase**: orchestration_status.json.phase = "planning"
|
|
337
|
-
|
|
338
|
-
---
|
|
339
|
-
|
|
340
|
-
## 错误处理
|
|
341
|
-
|
|
342
|
-
**常见错误**:
|
|
343
|
-
→ 详见 `{GUIDE:troubleshoot}`
|
|
344
|
-
|
|
345
|
-
**主要错误场景**:
|
|
346
|
-
1. Invalid REQ_ID format → 检查格式
|
|
347
|
-
2. REQ_ID already exists → 使用不同 ID 或 --force
|
|
348
|
-
3. Git status not clean → commit/stash changes
|
|
349
|
-
4. Research validation failed → 手动补充 research.md
|
|
350
|
-
5. MCP fetch failed → 继续但标记待补项
|
|
351
|
-
|
|
352
|
-
**恢复步骤**:
|
|
353
|
-
→ 详见 `{GUIDE:troubleshoot}` Recovery Procedures
|
|
354
|
-
|
|
355
|
-
---
|
|
356
|
-
|
|
357
|
-
## Next Step
|
|
358
|
-
|
|
359
|
-
```
|
|
360
|
-
/flow-prd "${REQ_ID}"
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
生成产品需求文档
|
|
364
|
-
|
|
365
|
-
---
|
|
366
|
-
|
|
367
|
-
**Related Documentation**:
|
|
368
|
-
- [INIT_FLOW_TEMPLATE.md](../.claude/docs/templates/INIT_FLOW_TEMPLATE.md) - 详细执行流程
|
|
369
|
-
- [INIT_TROUBLESHOOTING.md](../.claude/docs/guides/INIT_TROUBLESHOOTING.md) - 故障排查指南
|
|
370
|
-
- [RESEARCH_TEMPLATE.md](../.claude/docs/templates/RESEARCH_TEMPLATE.md) - 研究模板格式
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow-prd
|
|
3
|
-
description: 'Generate Product Requirements Document. Usage: /flow-prd "REQ-123" or /flow-prd'
|
|
4
|
-
scripts:
|
|
5
|
-
prereq: .claude/scripts/check-prerequisites.sh
|
|
6
|
-
validate_research: .claude/scripts/validate-research.sh
|
|
7
|
-
validate_constitution: .claude/scripts/validate-constitution.sh
|
|
8
|
-
verify_gate: .claude/scripts/verify-gate.sh
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Flow-PRD - PRD 生成命令
|
|
12
|
-
|
|
13
|
-
## User Input
|
|
14
|
-
```text
|
|
15
|
-
$ARGUMENTS = "REQ_ID?"
|
|
16
|
-
```
|
|
17
|
-
若未提供则根据当前分支或 `DEVFLOW_REQ_ID` 自动解析。
|
|
18
|
-
|
|
19
|
-
## 命令格式
|
|
20
|
-
```text
|
|
21
|
-
/flow-prd "REQ_ID"
|
|
22
|
-
/flow-prd # Auto-detect from current branch
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## 执行流程
|
|
26
|
-
|
|
27
|
-
### 阶段 1: Entry Gate
|
|
28
|
-
```
|
|
29
|
-
1. 解析 REQ_ID
|
|
30
|
-
→ If argument provided: use it
|
|
31
|
-
→ Else: run {SCRIPT:prereq} --json --paths-only
|
|
32
|
-
→ If仍为空: ERROR "No requirement ID found."
|
|
33
|
-
|
|
34
|
-
2. Brainstorm Alignment Check (新增)
|
|
35
|
-
→ 读取 devflow/requirements/${REQ_ID}/BRAINSTORM.md
|
|
36
|
-
→ 验证存在且包含必需章节:
|
|
37
|
-
• 原始需求
|
|
38
|
-
• 核心问题定义
|
|
39
|
-
• 成功标准
|
|
40
|
-
• 方案探索
|
|
41
|
-
• 最终决策
|
|
42
|
-
→ 缺少 BRAINSTORM.md → ERROR "BRAINSTORM.md missing. Run /flow-init brainstorming."
|
|
43
|
-
→ 加载「原始意图」作为 PRD 生成的北极星
|
|
44
|
-
|
|
45
|
-
3. 校验目录
|
|
46
|
-
→ 使用 {SCRIPT:prereq} --json 获取路径
|
|
47
|
-
→ 必须存在:
|
|
48
|
-
• devflow/requirements/${REQ_ID}/
|
|
49
|
-
• BRAINSTORM.md
|
|
50
|
-
• EXECUTION_LOG.md
|
|
51
|
-
• orchestration_status.json (phase0_complete == true)
|
|
52
|
-
• research/research.md
|
|
53
|
-
• research/tasks.json
|
|
54
|
-
→ 缺少任何研究产物 → ERROR "Research artifacts missing. Run /flow-init consolidation."
|
|
55
|
-
|
|
56
|
-
**研究材料质量验证** (新增 - 2025-01-26):
|
|
57
|
-
→ Run: {SCRIPT:validate_research} "${REQ_DIR}" --strict
|
|
58
|
-
→ 验证 research.md 质量(5-Level 检查):
|
|
59
|
-
• LEVEL 1: research.md 文件存在
|
|
60
|
-
• LEVEL 2: 必需章节完整 (Research Summary, Decisions)
|
|
61
|
-
• LEVEL 3: 无 TODO/PLACEHOLDER 占位符
|
|
62
|
-
• LEVEL 4: tasks.json 格式有效
|
|
63
|
-
• LEVEL 5: Constitution 合规
|
|
64
|
-
→ 验证失败 → ERROR "research.md quality check failed. Fix issues before /flow-prd."
|
|
65
|
-
|
|
66
|
-
**CRITICAL**: 如果 research.md 包含 "TODO - fill decision outcome",
|
|
67
|
-
说明 /flow-init 的研究任务未完成。prd-writer 无法使用不完整的研究材料。
|
|
68
|
-
|
|
69
|
-
**Fix Options**:
|
|
70
|
-
1. 手动填充 research/tasks.json 的 decision/rationale/alternatives 字段
|
|
71
|
-
2. 重新运行 consolidate-research.sh
|
|
72
|
-
3. 直接编辑 research/research.md 补充决策内容
|
|
73
|
-
4. 参考 .claude/docs/templates/RESEARCH_TEMPLATE.md 模板
|
|
74
|
-
|
|
75
|
-
4. PRD 覆盖提示
|
|
76
|
-
→ 若 PRD.md 已存在 → WARN 并确认是否覆盖
|
|
77
|
-
|
|
78
|
-
5. 状态校验
|
|
79
|
-
→ orchestration_status.status ∈ {"initialized", "prd_generation_failed"}
|
|
80
|
-
→ 否则提示按流程顺序执行
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### 阶段 2: 生成准备
|
|
84
|
-
```
|
|
85
|
-
1. Load PRD 模板 (.claude/docs/templates/PRD_TEMPLATE.md)
|
|
86
|
-
2. 汇总上下文:
|
|
87
|
-
→ research/research.md(Decision/Rationale/Alternatives)
|
|
88
|
-
→ research/internal/codebase-overview.md
|
|
89
|
-
→ research/mcp/*.md(如有)
|
|
90
|
-
3. 更新 orchestration_status:
|
|
91
|
-
→ status = "prd_generation_in_progress"
|
|
92
|
-
→ phase = "planning"
|
|
93
|
-
4. EXECUTION_LOG.md 记录启动条目
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### 阶段 3: 调用 prd-writer Agent
|
|
97
|
-
```
|
|
98
|
-
Prompt 关键要点:
|
|
99
|
-
- 输入: REQ_ID, Title, research 集合, PRD 模板
|
|
100
|
-
- 要求:
|
|
101
|
-
• 按模板 Execution Flow 输出背景、目标、用户故事 (GWT)、NFR、技术约束、成功指标
|
|
102
|
-
• 记录 Constitution Check,确保无硬编码密钥、无部分实现
|
|
103
|
-
• 验证清单必须填写
|
|
104
|
-
- 输出: 完整 PRD.md
|
|
105
|
-
- 日志: log_event "${REQ_ID}" "PRD generation completed"
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
### 阶段 4: Exit Gate
|
|
109
|
-
```
|
|
110
|
-
1. 文件存在
|
|
111
|
-
→ PRD.md 必须生成
|
|
112
|
-
|
|
113
|
-
2. 结构检查
|
|
114
|
-
→ 无 {{PLACEHOLDER}}
|
|
115
|
-
→ 包含: 背景/目标、用户故事+GWT、NFR、技术约束、成功指标、Constitution Check、验证清单
|
|
116
|
-
|
|
117
|
-
3. 宪法校验
|
|
118
|
-
→ Run: {SCRIPT:validate_constitution} --type prd --severity warning
|
|
119
|
-
→ 出现 ERROR 级违规时终止
|
|
120
|
-
|
|
121
|
-
4. 状态更新
|
|
122
|
-
→ orchestration_status:
|
|
123
|
-
status = "prd_complete"
|
|
124
|
-
phase = "epic_planning"
|
|
125
|
-
completedSteps append "prd"
|
|
126
|
-
→ EXECUTION_LOG.md 记录完成
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
## 输出
|
|
130
|
-
```
|
|
131
|
-
✅ PRD.md (≥100 行、完整模板)
|
|
132
|
-
✅ orchestration_status.json 更新 (prd_complete)
|
|
133
|
-
✅ EXECUTION_LOG.md 记录
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## 错误处理
|
|
137
|
-
- 缺少研究产物 → 返回指令让用户重复 `/flow-init` consolidation。
|
|
138
|
-
- PRD 生成失败 → 将 status 设为 `prd_generation_failed`,方便重试。
|
|
139
|
-
- 宪法检查失败 → 显示违规列表并终止,待修复后重跑。
|
|
140
|
-
|
|
141
|
-
## 下一步
|
|
142
|
-
1. 审阅 PRD.md,确认需求准确。
|
|
143
|
-
2. 运行 `/flow-tech` 生成技术方案及 data-model/contracts/quickstart。
|
|
144
|
-
3. 使用 `/flow-epic` 做 Epic/TASKS 规划。
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow-qa
|
|
3
|
-
description: 'Execute quality assurance and security review. Usage: /flow-qa "REQ-123" or /flow-qa'
|
|
4
|
-
scripts:
|
|
5
|
-
prereq: .claude/scripts/check-prerequisites.sh
|
|
6
|
-
check_tasks: .claude/scripts/check-task-status.sh
|
|
7
|
-
validate_constitution: .claude/scripts/validate-constitution.sh
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Flow-QA - 质量保证命令
|
|
11
|
-
|
|
12
|
-
## User Input
|
|
13
|
-
```text
|
|
14
|
-
$ARGUMENTS = "REQ_ID?"
|
|
15
|
-
```
|
|
16
|
-
未提供则根据当前分支或 `DEVFLOW_REQ_ID` 自动解析。
|
|
17
|
-
|
|
18
|
-
## 执行流程
|
|
19
|
-
|
|
20
|
-
### 阶段 1: Entry Gate
|
|
21
|
-
```
|
|
22
|
-
1. 解析 REQ_ID
|
|
23
|
-
2. {SCRIPT:prereq} --json 验证:
|
|
24
|
-
→ 存在 PRD.md、TECH_DESIGN.md、data-model.md、contracts/、quickstart.md、EPIC.md、TASKS.md
|
|
25
|
-
→ orchestration_status.status ∈ {"development_complete", "qa_failed"}
|
|
26
|
-
→ phase1_complete == true
|
|
27
|
-
3. {SCRIPT:check_tasks} --json 确认 remaining == 0
|
|
28
|
-
4. quickstart.md 中的测试命令必须全部通过(先 dry-run)
|
|
29
|
-
5. TEST_REPORT.md / SECURITY_REPORT.md 已存在时提示是否覆盖
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### 阶段 2: QA 准备
|
|
33
|
-
```
|
|
34
|
-
1. 执行 quickstart 中的覆盖率命令(如有)
|
|
35
|
-
2. 收集上下文:
|
|
36
|
-
→ PRD 用户故事、验收标准
|
|
37
|
-
→ TECH_DESIGN 决策(安全、性能)
|
|
38
|
-
→ data-model / contracts
|
|
39
|
-
→ TASKS DoD、提交记录
|
|
40
|
-
3. 更新 orchestration_status:
|
|
41
|
-
→ status = "qa_in_progress"
|
|
42
|
-
→ phase = "quality_assurance"
|
|
43
|
-
4. EXECUTION_LOG.md 记录 QA 启动(含测试覆盖率)
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### 阶段 3: Agents
|
|
47
|
-
```
|
|
48
|
-
1. qa-tester
|
|
49
|
-
→ 输入: PRD, TECH_DESIGN, TASKS, test results, coverage
|
|
50
|
-
→ 产出: TEST_PLAN.md (如缺失) / TEST_REPORT.md
|
|
51
|
-
→ 覆盖内容: 覆盖率、TDD 合规、AC 覆盖、DoD 复核、缺失测试建议
|
|
52
|
-
|
|
53
|
-
2. security-reviewer
|
|
54
|
-
→ 输入: TECH_DESIGN 安全节、contracts、实现 diff、ENV/secret 配置
|
|
55
|
-
→ 产出: SECURITY_PLAN.md (如缺失) / SECURITY_REPORT.md
|
|
56
|
-
→ 检查: 认证/授权、输入验证、敏感信息、依赖风险、基础设施配置
|
|
57
|
-
|
|
58
|
-
3. 可选: performance-reviewer(若 TECH_DESIGN 有性能方案)
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### 阶段 4: Exit Gate
|
|
62
|
-
```
|
|
63
|
-
1. 验证报告存在:
|
|
64
|
-
→ TEST_REPORT.md、SECURITY_REPORT.md
|
|
65
|
-
2. 质量结论:
|
|
66
|
-
→ 所有 gate (Coverage、TDD、Security) 均为 PASS;否则状态设为 qa_failed
|
|
67
|
-
3. 宪法检查:
|
|
68
|
-
→ {SCRIPT:validate_constitution} --type qa --severity warning
|
|
69
|
-
4. 状态更新:
|
|
70
|
-
→ orchestration_status.status = "qa_complete"
|
|
71
|
-
→ completedSteps append "qa"
|
|
72
|
-
→ lastQaAt = timestamp
|
|
73
|
-
5. EXECUTION_LOG 记录完成
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## 输出
|
|
77
|
-
```
|
|
78
|
-
✅ TEST_REPORT.md
|
|
79
|
-
✅ SECURITY_REPORT.md
|
|
80
|
-
✅ (可选)PERFORMANCE_REPORT.md
|
|
81
|
-
✅ orchestration_status.json 更新 (qa_complete)
|
|
82
|
-
✅ EXECUTION_LOG.md QA 记录
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## 错误处理
|
|
86
|
-
- quickstart 测试失败 → 返回错误并保持 qa_failed。
|
|
87
|
-
- 报告中存在 BLOCKER → 阶段终止,需返回 `/flow-dev` 修复。
|
|
88
|
-
- Constitution 违规 → 将问题标记为阻断项。
|
|
89
|
-
|
|
90
|
-
## 下一步
|
|
91
|
-
1. 处理 QA 报告中的问题(若有)。
|
|
92
|
-
2. 确认验证通过后运行 `/flow-release`。
|
|
93
|
-
3. 将报告随 PR 一并提交,供代码审阅与发布审批使用。
|