@captain_z/zsk-skills 0.1.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.
Files changed (55) hide show
  1. package/README.md +263 -0
  2. package/bundles.yaml +104 -0
  3. package/design-handoff/.gitkeep +0 -0
  4. package/design-handoff/figma-to-code/SKILL.md +265 -0
  5. package/design-handoff/ue-mcp/SKILL.md +184 -0
  6. package/frontend/.gitkeep +0 -0
  7. package/frontend/a11y-web/SKILL.md +169 -0
  8. package/frontend/api-contract-ts/SKILL.md +275 -0
  9. package/frontend/css-bem/SKILL.md +268 -0
  10. package/frontend/design-frontend/SKILL.md +163 -0
  11. package/frontend/dor-dod-frontend/SKILL.md +114 -0
  12. package/frontend/feature-tasks-frontend/SKILL.md +246 -0
  13. package/frontend/i18n/SKILL.md +296 -0
  14. package/frontend/nfr-web/SKILL.md +258 -0
  15. package/frontend/performance-web/SKILL.md +299 -0
  16. package/frontend/react-components/SKILL.md +211 -0
  17. package/frontend/react-naming/SKILL.md +224 -0
  18. package/frontend/review-frontend/SKILL.md +126 -0
  19. package/frontend/security-web/SKILL.md +286 -0
  20. package/frontend/spec-frontend/SKILL.md +141 -0
  21. package/frontend/testing-web/SKILL.md +252 -0
  22. package/frontend/typescript/SKILL.md +219 -0
  23. package/meta/.gitkeep +0 -0
  24. package/meta/philosophy/SKILL.md +221 -0
  25. package/package.json +24 -0
  26. package/quality/.gitkeep +0 -0
  27. package/quality/a11y-principles/SKILL.md +155 -0
  28. package/quality/code-hygiene/SKILL.md +126 -0
  29. package/quality/release/SKILL.md +209 -0
  30. package/quality/security-owasp/SKILL.md +157 -0
  31. package/quality/testing-pyramid/SKILL.md +173 -0
  32. package/sdlc/.gitkeep +0 -0
  33. package/sdlc/archive/SKILL.md +267 -0
  34. package/sdlc/bugfix/SKILL.md +181 -0
  35. package/sdlc/bugfix-tasks/SKILL.md +232 -0
  36. package/sdlc/coding/SKILL.md +177 -0
  37. package/sdlc/design/SKILL.md +299 -0
  38. package/sdlc/dor-dod/SKILL.md +120 -0
  39. package/sdlc/feature/SKILL.md +162 -0
  40. package/sdlc/proposal/SKILL.md +271 -0
  41. package/sdlc/refactor/SKILL.md +220 -0
  42. package/sdlc/refactor-tasks/SKILL.md +265 -0
  43. package/sdlc/reviewing/SKILL.md +197 -0
  44. package/sdlc/spec/SKILL.md +235 -0
  45. package/sdlc/task/SKILL.md +116 -0
  46. package/sdlc/task-evidence/SKILL.md +178 -0
  47. package/sdlc/task-structure/SKILL.md +153 -0
  48. package/sdlc/task-tracking/SKILL.md +192 -0
  49. package/sdlc/verify/SKILL.md +181 -0
  50. package/system/.gitkeep +0 -0
  51. package/system/adr/SKILL.md +169 -0
  52. package/system/architecture/SKILL.md +182 -0
  53. package/system/glossary/SKILL.md +141 -0
  54. package/system/nfr-baseline/SKILL.md +156 -0
  55. package/system/project-constraints-template/SKILL.md +241 -0
