@zhanlucode/zl-darwin-arm64 1.5.87028
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/LICENSE +22 -0
- package/bin/rg +0 -0
- package/bin/tree-sitter/tree-sitter-bash.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-c.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-c_sharp.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-cpp.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-css.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-dart.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-elisp.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-elixir.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-elm.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-embedded_template.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-go.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-html.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-java.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-javascript.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-json.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-kotlin.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-lua.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-objc.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-ocaml.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-php.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-python.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-ql.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-rescript.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-ruby.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-rust.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-scala.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-solidity.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-swift.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-systemrdl.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-tlaplus.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-toml.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-tsx.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-typescript.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-vue.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-yaml.wasm +0 -0
- package/bin/tree-sitter/tree-sitter-zig.wasm +0 -0
- package/bin/tree-sitter/tree-sitter.wasm +0 -0
- package/bin/zhanlu-plugins/bundle-index.json +60 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/.claude-plugin/plugin.json +42 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/README.md +29 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/mcps/sast_fixer_mcp/README.md +10 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/SKILL.md +179 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/config/gitlab_config.json +5 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/prompts/step1_preparation.md +167 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/prompts/step2_consistency_check.md +446 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/scripts/gitlab_clone.py +213 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/scripts/read_excel_requirements.py +144 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/GITLAB_USAGE.md +160 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/QUICK_REFERENCE.md +149 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/README.md +134 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/SKILL.md +151 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/assets/review_standards.md +144 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/file_review_prompt.md +160 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/output_requirements.md +35 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/step1_project_preprocessing.md +106 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/step2_file_review.md +83 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/step3_report_generation.md +319 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/scripts/gitlab_clone.py +213 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/SKILL.md +366 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/references/generation-rules.md +214 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/references/query-rules.md +60 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/references/review-rules.md +117 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/references/save-rules.md +367 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/quality_scan/SKILL.md +195 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/requirement-analysis/SKILL.md +346 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/requirement-review/SKILL.md +267 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/requirements-gather/SKILL.md +187 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/sast_scan/SKILL.md +312 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/SKILL.md +77 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/evals/evals.json +34 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/epic-to-story-methodology.md +122 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/epic-to-story-template.md +93 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/epic-to-story-to-task-template.md +221 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/story-to-task-methodology.md +139 -0
- package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/story-to-task-template.md +89 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/.claude-plugin/plugin.json +19 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/README.md +21 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/.gitkeep +1 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-analysis/SKILL.md +383 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/SKILL.md +348 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/epic-to-story-methodology.md +122 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/epic-to-story-template.md +93 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/epic-to-story-to-task-template.md +221 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/story-to-task-methodology.md +139 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/story-to-task-template.md +89 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-review/SKILL.md +350 -0
- package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirements-gather/SKILL.md +244 -0
- package/bin/zl +4 -0
- package/package.json +22 -0
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# Epic → Story → Task 三层拆解输出模板
|
|
2
|
+
|
|
3
|
+
## 文档头部
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# [项目名称] - 需求拆解文档
|
|
7
|
+
|
|
8
|
+
## 项目信息
|
|
9
|
+
- 空间名称: [填写空间名称]
|
|
10
|
+
- 项目编码: [填写项目目编码]
|
|
11
|
+
- 项目名称: [填写项目名称]
|
|
12
|
+
- 产品名称: [填写产品名称]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 一级:Epic 区块
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Epic-{Epic序号}: {key}-{Epic标题}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 二级:Story 区块
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
### Story {Epic序号}.{Story序号}: {Story名称}
|
|
31
|
+
|
|
32
|
+
| 字段 | 值 |
|
|
33
|
+
| ----------- | ---------------- |
|
|
34
|
+
| 需求Key | [自动生成,格式:{父EpicKey}-S{序号}] |
|
|
35
|
+
| 标题 | [Story标题] |
|
|
36
|
+
| 类型 | 用户故事 |
|
|
37
|
+
| 负责人 | [继承自父需求] |
|
|
38
|
+
| 提出人 | [继承自父需求] |
|
|
39
|
+
| 优先级 | [继承自父需求] |
|
|
40
|
+
| 业务背景 | [继承自父需求,若无则填写"无"] |
|
|
41
|
+
| 需求描述 | [拆解后的需求描述] |
|
|
42
|
+
| 验收标准 | [拆解后的验收标准] |
|
|
43
|
+
| 计划开始时间 | [继承自父需求] |
|
|
44
|
+
| 计划结束时间 | [继承自父需求] |
|
|
45
|
+
| 期望完成时间 | [继承自父需求,若无则填写"无"] |
|
|
46
|
+
| 关联产品/业务平台类型 | [继承自父需求] |
|
|
47
|
+
| 选择对应产品/业务平台 | [继承自父需求] |
|
|
48
|
+
| 关联项目 | [继承自父需求] |
|
|
49
|
+
| 关联版本 | [继承自父需求,若无则填写"无"] |
|
|
50
|
+
| 迭代 | [继承自父需求,若无则填写"无"] |
|
|
51
|
+
| 父需求 | [父EpicKey] |
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 三级:Task 区块
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
#### Task {Epic序号}.{Story序号}.{Task序号}: {Task名称}
|
|
60
|
+
|
|
61
|
+
| 字段 | 值 |
|
|
62
|
+
| ----------- | ---------------- |
|
|
63
|
+
| 需求Key | [自动生成,格式:{父StoryKey}-T{序号}] |
|
|
64
|
+
| 标题 | [Task标题] |
|
|
65
|
+
| 类型 | 任务 |
|
|
66
|
+
| 任务类型 | [需求分析/设计/开发/测试/文档 四选一] |
|
|
67
|
+
| 负责人 | [继承自父需求] |
|
|
68
|
+
| 提出人 | [继承自父需求] |
|
|
69
|
+
| 优先级 | [继承自父需求] |
|
|
70
|
+
| 任务描述 | [拆解后的任务描述] |
|
|
71
|
+
| 计划开始时间 | [继承自父需求] |
|
|
72
|
+
| 计划结束时间 | [继承自父需求] |
|
|
73
|
+
| 计划工时(小时) | [按照情况合理填写] |
|
|
74
|
+
| 关联产品/业务平台类型 | [继承自父需求] |
|
|
75
|
+
| 选择对应产品/业务平台 | [继承自父需求] |
|
|
76
|
+
| 关联项目 | [继承自父需求] |
|
|
77
|
+
| 关联版本 | [继承自父需求,若无则填写"无"] |
|
|
78
|
+
| 父需求 | [父StoryKey] |
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 分隔符
|
|
84
|
+
|
|
85
|
+
- 每个 Epic 之间用 `---` 分隔
|
|
86
|
+
- 每个 Story 之间用 `---` 分隔
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 完整示例
|
|
91
|
+
|
|
92
|
+
```markdown
|
|
93
|
+
# 研发大模型关键技术研发(2025) - 需求拆解文档
|
|
94
|
+
|
|
95
|
+
## 项目信息
|
|
96
|
+
- 空间名称: 研发大模型关键技术研发
|
|
97
|
+
- 项目编码: R2511D2DC03
|
|
98
|
+
- 项目名称: 研发大模型关键技术研发(2025)
|
|
99
|
+
- 产品名称: 研发大模型
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Epic-1: CMSSR2511D2DC03-873 需求代码一致性检查
|
|
104
|
+
|
|
105
|
+
### Story 1.1: Git提交信息需求代码一致性校验
|
|
106
|
+
|
|
107
|
+
| 字段 | 值 |
|
|
108
|
+
| ----------- | ---------------- |
|
|
109
|
+
| 需求Key | CMSSR2511D2DC03-873-S1 |
|
|
110
|
+
| 标题 | Git提交信息需求代码一致性校验 |
|
|
111
|
+
| 类型 | 用户故事 |
|
|
112
|
+
| 负责人 | 张三 |
|
|
113
|
+
| 提出人 | 李四 |
|
|
114
|
+
| 优先级 | P0 |
|
|
115
|
+
| 业务背景 | 无 |
|
|
116
|
+
| 需求描述 | 作为 一名开发人员,我想要 在推送(Push)代码到仓库时,系统能自动分析我的 Git 提交信息中的需求描述(如 Jira ID 或任务标题)与实际提交的代码变更是否匹配,以便于 我能及时发现并修正描述错误,确保代码库中每个提交都准确对应业务需求,避免后续维护混乱和代码审查(Code Review)的低效。 |
|
|
117
|
+
| 验收标准 | 1、用户在push代码时,系统自动解析git提交信息中的需求标识;2、若检测到需求与提交代码不一致,系统向用户发出提醒提示;3、提醒信息清晰说明不一致的具体内容。 |
|
|
118
|
+
| 计划开始时间 | 2026-04-27 16:00:00 |
|
|
119
|
+
| 计划结束时间 | 2026-05-21 16:00:00 |
|
|
120
|
+
| 期望完成时间 | 无 |
|
|
121
|
+
| 关联产品/业务平台类型 | 产品 |
|
|
122
|
+
| 选择对应产品/业务平台 | 研发大模型 |
|
|
123
|
+
| 关联项目 | 研发大模型关键技术研发(2025)(R2511D2DC03) |
|
|
124
|
+
| 关联版本 | 无 |
|
|
125
|
+
| 迭代 | 无 |
|
|
126
|
+
| 父需求 | CMSSR2511D2DC03-873 |
|
|
127
|
+
|
|
128
|
+
#### Task 1.1.1: 开发并集成本地 pre-push Git Hook 脚本以实现提交信息校验逻辑
|
|
129
|
+
|
|
130
|
+
| 字段 | 值 |
|
|
131
|
+
| ----------- | ---------------- |
|
|
132
|
+
| 需求Key | CMSSR2511D2DC03-873-S1-T1 |
|
|
133
|
+
| 标题 | 开发并集成本地 pre-push Git Hook 脚本以实现提交信息校验逻辑 |
|
|
134
|
+
| 类型 | 任务 |
|
|
135
|
+
| 任务类型 | 开发 |
|
|
136
|
+
| 负责人 | 张三 |
|
|
137
|
+
| 提出人 | 李四 |
|
|
138
|
+
| 优先级 | P0 |
|
|
139
|
+
| 任务描述 | 本任务旨在开发并部署一套本地 Git pre-push 钩子机制,通过编写名为 scripts/git-check-commit.sh 的脚本,在代码推送前自动读取环境变量与远程分支信息,利用 git diff 获取文件变更列表并结合 git log 遍历提交记录,提取 Jira ID 或任务标题后建立"提交 ID - 修改文件"的映射关系,智能推断代码变更是否精准对应业务需求。一旦检测到不匹配,脚本将立即向标准错误流输出包含缺失 ID、文件路径及错误摘要的清晰提示,并强制返回非零退出码以拦截 Push 操作。任务还包括创建 .git/hooks/pre-push 模板及提供 make install-hooks 等便捷命令指导新成员初始化环境。 |
|
|
140
|
+
| 计划开始时间 | 2026-04-27 16:00:00 |
|
|
141
|
+
| 计划结束时间 | 2026-05-21 16:00:00 |
|
|
142
|
+
| 计划工时(小时) | 5 |
|
|
143
|
+
| 关联产品/业务平台类型 | 产品 |
|
|
144
|
+
| 选择对应产品/业务平台 | 研发大模型 |
|
|
145
|
+
| 关联项目 | 研发大模型关键技术研发(2025)(R2511D2DC03) |
|
|
146
|
+
| 关联版本 | 无 |
|
|
147
|
+
| 父需求 | CMSSR2511D2DC03-873-S1 |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
### Story 1.2: 后台管理页面展示不一致告警记录
|
|
152
|
+
|
|
153
|
+
| 字段 | 值 |
|
|
154
|
+
| ----------- | ---------------- |
|
|
155
|
+
| 需求Key | CMSSR2511D2DC03-873-S2 |
|
|
156
|
+
| 标题 | 后台管理页面展示不一致告警记录 |
|
|
157
|
+
| 类型 | 用户故事 |
|
|
158
|
+
| 负责人 | 张三 |
|
|
159
|
+
| 提出人 | 李四 |
|
|
160
|
+
| 优先级 | P1 |
|
|
161
|
+
| 业务背景 | 无 |
|
|
162
|
+
| 需求描述 | 作为 一名运维人员,我想要 在后台管理页面查看 Git 提交时检测到的一致性告警记录,以便于 我能快速定位并处理不匹配的提交,降低代码审查成本。 |
|
|
163
|
+
| 验收标准 | 1、后台页面展示告警记录列表,包含提交ID、需求标识、文件变更摘要、检测时间等字段;2、支持按时间、需求标识、状态进行筛选;3、点击单条告警可查看详细信息。 |
|
|
164
|
+
| 计划开始时间 | 2026-04-27 16:00:00 |
|
|
165
|
+
| 计划结束时间 | 2026-05-21 16:00:00 |
|
|
166
|
+
| 期望完成时间 | 无 |
|
|
167
|
+
| 关联产品/业务平台类型 | 产品 |
|
|
168
|
+
| 选择对应产品/业务平台 | 研发大模型 |
|
|
169
|
+
| 关联项目 | 研发大模型关键技术研发(2025)(R2511D2DC03) |
|
|
170
|
+
| 关联版本 | 无 |
|
|
171
|
+
| 迭代 | 无 |
|
|
172
|
+
| 父需求 | CMSSR2511D2DC03-873 |
|
|
173
|
+
|
|
174
|
+
#### Task 1.2.1: 设计告警记录数据库表结构与API接口
|
|
175
|
+
|
|
176
|
+
| 字段 | 值 |
|
|
177
|
+
| ----------- | ---------------- |
|
|
178
|
+
| 需求Key | CMSSR2511D2DC03-873-S2-T1 |
|
|
179
|
+
| 标题 | 设计告警记录数据库表结构与API接口 |
|
|
180
|
+
| 类型 | 任务 |
|
|
181
|
+
| 任务类型 | 设计 |
|
|
182
|
+
| 负责人 | 张三 |
|
|
183
|
+
| 提出人 | 李四 |
|
|
184
|
+
| 优先级 | P1 |
|
|
185
|
+
| 任务描述 | 设计告警记录的数据存储方案,包括数据库表结构(字段:告警ID、提交ID、需求标识、变更文件列表、检测时间、状态等)以及后端REST API接口定义(查询列表、查看详情、标记已处理)。输出设计文档并评审。 |
|
|
186
|
+
| 计划开始时间 | 2026-04-27 16:00:00 |
|
|
187
|
+
| 计划结束时间 | 2026-05-21 16:00:00 |
|
|
188
|
+
| 计划工时(小时) | 4 |
|
|
189
|
+
| 关联产品/业务平台类型 | 产品 |
|
|
190
|
+
| 选择对应产品/业务平台 | 研发大模型 |
|
|
191
|
+
| 关联项目 | 研发大模型关键技术研发(2025)(R2511D2DC03) |
|
|
192
|
+
| 关联版本 | 无 |
|
|
193
|
+
| 父需求 | CMSSR2511D2DC03-873-S2 |
|
|
194
|
+
|
|
195
|
+
#### Task 1.2.2: 开发告警记录后台管理页面前端组件
|
|
196
|
+
|
|
197
|
+
| 字段 | 值 |
|
|
198
|
+
| ----------- | ---------------- |
|
|
199
|
+
| 需求Key | CMSSR2511D2DC03-873-S2-T2 |
|
|
200
|
+
| 标题 | 开发告警记录后台管理页面前端组件 |
|
|
201
|
+
| 类型 | 任务 |
|
|
202
|
+
| 任务类型 | 开发 |
|
|
203
|
+
| 负责人 | 张三 |
|
|
204
|
+
| 提出人 | 李四 |
|
|
205
|
+
| 优先级 | P1 |
|
|
206
|
+
| 任务描述 | 基于已设计的API,开发后台管理页面的前端组件,包括告警记录列表页(支持筛选、分页)和详情页。使用项目现有前端框架,确保与既有风格一致。 |
|
|
207
|
+
| 计划开始时间 | 2026-04-27 16:00:00 |
|
|
208
|
+
| 计划结束时间 | 2026-05-21 16:00:00 |
|
|
209
|
+
| 计划工时(小时) | 8 |
|
|
210
|
+
| 关联产品/业务平台类型 | 产品 |
|
|
211
|
+
| 选择对应产品/业务平台 | 研发大模型 |
|
|
212
|
+
| 关联项目 | 研发大模型关键技术研发(2025)(R2511D2DC03) |
|
|
213
|
+
| 关联版本 | 无 |
|
|
214
|
+
| 父需求 | CMSSR2511D2DC03-873-S2 |
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Epic-2: CMSSR2511D2DC03-874 代码审查自动化辅助
|
|
219
|
+
...
|
|
220
|
+
|
|
221
|
+
```
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Story → Task 拆解方法论
|
|
2
|
+
|
|
3
|
+
## 目标
|
|
4
|
+
|
|
5
|
+
将每个 Story 拆解为具体的、可执行的开发任务(Task)。每个 Task 应该是 Agent 可以独立完成的最小开发单元。
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## 核心原则
|
|
9
|
+
|
|
10
|
+
### 1. 一个 Task = 一个独立开发动作,不是"阶段"
|
|
11
|
+
|
|
12
|
+
**反面示例(按阶段拆——过度拆分):**
|
|
13
|
+
|
|
14
|
+
- ~~Task 1: 设计 API 对接方案(4h)~~
|
|
15
|
+
- ~~Task 2: 开发服务模块(8h)~~
|
|
16
|
+
- ~~Task 3: 开发展示组件(6h)~~
|
|
17
|
+
- 这里"设计"不是一个独立的开发产出,设计工作应融入开发中
|
|
18
|
+
|
|
19
|
+
**正面示例(按开发动作拆):**
|
|
20
|
+
|
|
21
|
+
- Task 1: 实现需求查询服务(包含 API 设计+开发)
|
|
22
|
+
- Task 2: 实现前端展示组件
|
|
23
|
+
|
|
24
|
+
### 2. Task 粒度:一个 Task 的描述应包含足够的技术细节
|
|
25
|
+
|
|
26
|
+
每个 Task 描述应该让一个开发者看到后就知道要做什么、怎么做,不需要再补充上下文。
|
|
27
|
+
|
|
28
|
+
**好:**
|
|
29
|
+
|
|
30
|
+
- "实现 `GET /api/requirements` 查询接口,支持 `assignee`、`status`、`project_id` 三个可选查询参数,支持 `page` 和 `page_size` 分页,返回结构化需求列表"
|
|
31
|
+
|
|
32
|
+
**不好:**
|
|
33
|
+
|
|
34
|
+
- "开发需求查询功能"(缺少技术细节)
|
|
35
|
+
|
|
36
|
+
### 3. 不要为"设计"单独设 Task
|
|
37
|
+
|
|
38
|
+
设计工作是实现的一部分,不是独立的产出物。把设计融入实现任务中:
|
|
39
|
+
|
|
40
|
+
**反面示例:**
|
|
41
|
+
|
|
42
|
+
- ~~Task 1: 设计 Prompt 模板(4h)~~
|
|
43
|
+
- ~~Task 2: 开发 AI 评审服务(8h)~~
|
|
44
|
+
|
|
45
|
+
**正面示例:**
|
|
46
|
+
|
|
47
|
+
- Task 1: 开发 AI 评审服务——设计评审 Prompt 模板并实现调用逻辑
|
|
48
|
+
|
|
49
|
+
### 4. Task 数量限制
|
|
50
|
+
|
|
51
|
+
一个 Story 拆 **2-4 个 Task**。超过 4 个时考虑合并。
|
|
52
|
+
|
|
53
|
+
## 拆解步骤
|
|
54
|
+
|
|
55
|
+
### 步骤 1:理解 Story 的技术实现路径
|
|
56
|
+
|
|
57
|
+
阅读 Story 的验收标准,判断需要哪些开发工作。按以下维度识别:
|
|
58
|
+
|
|
59
|
+
| 维度 | 说明 |
|
|
60
|
+
| ----------- | ------------------------- |
|
|
61
|
+
| 后端/服务层 | API、业务逻辑、数据处理 |
|
|
62
|
+
| 前端/UI 层 | 组件、页面、交互 |
|
|
63
|
+
| 集成层 | 第三方 API 对接、消息队列 |
|
|
64
|
+
| 配置/部署 | 环境配置、部署脚本 |
|
|
65
|
+
|
|
66
|
+
### 步骤 2:按开发动作拆分 Task
|
|
67
|
+
|
|
68
|
+
每个 Task 应该是一个完整的开发动作,不是开发阶段。拆分方法:
|
|
69
|
+
|
|
70
|
+
1. **识别独立开发模块**:哪些代码文件可以独立创建/修改
|
|
71
|
+
2. **合并相关操作**:同一模块下的设计+实现合并为一个 Task
|
|
72
|
+
3. **确保每个 Task 有明确产出**:完成后有一个可运行的代码产出
|
|
73
|
+
|
|
74
|
+
### 步骤 3:编写 Task
|
|
75
|
+
|
|
76
|
+
对每个 Task,使用以下格式:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
**任务描述:**
|
|
80
|
+
|
|
81
|
+
{具体开发任务,包含输入、处理、输出}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
任务描述必须包含:
|
|
85
|
+
|
|
86
|
+
- **做什么**:具体的功能名称和行为
|
|
87
|
+
- **怎么做**:关键技术点(接口路径、参数、返回值、组件名等)
|
|
88
|
+
- **边界处理**:异常情况和边界条件
|
|
89
|
+
|
|
90
|
+
**好示例:**
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
开发需求查询与分页展示服务:实现 `GET /api/requirements` 接口,支持 `assignee`(我提交的/分配给我的)、`status`、`project_id` 等多条件组合查询。返回格式为 `{items: Requirement[], total: number, page: number, pageSize: number}`。前端组件使用分页表格,每页 5 条,超过 5 条时显示分页导航。空间筛选通过弹窗询问用户,默认展示全部空间。
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**不好示例:**
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
~~开发需求查询功能~~(缺少具体细节)
|
|
100
|
+
~~设计并实现后端服务~~("设计"不是独立产出)
|
|
101
|
+
~~优化用户体验~~(不是开发动作)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 步骤 4:验证
|
|
105
|
+
|
|
106
|
+
完成拆分后,逐一检查:
|
|
107
|
+
|
|
108
|
+
- [ ] 每个 Task 是否有明确的技术细节?
|
|
109
|
+
- [ ] 每个 Task 是否可以被单个开发者独立完成?
|
|
110
|
+
- [ ] Task 数量是否在 2-4 个?(超过 4 个考虑合并)
|
|
111
|
+
- [ ] 所有验收标准是否都有对应的 Task 覆盖?
|
|
112
|
+
- [ ] 是否没有单独的"设计"Task?
|
|
113
|
+
|
|
114
|
+
## Task 粒度指导
|
|
115
|
+
|
|
116
|
+
| 场景 | 处理方式 |
|
|
117
|
+
| ---------------------------- | --------------------------------------- |
|
|
118
|
+
| Task 包含多个不相关的功能 | 拆分为多个 Task |
|
|
119
|
+
| Task 只涉及一行代码的改动 | 考虑合并到相邻 Task |
|
|
120
|
+
| 单个 Story 的 Task 超过 4 个 | 合并相关 Task |
|
|
121
|
+
| 单个 Story 的 Task 少于 2 个 | 正常,简单 Story 可能只需要 1-2 个 Task |
|
|
122
|
+
|
|
123
|
+
## 常见陷阱
|
|
124
|
+
|
|
125
|
+
| 陷阱 | 应对方式 |
|
|
126
|
+
| ------------------------------- | -------------------------------------------- |
|
|
127
|
+
| 把"设计"单独拆成 Task | 将设计工作融入实现 Task |
|
|
128
|
+
| Task 描述过于笼统,缺少技术细节 | 补充接口路径、参数、返回值、组件名等信息 |
|
|
129
|
+
| 一个 Task 描述像 Epic | 拆分为更小的 Task |
|
|
130
|
+
| Task 顺序不合理 | 按依赖关系排序:数据层 → 服务层 → 前端层 |
|
|
131
|
+
| 遗漏异常处理 | 在每个涉及外部调用的 Task 中说明错误处理逻辑 |
|
|
132
|
+
|
|
133
|
+
## 拆解数量指导
|
|
134
|
+
|
|
135
|
+
一个 Story 建议包含 **2-4 个 Task**。
|
|
136
|
+
|
|
137
|
+
- 少于 2 个:正常,简单功能可能只需要 1 个 Task
|
|
138
|
+
- 2-4 个:理想范围
|
|
139
|
+
- 超过 4 个:Story 可能过大或拆得过细,考虑合并
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Task 输出模板
|
|
2
|
+
|
|
3
|
+
## 文档头部
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# [项目名称] - 需求拆解文档
|
|
7
|
+
|
|
8
|
+
## 项目信息
|
|
9
|
+
- 空间名称: [填写空间名称]
|
|
10
|
+
- 项目编码: [填写项目编码]
|
|
11
|
+
- 项目名称: [填写项目名称]
|
|
12
|
+
- 产品名称: [填写产品名称]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 每个 Story 区块
|
|
16
|
+
|
|
17
|
+
```markdown
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Story-{Story序号}: {key}-{Story标题}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 每个 Task 区块
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
### Task {Story序号}.{Task序号}: {Task名称}
|
|
27
|
+
|
|
28
|
+
| 字段 | 值 |
|
|
29
|
+
| ----------- | ---------------- |
|
|
30
|
+
| 需求Key | [自动生成,格式:{父需求Key}-T{序号}] |
|
|
31
|
+
| 标题 | [Task标题] |
|
|
32
|
+
| 类型 | 任务 |
|
|
33
|
+
| 任务类型 | [需求分析/设计/开发/测试/文档 四选一] |
|
|
34
|
+
| 负责人 | [继承自父需求] |
|
|
35
|
+
| 提出人 | [继承自父需求] |
|
|
36
|
+
| 优先级 | [继承自父需求] |
|
|
37
|
+
| 任务描述 | [拆解后的任务描述] |
|
|
38
|
+
| 计划开始时间 | [继承自父需求] |
|
|
39
|
+
| 计划结束时间 | [继承自父需求] |
|
|
40
|
+
| 计划工时(小时) | [按照情况合理填写] |
|
|
41
|
+
| 关联产品/业务平台类型 | [继承自父需求] |
|
|
42
|
+
| 选择对应产品/业务平台 | [继承自父需求] |
|
|
43
|
+
| 关联项目 | [继承自父需求] |
|
|
44
|
+
| 关联版本 | [继承自父需求,若无则填写"无"] |
|
|
45
|
+
| 父需求 | [父需求Key] |
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## 分隔符
|
|
49
|
+
|
|
50
|
+
每个 Story 之间用 `---` 分隔。
|
|
51
|
+
|
|
52
|
+
## 完整示例
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
# 研发大模型关键技术研发(2025) - 需求拆解文档
|
|
56
|
+
|
|
57
|
+
## 项目信息
|
|
58
|
+
- 空间名称: 研发大模型关键技术研发
|
|
59
|
+
- 项目编码: R2511D2DC03
|
|
60
|
+
- 项目名称: 研发大模型关键技术研发(2025)
|
|
61
|
+
- 产品名称: 研发大模型
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Story-1: Git提交信息需求代码一致性校验
|
|
66
|
+
|
|
67
|
+
### Task 1.1: CMSSR2511D2DC03-876-开发并集成本地 pre-push Git Hook 脚本以实现提交信息校验逻辑
|
|
68
|
+
|
|
69
|
+
| 字段 | 值 |
|
|
70
|
+
| ----------- | ---------------- |
|
|
71
|
+
| 需求Key | CMSSR2511D2DC03-876-T1 |
|
|
72
|
+
| 标题 | 开发并集成本地 pre-push Git Hook 脚本以实现提交信息校验逻辑 |
|
|
73
|
+
| 类型 | 任务 |
|
|
74
|
+
| 任务类型 | 开发 |
|
|
75
|
+
| 负责人 | 张三 |
|
|
76
|
+
| 提出人 | 李四 |
|
|
77
|
+
| 优先级 | P0 |
|
|
78
|
+
| 任务描述 | 本任务旨在开发并部署一套本地 Git pre-push 钩子机制,通过编写名为 scripts/git-check-commit.sh 的脚本(1),在代码推送前自动读取环境变量与远程分支信息,利用 git diff 获取文件变更列表并结合 git log 遍历提交记录,提取 Jira ID 或任务标题后建立“提交 ID - 修改文件”的映射关系,智能推断代码变更是否精准对应业务需求。一旦检测到不匹配(2),脚本将立即向标准错误流输出包含缺失 ID、文件路径及错误摘要的清晰提示,并强制返回非零退出码以拦截 Push 操作,防止不规范提交进入代码库。同时,团队需创建 .git/hooks/pre-push 模板并在文档中提供 make install-hooks 等便捷命令(3)指导新成员快速初始化环境,确保脚本具备执行权限并实现流程落地。最后,任务将通过单元测试模拟多种场景以及集成测试验证真实分支下的 Push 行为(4),确保带正确 ID 的提交能顺利执行,而缺失或错误 ID 的提交被有效拦截并提示,最终交付可运行的脚本、Hook 模板及测试报告。 |
|
|
79
|
+
| 计划开始时间 | 2026-04-27 16:00:00 |
|
|
80
|
+
| 计划结束时间 | 2026-05-21 16:00:00 |
|
|
81
|
+
| 计划工时(小时) | 5 |
|
|
82
|
+
| 关联产品/业务平台类型 | 产品 |
|
|
83
|
+
| 选择对应产品/业务平台 | 研发大模型 |
|
|
84
|
+
| 关联项目 | 研发大模型关键技术研发(2025)(R2511D2DC03) |
|
|
85
|
+
| 关联版本 | 无 |
|
|
86
|
+
| 父需求 | CMSSR2511D2DC03-876 |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
```
|