@jahanxu/code-flow 0.2.3 → 0.2.4
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/package.json +1 -1
- package/src/adapters/claude/commands/cf-task/archive.md +57 -5
- package/src/adapters/claude/commands/cf-task/block.md +2 -2
- package/src/adapters/claude/commands/cf-task/graph.md +2 -2
- package/src/adapters/claude/commands/cf-task/note.md +4 -4
- package/src/adapters/claude/commands/cf-task/plan.md +36 -0
- package/src/adapters/claude/commands/cf-task/start.md +4 -3
- package/src/adapters/claude/commands/cf-task/status.md +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# cf-task:archive
|
|
2
2
|
|
|
3
|
-
归档已完成的整个 task
|
|
3
|
+
归档已完成的整个 task 文件。归档前执行三维校验,归档后提示更新 specs。
|
|
4
4
|
|
|
5
5
|
## 输入
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
其中 `<file>` 可省略日期目录前缀和 `.md` 后缀。
|
|
10
10
|
|
|
11
|
-
查找逻辑:用 Glob 搜索 `.code-flow/tasks/**/<file>.md
|
|
11
|
+
查找逻辑:用 Glob 搜索 `.code-flow/tasks/**/<file>.md`,从结果中排除包含 `archived/` 的路径,匹配第一个结果。
|
|
12
12
|
|
|
13
13
|
## 执行步骤
|
|
14
14
|
|
|
@@ -30,9 +30,37 @@
|
|
|
30
30
|
当前完成度: 2/4 (50%)
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
### 2.
|
|
33
|
+
### 2. 归档前校验(Verify)
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
所有子任务 done 后,执行三维校验:
|
|
36
|
+
|
|
37
|
+
**完整性**:
|
|
38
|
+
- 所有 Checklist 项已勾选
|
|
39
|
+
- 无未解决的 Notes(无 `[NOTE-n]` 未标记 `[RESOLVED]`)
|
|
40
|
+
|
|
41
|
+
**正确性**:
|
|
42
|
+
- 如果 `.code-flow/validation.yml` 存在,Read 读取验证规则,用 Bash 执行其中匹配的 `command`(如 `npx tsc --noEmit`、`python3 -m pytest` 等)
|
|
43
|
+
- 检查本次变更涉及的文件是否通过 lint/type check
|
|
44
|
+
|
|
45
|
+
**一致性**:
|
|
46
|
+
- 读取 task 文件的 `## Proposal`,对照实际代码变更,检查意图是否已实现
|
|
47
|
+
|
|
48
|
+
校验结果输出:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
归档前校验:
|
|
52
|
+
[PASS] 完整性: 所有 Checklist 已完成,无未解决 Notes
|
|
53
|
+
[PASS] 正确性: cf-validate 通过
|
|
54
|
+
[WARN] 一致性: Proposal 提到"支持 OAuth 登录",但未发现相关实现
|
|
55
|
+
|
|
56
|
+
WARN 不阻塞归档,但建议确认后再继续。继续归档?
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
PASS → 继续。WARN → 提示用户确认。FAIL → 阻塞归档,列出失败原因。
|
|
60
|
+
|
|
61
|
+
### 3. 执行归档
|
|
62
|
+
|
|
63
|
+
校验通过后:
|
|
36
64
|
|
|
37
65
|
1. 提取文件所在的日期目录名(如 `2026-03-15`)
|
|
38
66
|
2. 用 Bash 创建归档目录并移动文件:
|
|
@@ -42,7 +70,30 @@
|
|
|
42
70
|
```
|
|
43
71
|
3. 如果原日期目录为空,删除空目录
|
|
44
72
|
|
|
45
|
-
###
|
|
73
|
+
### 4. Spec 更新提示
|
|
74
|
+
|
|
75
|
+
归档完成后,检查本次变更是否引入了新的规范约束需要同步到 specs:
|
|
76
|
+
|
|
77
|
+
1. 读取 task 文件中所有子任务的 Description 和 Checklist
|
|
78
|
+
2. 对照 `.code-flow/specs/` 下的现有规范
|
|
79
|
+
3. 如果发现新增的模式或约束未被 specs 覆盖,提示用户:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
Spec 同步建议:
|
|
83
|
+
本次变更引入了以下尚未记录的规范:
|
|
84
|
+
- 所有 API handler 增加了 rate limiting 中间件
|
|
85
|
+
- 新增 AppError 统一错误处理模式
|
|
86
|
+
|
|
87
|
+
建议更新:
|
|
88
|
+
- .code-flow/specs/backend/platform-rules.md — 补充 rate limiting 规则
|
|
89
|
+
- .code-flow/specs/backend/code-quality-performance.md — 补充错误处理模式
|
|
90
|
+
|
|
91
|
+
运行 /cf-learn 可自动扫描并补充。
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
如果无新规范需同步,跳过此步骤。
|
|
95
|
+
|
|
96
|
+
### 5. 归档摘要
|
|
46
97
|
|
|
47
98
|
```
|
|
48
99
|
已归档: <file>.md → .code-flow/tasks/archived/<日期目录>/<file>.md
|
|
@@ -53,4 +104,5 @@
|
|
|
53
104
|
- 创建日期: 2026-03-15
|
|
54
105
|
- 归档日期: 2026-03-20
|
|
55
106
|
- 历时: 5 天
|
|
107
|
+
- 校验: 3/3 PASS
|
|
56
108
|
```
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
其中 `<file>` 可省略日期目录前缀和 `.md` 后缀。
|
|
10
10
|
|
|
11
|
-
查找逻辑:用 Glob 搜索 `.code-flow/tasks/**/<file>.md
|
|
11
|
+
查找逻辑:用 Glob 搜索 `.code-flow/tasks/**/<file>.md`,从结果中排除包含 `archived/` 的路径,匹配第一个结果。
|
|
12
12
|
|
|
13
13
|
## 执行步骤
|
|
14
14
|
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
- `draft` / `in-progress` → 继续
|
|
20
20
|
3. 用 Edit 更新 Status 为 `blocked`
|
|
21
21
|
4. 在 `### Notes` 追加:`- [BLOCKED] <阻塞原因>`
|
|
22
|
-
5. 在 `### Log` 追加:`- [<当前日期>] blocked (
|
|
22
|
+
5. 在 `### Log` 追加:`- [<当前日期>] blocked (<阻塞原因>, was <原状态>)`
|
|
23
23
|
6. 更新文件头 `Updated` 日期
|
|
24
24
|
7. 输出确认:`TASK-001 已标记为 blocked: <原因>`
|
|
25
25
|
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
|
|
10
10
|
其中 `<file>` 可省略日期目录前缀和 `.md` 后缀。
|
|
11
11
|
|
|
12
|
-
查找逻辑:用 Glob 搜索 `.code-flow/tasks/**/<file>.md
|
|
12
|
+
查找逻辑:用 Glob 搜索 `.code-flow/tasks/**/<file>.md`,从结果中排除包含 `archived/` 的路径,匹配第一个结果。
|
|
13
13
|
|
|
14
14
|
## 执行步骤
|
|
15
15
|
|
|
16
16
|
### 1. 读取任务数据
|
|
17
17
|
|
|
18
18
|
- 指定文件:Glob 定位后 Read
|
|
19
|
-
- 全部文件:Glob `.code-flow/tasks/**/*.md
|
|
19
|
+
- 全部文件:Glob `.code-flow/tasks/**/*.md`,从结果中排除包含 `archived/` 的路径,逐个 Read
|
|
20
20
|
|
|
21
21
|
从每个 `## TASK-xxx` 段落提取:ID、标题、Status、Depends。
|
|
22
22
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
其中 `<file>` 可省略日期目录前缀和 `.md` 后缀。
|
|
12
12
|
|
|
13
|
-
查找逻辑:用 Glob 搜索 `.code-flow/tasks/**/<file>.md
|
|
13
|
+
查找逻辑:用 Glob 搜索 `.code-flow/tasks/**/<file>.md`,从结果中排除包含 `archived/` 的路径,匹配第一个结果。
|
|
14
14
|
|
|
15
15
|
## 添加批注
|
|
16
16
|
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
2. 定位 `## TASK-001` 段落下的 `### Notes` 区域
|
|
21
21
|
3. 扫描已有 `[NOTE-n]`,计算下一个编号
|
|
22
22
|
4. 用 Edit 在 `### Notes` 下追加:`- [NOTE-<n>] <批注内容>`
|
|
23
|
-
5. 如果子任务 Status 为 `in-progress`,自动用 Edit 改为 `blocked`,并在 `### Log` 追加:`- [<当前日期>] blocked (unresolved note)
|
|
23
|
+
5. 如果子任务 Status 为 `in-progress` 或 `draft`,自动用 Edit 改为 `blocked`,并在 `### Log` 追加:`- [<当前日期>] blocked (unresolved note, was <原状态>)`(记录阻塞前的状态,用于后续恢复)
|
|
24
24
|
6. 更新文件头 `Updated` 日期
|
|
25
25
|
7. 输出确认:`已添加 [NOTE-<n>],TASK-001 状态: blocked`
|
|
26
26
|
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
2. 定位指定的 `[NOTE-n]` 批注
|
|
33
33
|
3. 用 Edit 将 `[NOTE-n]` 改为 `[NOTE-n] [RESOLVED]`
|
|
34
34
|
4. 检查是否还有未解决的 Notes:
|
|
35
|
-
- 全部解决 + 状态为 blocked →
|
|
36
|
-
- 在 `### Log` 追加:`- [<当前日期>] unblocked (notes resolved)`
|
|
35
|
+
- 全部解决 + 状态为 blocked → 扫描 `### Log`,查找最近一条 `blocked (unresolved note, was <状态>)` 记录,恢复为记录中的原状态
|
|
36
|
+
- 在 `### Log` 追加:`- [<当前日期>] unblocked (notes resolved, restored to <原状态>)`
|
|
37
37
|
5. 更新文件头 `Updated` 日期
|
|
38
38
|
6. 输出确认
|
|
39
39
|
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
- `/cf-task:plan <设计文档路径>` — 指定文档路径
|
|
8
8
|
- `/cf-task:plan` — 交互式选择(从 `docs/` 目录列出候选)
|
|
9
|
+
- `/cf-task:plan <设计文档路径> --explore` — 仅输出分析报告,不生成文件
|
|
9
10
|
|
|
10
11
|
## 执行步骤
|
|
11
12
|
|
|
@@ -37,6 +38,35 @@ Read 设计文档后,**先扫描文档结构**,建立章节索引表:
|
|
|
37
38
|
|
|
38
39
|
此索引用于后续步骤中精确记录每个子任务的来源章节。
|
|
39
40
|
|
|
41
|
+
### 2.5. Explore 模式(--explore)
|
|
42
|
+
|
|
43
|
+
如果用户传入 `--explore`,在建立章节索引后,输出以下分析报告,**不生成任务文件**:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
探索分析报告
|
|
47
|
+
============
|
|
48
|
+
|
|
49
|
+
文档: docs/xxx设计说明书.md
|
|
50
|
+
章节数: N | 预估子任务数: M
|
|
51
|
+
|
|
52
|
+
功能域识别:
|
|
53
|
+
- 用户认证 (§3.1-§3.3) — 核心功能,建议 P0
|
|
54
|
+
- 支付集成 (§3.4-§3.6) — 依赖第三方 SDK,存在阻塞风险
|
|
55
|
+
- 通知系统 (§3.7) — 独立模块,可并行
|
|
56
|
+
|
|
57
|
+
关键依赖:
|
|
58
|
+
- §3.2 API 接口依赖 §3.1 数据模型
|
|
59
|
+
- §3.5 支付回调依赖 §3.4 订单模型
|
|
60
|
+
|
|
61
|
+
风险点:
|
|
62
|
+
- §3.4 中提到的第三方 SDK 版本未确定
|
|
63
|
+
- §3.6 缺少错误码定义
|
|
64
|
+
|
|
65
|
+
建议: 确认风险点后,运行 /cf-task:plan docs/xxx.md 生成任务文件
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
输出后结束,不进入后续步骤。
|
|
69
|
+
|
|
40
70
|
### 3. 分析文档,拆解子任务
|
|
41
71
|
|
|
42
72
|
阅读设计文档内容,按以下原则拆解:
|
|
@@ -71,6 +101,12 @@ Read 设计文档后,**先扫描文档结构**,建立章节索引表:
|
|
|
71
101
|
- **Created**: <当前日期>
|
|
72
102
|
- **Updated**: <当前日期>
|
|
73
103
|
|
|
104
|
+
## Proposal
|
|
105
|
+
|
|
106
|
+
<2-3 句话说明变更意图:为什么做这个变更?解决什么问题?期望达成什么效果?>
|
|
107
|
+
|
|
108
|
+
这段由 AI 从设计文档中提炼生成,帮助编码阶段快速理解全局意图,而不必重读整篇详设。
|
|
109
|
+
|
|
74
110
|
---
|
|
75
111
|
|
|
76
112
|
## TASK-001: <子任务标题>
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
其中 `<file>` 为 `.code-flow/tasks/` 下的文件名,可省略日期目录前缀和 `.md` 后缀。
|
|
11
11
|
|
|
12
|
-
查找逻辑:用 Glob 搜索 `.code-flow/tasks/**/<file>.md
|
|
12
|
+
查找逻辑:用 Glob 搜索 `.code-flow/tasks/**/<file>.md`,从结果中排除包含 `archived/` 的路径,匹配第一个结果。
|
|
13
13
|
|
|
14
14
|
示例:
|
|
15
15
|
- `/cf-task:start auth-module TASK-002`
|
|
@@ -73,9 +73,10 @@
|
|
|
73
73
|
|
|
74
74
|
### 2. 加载详设文档
|
|
75
75
|
|
|
76
|
-
读取文件头的 `Source`
|
|
76
|
+
1. 读取文件头的 `Source` 字段,提取设计文档路径(文件头 Source 只有路径,无行号范围)
|
|
77
|
+
2. 用 Read 加载完整的详设文档作为全局上下文(不使用 offset/limit)
|
|
77
78
|
|
|
78
|
-
>
|
|
79
|
+
> 注:整文件模式加载完整详设(因为涉及所有子任务),单任务模式只加载子任务 Source 中引用的章节(节省 token)。
|
|
79
80
|
|
|
80
81
|
### 3. 构建执行计划
|
|
81
82
|
|