@@ -0,0 +1,162 @@
1
+ ---
2
+ name: zsk:feature
3
+ description: Feature end-to-end orchestration across 7 SDLC stages —
4
+ brainstorming → writing-plans → plan-eng-review → executing-plans+TDD →
5
+ requesting/receiving-code-review → verification-before-completion →
6
+ finishing-a-development-branch.
7
+ category: workflow
8
+ domain: sdlc
9
+ tier: core
10
+ change_type: feature
11
+ related:
12
+ - ../proposal/SKILL.md
13
+ - ../spec/SKILL.md
14
+ - ../design/SKILL.md
15
+ - ../coding/SKILL.md
16
+ - ../reviewing/SKILL.md
17
+ - ../verify/SKILL.md
18
+ - ../archive/SKILL.md
19
+ - ../../frontend/feature-tasks-frontend/SKILL.md
20
+ triggers:
21
+ - new feature workflow
22
+ - feature end to end
23
+ - start feature
24
+ - feature stages
25
+ - brand new capability
26
+ ---
27
+
28
+ # Workflow: Feature(新功能端到端)
29
+
30
+ > **定位**:在 7 阶段基础上,针对"**新增功能**"编排完整工作流
31
+ > **阶段映射**:proposal → spec → design → coding → reviewing → verify → archive
32
+ > **适用**:新组件 / 新页面 / 新能力 / 新接入点
33
+
34
+ ## 总览
35
+
36
+ ```text
37
+ [Capture/Clarify] [Organize] [Reflect] [Engage] [Review] [Verify] [Knowledge]
38
+ proposal → spec → design → coding → reviewing → verify → archive
39
+ brainstorming writing-plans plan-review executing-plans requesting verification graphify
40
+ + TDD receiving before-completion
41
+ ```
42
+
43
+ ## 分步流程
44
+
45
+ ### Step 1:Proposal — 为什么做
46
+
47
+ **Primary Skill**: `superpowers:brainstorming` · `zsk:proposal` · GSD: Capture → Clarify
48
+
49
+ **Addendum**:
50
+ - 按 [`zsk:proposal`](../proposal/SKILL.md) 的 Feature 型模板
51
+ - 必须关联 `{{config.paths.srs}}`(设计交付时补 `{{config.paths.figma_index}}`)
52
+ - 目标 SMART + 备选方案 ≥ 2 + RACI + 风险分级
53
+
54
+ **Output**: `docs/{module}/proposal.md`
55
+
56
+ **Exit**: "为什么做" 3 分钟能讲清 · "不做什么" 明确 · 事实源指向真实路径
57
+
58
+ ---
59
+
60
+ ### Step 2:Spec — 做什么
61
+
62
+ **Primary Skill**: `superpowers:writing-plans` · `zsk:spec` · `think` · GSD: Organize
63
+
64
+ **Addendum**:
65
+ - 按 [`zsk:spec`](../spec/SKILL.md) 的 Feature 型模板
66
+ - User Stories 满足 INVEST
67
+ - BDD Given/When/Then ≥ 1 Happy + 1 Edge
68
+ - FR / NFR / US / AC 编号完整
69
+ - **前端模块补** [`frontend:spec-frontend`](../../frontend/spec-frontend/SKILL.md):Props / Event Contract / UE 状态矩阵 / Figma 引用
70
+
71
+ **Output**: `docs/{module}/spec.md`(+ 前端模块的 `ue-mcp.md` / `api-contract.md`)
72
+
73
+ **Exit**: Spec 质量门禁全过 · UE / API 支撑文档齐全(前端)
74
+
75
+ ---
76
+
77
+ ### Step 3:Design — 怎么落地
78
+
79
+ **Primary Skill**: `zsk:design` · `plan-eng-review` · `plan-design-review` · `plan-ceo-review` · `codex` · `graphify` · GSD: Reflect
80
+
81
+ **Addendum**:
82
+ - 按 [`zsk:design`](../design/SKILL.md) 的 Feature 型模板
83
+ - 关键决策都走 ADR(模板 [`zsk:adr`](../../system/adr/SKILL.md))
84
+ - 上下文图 + 时序图(Mermaid 内联)
85
+ - **前端模块补** [`frontend:design-frontend`](../../frontend/design-frontend/SKILL.md):Props/UE 实现映射 + Figma → 实现 + 性能预算(CWV)
86
+ - 错误 / 降级 / 回滚策略
87
+ - 未新增 Spec 未声明的行为
88
+
89
+ **Output**: `docs/{module}/design.md`
90
+
91
+ **Exit**: Design 质量门禁全过 · 至少走完 `plan-eng-review`
92
+
93
+ ---
94
+
95
+ ### Step 4:Coding — 开发 + 测试
96
+
97
+ **Primary Skill**: `superpowers:executing-plans` · `superpowers:test-driven-development` · `zsk:coding` · `superpowers:using-git-worktrees`(需隔离时)· `code-commit` · GSD: Engage
98
+
99
+ **Addendum**:
100
+ - 任务模板:通用用 [`zsk:task-structure`](../task-structure/SKILL.md);组件/前端用 [`frontend:feature-tasks-frontend`](../../frontend/feature-tasks-frontend/SKILL.md)(7 类强制任务)
101
+ - 遵循 [`zsk:coding`](../coding/SKILL.md) 的分支 / commit / 依赖卫生
102
+ - 遵循 [`quality:testing-pyramid`](../../quality/testing-pyramid/SKILL.md)
103
+ - 契约驱动:类型引自 Spec / 后端契约(`system/project-constraints-template`)
104
+
105
+ **Exit**: 测试金字塔三层均有任务且绿 · 本地 lint / type-check / test 零 error · Commit 遵循 Conventional Commits
106
+
107
+ ---
108
+
109
+ ### Step 5:Reviewing — 代码评审
110
+
111
+ **Primary Skill**: `superpowers:requesting-code-review` · `superpowers:receiving-code-review` · `zsk:reviewing` / `review` / `merge-review` / `codex review`
112
+
113
+ **Addendum**:
114
+ - 自评清单(通用见 [`zsk:reviewing`](../reviewing/SKILL.md);前端补 [`frontend:review-frontend`](../../frontend/review-frontend/SKILL.md))全绿
115
+ - 至少 1 轮 Code Review 通过(高风险改动 ≥ 2 人)
116
+ - Conventional Comments:`blocking:` / `issue:` / `suggestion:` / `nitpick:`
117
+ - 分歧验证技术事实再决策
118
+
119
+ **Exit**: 所有 `blocking:` 评论 resolved · Reviewer Approve · 合并轮次 ≤ 3
120
+
121
+ ---
122
+
123
+ ### Step 6:Verify — 验收
124
+
125
+ **Primary Skill**: `superpowers:verification-before-completion` · `zsk:verify` · `self-review` / `check` · `qa` / `qa-only` · `design-review`(前端视觉)/ `benchmark`(前端性能)
126
+
127
+ **Addendum**:
128
+ - DoD 全绿(见 [`zsk:dor-dod`](../dor-dod/SKILL.md))
129
+ - FR 覆盖矩阵完整(Spec 每条 P0 FR 都有任务 + 验收证据)
130
+ - AC 逐条勾选,每条有证据链接
131
+ - 校验记录全绿(通用 + 前端项目补 `frontend:nfr-web` 的视觉 / a11y / i18n / 性能 / 安全)
132
+
133
+ **Output**: `docs/{module}/tasks.md`(全程更新)· 代码 + 测试 · PR / MR · Changelog 条目 · 证据链
134
+
135
+ **Exit**: DoD 全满足 · 合并主干 · canary 无异常(若有发布监控)
136
+
137
+ ---
138
+
139
+ ### Step 7:Archive — 归档 / 知识沉淀
140
+
141
+ **Primary Skill**: `zsk:archive` · `graphify` · `document-release` · `retro`(可选)
142
+
143
+ **Addendum**:
144
+ - Changelog `Added` 条目引用 Spec FR 编号
145
+ - 归档入 `SYSTEM-SPEC.md`(如有系统级约定)
146
+ - 历史快照保存到 `docs/{module}/archive/{YYYY-MM-DD}-{需求名}/`
147
+ - 遵循 [`quality:release`](../../quality/release/SKILL.md)(SemVer / Changelog / 回滚预案)
148
+ - 发布后 30 分钟 canary 观察(若适用)
149
+
150
+ ## Skip 规则
151
+
152
+ - 微调型 Feature(文案 / 样式微调):可跳过 Proposal,从 Spec 开始
153
+ - 接入型 Feature(仅组装现有组件):可简化 Design,保留核心 ADR
154
+
155
+ ## 质量门禁(端到端)
156
+
157
+ - [ ] 七阶段产物齐全
158
+ - [ ] 支撑文档按需(前端:ue-mcp / api-contract)
159
+ - [ ] Standards 规范遵守(code-hygiene / i18n / testing / release)
160
+ - [ ] 每步都有对应 skill 调用记录
161
+ - [ ] 证据链完整
162
+ - [ ] PR 合并 + canary 通过
@@ -0,0 +1,271 @@
1
+ ---
2
+ name: zsk:proposal
3
+ description: New-change framing (feature / bugfix / refactor) before spec work —
4
+ why, success criteria, out-of-scope boundary, alternatives considered, and
5
+ risks. Always the first stage of the 7-stage SDLC.
6
+ category: stage
7
+ domain: sdlc
8
+ tier: core
9
+ stage: 1
10
+ variants:
11
+ - feature
12
+ - bugfix
13
+ - refactor
14
+ related:
15
+ - ../spec/SKILL.md
16
+ - ../feature/SKILL.md
17
+ - ../bugfix/SKILL.md
18
+ - ../refactor/SKILL.md
19
+ - ../dor-dod/SKILL.md
20
+ - ../../meta/philosophy/SKILL.md
21
+ triggers:
22
+ - new feature proposal
23
+ - bug report
24
+ - refactor trigger
25
+ - SMART goals
26
+ - RACI
27
+ - problem framing
28
+ - why are we doing this
29
+ - out of scope
30
+ ---
31
+
32
+ # Stage 1: Proposal
33
+
34
+ > **阶段定位**:需求设计 - Problem Framing / Discovery
35
+ > **回答的问题**:为什么做、做到哪里算完成、这次明确不做什么
36
+ > **参考规范**:Amazon Working Backwards、Lean Canvas、5W1H、RACI
37
+ > **明确排除**:不进入组件拆分、接口细节、实现细节(那是 Spec / Design 的职责)
38
+
39
+ ## Skill 映射
40
+
41
+ | 场景 | Primary Skill | 角色 |
42
+ | --- | --- | --- |
43
+ | 开放式探索 | `superpowers:brainstorming` | 澄清用户意图、探索需求与设计 |
44
+ | 项目启动 | `zsk:proposal`(本 skill) | 轻量提案对齐意图与边界 |
45
+ | GSD 心智 | Capture → Clarify | 先收集,再澄清,不直接落笔设计 |
46
+ | 深度研究 | `deep-research` / `sc:research` | 外部知识 / 竞品 / 先例 |
47
+ | 知识地图 | `graphify`(可选) | 把利益相关者 / 模块依赖映射成图 |
48
+
49
+ ## 变更类型差异
50
+
51
+ | 类型 | Proposal 侧重 |
52
+ | --- | --- |
53
+ | **Feature** | 业务价值 + SMART 指标 + 备选方案 + 风险 + RACI |
54
+ | **Bugfix** | Bug 报告(严重度 / 影响范围 / 复现条件) + 根因假设(待 Design 验证) |
55
+ | **Refactor** | 触发条件(不能没有理由重构)+ Fowler 分级(小/中/大)+ 行为不变声明 |
56
+ | **Maintenance** | 外部驱动(CVE / 依赖弃用 / 环境变化)+ 适配范围 |
57
+
58
+ ## 标准结构
59
+
60
+ 1. 模块唯一标识与事实源
61
+ 2. 背景与问题(Problem Statement)
62
+ 3. 利益相关者与 RACI
63
+ 4. 目标与成功指标(SMART)
64
+ 5. 不做什么(Out of Scope)
65
+ 6. 备选方案(Alternatives Considered)
66
+ 7. 风险与缓解(Risks & Mitigations)
67
+ 8. 命名与目录映射
68
+ 9. 约束与依赖
69
+ 10. 估算与里程碑(T-shirt Size + 关键节点)
70
+
71
+ ## 核心要求
72
+
73
+ ### 1. 事实源必填
74
+
75
+ 必须显式写出:
76
+
77
+ - `{{config.paths.srs}}`(业务事实源)
78
+ - 设计稿索引(如有设计交付):`{{config.paths.figma_index}}`
79
+ - 若已有接口输入或现有代码入口,同时写明
80
+
81
+ **设计稿缺失时**,允许 `⚠️ 待补充:设计稿 URL`,但**禁止**写成"已按设计稿还原"。
82
+
83
+ ### 2. 目标必须 SMART
84
+
85
+ 每条目标都满足:
86
+
87
+ - **S**pecific — 明确对象与范围
88
+ - **M**easurable — 量化指标(例:"根节点首屏 < 500ms")
89
+ - **A**chievable — 当前资源可达
90
+ - **R**elevant — 与业务目标一致
91
+ - **T**ime-bound — 有时间边界
92
+
93
+ 2–4 条,避免长清单稀释优先级。
94
+
95
+ ### 3. 利益相关者 RACI
96
+
97
+ 按团队实际列角色(典型前端项目为例:产品负责人、设计负责人、前端负责人、后端负责人、测试负责人)。
98
+ 每人标 **R**esponsible / **A**ccountable / **C**onsulted / **I**nformed。
99
+
100
+ ### 4. 备选方案必写(Feature)
101
+
102
+ 至少 2 个方案,每方案含:简述、成本、收益、放弃原因。
103
+ 避免"唯一解陷阱"。
104
+
105
+ ### 5. 风险分级
106
+
107
+ 每项标:概率(H/M/L)、影响(H/M/L)、缓解措施、触发回滚条件。
108
+
109
+ ### 6. 不做什么
110
+
111
+ 显式排除容易引起 scope 膨胀的内容;不要写成"后续再看"的待办。
112
+
113
+ ## Feature 型模板
114
+
115
+ ```md
116
+ # {模块} 提案
117
+
118
+ > 模块唯一标识:`{module-id}`
119
+ > 变更类型:Feature
120
+ > 原始需求文档:`{{config.paths.srs}}`
121
+ > 设计索引(如有):`{{config.paths.figma_index}}`
122
+ > 责任人:{姓名} | 创建日期:{YYYY-MM-DD}
123
+
124
+ ## 背景与问题
125
+
126
+ ## 利益相关者与 RACI
127
+
128
+ | 角色 | 姓名 | RACI |
129
+ | --- | --- | --- |
130
+
131
+ ## 目标与成功指标(SMART)
132
+
133
+ - G1:{Specific} — 指标:{Measurable} — 截止:{Time-bound}
134
+
135
+ ## 不做什么
136
+
137
+ ## 备选方案
138
+
139
+ | 方案 | 简述 | 成本 | 收益 | 放弃原因 |
140
+ | --- | --- | --- | --- | --- |
141
+
142
+ ## 风险与缓解
143
+
144
+ | 风险 | 概率 | 影响 | 缓解 | 回滚触发条件 |
145
+ | --- | --- | --- | --- | --- |
146
+
147
+ ## 命名与目录映射
148
+
149
+ | 文档目录 | 代码目录 | 说明 |
150
+ | --- | --- | --- |
151
+
152
+ ## 约束与依赖
153
+
154
+ ## 估算与里程碑
155
+
156
+ - T-shirt:`XS / S / M / L / XL`
157
+ - 里程碑:Spec 冻结 / Design 冻结 / Code Complete / 上线
158
+ ```
159
+
160
+ ## Bugfix 型模板
161
+
162
+ ```md
163
+ # Bug: {简要描述}
164
+
165
+ > 变更类型:Bugfix
166
+ > 严重度:P0 / P1 / P2 / P3
167
+ > 责任人:{姓名} | 报告日期:{YYYY-MM-DD}
168
+
169
+ ## 基本信息
170
+ - Bug ID / Issue: #{number}
171
+ - 环境:dev / test / pre / prod
172
+ - 运行时 / 版本:
173
+ - 影响范围:
174
+
175
+ ## 复现步骤
176
+ 1. ...
177
+ 2. ...
178
+
179
+ ## 预期 vs 实际
180
+ - 预期:
181
+ - 实际:
182
+
183
+ ## 证据
184
+ - 截图 / 录屏 / 日志 / trace ID
185
+
186
+ ## 初步影响评估
187
+ - 用户影响:
188
+ - 业务流程影响:
189
+ - 数据影响:
190
+
191
+ ## 根因假设(待 Design 阶段 RCA 验证)
192
+ - 假设 1:...
193
+ - 假设 2:...
194
+
195
+ ## 修复边界
196
+ - 做:修正 {X}
197
+ - 不做:不做 {Y}(原因:超出范围 / 另立需求)
198
+
199
+ ## 是否需要 Hotfix
200
+ - [ ] 是(触发 `zsk:release` 的 Hotfix 流程)
201
+ - [ ] 否
202
+ ```
203
+
204
+ ## Refactor 型模板
205
+
206
+ ```md
207
+ # Refactor: {简要描述}
208
+
209
+ > 变更类型:Refactor
210
+ > Fowler 分级:小 / 中 / 大
211
+ > 责任人:{姓名} | 日期:{YYYY-MM-DD}
212
+
213
+ ## 触发条件(为什么现在重构)
214
+ - [ ] 即将新增的功能会被当前结构阻塞(Preparatory Refactoring)
215
+ - [ ] 已验证的代码坏味(命名混乱 / 重复 / 过长函数 / 圈复杂度高)
216
+ - [ ] 性能瓶颈(有 profile 证据)
217
+ - [ ] 历史妥协已具备清理条件(依赖已升级、测试已补齐)
218
+ - [ ] ⚠️ 不能以"我觉得该重构了"为理由
219
+
220
+ ## 证据
221
+ - 代码坏味指标 / profile / 维护成本数据
222
+
223
+ ## 行为不变声明(强制)
224
+ - 本重构**不改变可观察行为**
225
+ - Characterization 测试基线:{位置}
226
+ - 验证方式:{回归测试 / 视觉对照 / 快照}
227
+
228
+ ## Fowler 分级
229
+
230
+ ### 小重构(Micro, 分钟级)
231
+ - 适用:rename / extract function / inline variable
232
+ - 流程:PR 自检清单兜住,不走完整 7 阶段
233
+
234
+ ### 中重构(Medium, 小时级)
235
+ - 适用:extract function/module / 拆模块 / 替换实现
236
+ - 流程:独立 PR + 特征测试先行 + 每步原子 commit
237
+
238
+ ### 大重构(Large, 迭代级)
239
+ - 适用:跨模块 / 架构迁移
240
+ - 流程:走完整 7 阶段 + ADR + Parallel Change / Strangler Fig
241
+
242
+ ## 影响面
243
+ - 文件数:
244
+ - 调用方:
245
+ - 测试覆盖:
246
+
247
+ ## 范围与排除
248
+ - 做:
249
+ - 不做:
250
+
251
+ ## 风险与回滚
252
+ | 风险 | 缓解 | 回滚条件 |
253
+ | --- | --- | --- |
254
+ ```
255
+
256
+ ## 质量门禁
257
+
258
+ - [ ] 能在 3 分钟内回答"为什么做"
259
+ - [ ] 目标全部满足 SMART 五要素
260
+ - [ ] 至少列出 2 个备选方案(Feature)
261
+ - [ ] 风险已分级且有触发回滚条件
262
+ - [ ] 显式列出"不做什么"
263
+ - [ ] 引用了真实存在的事实源路径
264
+ - [ ] 未进入 Props / 接口 / 文件拆分等实现细节
265
+ - [ ] 变更类型声明明确
266
+
267
+ ## 出口条件(可以进 `zsk:spec`)
268
+
269
+ - [ ] 质量门禁全过
270
+ - [ ] 利益相关者已 review(至少产品 + 技术负责人)
271
+ - [ ] 严重度 / T-shirt 评估已落地
@@ -0,0 +1,220 @@
1
+ ---
2
+ name: zsk:refactor
3
+ description: Behavior-preserving refactor discipline — Fowler catalog,
4
+ characterization tests as baseline, small atomic commits, Parallel Change /
5
+ Strangler Fig for large refactors. Enforces "behavior preserved" as a hard
6
+ contract (any behavior change means it is not a refactor).
7
+ category: workflow
8
+ domain: sdlc
9
+ tier: core
10
+ change_type: refactor
11
+ related:
12
+ - ../proposal/SKILL.md
13
+ - ../spec/SKILL.md
14
+ - ../design/SKILL.md
15
+ - ../coding/SKILL.md
16
+ - ../refactor-tasks/SKILL.md
17
+ - ../../system/adr/SKILL.md
18
+ triggers:
19
+ - refactor workflow
20
+ - Fowler refactoring
21
+ - characterization test
22
+ - Parallel Change
23
+ - Strangler Fig
24
+ - behavior preserved
25
+ - preparatory refactoring
26
+ ---
27
+
28
+ # Workflow: Refactor(重构端到端)
29
+
30
+ > **定位**:在 7 阶段基础上,针对"**不改变可观察行为、只改结构**"的重构编排工作流
31
+ > **阶段映射**:proposal(触发评估)→ spec(行为不变契约)→ design(重构手法)→ coding(Characterization + 小步 TDD)→ reviewing(commit 序列可 replay)→ verify(行为不变证据)→ archive(ADR + 知识图)
32
+ > **吸收硬原则**:Red-Green-Refactor + 行为不变(Fowler)
33
+
34
+ ## 核心纪律
35
+
36
+ **重构不能以"我觉得该重构了"为理由**。必须满足以下之一:
37
+
38
+ 1. 即将新增的功能会被当前结构阻塞(**准备性重构** Preparatory Refactoring)
39
+ 2. 已验证的代码坏味(有度量证据)
40
+ 3. 性能瓶颈(有 profile 证据)
41
+ 4. 历史妥协已具备清理条件(依赖升级 / 测试补齐)
42
+
43
+ **禁止**:
44
+ - 借 bug 修复顺手重构
45
+ - 借 feature 实现顺手重构
46
+ - 无测试保护下的重构
47
+
48
+ ## 总览
49
+
50
+ ```text
51
+ [Trigger Check] [Behavior Baseline] [Catalog] [Small Steps] [Verify] [Integrate]
52
+ Proposal → Spec → Design → Coding → Verify → Ship
53
+ 触发+分级 行为不变+基线 Fowler手法 Red→小步→Green 视觉+性能零差 正常合并
54
+ ```
55
+
56
+ ## Fowler 分级
57
+
58
+ | 级别 | 场景 | 时长 | 流程 |
59
+ | --- | --- | --- | --- |
60
+ | **小(Micro)** | rename / extract function / inline variable | 分钟级 | PR 自检兜住,**跳过完整 7 阶段** |
61
+ | **中(Medium)** | extract component / 拆模块 / 替换实现 | 小时级 | 独立 PR + 特征测试先行 + 每步原子 commit |
62
+ | **大(Large)** | 跨模块 / 架构迁移 | 迭代级 | 完整 7 阶段 + ADR + Parallel Change / Strangler Fig |
63
+
64
+ ## 分步流程(中 / 大级别)
65
+
66
+ ### Step 1:Trigger Check & Proposal — 为什么现在重构
67
+
68
+ **Primary Skill**: `think` · `zsk:proposal`(Refactor 模板)· `graphify`(可视化结构坏味)· `codex`(二意见)· GSD: Capture → Clarify
69
+
70
+ **Addendum**:
71
+ - 按 [`zsk:proposal`](../proposal/SKILL.md) Refactor 模板
72
+ - 触发条件必须从 4 条中勾选至少一条
73
+ - 提供度量证据
74
+ - Fowler 分级
75
+ - **行为不变声明**(强制)
76
+
77
+ **Exit**: 触发条件有证据 · 分级明确 · 行为不变声明
78
+
79
+ ---
80
+
81
+ ### Step 2:Behavior Baseline & Spec — 固化当前行为
82
+
83
+ **Primary Skill**: `zsk:spec` · GSD: Organize
84
+
85
+ **Addendum**:
86
+ - 按 [`zsk:spec`](../spec/SKILL.md) Refactor 模板
87
+ - **公开接口保留清单**
88
+ - **Characterization Test 基线位置**
89
+ - 已有测试够用 → 列出覆盖范围
90
+ - 测试不足 → 先补齐 Characterization Test 再进入 Design
91
+ - 禁止在 Spec 中"顺便"改契约
92
+
93
+ **Exit**: 公开接口清单完整 · Characterization Test 全绿作为基线 · 视觉基线已留档(前端)
94
+
95
+ ---
96
+
97
+ ### Step 3:Catalog & Design — 使用的重构手法
98
+
99
+ **Primary Skill**: `zsk:design` · `plan-eng-review`(大重构必走)· `codex`(challenge 模式)· `context7`(最新库实践)· GSD: Reflect
100
+
101
+ **Addendum**:
102
+ - 按 [`zsk:design`](../design/SKILL.md) Refactor 模板
103
+ - 重构手法引用 **Fowler catalog**(Extract / Inline / Rename / Move / Replace Conditional with Polymorphism / ...)
104
+ - **大重构必须 Parallel Change / Strangler Fig**:
105
+ 1. Expand — 新实现并存
106
+ 2. Migrate — 调用方逐个迁移
107
+ 3. Contract — 移除旧实现
108
+ - 回滚策略(每一步独立 revert)
109
+
110
+ **Exit**: 每个手法都有应用位置与理由 · 大重构的 Parallel Change 三阶段清晰 · 回滚策略可执行
111
+
112
+ ---
113
+
114
+ ### Step 4:Coding — 小步原子执行
115
+
116
+ **Primary Skill**: `superpowers:test-driven-development` · `zsk:coding` · `superpowers:using-git-worktrees`(大重构隔离)· `code-commit`
117
+
118
+ **Addendum**: 按 [`zsk:refactor-tasks`](../refactor-tasks/SKILL.md) 模板
119
+
120
+ 重复执行:
121
+ - [ ] 应用**一个** Fowler 手法
122
+ - [ ] 跑测试确认全绿
123
+ - [ ] 单独 commit(`refactor(scope): {手法}`)
124
+ - [ ] 若红 → 立即 revert 这一步
125
+ - [ ] 返回继续下一个手法
126
+
127
+ **铁律**:
128
+ - **一次只做一个重构**
129
+ - **测试不绿不提交**
130
+ - **不改变外部可观察行为**
131
+
132
+ **Exit**: commit 全部单一手法 · 每个 commit 测试全绿 · 本地 lint / type-check / build 零 error
133
+
134
+ ---
135
+
136
+ ### Step 5:Reviewing — commit 序列可 replay
137
+
138
+ **Primary Skill**: `zsk:reviewing` · `codex review`
139
+
140
+ **Addendum**:
141
+ - Reviewer 必须能在 commit 序列上**逐步 replay**
142
+ - 任何 commit 失败视为整个重构不可接受
143
+ - 分歧时 `receiving-code-review` 原则:技术验证 > 情感同意
144
+ - 高风险大重构强制第二 Reviewer
145
+
146
+ **Exit**: commit 序列每步可 replay · Reviewer Approve
147
+
148
+ ---
149
+
150
+ ### Step 6:Verify — 行为不变硬门禁
151
+
152
+ **Primary Skill**: `superpowers:verification-before-completion` · `zsk:verify` · `qa` · `benchmark`(前端性能对照)· `design-review`(前端视觉对照)
153
+
154
+ **Addendum**:
155
+ - [ ] 所有现有测试全绿
156
+ - [ ] Characterization Test 全绿
157
+ - [ ] 视觉回归**零差异**(前端)
158
+ - [ ] 性能不回退(有量化对照数据)
159
+ - [ ] 包体积变化 ≤ ±2%(前端)
160
+ - [ ] 对外契约零变化
161
+
162
+ **Output**: 原子 commit 序列 · 行为不变证据链
163
+
164
+ **Exit**: 行为不变验证全过 · 合并主干
165
+
166
+ ---
167
+
168
+ ### Step 7:Archive — ADR 沉淀
169
+
170
+ **Primary Skill**: `zsk:archive` · `graphify`(更新知识图)· `document-release`
171
+
172
+ **Addendum**:
173
+ - 更新 `design.md` 中的 ADR(Proposed → Accepted)
174
+ - Changelog 仅 **Changed** / **Removed** 章节(**不在** Added / Fixed)
175
+ - 遵循 [`quality:release`](../../quality/release/SKILL.md)
176
+ - 大重构若用 feature flag,登记 flag 清理计划
177
+ - 大重构归档到 `docs/{module}/archive/{YYYY-MM-DD}-refactor-{简述}/`
178
+
179
+ ## Skip 规则(小重构)
180
+
181
+ 小重构(rename / extract function / inline)**可以跳过完整 7 阶段**,但必须:
182
+ - [ ] 与 feature / bugfix 分开提交
183
+ - [ ] 测试前后全绿
184
+ - [ ] commit message 使用 `refactor(scope):`
185
+ - [ ] 单一手法一次 commit
186
+
187
+ **绝不允许**:
188
+ - 小重构混进 feature PR
189
+ - 小重构混进 bugfix PR
190
+ - 测试不全的代码上直接重构
191
+
192
+ ## 大重构专项规则
193
+
194
+ ### Parallel Change 模式
195
+
196
+ ```text
197
+ Phase 1 (Expand): 保留 OldApi + 新增 NewApi(并存)
198
+ Phase 2 (Migrate): 调用方逐个迁移 Old → New(每个一 PR)
199
+ Phase 3 (Contract): 移除 OldApi
200
+ ```
201
+
202
+ 每个 phase 可独立部署 + 回滚。
203
+
204
+ ### Strangler Fig 模式
205
+
206
+ - 新模块从**边缘**开始替换旧模块
207
+ - 旧模块**逐步失去职责**直至可移除
208
+ - 整个过程**对外行为持续保持**
209
+
210
+ ## 质量门禁(端到端)
211
+
212
+ - [ ] 触发条件有证据
213
+ - [ ] 行为不变声明明确
214
+ - [ ] Characterization Test 基线全绿
215
+ - [ ] 使用 Fowler catalog 的具名手法
216
+ - [ ] 每个 commit 单一手法且测试全绿
217
+ - [ ] 视觉 / 性能 / 包体积对照无回退
218
+ - [ ] 未顺带修 bug 或加 feature
219
+ - [ ] 大重构走 Parallel Change / Strangler Fig
220
+ - [ ] 回滚路径可执行