dw-kit 1.2.1 → 1.3.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.
Files changed (59) 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 +6 -0
  8. package/.claude/hooks/stop-check.sh +88 -36
  9. package/.claude/hooks/telemetry-log.sh +34 -0
  10. package/.claude/rules/dw.md +138 -0
  11. package/.claude/settings.json +28 -1
  12. package/.claude/skills/dw-arch-review/SKILL.md +119 -119
  13. package/.claude/skills/dw-archive/SKILL.md +81 -81
  14. package/.claude/skills/dw-commit/SKILL.md +81 -81
  15. package/.claude/skills/dw-config-init/SKILL.md +91 -91
  16. package/.claude/skills/dw-config-validate/SKILL.md +75 -75
  17. package/.claude/skills/dw-dashboard/SKILL.md +209 -209
  18. package/.claude/skills/dw-debug/SKILL.md +97 -97
  19. package/.claude/skills/dw-decision/SKILL.md +116 -0
  20. package/.claude/skills/dw-docs-update/SKILL.md +125 -125
  21. package/.claude/skills/dw-estimate/SKILL.md +90 -90
  22. package/.claude/skills/dw-execute/SKILL.md +121 -98
  23. package/.claude/skills/dw-flow/SKILL.md +274 -274
  24. package/.claude/skills/dw-handoff/SKILL.md +92 -81
  25. package/.claude/skills/dw-kit-report/SKILL.md +152 -152
  26. package/.claude/skills/dw-log-work/SKILL.md +69 -69
  27. package/.claude/skills/dw-onboard/SKILL.md +201 -201
  28. package/.claude/skills/dw-plan/SKILL.md +222 -125
  29. package/.claude/skills/dw-prompt/SKILL.md +62 -62
  30. package/.claude/skills/dw-requirements/SKILL.md +98 -98
  31. package/.claude/skills/dw-research/SKILL.md +128 -114
  32. package/.claude/skills/dw-retroactive/SKILL.md +195 -311
  33. package/.claude/skills/dw-review/SKILL.md +66 -66
  34. package/.claude/skills/dw-rollback/SKILL.md +90 -90
  35. package/.claude/skills/dw-sprint-review/SKILL.md +99 -99
  36. package/.claude/skills/dw-task-init/SKILL.md +71 -59
  37. package/.claude/skills/dw-test-plan/SKILL.md +113 -113
  38. package/.claude/skills/dw-thinking/SKILL.md +70 -70
  39. package/.claude/skills/dw-upgrade/SKILL.md +72 -72
  40. package/.dw/core/PILLARS.md +122 -0
  41. package/.dw/core/ROLES.md +257 -257
  42. package/.dw/core/templates/v2/spec.md +68 -0
  43. package/.dw/core/templates/v2/tracking.md +62 -0
  44. package/.dw/core/v14-evaluation-protocol.md +118 -0
  45. package/CLAUDE.md +42 -39
  46. package/MIGRATION-v1.3.md +202 -0
  47. package/README.md +35 -6
  48. package/package.json +4 -2
  49. package/src/cli.mjs +29 -1
  50. package/src/commands/dashboard.mjs +116 -0
  51. package/src/commands/doctor.mjs +165 -149
  52. package/src/commands/init.mjs +339 -332
  53. package/src/commands/metrics.mjs +185 -0
  54. package/src/lib/active-index.mjs +87 -0
  55. package/src/lib/cut-analysis.mjs +240 -0
  56. package/src/lib/telemetry.mjs +80 -0
  57. package/.claude/rules/dw-core.md +0 -100
  58. package/.claude/rules/dw-skills.md +0 -53
  59. package/.claude/rules/workflow-rules.md +0 -77
