sdd-full 4.2.0 → 4.3.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/bin.js +31 -63
- package/package.json +1 -1
- package/skills/README.md +97 -0
- package/skills/call-adaptation/SKILL.md +23 -0
- package/skills/call-adaptation/call-adaptation-guide.md +136 -0
- package/skills/call-adaptation/claude-code-call-spec.md +50 -0
- package/skills/call-adaptation/trae-call-spec.md +56 -0
- package/skills/checklist.md +154 -0
- package/skills/design-planning/ai-coding-rules/SKILL.md +52 -0
- package/skills/design-planning/design-to-code/SKILL.md +53 -0
- package/skills/design-planning/enterprise-spec/SKILL.md +52 -3
- package/skills/design-planning/flutter-av/SKILL.md +44 -34
- package/skills/design-planning/flutter-map/SKILL.md +41 -31
- package/skills/design-planning/function-sdd/SKILL.md +54 -0
- package/skills/design-planning/sdd-code/SKILL.md +347 -0
- package/skills/design-planning/sdd-deploy/SKILL.md +501 -0
- package/skills/design-planning/sdd-ops/SKILL.md +306 -0
- package/skills/design-planning/sdd-test/SKILL.md +383 -0
- package/skills/design-planning/ui-sdd/SKILL.md +291 -0
- package/skills/design-planning/ui-sdd-specialized/SKILL.md +46 -40
- package/skills/design-planning/writing-plans/SKILL.md +144 -0
- package/skills/development-execution/flutter-errors/SKILL.md +44 -34
- package/skills/development-execution/sdd-add/SKILL.md +540 -0
- package/skills/development-execution/systematic-debugging/SKILL.md +298 -0
- package/skills/development-execution/test-driven-development/SKILL.md +373 -0
- package/skills/development-execution/verification-before-completion/SKILL.md +141 -0
- package/skills/knowledge-precipitation/claudeception/SKILL.md +96 -0
- package/skills/knowledge-precipitation/mempalace-auto-saver/SKILL.md +302 -0
- package/skills/quality-assurance/bdd-acceptance/SKILL.md +44 -37
- package/skills/quality-assurance/flutter-test/SKILL.md +56 -0
- package/skills/quality-assurance/quality-gate/SKILL.md +350 -0
- package/skills/quality-assurance/security-audit/SKILL.md +386 -0
- package/skills/release-ops/finishing-a-development-branch/SKILL.md +202 -0
- package/skills/release-ops/release-flow/SKILL.md +404 -0
- package/skills/requirement-analysis/brainstorming/SKILL.md +166 -0
- package/skills/requirement-analysis/competitive-brief/SKILL.md +121 -0
- package/skills/requirement-analysis/market-research/SKILL.md +143 -0
- package/skills/requirement-analysis/prd-write/SKILL.md +111 -0
- package/skills/requirement-analysis/requirement-completion-officer/SKILL.md +124 -0
- package/skills/requirement-analysis/sdd/SKILL.md +1044 -0
- package/skills/requirement-analysis/sdd-full/SKILL.md +717 -36
- package/skills/requirement-analysis/unified-flow/SKILL.md +128 -26
- package/skills/rules/project_rules.md +167 -0
- package/skills/rules/user_rules.md +254 -69
- package/skills/special-tools/env-check/SKILL.md +40 -34
- package/skills/special-tools/receiving-code-review/SKILL.md +215 -0
- package/skills/special-tools/requesting-code-review/SKILL.md +107 -0
- package/skills/special-tools/using-superpowers/SKILL.md +117 -0
- package/skills/templates/API-SDD.md +31 -0
- package/skills/templates/Andrej Karpathy AI/347/274/226/347/240/201/350/247/204/345/210/231/350/220/275/345/234/260SDD.md" +117 -0
- package/skills/templates/BDD/351/243/216/346/240/274/351/252/214/346/224/266/346/240/207/345/207/206SDD.md +147 -0
- package/skills/templates/Base-SDD.md +38 -0
- package/skills/templates/Brain-SDD.md +36 -0
- package/skills/templates/Code-SDD.md +41 -0
- package/skills/templates/Competitor-SDD.md +34 -0
- package/skills/templates/Env-SDD.md +37 -0
- package/skills/templates/Flutter/345/205/250/347/261/273/345/236/213/346/265/213/350/257/225/347/255/226/347/225/245SDD.md +162 -0
- package/skills/templates/Flutter/345/234/260/345/233/276/345/257/274/350/210/252/344/270/232/345/212/241SDD.md +136 -0
- package/skills/templates/Flutter/345/270/270/350/247/201/345/274/202/345/270/270/344/270/223/351/241/271SDD.md +159 -0
- package/skills/templates/Flutter/351/237/263/350/247/206/351/242/221/345/205/250/346/240/210SDD.md +121 -0
- package/skills/templates/PRD-SDD.md +45 -0
- package/skills/templates/SKILL.md +91 -0
- package/skills/templates/Test-SDD.md +34 -0
- package/skills/templates/UI-SDD.md +38 -0
- package/skills/templates/UI-SDD/344/270/223/347/224/250/346/250/241/346/235/277.md +141 -0
- package/skills/templates/UI/350/265/204/346/272/220/346/217/220/347/244/272/350/257/215/347/224/237/346/210/220SDD.md +67 -0
- package/skills/templates//344/274/201/344/270/232/347/272/247/345/205/250/346/240/210/345/267/245/347/250/213/350/247/204/350/214/203SDD.md +152 -0
- package/skills/templates//345/205/250/346/265/201/347/250/213SDD/350/236/215/345/220/210/344/275/223/347/263/273.md +198 -0
- package/skills/templates//345/212/237/350/203/275SDD/344/270/223/347/224/250/346/250/241/346/235/277.md +132 -0
- package/skills/templates//347/216/257/345/242/203/351/242/204/346/243/200/346/240/207/345/207/206/345/214/226SDD.md +153 -0
- package/skills/templates//351/253/230/344/277/235/347/234/237/350/256/276/350/256/241/350/275/254/344/273/243/347/240/201SDD.md +119 -0
- package/skills//345/256/214/346/225/264/345/274/200/345/217/221/346/265/201/347/250/213/346/211/213/345/206/214.md +408 -0
- package/skills//346/212/200/350/203/275/344/275/223/347/263/273/345/256/214/345/226/204/345/273/272/350/256/256.md +305 -0
- package/skills//346/212/200/350/203/275/344/275/277/347/224/250/346/214/207/345/215/227.md +285 -0
- package/skills//346/212/200/350/203/275/345/206/263/347/255/226/346/240/221.md +320 -0
- package/skills/brainstorming/SKILL.md +0 -164
- package/skills/brainstorming/scripts/frame-template.html +0 -214
- package/skills/brainstorming/scripts/helper.js +0 -88
- package/skills/brainstorming/scripts/server.cjs +0 -338
- package/skills/brainstorming/scripts/start-server.sh +0 -153
- package/skills/brainstorming/scripts/stop-server.sh +0 -55
- package/skills/brainstorming/spec-document-reviewer-prompt.md +0 -48
- package/skills/brainstorming/visual-companion.md +0 -286
- package/skills/chinese-code-review/SKILL.md +0 -277
- package/skills/chinese-commit-conventions/SKILL.md +0 -364
- package/skills/chinese-documentation/SKILL.md +0 -448
- package/skills/chinese-git-workflow/SKILL.md +0 -510
- package/skills/dispatching-parallel-agents/SKILL.md +0 -182
- package/skills/executing-plans/SKILL.md +0 -175
- package/skills/finishing-a-development-branch/SKILL.md +0 -200
- package/skills/mcp-builder/SKILL.md +0 -255
- package/skills/receiving-code-review/SKILL.md +0 -213
- package/skills/requesting-code-review/SKILL.md +0 -105
- package/skills/requesting-code-review/code-reviewer.md +0 -146
- package/skills/rules/skill-map.md +0 -97
- package/skills/subagent-driven-development/SKILL.md +0 -277
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +0 -26
- package/skills/subagent-driven-development/implementer-prompt.md +0 -113
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +0 -61
- package/skills/systematic-debugging/CREATION-LOG.md +0 -119
- package/skills/systematic-debugging/SKILL.md +0 -296
- package/skills/systematic-debugging/condition-based-waiting-example.ts +0 -158
- package/skills/systematic-debugging/condition-based-waiting.md +0 -115
- package/skills/systematic-debugging/defense-in-depth.md +0 -122
- package/skills/systematic-debugging/find-polluter.sh +0 -63
- package/skills/systematic-debugging/root-cause-tracing.md +0 -169
- package/skills/systematic-debugging/test-academic.md +0 -14
- package/skills/systematic-debugging/test-pressure-1.md +0 -58
- package/skills/systematic-debugging/test-pressure-2.md +0 -68
- package/skills/systematic-debugging/test-pressure-3.md +0 -69
- package/skills/test-driven-development/SKILL.md +0 -371
- package/skills/test-driven-development/testing-anti-patterns.md +0 -299
- package/skills/using-git-worktrees/SKILL.md +0 -218
- package/skills/using-superpowers/SKILL.md +0 -134
- package/skills/using-superpowers/references/codex-tools.md +0 -25
- package/skills/using-superpowers/references/gemini-tools.md +0 -33
- package/skills/verification-before-completion/SKILL.md +0 -139
- package/skills/workflow-runner/SKILL.md +0 -172
- package/skills/writing-plans/SKILL.md +0 -152
- package/skills/writing-plans/plan-document-reviewer-prompt.md +0 -49
- package/skills/writing-skills/SKILL.md +0 -654
- package/skills/writing-skills/anthropic-best-practices.md +0 -1149
- package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
- package/skills/writing-skills/graphviz-conventions.dot +0 -172
- package/skills/writing-skills/persuasion-principles.md +0 -187
- package/skills/writing-skills/render-graphs.js +0 -168
- package/skills/writing-skills/testing-skills-with-subagents.md +0 -384
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
【claude code调用标识:sdd-code】【trae调用标识:sdd-code+功能实现SDD拆分】【流程场景:1.完整3阶段SDD流程、2.从零开始新项目、3.小型功能迭代、4.Bug处理】
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: "sdd-code"
|
|
5
|
+
description: "功能实现逻辑SDD拆分,将用户故事拆分为独立可交付的功能实现SDD,按语言架构特性适配。Invoke when needing to split user stories into implementation-level SDDs after basic SDD split."
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 功能实现逻辑SDD拆分技能
|
|
9
|
+
|
|
10
|
+
本技能定义「功能实现逻辑SDD拆分」为独立技能,核心解决「功能实现逻辑如何拆分、拆分多少个SDD、不同场景下如何适配」的核心问题,可直接嵌入原有开发流程。
|
|
11
|
+
|
|
12
|
+
## 核心原则
|
|
13
|
+
|
|
14
|
+
**1个最小可独立实现的功能逻辑单元 = 1个SDD**,拆分数量由「功能复杂度、代码耦合度、语言架构特性、项目用途」四大维度决定。
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# 一、通用基础拆分规则
|
|
19
|
+
|
|
20
|
+
## 1.1 核心拆分原则
|
|
21
|
+
|
|
22
|
+
- **独立可交付**:每个SDD对应1个最小可独立实现的功能逻辑单元,可单独开发、测试、交付。
|
|
23
|
+
- **低耦合高内聚**:SDD内部逻辑闭环,仅聚焦自身核心功能。
|
|
24
|
+
- **粒度适配场景**:拆分粒度需贴合项目语言、架构、用途。
|
|
25
|
+
- **逻辑闭环完整**:每个SDD需覆盖「正常流程+关键异常流程」。
|
|
26
|
+
- **衔接原有流程**:需严格关联基础SDD拆分产出的用户故事、UI设计、接口契约。
|
|
27
|
+
|
|
28
|
+
## 1.2 拆分数量判定核心公式
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
拆分数量 = 核心功能逻辑单元数 + 异常处理逻辑单元数(可选) - 可合并逻辑单元数
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 1.3 禁止拆分与必须拆分场景
|
|
35
|
+
|
|
36
|
+
### 1.3.1 禁止拆分场景
|
|
37
|
+
- 单一简单操作(如按钮点击事件)
|
|
38
|
+
- 高度耦合的逻辑(如「数据查询+数据渲染」)
|
|
39
|
+
- 重复逻辑(如多个SDD共用的工具函数)
|
|
40
|
+
|
|
41
|
+
### 1.3.2 必须拆分场景
|
|
42
|
+
- 多分支业务逻辑(如订单支付的多种支付方式)
|
|
43
|
+
- 跨模块依赖逻辑(如「用户登录验证」)
|
|
44
|
+
- 复杂异常处理(如数据入库的多类异常)
|
|
45
|
+
- 前后端分离场景中,前端渲染、前端交互、后端接口实现、后端业务逻辑
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
# 二、按项目语言架构拆分细则
|
|
50
|
+
|
|
51
|
+
## 2.1 纯前端项目(Vue/React/Angular等)
|
|
52
|
+
|
|
53
|
+
核心拆分维度:页面渲染 → 交互逻辑 → 数据请求/处理 → 公共逻辑
|
|
54
|
+
|
|
55
|
+
- **简单页面**:拆分2-3个SDD
|
|
56
|
+
- 页面渲染逻辑SDD
|
|
57
|
+
- 核心交互逻辑SDD
|
|
58
|
+
- 数据请求逻辑SDD(可选)
|
|
59
|
+
|
|
60
|
+
- **复杂页面**:拆分3-5个SDD
|
|
61
|
+
- 在简单页面基础上,新增表单校验逻辑SDD、异常提示逻辑SDD
|
|
62
|
+
- 若有独立组件,可新增组件渲染与交互SDD
|
|
63
|
+
|
|
64
|
+
## 2.2 纯后端项目(Java/Node.js/Go等)
|
|
65
|
+
|
|
66
|
+
核心拆分维度:接口实现 → 业务逻辑 → 数据访问 → 公共逻辑
|
|
67
|
+
|
|
68
|
+
- **简单接口**:拆分2个SDD
|
|
69
|
+
- 接口实现逻辑SDD
|
|
70
|
+
- 数据访问逻辑SDD
|
|
71
|
+
|
|
72
|
+
- **复杂接口**:拆分3-4个SDD
|
|
73
|
+
- 接口实现逻辑SDD
|
|
74
|
+
- 业务逻辑SDD
|
|
75
|
+
- 数据访问逻辑SDD
|
|
76
|
+
- 异常处理逻辑SDD
|
|
77
|
+
|
|
78
|
+
## 2.3 Flutter项目(MVVM架构为主)
|
|
79
|
+
|
|
80
|
+
核心拆分维度:UI渲染(Widget)→ 交互逻辑 → 状态管理 → 数据请求/处理 → 公共逻辑
|
|
81
|
+
|
|
82
|
+
- **简单页面/组件**:拆分2-3个SDD
|
|
83
|
+
- UI渲染逻辑SDD
|
|
84
|
+
- 核心交互逻辑SDD
|
|
85
|
+
- 数据请求逻辑SDD(可选)
|
|
86
|
+
|
|
87
|
+
- **复杂页面/组件**:拆分3-5个SDD
|
|
88
|
+
- 在简单页面基础上,新增状态管理逻辑SDD、异常处理逻辑SDD
|
|
89
|
+
- 涉及元素渲染特殊处理的场景,可新增渲染辅助逻辑SDD
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
# 三、代码规范与技术债务管理
|
|
94
|
+
|
|
95
|
+
## 3.1 代码规范要求
|
|
96
|
+
|
|
97
|
+
### 3.1.1 通用编码规范
|
|
98
|
+
- **命名规范**
|
|
99
|
+
- 类名:大驼峰(PascalCase),如 `UserService`
|
|
100
|
+
- 函数名:小驼峰(camelCase),如 `getUserInfo`
|
|
101
|
+
- 变量名:小驼峰(camelCase),如 `userName`
|
|
102
|
+
- 常量名:全大写下划线分隔(UPPER_SNAKE_CASE),如 `MAX_RETRY_COUNT`
|
|
103
|
+
- 文件名:语义化命名,如 `user_service.dart`
|
|
104
|
+
|
|
105
|
+
- **注释规范**
|
|
106
|
+
- 公共API必须有文档注释
|
|
107
|
+
- 复杂逻辑必须有注释说明思路
|
|
108
|
+
- 注释不要重复代码本身的意思
|
|
109
|
+
- TODO/FIXME必须有注释说明原因和计划
|
|
110
|
+
|
|
111
|
+
- **代码风格**
|
|
112
|
+
- 统一使用项目约定的格式化工具
|
|
113
|
+
- 缩进统一(2空格或4空格,保持一致)
|
|
114
|
+
- 避免过长的函数(建议不超过50行)
|
|
115
|
+
- 单一职责原则,一个函数只做一件事
|
|
116
|
+
|
|
117
|
+
### 3.1.2 语言特定规范
|
|
118
|
+
- **Flutter/Dart**
|
|
119
|
+
- 遵循官方Dart风格指南
|
|
120
|
+
- 优先使用const常量
|
|
121
|
+
- 合理使用async/await
|
|
122
|
+
- Widget拆分合理,避免过于庞大
|
|
123
|
+
|
|
124
|
+
- **Web前端**
|
|
125
|
+
- 组件化设计
|
|
126
|
+
- 状态管理合理
|
|
127
|
+
- 组件Props类型定义完整
|
|
128
|
+
|
|
129
|
+
- **后端**
|
|
130
|
+
- 分层架构清晰
|
|
131
|
+
- 接口设计RESTful
|
|
132
|
+
- 错误处理统一
|
|
133
|
+
|
|
134
|
+
## 3.2 技术债务管理
|
|
135
|
+
|
|
136
|
+
### 3.2.1 技术债务识别
|
|
137
|
+
技术债务主要来源:
|
|
138
|
+
- 快速迭代时的临时方案
|
|
139
|
+
- 技术栈演进,旧代码未及时更新
|
|
140
|
+
- 性能瓶颈暂时未优化
|
|
141
|
+
- 安全隐患暂时未修复
|
|
142
|
+
- 代码可读性较差的部分
|
|
143
|
+
|
|
144
|
+
### 3.2.2 技术债务记录模板
|
|
145
|
+
|
|
146
|
+
```markdown
|
|
147
|
+
# 技术债务记录
|
|
148
|
+
|
|
149
|
+
## 基本信息
|
|
150
|
+
- **债务ID**:TD-001
|
|
151
|
+
- **模块**:用户认证模块
|
|
152
|
+
- **优先级**:P1
|
|
153
|
+
- **识别日期**:2024-05-04
|
|
154
|
+
|
|
155
|
+
## 问题描述
|
|
156
|
+
- **问题类型**:代码质量/性能/安全/可维护性
|
|
157
|
+
- **具体问题**:密码使用MD5加密,不安全
|
|
158
|
+
- **影响范围**:用户账户安全
|
|
159
|
+
- **当前状态**:未修复/修复中/已修复
|
|
160
|
+
|
|
161
|
+
## 技术细节
|
|
162
|
+
- **问题代码位置**:lib/auth/password.dart:23-28
|
|
163
|
+
- **当前实现**:使用MD5加密密码
|
|
164
|
+
- **建议方案**:升级为bcrypt或Argon2加密
|
|
165
|
+
|
|
166
|
+
## 修复计划
|
|
167
|
+
- **预计工作量**:1天
|
|
168
|
+
- **计划修复时间**:2024-05-15前
|
|
169
|
+
- **风险评估**:低/中/高
|
|
170
|
+
- **回滚方案**:如有问题,可回滚到MD5(临时方案)
|
|
171
|
+
|
|
172
|
+
## 关联信息
|
|
173
|
+
- **关联SDD**:skill-sdd-story1-login-backend-api.md
|
|
174
|
+
- **关联测试**:test/password_encryption_test.dart
|
|
175
|
+
- **备注**:安全审计建议修复
|
|
176
|
+
|
|
177
|
+
## 更新记录
|
|
178
|
+
| 日期 | 更新内容 | 更新人 |
|
|
179
|
+
|------|---------|-------|
|
|
180
|
+
| | | |
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### 3.2.3 技术债务管理规范
|
|
184
|
+
- **优先级定义**
|
|
185
|
+
- P0:严重问题,必须立即修复
|
|
186
|
+
- P1:重要问题,近期修复
|
|
187
|
+
- P2:一般问题,计划修复
|
|
188
|
+
- P3:轻微问题,有空修复
|
|
189
|
+
|
|
190
|
+
- **管理流程**
|
|
191
|
+
- 识别技术债务 → 记录到技术债务清单 → 评估优先级 → 计划修复 → 修复验证 → 关闭债务
|
|
192
|
+
- 每个迭代预留10-20%时间偿还技术债务
|
|
193
|
+
- 定期回顾技术债务清单,调整优先级
|
|
194
|
+
|
|
195
|
+
## 3.3 重构计划
|
|
196
|
+
|
|
197
|
+
### 3.3.1 重构触发条件
|
|
198
|
+
- 代码难以理解和维护
|
|
199
|
+
- 频繁出现bug
|
|
200
|
+
- 性能不满足要求
|
|
201
|
+
- 技术栈更新需要适配
|
|
202
|
+
- 功能扩展困难
|
|
203
|
+
|
|
204
|
+
### 3.3.2 重构计划模板
|
|
205
|
+
|
|
206
|
+
```markdown
|
|
207
|
+
# 重构计划
|
|
208
|
+
|
|
209
|
+
## 基本信息
|
|
210
|
+
- **重构ID**:REF-001
|
|
211
|
+
- **模块**:订单处理模块
|
|
212
|
+
- **发起日期**:2024-05-04
|
|
213
|
+
- **优先级**:P1
|
|
214
|
+
|
|
215
|
+
## 重构原因
|
|
216
|
+
- **现状问题**:当前代码耦合度高,难以维护和测试
|
|
217
|
+
- **业务影响**:新功能开发效率低,bug修复周期长
|
|
218
|
+
- **重构目标**:提高代码可维护性,降低耦合度
|
|
219
|
+
|
|
220
|
+
## 重构范围
|
|
221
|
+
- **涉及文件**:lib/order/order_service.dart, lib/order/order_repository.dart
|
|
222
|
+
- **涉及功能**:订单创建、订单状态更新、订单查询
|
|
223
|
+
- **不涉及内容**:支付模块、用户模块
|
|
224
|
+
|
|
225
|
+
## 重构方案
|
|
226
|
+
- **重构策略**:增量重构/完全重写
|
|
227
|
+
- **技术方案**:
|
|
228
|
+
1. 拆分OrderService为多个职责单一的类
|
|
229
|
+
2. 引入Repository模式,分离数据访问逻辑
|
|
230
|
+
3. 添加单元测试,提高测试覆盖率
|
|
231
|
+
|
|
232
|
+
- **依赖关系**:
|
|
233
|
+
- 前置依赖:无
|
|
234
|
+
- 后置影响:需同步更新相关测试
|
|
235
|
+
|
|
236
|
+
## 时间计划
|
|
237
|
+
- **准备阶段**:2024-05-06 分析现有代码
|
|
238
|
+
- **重构阶段**:2024-05-07 到 2024-05-10
|
|
239
|
+
- **测试阶段**:2024-05-11 到 2024-05-12
|
|
240
|
+
- **上线阶段**:2024-05-13
|
|
241
|
+
|
|
242
|
+
## 风险评估
|
|
243
|
+
- **技术风险**:中/高
|
|
244
|
+
- **风险预案**:准备回滚方案,灰度发布
|
|
245
|
+
- **测试重点**:功能完整性、性能不下降
|
|
246
|
+
|
|
247
|
+
## 验收标准
|
|
248
|
+
- 代码可维护性提升
|
|
249
|
+
- 测试覆盖率达到80%以上
|
|
250
|
+
- 功能保持完整,无新增bug
|
|
251
|
+
- 性能不低于重构前
|
|
252
|
+
|
|
253
|
+
## 回滚方案
|
|
254
|
+
- **回滚条件**:出现严重bug,性能明显下降
|
|
255
|
+
- **回滚步骤**:
|
|
256
|
+
1. 停止新功能的开发
|
|
257
|
+
2. 从Git回滚代码
|
|
258
|
+
3. 验证回滚后的功能
|
|
259
|
+
4. 重新发布
|
|
260
|
+
|
|
261
|
+
## 备注
|
|
262
|
+
- 重构过程中,保持小步提交,便于回滚
|
|
263
|
+
- 每完成一个小重构,立即验证功能
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### 3.3.3 重构最佳实践
|
|
267
|
+
- **增量重构**:尽量避免大规模重写,采用小步迭代方式
|
|
268
|
+
- **测试先行**:重构前确保有充分的测试覆盖
|
|
269
|
+
- **保持功能**:重构过程中保持功能不变
|
|
270
|
+
- **频繁验证**:每一步重构后立即验证
|
|
271
|
+
- **记录过程**:记录重构的原因、过程、结果
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
# 四、SDD拆分落地流程
|
|
276
|
+
|
|
277
|
+
## 4.1 拆分前置条件
|
|
278
|
+
|
|
279
|
+
1. 已完成基础SDD拆分(Epic→Feature→用户故事)
|
|
280
|
+
2. 已完成UI设计、前后端架构拆分、数据库+接口拆分
|
|
281
|
+
3. 明确项目语言、架构、用途
|
|
282
|
+
|
|
283
|
+
## 4.2 拆分步骤(6步落地)
|
|
284
|
+
|
|
285
|
+
1. **梳理逻辑单元**:拆解每个用户故事对应的核心功能逻辑单元
|
|
286
|
+
2. **判定拆分数量**:结合项目语言、架构、用途,判定需拆分的SDD数量
|
|
287
|
+
3. **拆分SDD**:为每个功能逻辑单元分配独立SDD,明确核心范围、验收标准
|
|
288
|
+
4. **补充技术债务**:识别当前实现中的技术债务,记录到债务清单
|
|
289
|
+
5. **规划重构计划**:如需要重构,制定重构计划
|
|
290
|
+
6. **规范命名与存放**:按命名、目录规范,为每个SDD命名并放入对应目录
|
|
291
|
+
7. **自检优化**:按校验标准,自检SDD拆分合理性
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
# 五、输出文件结构
|
|
296
|
+
|
|
297
|
+
## 5.1 SDD目录结构
|
|
298
|
+
|
|
299
|
+
```
|
|
300
|
+
项目根/
|
|
301
|
+
├── docs/
|
|
302
|
+
│ └── tech-debt/ # 技术债务记录
|
|
303
|
+
│ ├── td-001.md
|
|
304
|
+
│ └── td-list.md
|
|
305
|
+
└── specs/
|
|
306
|
+
├── function-implementation-sdd/
|
|
307
|
+
│ ├── story1-login/
|
|
308
|
+
│ │ ├── skill-sdd-story1-login-frontend-render.md
|
|
309
|
+
│ │ ├── skill-sdd-story1-login-frontend-interact.md
|
|
310
|
+
│ │ └── skill-sdd-story1-login-backend-api.md
|
|
311
|
+
│ └── common/
|
|
312
|
+
└── refactor-plans/ # 重构计划
|
|
313
|
+
└── ref-001.md
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
# 六、拆分合理性校验标准
|
|
319
|
+
|
|
320
|
+
## 6.1 核心校验项(必过项)
|
|
321
|
+
|
|
322
|
+
- 独立可交付:每个SDD可单独开发、测试、交付
|
|
323
|
+
- 逻辑闭环:每个SDD覆盖正常流程+关键异常流程
|
|
324
|
+
- 粒度适配:无过度拆分、无拆分不足
|
|
325
|
+
- 技能衔接:与基础SDD拆分产出的用户故事、接口契约严格衔接
|
|
326
|
+
- 规范适配:SDD命名、目录符合规范要求
|
|
327
|
+
- 代码规范:SDD中明确代码规范要求
|
|
328
|
+
- 债务管理:技术债务已识别并记录
|
|
329
|
+
- 重构计划:如需重构,计划已制定
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
# 七、与其他技能的衔接
|
|
334
|
+
|
|
335
|
+
## 7.1 前置技能
|
|
336
|
+
- **sdd**:基础SDD拆分,输出用户故事、UI设计、接口契约
|
|
337
|
+
- **ui-sdd**:UI交互SDD,如需要
|
|
338
|
+
|
|
339
|
+
## 7.2 后置技能
|
|
340
|
+
- **sdd-test**:测试SDD拆分
|
|
341
|
+
- **sdd-add**:快速迭代补充(如需要)
|
|
342
|
+
- **子代理开发**:执行SDD开发
|
|
343
|
+
|
|
344
|
+
## 7.3 流程关系
|
|
345
|
+
```
|
|
346
|
+
sdd → ui-sdd → sdd-code → sdd-test → 开发
|
|
347
|
+
```
|