cc-devflow 1.0.2 → 2.4.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 +123 -4
- package/.claude/agents/code-quality-reviewer.md +205 -0
- package/.claude/agents/spec-reviewer.md +221 -0
- package/.claude/commands/cancel-ralph.md +59 -0
- package/.claude/commands/flow-dev.md +202 -21
- package/.claude/commands/flow-epic.md +33 -0
- package/.claude/commands/flow-fix.md +138 -20
- package/.claude/commands/flow-init.md +104 -15
- package/.claude/commands/flow-new.md +84 -35
- package/.claude/commands/flow-prd.md +16 -3
- package/.claude/commands/flow-release.md +33 -0
- package/.claude/commands/flow-review.md +257 -0
- package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +156 -0
- package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +148 -0
- package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +80 -0
- package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +22 -14
- package/.claude/guides/workflow-guides/flow-orchestrator.md +2 -2
- package/.claude/hooks/hooks.json +15 -0
- package/.claude/hooks/ralph-stop-hook.sh +190 -0
- package/.claude/rules/devflow-conventions.md +3 -1
- package/.claude/rules/project-constitution.md +256 -2
- package/.claude/rules/rationalization-library.md +282 -0
- package/.claude/scripts/create-requirement.sh +19 -6
- package/.claude/scripts/setup-ralph-loop.sh +155 -0
- package/.claude/scripts/verify-gate.sh +269 -0
- package/.claude/skills/cc-devflow-orchestrator/SKILL.md +70 -20
- package/.claude/skills/file-header-guardian/SKILL.md +56 -0
- package/.claude/skills/flow-attention-refresh/SKILL.md +170 -0
- package/.claude/skills/flow-brainstorming/SKILL.md +161 -0
- package/.claude/skills/flow-debugging/SKILL.md +221 -0
- package/.claude/skills/flow-finishing-branch/SKILL.md +189 -0
- package/.claude/skills/flow-receiving-review/SKILL.md +153 -0
- package/.claude/skills/flow-tdd/SKILL.md +218 -0
- package/.claude/skills/fractal-docs-generator/SKILL.md +45 -0
- package/.claude/skills/skill-rules.json +75 -0
- package/.claude/skills/verification-before-completion/SKILL.md +158 -0
- package/.claude/tsc-cache/777aa1de-497e-411b-a40f-13b74efcec58/edited-files.log +2 -1
- package/README.md +104 -19
- package/README.zh-CN.md +79 -1
- package/docs/commands/flow-init.md +3 -1
- package/docs/commands/flow-init.zh-CN.md +3 -1
- package/package.json +2 -2
- package/.claude/tsc-cache/777aa1de-497e-411b-a40f-13b74efcec58/affected-repos.txt +0 -1
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flow-brainstorming
|
|
3
|
+
description: "在 /flow-init 阶段强制触发,用于捕捉需求的原始意图、探索方案、记录决策。确保后续流程有明确的北极星可追溯。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Flow Brainstorming - 需求头脑风暴
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
将用户的模糊想法转化为清晰的设计规格,通过自然对话捕捉原始意图。
|
|
11
|
+
|
|
12
|
+
**核心原则**:需求的原始意图是整个开发流程的「北极星」,后续每个阶段都应能追溯并验证是否偏离。
|
|
13
|
+
|
|
14
|
+
## The Iron Law
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
NO FLOW EXECUTION WITHOUT BRAINSTORM ALIGNMENT
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
每个后续 flow-* 阶段开始前,必须确认与 BRAINSTORM.md 一致。
|
|
21
|
+
|
|
22
|
+
## The Process
|
|
23
|
+
|
|
24
|
+
### Phase 1: Understanding the Idea
|
|
25
|
+
|
|
26
|
+
**一次问一个问题**,不要用多个问题压垮用户:
|
|
27
|
+
|
|
28
|
+
1. 检查项目现状(文件、文档、最近提交)
|
|
29
|
+
2. 问问题来细化想法:
|
|
30
|
+
- 优先多选题(更容易回答)
|
|
31
|
+
- 一个消息只问一个问题
|
|
32
|
+
- 如果话题需要更多探索,分成多个问题
|
|
33
|
+
3. 聚焦理解:**目的、约束、成功标准**
|
|
34
|
+
|
|
35
|
+
**问题示例**:
|
|
36
|
+
```
|
|
37
|
+
这个需求主要解决什么问题?
|
|
38
|
+
A) 新增功能
|
|
39
|
+
B) 修复现有问题
|
|
40
|
+
C) 性能优化
|
|
41
|
+
D) 重构/技术债
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Phase 2: Exploring Approaches
|
|
45
|
+
|
|
46
|
+
- 提出 2-3 种不同方案,说明取舍
|
|
47
|
+
- 给出你的推荐方案及理由
|
|
48
|
+
- 让用户做决策
|
|
49
|
+
|
|
50
|
+
**方案呈现格式**:
|
|
51
|
+
```markdown
|
|
52
|
+
### 方案 A: {名称} ⭐ 推荐
|
|
53
|
+
|
|
54
|
+
**描述**: ...
|
|
55
|
+
**优势**: ...
|
|
56
|
+
**劣势**: ...
|
|
57
|
+
**适用场景**: ...
|
|
58
|
+
|
|
59
|
+
### 方案 B: {名称}
|
|
60
|
+
...
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Phase 3: Presenting the Design
|
|
64
|
+
|
|
65
|
+
一旦理解了要构建什么:
|
|
66
|
+
|
|
67
|
+
1. 分段呈现设计(每段 200-300 字)
|
|
68
|
+
2. 每段后询问是否正确
|
|
69
|
+
3. 涵盖:架构、组件、数据流、错误处理、测试
|
|
70
|
+
4. 准备好返回澄清
|
|
71
|
+
|
|
72
|
+
### Phase 4: Documentation
|
|
73
|
+
|
|
74
|
+
将验证过的设计写入 BRAINSTORM.md:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
devflow/requirements/${REQ}/BRAINSTORM.md
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**必须包含**:
|
|
81
|
+
- 原始需求(用户原话,一字不改)
|
|
82
|
+
- 核心问题定义
|
|
83
|
+
- 成功标准
|
|
84
|
+
- 约束条件
|
|
85
|
+
- 方案探索(2-3种)
|
|
86
|
+
- 最终决策及理由
|
|
87
|
+
|
|
88
|
+
## Key Principles
|
|
89
|
+
|
|
90
|
+
| 原则 | 说明 |
|
|
91
|
+
|------|------|
|
|
92
|
+
| **一次一个问题** | 不要用多个问题压垮用户 |
|
|
93
|
+
| **多选题优先** | 比开放问题更容易回答 |
|
|
94
|
+
| **YAGNI 无情** | 从所有设计中移除不必要的功能 |
|
|
95
|
+
| **探索替代方案** | 在确定前总是提出 2-3 种方案 |
|
|
96
|
+
| **增量验证** | 分段呈现设计,验证每段 |
|
|
97
|
+
| **灵活应变** | 有不明白的地方就返回澄清 |
|
|
98
|
+
|
|
99
|
+
## Rationalization Prevention
|
|
100
|
+
|
|
101
|
+
| Excuse | Reality |
|
|
102
|
+
|--------|---------|
|
|
103
|
+
| "需求已经很清楚了" | Brainstorm 确保没有遗漏假设 |
|
|
104
|
+
| "用户赶时间,跳过吧" | 头脑风暴节省的是后续返工时间 |
|
|
105
|
+
| "这是小需求" | 小需求也有核心问题和成功标准 |
|
|
106
|
+
| "方案很明显" | 明显的选择也需要记录理由 |
|
|
107
|
+
| "已经讨论过了" | 口头讨论不是文档,没有追溯性 |
|
|
108
|
+
| "先做再说" | 先想清楚再做,节省 3 倍时间 |
|
|
109
|
+
|
|
110
|
+
## Red Flags - STOP
|
|
111
|
+
|
|
112
|
+
如果你发现自己:
|
|
113
|
+
- 跳过问问题直接开始做
|
|
114
|
+
- 用户说"我知道要什么"就不问了
|
|
115
|
+
- 没有记录方案取舍就选定
|
|
116
|
+
- 没有写 BRAINSTORM.md 就进入下一阶段
|
|
117
|
+
|
|
118
|
+
**STOP。返回正确流程。**
|
|
119
|
+
|
|
120
|
+
## Integration with CC-DevFlow
|
|
121
|
+
|
|
122
|
+
### flow-init 阶段
|
|
123
|
+
|
|
124
|
+
```yaml
|
|
125
|
+
Entry Gate:
|
|
126
|
+
- 解析 REQ-ID 和标题
|
|
127
|
+
- 触发 flow-brainstorming skill
|
|
128
|
+
|
|
129
|
+
Brainstorm Phase:
|
|
130
|
+
1. 问问题理解需求(一次一个)
|
|
131
|
+
2. 探索 2-3 种方案
|
|
132
|
+
3. 确认最终方案
|
|
133
|
+
4. 输出 BRAINSTORM.md
|
|
134
|
+
|
|
135
|
+
Exit Gate:
|
|
136
|
+
- 验证 BRAINSTORM.md 存在
|
|
137
|
+
- 验证包含必要章节
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 后续 flow-* 阶段
|
|
141
|
+
|
|
142
|
+
```yaml
|
|
143
|
+
Entry Gate 添加:
|
|
144
|
+
step: Brainstorm Alignment Check
|
|
145
|
+
- read: devflow/requirements/${REQ}/BRAINSTORM.md
|
|
146
|
+
- verify:
|
|
147
|
+
- 原始问题是否仍然是解决目标?
|
|
148
|
+
- 选定方案是否仍然适用?
|
|
149
|
+
- 约束条件是否发生变化?
|
|
150
|
+
- if 发现偏离:
|
|
151
|
+
- ask_user: "发现与原始意图偏离,是否更新 BRAINSTORM.md?"
|
|
152
|
+
- action: 记录偏离原因,更新文档
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Output Template
|
|
156
|
+
|
|
157
|
+
参见 `.claude/docs/templates/BRAINSTORM_TEMPLATE.md`
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
**[PROTOCOL]**: 变更时更新此头部,然后检查 CLAUDE.md
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flow-debugging
|
|
3
|
+
description: "4-phase systematic debugging for flow-fix. NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Flow Debugging - Systematic Debugging Method
|
|
7
|
+
|
|
8
|
+
## The Iron Law
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Bug fixing is not a guessing game. Systematic debugging = faster fixes + fewer regressions.
|
|
15
|
+
|
|
16
|
+
## The 4-Phase Process
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Phase 1: ROOT CAUSE INVESTIGATION (NO FIXES YET)
|
|
20
|
+
↓
|
|
21
|
+
Phase 2: PATTERN ANALYSIS
|
|
22
|
+
↓
|
|
23
|
+
Phase 3: HYPOTHESIS AND TESTING
|
|
24
|
+
↓
|
|
25
|
+
Phase 4: IMPLEMENTATION (TDD)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Phase 1: Root Cause Investigation
|
|
29
|
+
|
|
30
|
+
**Iron Law**: In this phase, **NO FIX CODE ALLOWED**.
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
Step 1: Read Error Completely
|
|
34
|
+
- Don't skip any details
|
|
35
|
+
- Record: error type, message, stack trace
|
|
36
|
+
- Record: when it happens, frequency, impact
|
|
37
|
+
|
|
38
|
+
Step 2: Stable Reproduction
|
|
39
|
+
- Find reliable reproduction steps
|
|
40
|
+
- Record: inputs, environment, preconditions
|
|
41
|
+
- If can't reproduce → gather more information
|
|
42
|
+
|
|
43
|
+
Step 3: Check Recent Changes
|
|
44
|
+
- git log --oneline -20
|
|
45
|
+
- git diff HEAD~5
|
|
46
|
+
- Ask: What changed? When did it start failing?
|
|
47
|
+
|
|
48
|
+
Step 4: Trace Data Flow Backwards
|
|
49
|
+
- Start from error point
|
|
50
|
+
- Trace upstream
|
|
51
|
+
- Find where data goes wrong
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Output**: Root cause hypothesis (evidence-based, not a guess)
|
|
55
|
+
|
|
56
|
+
## Phase 2: Pattern Analysis
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
Step 1: Find Working Examples
|
|
60
|
+
- Where does similar functionality work?
|
|
61
|
+
- Compare: working vs broken
|
|
62
|
+
|
|
63
|
+
Step 2: Compare with Reference
|
|
64
|
+
- What does official documentation say?
|
|
65
|
+
- How do other projects do it?
|
|
66
|
+
- What's different?
|
|
67
|
+
|
|
68
|
+
Step 3: Identify Patterns
|
|
69
|
+
- Is this a known bug pattern?
|
|
70
|
+
- Search: error message + framework name
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Output**: Confirmed or refined root cause hypothesis
|
|
74
|
+
|
|
75
|
+
## Phase 3: Hypothesis and Testing
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
Step 1: Form Single Hypothesis
|
|
79
|
+
- "The problem is because X"
|
|
80
|
+
- Hypothesis must be verifiable
|
|
81
|
+
|
|
82
|
+
Step 2: Test One Variable at a Time
|
|
83
|
+
- Change only one factor
|
|
84
|
+
- Observe result
|
|
85
|
+
- Record: what changed, what happened
|
|
86
|
+
|
|
87
|
+
Step 3: 3+ Failed Fixes → STOP
|
|
88
|
+
- If 3+ fix attempts fail
|
|
89
|
+
- Stop and question architecture
|
|
90
|
+
- Problem may be deeper than thought
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Red Flag**: If you're "trying this, trying that", you're guessing, not debugging.
|
|
94
|
+
|
|
95
|
+
## Phase 4: Implementation (TDD)
|
|
96
|
+
|
|
97
|
+
**Prerequisite**: Phases 1-3 complete, root cause confirmed
|
|
98
|
+
|
|
99
|
+
```yaml
|
|
100
|
+
Step 1: Write Failing Test First
|
|
101
|
+
- Test must reproduce the bug
|
|
102
|
+
- Run test, confirm it fails
|
|
103
|
+
- This is your "red light"
|
|
104
|
+
|
|
105
|
+
Step 2: Implement Single Fix
|
|
106
|
+
- Fix only the root cause
|
|
107
|
+
- Don't "while I'm here" other things
|
|
108
|
+
- Minimal change
|
|
109
|
+
|
|
110
|
+
Step 3: Verify
|
|
111
|
+
- Run test, confirm it passes
|
|
112
|
+
- Run related tests, confirm no regression
|
|
113
|
+
- Manual verify original issue resolved
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Rationalization Prevention
|
|
117
|
+
|
|
118
|
+
| Excuse | Reality |
|
|
119
|
+
|--------|---------|
|
|
120
|
+
| "I know where the problem is" | Prove it. Investigate first. |
|
|
121
|
+
| "Quick fix" | Quick fix = quick regression. Systematic debug. |
|
|
122
|
+
| "No time for tests" | No tests = don't know if really fixed. |
|
|
123
|
+
| "Small change" | Small changes can introduce big bugs. Test it. |
|
|
124
|
+
| "Fix first, investigate later" | Fixing without understanding = guessing. |
|
|
125
|
+
| "Let me try this" | "Trying" is not debugging. Form hypothesis, verify it. |
|
|
126
|
+
| "It's obvious" | Nothing is obvious. Prove with evidence. |
|
|
127
|
+
| "I've seen this before" | Every bug is unique. Investigate this one. |
|
|
128
|
+
|
|
129
|
+
## Red Flags - STOP
|
|
130
|
+
|
|
131
|
+
If you find yourself:
|
|
132
|
+
- Fixing without reproduction
|
|
133
|
+
- "Trying this, trying that"
|
|
134
|
+
- 3+ failed fix attempts
|
|
135
|
+
- Saying "fixed" without tests
|
|
136
|
+
- Changing many files for one bug
|
|
137
|
+
|
|
138
|
+
**STOP. Go back to Phase 1. Investigate root cause.**
|
|
139
|
+
|
|
140
|
+
## Debug Output Template
|
|
141
|
+
|
|
142
|
+
```markdown
|
|
143
|
+
# Bug Analysis - ${BUG_ID}
|
|
144
|
+
|
|
145
|
+
## Phase 1: Root Cause Investigation
|
|
146
|
+
|
|
147
|
+
### Error Details
|
|
148
|
+
- Type: [error type]
|
|
149
|
+
- Message: [error message]
|
|
150
|
+
- Stack: [key stack frames]
|
|
151
|
+
|
|
152
|
+
### Reproduction
|
|
153
|
+
- Steps: [1, 2, 3...]
|
|
154
|
+
- Frequency: [always/sometimes/rare]
|
|
155
|
+
- Environment: [conditions]
|
|
156
|
+
|
|
157
|
+
### Recent Changes
|
|
158
|
+
- [relevant commits]
|
|
159
|
+
|
|
160
|
+
### Data Flow Analysis
|
|
161
|
+
- [where data goes wrong]
|
|
162
|
+
|
|
163
|
+
### Root Cause Hypothesis
|
|
164
|
+
[Evidence-based hypothesis]
|
|
165
|
+
|
|
166
|
+
## Phase 2: Pattern Analysis
|
|
167
|
+
|
|
168
|
+
### Working Example
|
|
169
|
+
[Where similar code works]
|
|
170
|
+
|
|
171
|
+
### Comparison
|
|
172
|
+
[Difference between working and broken]
|
|
173
|
+
|
|
174
|
+
### Confirmed Root Cause
|
|
175
|
+
[Refined hypothesis]
|
|
176
|
+
|
|
177
|
+
## Phase 3: Hypothesis Testing
|
|
178
|
+
|
|
179
|
+
### Hypothesis
|
|
180
|
+
[Single testable hypothesis]
|
|
181
|
+
|
|
182
|
+
### Test Results
|
|
183
|
+
| Change | Result |
|
|
184
|
+
|--------|--------|
|
|
185
|
+
| [change 1] | [result] |
|
|
186
|
+
|
|
187
|
+
## Phase 4: Implementation
|
|
188
|
+
|
|
189
|
+
### Failing Test
|
|
190
|
+
[Test code that reproduces bug]
|
|
191
|
+
|
|
192
|
+
### Fix
|
|
193
|
+
[Minimal fix code]
|
|
194
|
+
|
|
195
|
+
### Verification
|
|
196
|
+
- [ ] Test passes
|
|
197
|
+
- [ ] No regression
|
|
198
|
+
- [ ] Manual verification
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Integration with flow-fix
|
|
202
|
+
|
|
203
|
+
This skill is the core methodology for `/flow-fix` command:
|
|
204
|
+
|
|
205
|
+
```yaml
|
|
206
|
+
/flow-fix phases:
|
|
207
|
+
阶段 1: Root Cause Investigation → This skill Phase 1
|
|
208
|
+
阶段 2: Pattern Analysis & Planning → This skill Phase 2
|
|
209
|
+
阶段 3: 修复执行 (TDD) → This skill Phase 3-4
|
|
210
|
+
阶段 4: 验证与发布 → verification-before-completion
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Cross-Reference
|
|
214
|
+
|
|
215
|
+
- [flow-fix.md](../../commands/flow-fix.md) - Bug fix command
|
|
216
|
+
- [flow-tdd/SKILL.md](../flow-tdd/SKILL.md) - TDD enforcement
|
|
217
|
+
- [verification-before-completion](../verification-before-completion/SKILL.md) - Verification skill
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
**[PROTOCOL]**: 变更时更新此头部,然后检查 CLAUDE.md
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flow-finishing-branch
|
|
3
|
+
description: "Decide how to complete a development branch: merge, PR, squash, or cleanup."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Flow Finishing Branch - 分支完成决策
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
When development work is complete, you need to decide how to integrate it. This skill guides that decision.
|
|
11
|
+
|
|
12
|
+
## Decision Options
|
|
13
|
+
|
|
14
|
+
### A) Fast-forward Merge
|
|
15
|
+
|
|
16
|
+
```yaml
|
|
17
|
+
When to use:
|
|
18
|
+
- Small changes (< 5 files)
|
|
19
|
+
- Single developer
|
|
20
|
+
- No review needed
|
|
21
|
+
- Clean commit history
|
|
22
|
+
|
|
23
|
+
Command:
|
|
24
|
+
git checkout main
|
|
25
|
+
git merge --ff-only feature/xxx
|
|
26
|
+
git branch -d feature/xxx
|
|
27
|
+
|
|
28
|
+
Pros:
|
|
29
|
+
- Fast
|
|
30
|
+
- Clean history
|
|
31
|
+
- No merge commit
|
|
32
|
+
|
|
33
|
+
Cons:
|
|
34
|
+
- No review record
|
|
35
|
+
- No CI verification
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### B) Create PR (Recommended)
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
When to use:
|
|
42
|
+
- Team projects
|
|
43
|
+
- Need review record
|
|
44
|
+
- CI verification required
|
|
45
|
+
- Production code
|
|
46
|
+
|
|
47
|
+
Command:
|
|
48
|
+
git push -u origin feature/xxx
|
|
49
|
+
gh pr create --title "..." --body "..."
|
|
50
|
+
|
|
51
|
+
Pros:
|
|
52
|
+
- Review record
|
|
53
|
+
- CI verification
|
|
54
|
+
- Discussion thread
|
|
55
|
+
- Audit trail
|
|
56
|
+
|
|
57
|
+
Cons:
|
|
58
|
+
- Takes longer
|
|
59
|
+
- Requires reviewer
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### C) Squash and Merge
|
|
63
|
+
|
|
64
|
+
```yaml
|
|
65
|
+
When to use:
|
|
66
|
+
- Many small commits
|
|
67
|
+
- Messy commit history
|
|
68
|
+
- Want single commit in main
|
|
69
|
+
|
|
70
|
+
Command:
|
|
71
|
+
gh pr merge --squash
|
|
72
|
+
|
|
73
|
+
Pros:
|
|
74
|
+
- Clean main history
|
|
75
|
+
- Single logical commit
|
|
76
|
+
- Hides WIP commits
|
|
77
|
+
|
|
78
|
+
Cons:
|
|
79
|
+
- Loses detailed history
|
|
80
|
+
- Harder to bisect
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### D) Cleanup Only
|
|
84
|
+
|
|
85
|
+
```yaml
|
|
86
|
+
When to use:
|
|
87
|
+
- Work was abandoned
|
|
88
|
+
- Experiment failed
|
|
89
|
+
- Requirements changed
|
|
90
|
+
|
|
91
|
+
Command:
|
|
92
|
+
git checkout main
|
|
93
|
+
git branch -D feature/xxx
|
|
94
|
+
git push origin --delete feature/xxx # if pushed
|
|
95
|
+
|
|
96
|
+
Pros:
|
|
97
|
+
- Clean slate
|
|
98
|
+
- No dead branches
|
|
99
|
+
|
|
100
|
+
Cons:
|
|
101
|
+
- Work is lost (unless needed later)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Decision Matrix
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
108
|
+
│ Decision Matrix │
|
|
109
|
+
├─────────────────────────────────────────────────────────────┤
|
|
110
|
+
│ │
|
|
111
|
+
│ Files Changed Review Needed History Clean Action │
|
|
112
|
+
│ ───────────── ───────────── ───────────── ────── │
|
|
113
|
+
│ < 5 No Yes A) FF │
|
|
114
|
+
│ < 5 No No C) Sq │
|
|
115
|
+
│ Any Yes Yes B) PR │
|
|
116
|
+
│ Any Yes No C) Sq │
|
|
117
|
+
│ N/A N/A N/A (abandoned) D) Del │
|
|
118
|
+
│ │
|
|
119
|
+
└─────────────────────────────────────────────────────────────┘
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Pre-Completion Checklist
|
|
123
|
+
|
|
124
|
+
Before choosing any option, verify:
|
|
125
|
+
|
|
126
|
+
```yaml
|
|
127
|
+
□ All tests pass
|
|
128
|
+
□ Build succeeds
|
|
129
|
+
□ No lint errors
|
|
130
|
+
□ Documentation updated (if needed)
|
|
131
|
+
□ EXECUTION_LOG.md updated
|
|
132
|
+
□ No uncommitted changes
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## The Process
|
|
136
|
+
|
|
137
|
+
```yaml
|
|
138
|
+
1. Verify completion
|
|
139
|
+
→ Run tests, build, lint
|
|
140
|
+
→ Check all tasks done
|
|
141
|
+
|
|
142
|
+
2. Assess the work
|
|
143
|
+
→ How many files changed?
|
|
144
|
+
→ Is review needed?
|
|
145
|
+
→ Is commit history clean?
|
|
146
|
+
|
|
147
|
+
3. Choose option
|
|
148
|
+
→ Use decision matrix
|
|
149
|
+
→ Default to PR if unsure
|
|
150
|
+
|
|
151
|
+
4. Execute
|
|
152
|
+
→ Run appropriate commands
|
|
153
|
+
→ Verify success
|
|
154
|
+
|
|
155
|
+
5. Cleanup
|
|
156
|
+
→ Delete local branch
|
|
157
|
+
→ Delete remote branch (if not PR)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Rationalization Prevention
|
|
161
|
+
|
|
162
|
+
| Excuse | Reality |
|
|
163
|
+
|--------|---------|
|
|
164
|
+
| "PR is overkill" | PR provides audit trail. Use it. |
|
|
165
|
+
| "I'll review my own code" | Self-review misses issues. Get another pair of eyes. |
|
|
166
|
+
| "History doesn't matter" | History helps debugging. Keep it clean. |
|
|
167
|
+
| "Just merge it" | Verify first. Merge second. |
|
|
168
|
+
|
|
169
|
+
## Integration with flow-release
|
|
170
|
+
|
|
171
|
+
This skill is used in `/flow-release` to decide branch handling:
|
|
172
|
+
|
|
173
|
+
```yaml
|
|
174
|
+
/flow-release execution:
|
|
175
|
+
1. Verify all gates pass
|
|
176
|
+
2. Load this skill
|
|
177
|
+
3. Present options to user
|
|
178
|
+
4. Execute chosen option
|
|
179
|
+
5. Update status
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Cross-Reference
|
|
183
|
+
|
|
184
|
+
- [flow-release.md](../../commands/flow-release.md) - Release command
|
|
185
|
+
- [verification-before-completion](../verification-before-completion/SKILL.md) - Verification skill
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
**[PROTOCOL]**: 变更时更新此头部,然后检查 CLAUDE.md
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flow-receiving-review
|
|
3
|
+
description: "Handle code review feedback with technical rigor. Don't blindly agree - verify before implementing."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Flow Receiving Review - 处理代码审查反馈
|
|
7
|
+
|
|
8
|
+
## The Iron Law
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
VERIFY FEEDBACK BEFORE IMPLEMENTING - DON'T BLINDLY AGREE
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
When receiving code review feedback, maintain technical rigor. Reviewers can be wrong. Your job is to:
|
|
17
|
+
1. Understand the feedback
|
|
18
|
+
2. Verify it's correct
|
|
19
|
+
3. Then implement (or push back)
|
|
20
|
+
|
|
21
|
+
## The Process
|
|
22
|
+
|
|
23
|
+
### Step 1: Understand the Feedback
|
|
24
|
+
|
|
25
|
+
```yaml
|
|
26
|
+
For each comment:
|
|
27
|
+
1. Read completely - don't skim
|
|
28
|
+
2. Identify the concern:
|
|
29
|
+
- Is it a bug?
|
|
30
|
+
- Is it a style preference?
|
|
31
|
+
- Is it a performance issue?
|
|
32
|
+
- Is it a security concern?
|
|
33
|
+
3. If unclear → ASK for clarification
|
|
34
|
+
- "Could you elaborate on why X is problematic?"
|
|
35
|
+
- "What specific scenario does this address?"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Step 2: Verify the Feedback
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
Before implementing ANY change:
|
|
42
|
+
1. Is the feedback technically correct?
|
|
43
|
+
- Does the suggested change actually fix the issue?
|
|
44
|
+
- Could it introduce new problems?
|
|
45
|
+
|
|
46
|
+
2. Does it align with project standards?
|
|
47
|
+
- Check Constitution
|
|
48
|
+
- Check existing patterns
|
|
49
|
+
|
|
50
|
+
3. Is there evidence?
|
|
51
|
+
- Can you reproduce the issue?
|
|
52
|
+
- Does the suggested fix work?
|
|
53
|
+
|
|
54
|
+
If feedback seems wrong:
|
|
55
|
+
→ Don't silently disagree
|
|
56
|
+
→ Don't blindly implement
|
|
57
|
+
→ Respond with your analysis
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Step 3: Respond Appropriately
|
|
61
|
+
|
|
62
|
+
```yaml
|
|
63
|
+
If feedback is correct:
|
|
64
|
+
→ Acknowledge: "Good catch, fixing now"
|
|
65
|
+
→ Implement the fix
|
|
66
|
+
→ Verify the fix works
|
|
67
|
+
|
|
68
|
+
If feedback is unclear:
|
|
69
|
+
→ Ask: "Could you clarify what you mean by X?"
|
|
70
|
+
→ Don't guess the intent
|
|
71
|
+
|
|
72
|
+
If feedback seems incorrect:
|
|
73
|
+
→ Explain your reasoning
|
|
74
|
+
→ Provide evidence
|
|
75
|
+
→ "I considered X, but Y because Z. What do you think?"
|
|
76
|
+
|
|
77
|
+
If feedback is a preference (not a bug):
|
|
78
|
+
→ Discuss trade-offs
|
|
79
|
+
→ Defer to project standards if they exist
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Rationalization Prevention
|
|
83
|
+
|
|
84
|
+
| Excuse | Reality |
|
|
85
|
+
|--------|---------|
|
|
86
|
+
| "Reviewer knows better" | Reviewers make mistakes. Verify. |
|
|
87
|
+
| "Just do what they say" | Blind compliance = poor code. |
|
|
88
|
+
| "Don't want to argue" | Technical discussion ≠ argument. |
|
|
89
|
+
| "It's faster to just change it" | Wrong changes waste more time. |
|
|
90
|
+
| "They'll reject if I push back" | Good reviewers appreciate rigor. |
|
|
91
|
+
|
|
92
|
+
## Red Flags - STOP
|
|
93
|
+
|
|
94
|
+
If you find yourself:
|
|
95
|
+
- Implementing changes you don't understand
|
|
96
|
+
- Agreeing with feedback you think is wrong
|
|
97
|
+
- Not asking clarifying questions
|
|
98
|
+
- Making changes without verifying they work
|
|
99
|
+
|
|
100
|
+
**STOP. Understand first. Verify second. Implement third.**
|
|
101
|
+
|
|
102
|
+
## Response Templates
|
|
103
|
+
|
|
104
|
+
### Agreeing with Feedback
|
|
105
|
+
```
|
|
106
|
+
Good catch! You're right that [issue]. I've updated [file] to [fix].
|
|
107
|
+
Verified by running [test/command].
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Asking for Clarification
|
|
111
|
+
```
|
|
112
|
+
I want to make sure I understand correctly. Are you suggesting [interpretation]?
|
|
113
|
+
If so, I'm wondering about [concern]. Could you elaborate?
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Respectfully Disagreeing
|
|
117
|
+
```
|
|
118
|
+
I considered [suggestion], but I went with [current approach] because:
|
|
119
|
+
1. [Reason 1]
|
|
120
|
+
2. [Reason 2]
|
|
121
|
+
|
|
122
|
+
The trade-off is [X]. What do you think about [alternative]?
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Requesting Evidence
|
|
126
|
+
```
|
|
127
|
+
I'm having trouble reproducing [issue]. Could you share:
|
|
128
|
+
- Steps to reproduce
|
|
129
|
+
- Expected vs actual behavior
|
|
130
|
+
- Environment details
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Integration with flow-review
|
|
134
|
+
|
|
135
|
+
This skill is used in `/flow-review` when processing reviewer feedback:
|
|
136
|
+
|
|
137
|
+
```yaml
|
|
138
|
+
After receiving review:
|
|
139
|
+
1. Load this skill
|
|
140
|
+
2. Process each comment using the 3-step process
|
|
141
|
+
3. Respond appropriately
|
|
142
|
+
4. Track changes in EXECUTION_LOG.md
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Cross-Reference
|
|
146
|
+
|
|
147
|
+
- [flow-review.md](../../commands/flow-review.md) - Two-stage review command
|
|
148
|
+
- [spec-reviewer.md](../../agents/spec-reviewer.md) - Spec compliance agent
|
|
149
|
+
- [code-quality-reviewer.md](../../agents/code-quality-reviewer.md) - Quality review agent
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
**[PROTOCOL]**: 变更时更新此头部,然后检查 CLAUDE.md
|