@@ -1,90 +1,90 @@
1
- ---
2
- name: dw-rollback
3
- description: "Revert task docs về trạng thái trước. Dùng khi plan sai, execute sai hướng, hoặc cần bắt đầu lại từ sau research."
4
- argument-hint: "[task-name] [checkpoint: after-research | after-plan | clean]"
5
- ---
6
-
7
- # Rollback Task Docs: $ARGUMENTS
8
-
9
- ## Parse Arguments
10
-
11
- Từ `$ARGUMENTS`:
12
- - `task-name`: tên task cần rollback
13
- - `checkpoint` (optional): điểm muốn revert về
14
- - `after-research` — giữ context.md, xóa plan.md và reset progress.md
15
- - `after-plan` — giữ context.md + plan.md, reset progress.md về trạng thái ban đầu
16
- - `clean` — xóa toàn bộ nội dung, giữ files trống (restart từ đầu)
17
- - (không có) → hỏi user chọn
18
-
19
- ## Bước 1: Đọc config
20
-
21
- `paths.tasks` → xác định thư mục task.
22
-
23
- ## Bước 2: Kiểm tra task tồn tại
24
-
25
- ```
26
- {paths.tasks}/[task-name]/
27
- ├── [task-name]-context.md
28
- ├── [task-name]-plan.md
29
- └── [task-name]-progress.md
30
- ```
31
-
32
- Nếu không tìm thấy → thông báo và DỪNG.
33
-
34
- ## Bước 3: Git checkpoint (an toàn)
35
-
36
- Kiểm tra uncommitted changes trong task docs:
37
- ```bash
38
- git status {paths.tasks}/[task-name]/
39
- ```
40
-
41
- Nếu có uncommitted changes → hỏi: "Có uncommitted changes trong task docs. Commit trước khi rollback? (y/n/skip)"
42
-
43
- ## Bước 4: Hiển thị preview và confirm
44
-
45
- Hiển thị rõ sẽ làm gì:
46
- ```
47
- Rollback [task-name] về checkpoint: [checkpoint]
48
-
49
- Sẽ GIỮ:
50
- ✓ [task-name]-context.md (research findings)
51
-
52
- Sẽ RESET:
53
- ✗ [task-name]-plan.md → xóa nội dung, giữ file trống
54
- ✗ [task-name]-progress.md → reset về "Not Started"
55
-
56
- Tiếp tục? (y/n)
57
- ```
58
-
59
- Chờ user confirm trước khi thực hiện.
60
-
61
- ## Bước 5: Thực hiện rollback
62
-
63
- ### checkpoint = "after-research"
64
- - Giữ `context.md` nguyên vẹn
65
- - Reset `plan.md` → file trống (chỉ giữ header)
66
- - Reset `progress.md` → status = "Not Started", xóa subtask rows
67
-
68
- ### checkpoint = "after-plan"
69
- - Giữ `context.md` nguyên vẹn
70
- - Giữ `plan.md` nguyên vẹn
71
- - Reset `progress.md` → status = "Not Started", tất cả subtasks = Pending
72
-
73
- ### checkpoint = "clean"
74
- - Reset tất cả 3 files về template trống
75
- - Điền lại [Task Name] và [date]
76
-
77
- ## Bước 6: Thông báo
78
-
79
- ```
80
- Rollback hoàn tất.
81
-
82
- Task: [task-name]
83
- Checkpoint: [checkpoint]
84
- Thời gian: [timestamp]
85
-
86
- Bước tiếp theo:
87
- - after-research → Chạy /dw-plan [task-name] để lập kế hoạch lại
88
- - after-plan → Chạy /dw-execute [task-name] để implement lại
89
- - clean → Chạy /dw-research [task-name] để bắt đầu từ đầu
90
- ```
1
+ ---
2
+ name: dw:rollback
3
+ description: "Revert task docs về trạng thái trước. Dùng khi plan sai, execute sai hướng, hoặc cần bắt đầu lại từ sau research."
4
+ argument-hint: "[task-name] [checkpoint: after-research | after-plan | clean]"
5
+ ---
6
+
7
+ # Rollback Task Docs: $ARGUMENTS
8
+
9
+ ## Parse Arguments
10
+
11
+ Từ `$ARGUMENTS`:
12
+ - `task-name`: tên task cần rollback
13
+ - `checkpoint` (optional): điểm muốn revert về
14
+ - `after-research` — giữ context.md, xóa plan.md và reset progress.md
15
+ - `after-plan` — giữ context.md + plan.md, reset progress.md về trạng thái ban đầu
16
+ - `clean` — xóa toàn bộ nội dung, giữ files trống (restart từ đầu)
17
+ - (không có) → hỏi user chọn
18
+
19
+ ## Bước 1: Đọc config
20
+
21
+ `paths.tasks` → xác định thư mục task.
22
+
23
+ ## Bước 2: Kiểm tra task tồn tại
24
+
25
+ ```
26
+ {paths.tasks}/[task-name]/
27
+ ├── [task-name]-context.md
28
+ ├── [task-name]-plan.md
29
+ └── [task-name]-progress.md
30
+ ```
31
+
32
+ Nếu không tìm thấy → thông báo và DỪNG.
33
+
34
+ ## Bước 3: Git checkpoint (an toàn)
35
+
36
+ Kiểm tra uncommitted changes trong task docs:
37
+ ```bash
38
+ git status {paths.tasks}/[task-name]/
39
+ ```
40
+
41
+ Nếu có uncommitted changes → hỏi: "Có uncommitted changes trong task docs. Commit trước khi rollback? (y/n/skip)"
42
+
43
+ ## Bước 4: Hiển thị preview và confirm
44
+
45
+ Hiển thị rõ sẽ làm gì:
46
+ ```
47
+ Rollback [task-name] về checkpoint: [checkpoint]
48
+
49
+ Sẽ GIỮ:
50
+ ✓ [task-name]-context.md (research findings)
51
+
52
+ Sẽ RESET:
53
+ ✗ [task-name]-plan.md → xóa nội dung, giữ file trống
54
+ ✗ [task-name]-progress.md → reset về "Not Started"
55
+
56
+ Tiếp tục? (y/n)
57
+ ```
58
+
59
+ Chờ user confirm trước khi thực hiện.
60
+
61
+ ## Bước 5: Thực hiện rollback
62
+
63
+ ### checkpoint = "after-research"
64
+ - Giữ `context.md` nguyên vẹn
65
+ - Reset `plan.md` → file trống (chỉ giữ header)
66
+ - Reset `progress.md` → status = "Not Started", xóa subtask rows
67
+
68
+ ### checkpoint = "after-plan"
69
+ - Giữ `context.md` nguyên vẹn
70
+ - Giữ `plan.md` nguyên vẹn
71
+ - Reset `progress.md` → status = "Not Started", tất cả subtasks = Pending
72
+
73
+ ### checkpoint = "clean"
74
+ - Reset tất cả 3 files về template trống
75
+ - Điền lại [Task Name] và [date]
76
+
77
+ ## Bước 6: Thông báo
78
+
79
+ ```
80
+ Rollback hoàn tất.
81
+
82
+ Task: [task-name]
83
+ Checkpoint: [checkpoint]
84
+ Thời gian: [timestamp]
85
+
86
+ Bước tiếp theo:
87
+ - after-research → Chạy /dw:plan [task-name] để lập kế hoạch lại
88
+ - after-plan → Chạy /dw:execute [task-name] để implement lại
89
+ - clean → Chạy /dw:research [task-name] để bắt đầu từ đầu
90
+ ```
@@ -1,99 +1,99 @@
1
- ---
2
- name: dw-sprint-review
3
- description: "Tổng kết sprint: tasks hoàn thành, metrics, lessons learned, items cho sprint tiếp theo. Dành cho team retrospective cuối sprint."
4
- argument-hint: "[sprint-name hoặc period: e.g. sprint-3, 2026-03]"
5
- ---
6
-
7
- # Sprint Review: $ARGUMENTS
8
-
9
- ## Đọc Config
10
-
11
- Đọc `.dw/config/dw.config.yml`:
12
- - `paths.tasks` → tìm task docs
13
- - `.dw/metrics` → tìm effort data
14
- - `tracking.estimation`, `tracking.log_work` → biết có data nào
15
-
16
- ## Bước 1: Thu thập dữ liệu
17
-
18
- ### Tasks trong sprint
19
- Scan `{paths.tasks}/` tìm tasks có status Done hoặc In Progress trong kỳ sprint.
20
- Đọc `*-progress.md` của mỗi task để lấy:
21
- - Trạng thái cuối
22
- - Effort estimate vs actual
23
- - Blockers gặp phải
24
- - Commits liên quan
25
-
26
- ### Git history
27
- ```bash
28
- git log --oneline --since="[sprint-start]" --until="[sprint-end]"
29
- ```
30
-
31
- ## Bước 2: Tạo báo cáo sprint
32
-
33
- Ghi vào `{paths.reports}/sprint-review-$ARGUMENTS.md`:
34
-
35
- ```markdown
36
- # Sprint Review: [Sprint Name]
37
-
38
- **Kỳ**: [start] → [end]
39
- **Team**: [roles từ config]
40
- **Ngày tạo**: [date]
41
-
42
- ---
43
-
44
- ## Tóm Tắt
45
-
46
- | Metric | Giá trị |
47
- |--------|---------|
48
- | Tasks hoàn thành | X/Y |
49
- | Estimate tổng | Xh |
50
- | Actual tổng | Xh |
51
- | Accuracy | X% |
52
- | Commits | X |
53
-
54
- ## Tasks Hoàn Thành
55
-
56
- | Task | Estimate | Actual | Variance | Ghi chú |
57
- |------|----------|--------|----------|---------|
58
- | [task-name] | | | | |
59
-
60
- ## Tasks Chưa Hoàn Thành / Carry-over
61
-
62
- | Task | Lý do | Hành động |
63
- |------|-------|-----------|
64
- | | | |
65
-
66
- ## Blockers Gặp Phải
67
-
68
- [Danh sách blockers, đã giải quyết hay chưa]
69
-
70
- ## Lessons Learned
71
-
72
- ### Làm tốt (Keep)
73
- - [Điều gì hiệu quả trong sprint này]
74
-
75
- ### Cần cải thiện (Improve)
76
- - [Điều gì cần làm khác đi]
77
-
78
- ### Thử nghiệm (Try)
79
- - [Điều gì muốn thử trong sprint sau]
80
-
81
- ## Items Cho Sprint Tiếp Theo
82
-
83
- - [ ] [Action item 1] — owner: [role]
84
- - [ ] [Action item 2]
85
-
86
- ## DORA Metrics (nếu có data)
87
-
88
- | Metric | Giá trị | Target |
89
- |--------|---------|--------|
90
- | Deployment frequency | | |
91
- | Lead time for changes | | |
92
- | Change failure rate | | |
93
- | MTTR | | |
94
- ```
95
-
96
- ## Bước 3: Thông báo
97
-
98
- Hiển thị summary và path đến file báo cáo.
99
- Gợi ý: "PM có thể chạy `/dw-dashboard` để xem báo cáo đầy đủ hơn."
1
+ ---
2
+ name: dw:sprint-review
3
+ description: "Tổng kết sprint: tasks hoàn thành, metrics, lessons learned, items cho sprint tiếp theo. Dành cho team retrospective cuối sprint."
4
+ argument-hint: "[sprint-name hoặc period: e.g. sprint-3, 2026-03]"
5
+ ---
6
+
7
+ # Sprint Review: $ARGUMENTS
8
+
9
+ ## Đọc Config
10
+
11
+ Đọc `.dw/config/dw.config.yml`:
12
+ - `paths.tasks` → tìm task docs
13
+ - `.dw/metrics` → tìm effort data
14
+ - `tracking.estimation`, `tracking.log_work` → biết có data nào
15
+
16
+ ## Bước 1: Thu thập dữ liệu
17
+
18
+ ### Tasks trong sprint
19
+ Scan `{paths.tasks}/` tìm tasks có status Done hoặc In Progress trong kỳ sprint.
20
+ Đọc `*-progress.md` của mỗi task để lấy:
21
+ - Trạng thái cuối
22
+ - Effort estimate vs actual
23
+ - Blockers gặp phải
24
+ - Commits liên quan
25
+
26
+ ### Git history
27
+ ```bash
28
+ git log --oneline --since="[sprint-start]" --until="[sprint-end]"
29
+ ```
30
+
31
+ ## Bước 2: Tạo báo cáo sprint
32
+
33
+ Ghi vào `{paths.reports}/sprint-review-$ARGUMENTS.md`:
34
+
35
+ ```markdown
36
+ # Sprint Review: [Sprint Name]
37
+
38
+ **Kỳ**: [start] → [end]
39
+ **Team**: [roles từ config]
40
+ **Ngày tạo**: [date]
41
+
42
+ ---
43
+
44
+ ## Tóm Tắt
45
+
46
+ | Metric | Giá trị |
47
+ |--------|---------|
48
+ | Tasks hoàn thành | X/Y |
49
+ | Estimate tổng | Xh |
50
+ | Actual tổng | Xh |
51
+ | Accuracy | X% |
52
+ | Commits | X |
53
+
54
+ ## Tasks Hoàn Thành
55
+
56
+ | Task | Estimate | Actual | Variance | Ghi chú |
57
+ |------|----------|--------|----------|---------|
58
+ | [task-name] | | | | |
59
+
60
+ ## Tasks Chưa Hoàn Thành / Carry-over
61
+
62
+ | Task | Lý do | Hành động |
63
+ |------|-------|-----------|
64
+ | | | |
65
+
66
+ ## Blockers Gặp Phải
67
+
68
+ [Danh sách blockers, đã giải quyết hay chưa]
69
+
70
+ ## Lessons Learned
71
+
72
+ ### Làm tốt (Keep)
73
+ - [Điều gì hiệu quả trong sprint này]
74
+
75
+ ### Cần cải thiện (Improve)
76
+ - [Điều gì cần làm khác đi]
77
+
78
+ ### Thử nghiệm (Try)
79
+ - [Điều gì muốn thử trong sprint sau]
80
+
81
+ ## Items Cho Sprint Tiếp Theo
82
+
83
+ - [ ] [Action item 1] — owner: [role]
84
+ - [ ] [Action item 2]
85
+
86
+ ## DORA Metrics (nếu có data)
87
+
88
+ | Metric | Giá trị | Target |
89
+ |--------|---------|--------|
90
+ | Deployment frequency | | |
91
+ | Lead time for changes | | |
92
+ | Change failure rate | | |
93
+ | MTTR | | |
94
+ ```
95
+
96
+ ## Bước 3: Thông báo
97
+
98
+ Hiển thị summary và path đến file báo cáo.
99
+ Gợi ý: "PM có thể chạy `/dw:dashboard` để xem báo cáo đầy đủ hơn."
@@ -1,59 +1,71 @@
1
- ---
2
- name: dw-task-init
3
- description: "Khởi tạo bộ documentation cho task mới. Tạo thư mục và 3 template files (context, plan, progress)."
4
- argument-hint: "[task-name]"
5
- ---
6
-
7
- # Khởi Tạo Task: $ARGUMENTS
8
-
9
- ## Đọc Config
10
-
11
- Đọc `.dw/config/dw.config.yml` để lấy:
12
- - `paths.tasks` → thư mục chứa task docs (mặc định: `.dw/tasks`)
13
- - `workflow.default_depth` → `quick | standard | thorough`
14
- - `tracking.estimation` → tạo section estimation không
15
- - `tracking.log_work` → có tạo section effort log không
16
- - `team.roles` hiển thị workflow phù hợp
17
- - `project.language` → chọn template ngôn ngữ
18
-
19
- ## Tạo Thư Mục & Files
20
-
21
- ```
22
- {paths.tasks}/$ARGUMENTS/
23
- ├── $ARGUMENTS-context.md # Research findings & codebase analysis
24
- ├── $ARGUMENTS-plan.md # Implementation plan & design
25
- └── $ARGUMENTS-progress.md # Progress tracking, effort log, changelog
26
- ```
27
-
28
- ### File context.md
29
- Đọc `project.language` từ config để chọn template:
30
- - `language: "vi"` → dùng `.claude/templates/task-context.md`
31
- - `language: "en"` → dùng `.claude/templates/en/task-context.md`
32
-
33
- Điền vào template:
34
- - `[Task Name]` = `$ARGUMENTS`
35
- - `[date]` = ngày hiện tại
36
-
37
- ### File plan.md
38
- Chọn template theo `project.language` (`.claude/templates/[lang]/task-plan.md`).
39
- - Nếu `tracking.estimation = true`: giữ nguyên section Estimation
40
- - Nếu `tracking.estimation = false`: xóa section Estimation
41
-
42
- ### File progress.md
43
- Chọn template theo `project.language` (`.claude/templates/[lang]/task-progress.md`).
44
- - Điền `[Task Name]` = `$ARGUMENTS`
45
- - Điền `[date]` = ngày hiện tại
46
- - Nếu `tracking.log_work = true`: giữ section Effort Log
47
- - Nếu `tracking.log_work = false`: xóa section Effort Log
48
-
49
- ## Sau Khi Tạo
50
-
51
- Hiển thị cho user:
52
- 1. Danh sách files đã tạo
53
- 2. Workflow tiếp theo dựa trên `workflow.default_depth`:
54
-
55
- **quick**: "Tiếp theo: Code ngay hoặc `/dw-research $ARGUMENTS` nếu cần khảo sát"
56
- **standard**: "Tiếp theo: `/dw-research $ARGUMENTS` → `/dw-plan $ARGUMENTS` → approve → `/dw-execute $ARGUMENTS`"
57
- **thorough**: "Tiếp theo: `/dw-requirements $ARGUMENTS` → `/dw-research $ARGUMENTS` → `/dw-estimate $ARGUMENTS` → `/dw-plan $ARGUMENTS`"
58
-
59
- Nếu team có BA: "Gợi ý: BA có thể chạy `/dw-requirements $ARGUMENTS` trước để chuẩn bị yêu cầu"
1
+ ---
2
+ name: dw:task-init
3
+ description: "Khởi tạo bộ documentation cho task mới. Tạo thư mục và 2 files v2 (spec.md + tracking.md)."
4
+ argument-hint: "[task-name]"
5
+ ---
6
+
7
+ # Khởi Tạo Task: $ARGUMENTS
8
+
9
+ ## Đọc Config
10
+
11
+ Đọc `.dw/config/dw.config.yml`:
12
+ - `paths.tasks` → thư mục chứa task docs (mặc định: `.dw/tasks`)
13
+ - `workflow.default_depth` → `quick | standard | thorough`
14
+ - `project.language` → ngôn ngữ note thêm (templates hiện tại là vi/en-agnostic)
15
+
16
+ ## Tạo Thư Mục & Files (v2 format)
17
+
18
+ ```
19
+ {paths.tasks}/$ARGUMENTS/
20
+ ├── spec.md # Intent + subtasks + success criteria (stable after approve)
21
+ └── tracking.md # Progress + changelog + handoff (mutable)
22
+ ```
23
+
24
+ ### 1. Tạo spec.md
25
+
26
+ Đọc template từ `.dw/core/templates/v2/spec.md`, điền vào:
27
+ - `{task-name}` → `$ARGUMENTS`
28
+ - `{YYYY-MM-DD}` (created) → ngày hiện tại
29
+ - `status` `Draft`
30
+ - `depth` → giá trị `workflow.default_depth` từ config
31
+ - `owner` → để trống (user tự điền)
32
+ - `related_adr` → `none`
33
+ - `target_ship` → `none`
34
+
35
+ Ghi vào `{paths.tasks}/$ARGUMENTS/spec.md`.
36
+
37
+ ### 2. Tạo tracking.md
38
+
39
+ Đọc template từ `.dw/core/templates/v2/tracking.md`, điền vào:
40
+ - `{task-name}` `$ARGUMENTS`
41
+ - `{YYYY-MM-DD}` (started & last_updated) → ngày hiện tại
42
+ - `status` → `Not Started`
43
+ - `current_phase` `Init`
44
+ - `blockers` `none`
45
+
46
+ Ghi vào `{paths.tasks}/$ARGUMENTS/tracking.md`.
47
+
48
+ ### 3. Cập nhật ACTIVE.md
49
+
50
+ Sau khi tạo xong 2 files, chạy `dw active` (hoặc invoke `writeActiveIndex`) để regenerate `{paths.tasks}/ACTIVE.md` — team index sẽ thấy task mới.
51
+
52
+ ## Sau Khi Tạo
53
+
54
+ Hiển thị cho user:
55
+
56
+ 1. Danh sách files đã tạo:
57
+ - `{paths.tasks}/$ARGUMENTS/spec.md`
58
+ - `{paths.tasks}/$ARGUMENTS/tracking.md`
59
+
60
+ 2. Workflow tiếp theo theo `workflow.default_depth`:
61
+ - **quick**: "Code ngay hoặc `/dw:research $ARGUMENTS` nếu cần khảo sát."
62
+ - **standard**: "`/dw:research $ARGUMENTS` → `/dw:plan $ARGUMENTS` → approve → `/dw:execute $ARGUMENTS`"
63
+ - **thorough**: "`/dw:requirements $ARGUMENTS` → `/dw:research $ARGUMENTS` → `/dw:estimate $ARGUMENTS` → `/dw:plan $ARGUMENTS`"
64
+
65
+ 3. Nếu team có BA role: "BA có thể chạy `/dw:requirements $ARGUMENTS` trước để chuẩn bị yêu cầu."
66
+
67
+ ## Lưu ý v2 format
68
+
69
+ - `spec.md` ổn định sau khi approve — subtasks + success criteria không thay đổi mà không có lý do.
70
+ - `tracking.md` mutable — cập nhật mỗi session (Subtask Progress table, Changelog, Friction Journal).
71
+ - Legacy 3-file format (`context + plan + progress`) vẫn được đọc bởi các skill khác để backward compat, nhưng **không tạo mới** cho task mới.