Skip to content

Commit 6ff4c71

Browse files
authored
Merge pull request #117 from codingapi/dev
Dev
2 parents 72c5210 + 1ddd58e commit 6ff4c71

24 files changed

Lines changed: 3816 additions & 585 deletions

.claude/commands/add-rule.md

Lines changed: 0 additions & 9 deletions
This file was deleted.

.claude/commands/execute-plan.md

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
# execute-plan
2+
3+
你是 Flow Engine 项目的开发助手,负责根据计划编码执行完整的开发流程。
4+
5+
## 用法
6+
7+
`/execute-plan {计划编码}`,例如 `/execute-plan 000001`
8+
9+
## 权限说明
10+
11+
本 skill 执行过程中,所有文件读写、命令执行、测试运行均为自动执行,无需用户逐一授权。用户通过调用本 skill 即视为对整个执行过程的授权。
12+
13+
## 执行流程
14+
15+
### 第一步:加载计划
16+
17+
根据用户提供的 6 位计划编码,在 `docs/plan/` 目录下查找对应的计划文件:
18+
19+
```bash
20+
ls docs/plan/{编码}-*.md
21+
```
22+
23+
如果找不到匹配的文件,终止并提示用户检查编码。
24+
25+
找到后,完整阅读该计划文件,提取以下信息:
26+
27+
- 计划名称和概述
28+
- 文件变更清单(新增/修改的文件列表)
29+
- 实施步骤
30+
- 验收标准
31+
32+
向用户简要展示计划概述,然后立即开始执行。
33+
34+
### 第二步:创建 worktree 开发环境
35+
36+
基于计划名称构造分支名和 worktree:
37+
38+
```bash
39+
# 确保本地 dev 分支是最新的
40+
git fetch origin
41+
git checkout dev 2>/dev/null || git checkout -b dev origin/dev
42+
43+
# 基于 dev 分支创建 feature 分支并建立 worktree
44+
# 分支名格式:feature/{编码}-{计划名称}
45+
git worktree add ../flow-engine-{编码}-{计划名称} -b feature/{编码}-{计划名称} origin/dev
46+
```
47+
48+
例如编码为 `000001`,计划名称为 `import-form-plugin`,则:
49+
50+
- 分支名:`feature/000001-import-form-plugin`
51+
- Worktree 路径:`../flow-engine-000001-import-form-plugin`
52+
53+
创建完成后,后续所有文件操作必须在该 worktree 路径下进行。
54+
55+
确认 worktree 环境:
56+
57+
```bash
58+
git worktree list
59+
```
60+
61+
### 第三步:安装依赖
62+
63+
在 worktree 目录下安装依赖:
64+
65+
```bash
66+
cd {worktree路径}
67+
pnpm install
68+
```
69+
70+
### 第四步:按计划实施步骤逐步执行
71+
72+
严格按照计划文件中「7. 实施步骤」的顺序逐步执行。每个步骤需要:
73+
74+
1. **创建/修改文件**:按照计划中的文件变更清单和代码设计创建或修改文件
75+
2. **编写测试(如步骤要求)**:按照计划中的测试设计编写测试代码
76+
3. **运行测试(TDD 验证)**
77+
78+
```bash
79+
# 在 worktree 目录下运行
80+
pnpm --filter {package-name} run test
81+
```
82+
83+
确认结果:
84+
85+
- Red 阶段:确认测试失败(预期行为)
86+
- Green 阶段:确认测试通过
87+
88+
如果测试未按预期运行,分析原因并修复,不中断流程
89+
90+
### 第五步:全量验证
91+
92+
所有实施步骤完成后,运行全量验证:
93+
94+
```bash
95+
# 类型检查
96+
pnpm -r run type-check
97+
98+
# 全部单元测试
99+
pnpm -r run test
100+
```
101+
102+
所有验证必须通过。如有失败,分析原因并修复。
103+
104+
### 第六步:更新计划状态
105+
106+
验证全部通过后,更新 `docs/plan/000000-index.md`(计划索引文件)中该计划的状态为「已完成」。
107+
108+
### 第七步:提交代码(需用户确认)
109+
110+
在 worktree 中完成提交前,必须向用户展示变更内容并获得确认:
111+
112+
**7-1:展示变更内容**
113+
114+
```bash
115+
git status --porcelain
116+
git diff --stat HEAD
117+
```
118+
119+
向用户展示变更摘要,明确询问:「代码已完成并通过全部验证,确认提交并创建 PR(base: dev)吗?」
120+
121+
等待用户回复"确认"或"yes"后继续。如用户拒绝,告知用户可稍后自行提交。
122+
123+
**7-2:提交代码(如用户确认)**
124+
125+
```bash
126+
# 精确 add 涉及的文件(不要 git add -A)
127+
git add {具体变更文件}
128+
129+
# commit message 格式
130+
git commit -m "$(cat <<'EOF'
131+
feat: {计划名称的功能描述}
132+
133+
- {要点1}
134+
- {要点2}
135+
- {要点3}
136+
137+
计划编码: {编码}
138+
139+
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
140+
EOF
141+
)"
142+
143+
# 推送 feature 分支
144+
git push -u origin feature/{编码}-{计划名称}
145+
```
146+
147+
### 第八步:创建 PR(如用户确认)
148+
149+
```bash
150+
gh pr create \
151+
--base dev \
152+
--head feature/{编码}-{计划名称} \
153+
--title "feat: {简洁描述}" \
154+
--body "$(cat <<'EOF'
155+
## 变更摘要
156+
157+
{列出本次实现的主要功能点}
158+
159+
## 对应计划
160+
161+
计划编码:`{编码}`
162+
计划文件:`docs/plan/{编码}-{计划名称}.md`
163+
164+
## 测试验证
165+
166+
- [x] `pnpm -r run type-check` 通过
167+
- [x] `pnpm -r run test` 单测全绿
168+
169+
🤖 Generated with [Claude Code](https://claude.com/claude-code)
170+
EOF
171+
)"
172+
```
173+
174+
### 第九步:输出结果
175+
176+
展示给用户:
177+
178+
- PR 链接
179+
- 变更文件列表
180+
- 测试通过情况
181+
- worktree 路径(用户可进入查看代码)
182+
183+
## 异常处理
184+
185+
- **依赖安装失败**:检查 package.json 和 pnpm-workspace.yaml 配置
186+
- **测试持续失败**:在尝试修复 3 次后,保留当前进度,向用户报告失败原因和已完成的步骤
187+
- **类型检查失败**:修复类型错误后重新运行
188+
- **计划文件信息不足**:参考 docs/architecture/ 下的架构文档补充上下文
189+
190+
## 注意事项
191+
192+
- 所有代码修改只能在 worktree 目录下进行,主工作区的计划状态更新除外
193+
- 严格遵循 TDD 流程:先测试后实现
194+
- 遵循 CLAUDE.md 中的全部工程规范
195+
- **严禁向 main 分支提交**,PR 的 `--base` 固定为 dev
196+
- **未经用户明确确认,不得自动执行 commit 和 PR 创建**

.claude/commands/git-push.md

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)