dw-kit 1.2.0 → 1.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.
Files changed (63) hide show
  1. package/.claude/hooks/post-write.sh +64 -58
  2. package/.claude/hooks/pre-commit-gate.sh +96 -90
  3. package/.claude/hooks/privacy-block.sh +99 -94
  4. package/.claude/hooks/progress-ping.sh +53 -47
  5. package/.claude/hooks/safety-guard.sh +60 -54
  6. package/.claude/hooks/scout-block.sh +88 -82
  7. package/.claude/hooks/session-init.sh +91 -74
  8. package/.claude/hooks/stop-check.sh +88 -36
  9. package/.claude/hooks/telemetry-log.sh +34 -0
  10. package/.claude/rules/code-style.md +37 -37
  11. package/.claude/rules/commit-standards.md +37 -37
  12. package/.claude/rules/dw.md +136 -0
  13. package/.claude/settings.json +120 -99
  14. package/.claude/skills/dw-arch-review/SKILL.md +119 -119
  15. package/.claude/skills/dw-archive/SKILL.md +81 -81
  16. package/.claude/skills/dw-commit/SKILL.md +81 -81
  17. package/.claude/skills/dw-config-init/SKILL.md +91 -91
  18. package/.claude/skills/dw-config-validate/SKILL.md +75 -75
  19. package/.claude/skills/dw-dashboard/SKILL.md +209 -209
  20. package/.claude/skills/dw-debug/SKILL.md +97 -97
  21. package/.claude/skills/dw-decision/SKILL.md +116 -0
  22. package/.claude/skills/dw-docs-update/SKILL.md +125 -125
  23. package/.claude/skills/dw-estimate/SKILL.md +90 -90
  24. package/.claude/skills/dw-execute/SKILL.md +98 -98
  25. package/.claude/skills/dw-flow/SKILL.md +274 -274
  26. package/.claude/skills/dw-handoff/SKILL.md +81 -81
  27. package/.claude/skills/dw-kit-report/SKILL.md +152 -152
  28. package/.claude/skills/dw-log-work/SKILL.md +69 -69
  29. package/.claude/skills/dw-onboard/SKILL.md +201 -201
  30. package/.claude/skills/dw-plan/SKILL.md +125 -125
  31. package/.claude/skills/dw-prompt/SKILL.md +62 -62
  32. package/.claude/skills/dw-requirements/SKILL.md +98 -98
  33. package/.claude/skills/dw-research/SKILL.md +114 -114
  34. package/.claude/skills/dw-retroactive/SKILL.md +311 -311
  35. package/.claude/skills/dw-review/SKILL.md +66 -66
  36. package/.claude/skills/dw-rollback/SKILL.md +90 -90
  37. package/.claude/skills/dw-sprint-review/SKILL.md +99 -99
  38. package/.claude/skills/dw-task-init/SKILL.md +59 -59
  39. package/.claude/skills/dw-test-plan/SKILL.md +113 -113
  40. package/.claude/skills/dw-thinking/SKILL.md +70 -70
  41. package/.claude/skills/dw-upgrade/SKILL.md +72 -72
  42. package/.dw/config/dw.config.yml +82 -82
  43. package/.dw/core/PILLARS.md +122 -0
  44. package/.dw/core/templates/v2/spec.md +68 -0
  45. package/.dw/core/templates/v2/tracking.md +62 -0
  46. package/.dw/core/v14-evaluation-protocol.md +118 -0
  47. package/CLAUDE.md +42 -39
  48. package/MIGRATION-v1.3.md +201 -0
  49. package/README.md +43 -6
  50. package/package.json +86 -84
  51. package/src/cli.mjs +45 -9
  52. package/src/commands/dashboard.mjs +116 -0
  53. package/src/commands/doctor.mjs +165 -149
  54. package/src/commands/init.mjs +339 -332
  55. package/src/commands/metrics.mjs +165 -0
  56. package/src/commands/upgrade.mjs +297 -262
  57. package/src/lib/active-index.mjs +87 -0
  58. package/src/lib/copy.mjs +118 -110
  59. package/src/lib/cut-analysis.mjs +161 -0
  60. package/src/lib/telemetry.mjs +80 -0
  61. package/.claude/rules/dw-core.md +0 -100
  62. package/.claude/rules/dw-skills.md +0 -53
  63. package/.claude/rules/workflow-rules.md +0 -77
@@ -1,201 +1,201 @@
1
- ---
2
- name: dw-onboard
3
- description: "Onboard dw-kit vào project đang chạy. Scan codebase, tạo project map và context docs cho các modules hiện có. Chạy một lần khi adopt dw vào existing project."
4
- argument-hint: ""
5
- allowed-tools:
6
- - Read
7
- - Grep
8
- - Glob
9
- - Write
10
- - "Bash(git log *)"
11
- - "Bash(git shortlog *)"
12
- - "Bash(ls *)"
13
- - "Bash(wc *)"
14
- ---
15
-
16
- # dw-onboard — Onboard Existing Project vào dw-kit
17
-
18
- > Dùng khi adopt dw-kit vào project đã chạy. Chạy **một lần**. Output là project map và context docs cho các modules hiện có — làm nền tảng cho AI trong các sessions sau.
19
-
20
- ---
21
-
22
- ## Đọc Config
23
-
24
- Đọc `.dw/config/dw.config.yml`:
25
- - `paths.tasks` → base tasks path
26
- - `project.language` → ngôn ngữ output
27
- - `project.name` → tên project
28
-
29
- ## Bước 1: Khám phá cấu trúc project
30
-
31
- Scan top-level structure của codebase:
32
-
33
- ```
34
- Glob: src/**, app/**, lib/**, packages/**, services/**, modules/**
35
- Bash: ls -la (top level)
36
- ```
37
-
38
- Xác định:
39
- - **Project type**: monorepo / single app / microservices / library
40
- - **Tech stack**: ngôn ngữ, framework chính (từ package.json, go.mod, requirements.txt, Cargo.toml, v.v.)
41
- - **Entry points**: main files, index files, routers
42
- - **Major directories**: mỗi dir là 1 potential module
43
-
44
- ## Bước 2: Phân loại modules
45
-
46
- Với mỗi major directory/module, xác định:
47
-
48
- | Module | Type | Vai trò | Files | Phức tạp? |
49
- |--------|------|---------|-------|-----------|
50
- | [dir] | feature/service/util/infra | [mô tả 1 dòng] | [số files] | Cao/TB/Thấp |
51
-
52
- **Phức tạp = Cao** nếu: nhiều files (>10), có DB/API, business logic phức tạp.
53
- → Modules phức tạp Cao: recommend `/dw-retroactive [module]` sau.
54
-
55
- ## Bước 3: Phân tích nhanh từng module
56
-
57
- Với mỗi module (không cần đọc toàn bộ — chỉ đọc đủ để hiểu):
58
-
59
- 1. **Entry file**: đọc file chính (index, main, router, controller)
60
- 2. **Exports/Public API**: function/class/endpoint nào được expose?
61
- 3. **Dependencies**: module này gọi đến module nào khác?
62
- 4. **Git activity**: `git shortlog --since="6 months ago" -- [path]` → ai đang maintain?
63
-
64
- Ghi tóm tắt ngắn gọn (3-5 dòng) per module.
65
-
66
- ## Bước 4: Check git history toàn project
67
-
68
- ```bash
69
- git log --oneline --since="3 months ago" | head -30
70
- git shortlog -sn --since="3 months ago" | head -10
71
- ```
72
-
73
- Xác định:
74
- - Modules nào đang active development
75
- - Modules nào stable / ít thay đổi
76
- - Contributors chính
77
-
78
- ## Bước 5: Tạo output
79
-
80
- ### 5a. Project Map
81
-
82
- Tạo `.dw/context/project-map.md`:
83
-
84
- ```markdown
85
- # Project Map: [project.name]
86
-
87
- ## Ngày tạo: [date]
88
- ## Tạo bởi: dw-onboard
89
-
90
- ---
91
-
92
- ## Tech Stack
93
-
94
- - **Ngôn ngữ**: [language]
95
- - **Framework**: [framework]
96
- - **Database**: [db nếu có]
97
- - **Infrastructure**: [docker, k8s, cloud nếu có]
98
-
99
- ## Cấu Trúc Tổng Quan
100
-
101
- ```
102
- [ASCII tree của top-level structure]
103
- ```
104
-
105
- ## Modules
106
-
107
- | Module | Type | Vai trò | Phức tạp | Active? | Deep-dive? |
108
- |--------|------|---------|----------|---------|------------|
109
- | [name] | [type] | [mô tả ngắn] | Cao/TB/Thấp | Có/Không | `/dw-retroactive [name]` |
110
-
111
- ## Dependencies giữa Modules
112
-
113
- ```
114
- [Module A] → [Module B] → [Module C]
115
-
116
- [Module D]
117
- ```
118
-
119
- ## Entry Points chính
120
-
121
- - [file/endpoint]: [mô tả]
122
-
123
- ## Conventions phát hiện
124
-
125
- - [Convention 1]: [mô tả]
126
- - [Convention 2]
127
-
128
- ## Git Activity (3 tháng gần nhất)
129
-
130
- - **Active modules**: [danh sách]
131
- - **Stable modules**: [danh sách]
132
- - **Top contributors**: [tên]
133
-
134
- ## Gợi ý Deep-dive
135
-
136
- Các modules phức tạp nên chạy `/dw-retroactive` để AI có context đầy đủ:
137
- - [ ] `/dw-retroactive [module-a]` — [lý do: nhiều files, core business logic]
138
- - [ ] `/dw-retroactive [module-b]`
139
- ```
140
-
141
- ### 5b. Module context docs
142
-
143
- Với mỗi module **phức tạp Cao**: tạo `.dw/context/modules/[module-name].md`:
144
-
145
- ```markdown
146
- # Module: [module-name]
147
-
148
- ## Vai trò
149
- [1-2 câu mô tả]
150
-
151
- ## Files chính
152
- | File | Vai trò |
153
- |------|---------|
154
- | [file] | [vai trò] |
155
-
156
- ## Public API / Exports
157
- - [function/endpoint]: [mô tả]
158
-
159
- ## Dependencies
160
- - Upstream: [modules gọi đến đây]
161
- - Downstream: [modules được đây gọi]
162
-
163
- ## Conventions riêng
164
- - [Convention đặc thù của module này]
165
-
166
- ## Lưu ý cho AI
167
- - [Gotchas, tech debt, context quan trọng]
168
- ```
169
-
170
- Với modules **phức tạp TB/Thấp**: chỉ ghi entry trong project-map.md, không tạo file riêng.
171
-
172
- ## Bước 6: Báo cáo kết quả
173
-
174
- ```
175
- ╔══════════════════════════════════════════════════════╗
176
- ║ ✅ dw-onboard complete: [project.name]
177
- ╠══════════════════════════════════════════════════════╣
178
- ║ Modules discovered : [N]
179
- ║ Docs tạo :
180
- ║ .dw/context/project-map.md
181
- ║ .dw/context/modules/[X files]
182
- ║ Tech stack : [summary]
183
- ╠══════════════════════════════════════════════════════╣
184
- ║ Gợi ý tiếp theo:
185
- ║ Modules phức tạp cần deep-dive:
186
- ║ → /dw-retroactive [module-a]
187
- ║ → /dw-retroactive [module-b]
188
-
189
- ║ Khi bắt đầu task mới liên quan module đã có:
190
- ║ → AI sẽ tự đọc .dw/context/ để có context
191
- ╚══════════════════════════════════════════════════════╝
192
- ```
193
-
194
- ---
195
-
196
- ## Lưu ý
197
-
198
- - **Không tạo `.dw/tasks/`** — onboard output vào `.dw/context/`, tách khỏi task docs
199
- - **Không đọc toàn bộ code** — chỉ cần đủ để hiểu vai trò và interface của module
200
- - **Không analyze chi tiết logic** — đó là việc của `/dw-retroactive` khi cần deep-dive
201
- - Nếu project đã có `.dw/context/project-map.md` → hỏi user: "Đã có project map. Update hay skip?"
1
+ ---
2
+ name: dw:onboard
3
+ description: "Onboard dw-kit vào project đang chạy. Scan codebase, tạo project map và context docs cho các modules hiện có. Chạy một lần khi adopt dw vào existing project."
4
+ argument-hint: ""
5
+ allowed-tools:
6
+ - Read
7
+ - Grep
8
+ - Glob
9
+ - Write
10
+ - "Bash(git log *)"
11
+ - "Bash(git shortlog *)"
12
+ - "Bash(ls *)"
13
+ - "Bash(wc *)"
14
+ ---
15
+
16
+ # dw-onboard — Onboard Existing Project vào dw-kit
17
+
18
+ > Dùng khi adopt dw-kit vào project đã chạy. Chạy **một lần**. Output là project map và context docs cho các modules hiện có — làm nền tảng cho AI trong các sessions sau.
19
+
20
+ ---
21
+
22
+ ## Đọc Config
23
+
24
+ Đọc `.dw/config/dw.config.yml`:
25
+ - `paths.tasks` → base tasks path
26
+ - `project.language` → ngôn ngữ output
27
+ - `project.name` → tên project
28
+
29
+ ## Bước 1: Khám phá cấu trúc project
30
+
31
+ Scan top-level structure của codebase:
32
+
33
+ ```
34
+ Glob: src/**, app/**, lib/**, packages/**, services/**, modules/**
35
+ Bash: ls -la (top level)
36
+ ```
37
+
38
+ Xác định:
39
+ - **Project type**: monorepo / single app / microservices / library
40
+ - **Tech stack**: ngôn ngữ, framework chính (từ package.json, go.mod, requirements.txt, Cargo.toml, v.v.)
41
+ - **Entry points**: main files, index files, routers
42
+ - **Major directories**: mỗi dir là 1 potential module
43
+
44
+ ## Bước 2: Phân loại modules
45
+
46
+ Với mỗi major directory/module, xác định:
47
+
48
+ | Module | Type | Vai trò | Files | Phức tạp? |
49
+ |--------|------|---------|-------|-----------|
50
+ | [dir] | feature/service/util/infra | [mô tả 1 dòng] | [số files] | Cao/TB/Thấp |
51
+
52
+ **Phức tạp = Cao** nếu: nhiều files (>10), có DB/API, business logic phức tạp.
53
+ → Modules phức tạp Cao: recommend `/dw:retroactive [module]` sau.
54
+
55
+ ## Bước 3: Phân tích nhanh từng module
56
+
57
+ Với mỗi module (không cần đọc toàn bộ — chỉ đọc đủ để hiểu):
58
+
59
+ 1. **Entry file**: đọc file chính (index, main, router, controller)
60
+ 2. **Exports/Public API**: function/class/endpoint nào được expose?
61
+ 3. **Dependencies**: module này gọi đến module nào khác?
62
+ 4. **Git activity**: `git shortlog --since="6 months ago" -- [path]` → ai đang maintain?
63
+
64
+ Ghi tóm tắt ngắn gọn (3-5 dòng) per module.
65
+
66
+ ## Bước 4: Check git history toàn project
67
+
68
+ ```bash
69
+ git log --oneline --since="3 months ago" | head -30
70
+ git shortlog -sn --since="3 months ago" | head -10
71
+ ```
72
+
73
+ Xác định:
74
+ - Modules nào đang active development
75
+ - Modules nào stable / ít thay đổi
76
+ - Contributors chính
77
+
78
+ ## Bước 5: Tạo output
79
+
80
+ ### 5a. Project Map
81
+
82
+ Tạo `.dw/context/project-map.md`:
83
+
84
+ ```markdown
85
+ # Project Map: [project.name]
86
+
87
+ ## Ngày tạo: [date]
88
+ ## Tạo bởi: dw-onboard
89
+
90
+ ---
91
+
92
+ ## Tech Stack
93
+
94
+ - **Ngôn ngữ**: [language]
95
+ - **Framework**: [framework]
96
+ - **Database**: [db nếu có]
97
+ - **Infrastructure**: [docker, k8s, cloud nếu có]
98
+
99
+ ## Cấu Trúc Tổng Quan
100
+
101
+ ```
102
+ [ASCII tree của top-level structure]
103
+ ```
104
+
105
+ ## Modules
106
+
107
+ | Module | Type | Vai trò | Phức tạp | Active? | Deep-dive? |
108
+ |--------|------|---------|----------|---------|------------|
109
+ | [name] | [type] | [mô tả ngắn] | Cao/TB/Thấp | Có/Không | `/dw:retroactive [name]` |
110
+
111
+ ## Dependencies giữa Modules
112
+
113
+ ```
114
+ [Module A] → [Module B] → [Module C]
115
+
116
+ [Module D]
117
+ ```
118
+
119
+ ## Entry Points chính
120
+
121
+ - [file/endpoint]: [mô tả]
122
+
123
+ ## Conventions phát hiện
124
+
125
+ - [Convention 1]: [mô tả]
126
+ - [Convention 2]
127
+
128
+ ## Git Activity (3 tháng gần nhất)
129
+
130
+ - **Active modules**: [danh sách]
131
+ - **Stable modules**: [danh sách]
132
+ - **Top contributors**: [tên]
133
+
134
+ ## Gợi ý Deep-dive
135
+
136
+ Các modules phức tạp nên chạy `/dw:retroactive` để AI có context đầy đủ:
137
+ - [ ] `/dw:retroactive [module-a]` — [lý do: nhiều files, core business logic]
138
+ - [ ] `/dw:retroactive [module-b]`
139
+ ```
140
+
141
+ ### 5b. Module context docs
142
+
143
+ Với mỗi module **phức tạp Cao**: tạo `.dw/context/modules/[module-name].md`:
144
+
145
+ ```markdown
146
+ # Module: [module-name]
147
+
148
+ ## Vai trò
149
+ [1-2 câu mô tả]
150
+
151
+ ## Files chính
152
+ | File | Vai trò |
153
+ |------|---------|
154
+ | [file] | [vai trò] |
155
+
156
+ ## Public API / Exports
157
+ - [function/endpoint]: [mô tả]
158
+
159
+ ## Dependencies
160
+ - Upstream: [modules gọi đến đây]
161
+ - Downstream: [modules được đây gọi]
162
+
163
+ ## Conventions riêng
164
+ - [Convention đặc thù của module này]
165
+
166
+ ## Lưu ý cho AI
167
+ - [Gotchas, tech debt, context quan trọng]
168
+ ```
169
+
170
+ Với modules **phức tạp TB/Thấp**: chỉ ghi entry trong project-map.md, không tạo file riêng.
171
+
172
+ ## Bước 6: Báo cáo kết quả
173
+
174
+ ```
175
+ ╔══════════════════════════════════════════════════════╗
176
+ ║ ✅ dw-onboard complete: [project.name]
177
+ ╠══════════════════════════════════════════════════════╣
178
+ ║ Modules discovered : [N]
179
+ ║ Docs tạo :
180
+ ║ .dw/context/project-map.md
181
+ ║ .dw/context/modules/[X files]
182
+ ║ Tech stack : [summary]
183
+ ╠══════════════════════════════════════════════════════╣
184
+ ║ Gợi ý tiếp theo:
185
+ ║ Modules phức tạp cần deep-dive:
186
+ ║ → /dw:retroactive [module-a]
187
+ ║ → /dw:retroactive [module-b]
188
+
189
+ ║ Khi bắt đầu task mới liên quan module đã có:
190
+ ║ → AI sẽ tự đọc .dw/context/ để có context
191
+ ╚══════════════════════════════════════════════════════╝
192
+ ```
193
+
194
+ ---
195
+
196
+ ## Lưu ý
197
+
198
+ - **Không tạo `.dw/tasks/`** — onboard output vào `.dw/context/`, tách khỏi task docs
199
+ - **Không đọc toàn bộ code** — chỉ cần đủ để hiểu vai trò và interface của module
200
+ - **Không analyze chi tiết logic** — đó là việc của `/dw:retroactive` khi cần deep-dive
201
+ - Nếu project đã có `.dw/context/project-map.md` → hỏi user: "Đã có project map. Update hay skip?"
@@ -1,125 +1,125 @@
1
- ---
2
- name: dw-plan
3
- description: "Lập kế hoạch implementation chi tiết sau khi đã research. Thiết kế giải pháp, phân chia subtasks, xác định rủi ro. DỪNG để chờ approval trước khi execute."
4
- argument-hint: "[task-name]"
5
- allowed-tools:
6
- - Read
7
- - Grep
8
- - Glob
9
- ---
10
-
11
- # Lập Kế Hoạch Implementation
12
-
13
- Task: **$ARGUMENTS**
14
-
15
- ## Đọc Config
16
-
17
- Đọc `.dw/config/dw.config.yml` → lấy:
18
- - `paths.tasks` → location task docs
19
- - `tracking.estimation` → có include estimation trong plan không
20
- - `tracking.estimation_unit` → đơn vị (hours / story-points / t-shirt)
21
- - `team.roles` → ai cần approve (có `techlead` → plan cần TL review)
22
- - `workflow.default_depth` → `thorough` = cần arch-review trước execute
23
-
24
- ## QUAN TRỌNG
25
- - KHÔNG implement bất cứ gì
26
- - KHÔNG sửa code
27
- - CHỈ đọc, phân tích, và viết plan
28
- - DỪNG LẠI cuối cùng để chờ user/TL approve
29
-
30
- ## Bước 1: Đọc Context
31
-
32
- Đọc `{paths.tasks}/$ARGUMENTS/$ARGUMENTS-context.md` — file research đã tạo.
33
- Nếu chưa có → thông báo: "Cần chạy `/dw-research $ARGUMENTS` trước."
34
-
35
- ## Bước 2: Thiết kế giải pháp
36
-
37
- ### Xem xét phương án
38
- - Liệt kê ÍT NHẤT 2 phương án khả thi
39
- - So sánh trade-offs: complexity, performance, maintainability, timeline
40
- - Chọn phương án tối ưu và giải thích lý do
41
-
42
- ### Áp dụng THINKING.md
43
- 1. **Critical Thinking**: Giả định nào? Rủi ro gì? Edge cases?
44
- 2. **Systems Thinking**: Tác động lên modules khác? Data flow thay đổi?
45
- 3. **Multiple Perspectives**: User? Developer? Security? Ops?
46
-
47
- ## Bước 3: Phân chia subtasks
48
-
49
- Mỗi subtask PHẢI có:
50
- - **Mô tả**: Cụ thể, actionable
51
- - **Files**: Danh sách files cần thay đổi
52
- - **Acceptance criteria**: Điều kiện hoàn thành rõ ràng
53
- - **Dependencies**: Subtask nào phải xong trước
54
- - **Estimate** (nếu `tracking.estimation = true`): Effort dự kiến theo `tracking.estimation_unit`
55
-
56
- Thứ tự subtasks theo dependency graph:
57
- 1. Schema/data changes trước
58
- 2. Service/business logic tiếp
59
- 3. API/routes sau
60
- 4. Tests song song hoặc trước (TDD)
61
- 5. Docs cuối
62
-
63
- ## Bước 4: Viết plan
64
-
65
- Ghi vào `{paths.tasks}/$ARGUMENTS/$ARGUMENTS-plan.md`:
66
-
67
- ```markdown
68
- # Plan: [Task Name]
69
-
70
- ## Ngày tạo: [date]
71
- ## Trạng thái: Draft → cần approve
72
-
73
- ## Tóm Tắt Giải Pháp
74
- [1-2 đoạn mô tả approach đã chọn]
75
-
76
- ## Phương Án Đã Xem Xét
77
- | # | Phương án | Ưu điểm | Nhược điểm | Chọn? |
78
- |---|-----------|---------|------------|-------|
79
-
80
- ## Subtasks
81
- ### ST-1: [Tên subtask]
82
- - **Mô tả**: ...
83
- - **Files**: ...
84
- - **Criteria**: ...
85
- - **Dependencies**: none
86
- - **Estimate**: [nếu có]
87
-
88
- ### ST-2: [Tên subtask]
89
- ...
90
-
91
- ## Rủi Ro & Giả Định
92
- | # | Loại | Mô tả | Xác suất | Tác động | Giảm thiểu |
93
- |---|------|--------|----------|----------|------------|
94
-
95
- ## Edge Cases
96
- - [ ] ...
97
-
98
- ## Tác Động Hệ Thống
99
- - Modules ảnh hưởng: ...
100
- - API changes: ...
101
- - Migration: ...
102
- - Backward compatibility: ...
103
-
104
- ## Góc Nhìn & Trade-offs
105
- | Quyết định | User | Dev | Security |
106
- |-----------|------|-----|----------|
107
-
108
- ## Estimation Tổng (nếu enabled)
109
- - Research: [done]
110
- - Planning: [done]
111
- - Coding: [estimate]
112
- - Testing: [estimate]
113
- - Review: [estimate]
114
- - Total: [sum]
115
- ```
116
-
117
- ## Bước 5: DỪNG & Trình bày
118
-
119
- Trình bày plan cho user với:
120
- 1. Tóm tắt approach (3-5 câu)
121
- 2. Số subtasks và estimate tổng (nếu có)
122
- 3. Top 2 risks
123
- 4. Yêu cầu: "Approve plan này để tiếp tục `/dw-execute $ARGUMENTS`"
124
-
125
- Nếu team có TL: "Plan cần TL review trước khi execute."
1
+ ---
2
+ name: dw:plan
3
+ description: "Lập kế hoạch implementation chi tiết sau khi đã research. Thiết kế giải pháp, phân chia subtasks, xác định rủi ro. DỪNG để chờ approval trước khi execute."
4
+ argument-hint: "[task-name]"
5
+ allowed-tools:
6
+ - Read
7
+ - Grep
8
+ - Glob
9
+ ---
10
+
11
+ # Lập Kế Hoạch Implementation
12
+
13
+ Task: **$ARGUMENTS**
14
+
15
+ ## Đọc Config
16
+
17
+ Đọc `.dw/config/dw.config.yml` → lấy:
18
+ - `paths.tasks` → location task docs
19
+ - `tracking.estimation` → có include estimation trong plan không
20
+ - `tracking.estimation_unit` → đơn vị (hours / story-points / t-shirt)
21
+ - `team.roles` → ai cần approve (có `techlead` → plan cần TL review)
22
+ - `workflow.default_depth` → `thorough` = cần arch-review trước execute
23
+
24
+ ## QUAN TRỌNG
25
+ - KHÔNG implement bất cứ gì
26
+ - KHÔNG sửa code
27
+ - CHỈ đọc, phân tích, và viết plan
28
+ - DỪNG LẠI cuối cùng để chờ user/TL approve
29
+
30
+ ## Bước 1: Đọc Context
31
+
32
+ Đọc `{paths.tasks}/$ARGUMENTS/$ARGUMENTS-context.md` — file research đã tạo.
33
+ Nếu chưa có → thông báo: "Cần chạy `/dw:research $ARGUMENTS` trước."
34
+
35
+ ## Bước 2: Thiết kế giải pháp
36
+
37
+ ### Xem xét phương án
38
+ - Liệt kê ÍT NHẤT 2 phương án khả thi
39
+ - So sánh trade-offs: complexity, performance, maintainability, timeline
40
+ - Chọn phương án tối ưu và giải thích lý do
41
+
42
+ ### Áp dụng THINKING.md
43
+ 1. **Critical Thinking**: Giả định nào? Rủi ro gì? Edge cases?
44
+ 2. **Systems Thinking**: Tác động lên modules khác? Data flow thay đổi?
45
+ 3. **Multiple Perspectives**: User? Developer? Security? Ops?
46
+
47
+ ## Bước 3: Phân chia subtasks
48
+
49
+ Mỗi subtask PHẢI có:
50
+ - **Mô tả**: Cụ thể, actionable
51
+ - **Files**: Danh sách files cần thay đổi
52
+ - **Acceptance criteria**: Điều kiện hoàn thành rõ ràng
53
+ - **Dependencies**: Subtask nào phải xong trước
54
+ - **Estimate** (nếu `tracking.estimation = true`): Effort dự kiến theo `tracking.estimation_unit`
55
+
56
+ Thứ tự subtasks theo dependency graph:
57
+ 1. Schema/data changes trước
58
+ 2. Service/business logic tiếp
59
+ 3. API/routes sau
60
+ 4. Tests song song hoặc trước (TDD)
61
+ 5. Docs cuối
62
+
63
+ ## Bước 4: Viết plan
64
+
65
+ Ghi vào `{paths.tasks}/$ARGUMENTS/$ARGUMENTS-plan.md`:
66
+
67
+ ```markdown
68
+ # Plan: [Task Name]
69
+
70
+ ## Ngày tạo: [date]
71
+ ## Trạng thái: Draft → cần approve
72
+
73
+ ## Tóm Tắt Giải Pháp
74
+ [1-2 đoạn mô tả approach đã chọn]
75
+
76
+ ## Phương Án Đã Xem Xét
77
+ | # | Phương án | Ưu điểm | Nhược điểm | Chọn? |
78
+ |---|-----------|---------|------------|-------|
79
+
80
+ ## Subtasks
81
+ ### ST-1: [Tên subtask]
82
+ - **Mô tả**: ...
83
+ - **Files**: ...
84
+ - **Criteria**: ...
85
+ - **Dependencies**: none
86
+ - **Estimate**: [nếu có]
87
+
88
+ ### ST-2: [Tên subtask]
89
+ ...
90
+
91
+ ## Rủi Ro & Giả Định
92
+ | # | Loại | Mô tả | Xác suất | Tác động | Giảm thiểu |
93
+ |---|------|--------|----------|----------|------------|
94
+
95
+ ## Edge Cases
96
+ - [ ] ...
97
+
98
+ ## Tác Động Hệ Thống
99
+ - Modules ảnh hưởng: ...
100
+ - API changes: ...
101
+ - Migration: ...
102
+ - Backward compatibility: ...
103
+
104
+ ## Góc Nhìn & Trade-offs
105
+ | Quyết định | User | Dev | Security |
106
+ |-----------|------|-----|----------|
107
+
108
+ ## Estimation Tổng (nếu enabled)
109
+ - Research: [done]
110
+ - Planning: [done]
111
+ - Coding: [estimate]
112
+ - Testing: [estimate]
113
+ - Review: [estimate]
114
+ - Total: [sum]
115
+ ```
116
+
117
+ ## Bước 5: DỪNG & Trình bày
118
+
119
+ Trình bày plan cho user với:
120
+ 1. Tóm tắt approach (3-5 câu)
121
+ 2. Số subtasks và estimate tổng (nếu có)
122
+ 3. Top 2 risks
123
+ 4. Yêu cầu: "Approve plan này để tiếp tục `/dw:execute $ARGUMENTS`"
124
+
125
+ Nếu team có TL: "Plan cần TL review trước khi execute."