dw-kit 1.3.0 → 1.3.5
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/.claude/hooks/supply-chain-scan.sh +102 -0
- package/.claude/rules/dw.md +2 -0
- package/.claude/settings.json +13 -1
- package/.claude/skills/dw-execute/SKILL.md +30 -7
- package/.claude/skills/dw-handoff/SKILL.md +14 -3
- package/.claude/skills/dw-plan/SKILL.md +103 -6
- package/.claude/skills/dw-research/SKILL.md +18 -4
- package/.claude/skills/dw-retroactive/SKILL.md +84 -200
- package/.claude/skills/dw-task-init/SKILL.md +45 -33
- package/.dw/core/ROLES.md +257 -257
- package/.dw/security/ioc-namespaces.json +40 -0
- package/CLAUDE.md +3 -1
- package/MIGRATION-v1.3.md +5 -4
- package/README.md +14 -2
- package/package.json +2 -1
- package/src/cli.mjs +27 -0
- package/src/commands/doctor.mjs +21 -0
- package/src/commands/init.mjs +45 -2
- package/src/commands/metrics.mjs +21 -1
- package/src/commands/security-scan.mjs +427 -0
- package/src/commands/upgrade.mjs +54 -0
- package/src/lib/cut-analysis.mjs +79 -0
- package/src/lib/gitignore.mjs +86 -0
- package/src/lib/sc-install.mjs +93 -0
- package/src/lib/sc-scanner.mjs +272 -0
- package/src/lib/sc-sync.mjs +198 -0
- package/src/lib/telemetry.mjs +7 -0
package/.dw/core/ROLES.md
CHANGED
|
@@ -1,257 +1,257 @@
|
|
|
1
|
-
<!-- core-version: 1.0 -->
|
|
2
|
-
|
|
3
|
-
# Team Roles & Authority
|
|
4
|
-
|
|
5
|
-
> **Nguyên tắc**: Roles = capabilities, không phải hierarchy.
|
|
6
|
-
> Config `team.roles` quyết định phases nào available, không phải quality tier.
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Role Overview
|
|
11
|
-
|
|
12
|
-
| Role | Ký hiệu config | Core responsibility | Decision authority |
|
|
13
|
-
|------|----------------|--------------------|--------------------|
|
|
14
|
-
| Developer | `dev` | Implementation, testing | Code-level decisions |
|
|
15
|
-
| Tech Lead | `techlead` | Architecture, code standards | Architecture decisions, plan approval |
|
|
16
|
-
| Business Analyst | `ba` | Requirements, user stories | Requirements sign-off |
|
|
17
|
-
| QC Engineer | `qc` | Test planning, quality verification | QA sign-off (Layer 4) |
|
|
18
|
-
| Product Manager | `pm` | Progress visibility, metrics | Sprint planning, backlog priority |
|
|
19
|
-
|
|
20
|
-
> `dev` luôn required. Các roles khác là optional — không có thì phase đó gracefully degrade.
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Developer (`dev`)
|
|
25
|
-
|
|
26
|
-
**Trách nhiệm chính**: Research → Plan → Execute → Commit
|
|
27
|
-
|
|
28
|
-
### Phases Developer Owns
|
|
29
|
-
|
|
30
|
-
| Phase | Responsibility |
|
|
31
|
-
|-------|---------------|
|
|
32
|
-
| Initialize | Tạo task docs, scope assessment |
|
|
33
|
-
| Understand | Codebase research, context gathering |
|
|
34
|
-
| Plan | Solution design, subtask breakdown |
|
|
35
|
-
| Execute | Implementation, TDD, subtask commits |
|
|
36
|
-
| Verify | Self-review (Layer 1), automated gates (Layer 2) |
|
|
37
|
-
| Close | Commit, effort log, handoff |
|
|
38
|
-
|
|
39
|
-
### Decision Authority
|
|
40
|
-
|
|
41
|
-
- Code implementation decisions
|
|
42
|
-
- Library/dependency choices (minor)
|
|
43
|
-
- Subtask ordering và approach (trong scope của plan approved)
|
|
44
|
-
- **DỪNG và hỏi khi**: architecture change, API contract change, scope expansion
|
|
45
|
-
|
|
46
|
-
### Best Practices
|
|
47
|
-
|
|
48
|
-
- Commit nhỏ, thường xuyên (mỗi subtask = 1 commit)
|
|
49
|
-
- Update progress file sau mỗi subtask
|
|
50
|
-
- Không implement ngoài scope plan đã approve
|
|
51
|
-
- Phát hiện giả định sai → ghi Changelog + hỏi TL trước khi tiếp tục
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## Tech Lead (`techlead`)
|
|
56
|
-
|
|
57
|
-
**Trách nhiệm chính**: Architecture quality, standards enforcement, plan approval
|
|
58
|
-
|
|
59
|
-
### Phases TL Owns
|
|
60
|
-
|
|
61
|
-
| Phase | Responsibility |
|
|
62
|
-
|-------|---------------|
|
|
63
|
-
| Plan | Architecture review, approve plan trước Execute |
|
|
64
|
-
| Execute | Unblock architecture decisions during implementation |
|
|
65
|
-
| Verify | Code review (Layer 3 — architecture focus) |
|
|
66
|
-
| Close | Final technical sign-off |
|
|
67
|
-
|
|
68
|
-
### Decision Authority
|
|
69
|
-
|
|
70
|
-
- Architecture decisions (service boundaries, patterns, data models)
|
|
71
|
-
- Plan approval: **explicit gate** — Execute không bắt đầu khi chưa có TL approve
|
|
72
|
-
- A/B testing resolution: TL chọn approach khi hai approaches không rõ ưu/nhược
|
|
73
|
-
- Technical debt acknowledgment: quyết định "acceptable" hay "must fix"
|
|
74
|
-
|
|
75
|
-
### Architecture Review Checklist
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
[ ] Approach consistent với codebase patterns?
|
|
79
|
-
[ ] Scalability implications acceptable?
|
|
80
|
-
[ ] Security design đúng?
|
|
81
|
-
[ ] API contract backward compatible (hoặc migration plan có)?
|
|
82
|
-
[ ] Subtask breakdown hợp lý? Dependencies đúng?
|
|
83
|
-
[ ] Risks identified và có mitigation?
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### TL không có?
|
|
87
|
-
|
|
88
|
-
- Plan vẫn proceed nhưng developer self-review architecture decisions
|
|
89
|
-
- Ghi rõ trong plan: "Architecture decision by dev (no TL review)"
|
|
90
|
-
- Architecture decisions nên bảo thủ hơn khi không có TL
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## Business Analyst (`ba`)
|
|
95
|
-
|
|
96
|
-
**Trách nhiệm chính**: Requirements clarity, user stories, acceptance criteria
|
|
97
|
-
|
|
98
|
-
### Phases BA Owns
|
|
99
|
-
|
|
100
|
-
| Phase | Responsibility |
|
|
101
|
-
|-------|---------------|
|
|
102
|
-
| Initialize | Requirements gathering, user stories |
|
|
103
|
-
| Plan | Review subtask acceptance criteria |
|
|
104
|
-
| Verify | Acceptance criteria verification |
|
|
105
|
-
|
|
106
|
-
### Decision Authority
|
|
107
|
-
|
|
108
|
-
- Requirements sign-off: "dev builds the right thing"
|
|
109
|
-
- Scope boundary: in-scope vs out-of-scope
|
|
110
|
-
- Acceptance criteria: testable, specific, agreed
|
|
111
|
-
|
|
112
|
-
### Requirements Output Format
|
|
113
|
-
|
|
114
|
-
```markdown
|
|
115
|
-
## User Story
|
|
116
|
-
As a [role], I want [goal] so that [benefit].
|
|
117
|
-
|
|
118
|
-
## Acceptance Criteria
|
|
119
|
-
Given [precondition]
|
|
120
|
-
When [action]
|
|
121
|
-
Then [outcome]
|
|
122
|
-
|
|
123
|
-
## Out of Scope
|
|
124
|
-
- [explicitly excluded items]
|
|
125
|
-
|
|
126
|
-
## Edge Cases to Handle
|
|
127
|
-
- [edge case 1]
|
|
128
|
-
- [edge case 2]
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### BA không có?
|
|
132
|
-
|
|
133
|
-
- Developer writes requirements từ conversation với stakeholder
|
|
134
|
-
- Requirements review là developer + TL (không có independent BA)
|
|
135
|
-
- Risk cao hơn về misunderstood requirements — tăng frequency of check-ins
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
## QC Engineer (`qc`)
|
|
140
|
-
|
|
141
|
-
**Trách nhiệm chính**: Test planning, independent quality verification
|
|
142
|
-
|
|
143
|
-
### Phases QC Owns
|
|
144
|
-
|
|
145
|
-
| Phase | Responsibility |
|
|
146
|
-
|-------|---------------|
|
|
147
|
-
| Plan | Test plan tạo song song với dev plan |
|
|
148
|
-
| Verify | Execute test plan, Layer 4 sign-off |
|
|
149
|
-
|
|
150
|
-
### Decision Authority
|
|
151
|
-
|
|
152
|
-
- QA sign-off: **explicit gate** cho `thorough` depth — không thể self-approve
|
|
153
|
-
- Bug severity classification
|
|
154
|
-
- Regression scope: gì cần test lại sau change
|
|
155
|
-
|
|
156
|
-
### Test Plan Structure
|
|
157
|
-
|
|
158
|
-
```markdown
|
|
159
|
-
## Test Cases
|
|
160
|
-
### TC-1: [Test case name]
|
|
161
|
-
- **Given**: [precondition]
|
|
162
|
-
- **When**: [action]
|
|
163
|
-
- **Then**: [expected result]
|
|
164
|
-
- **Priority**: P1/P2/P3
|
|
165
|
-
|
|
166
|
-
## Regression Checklist
|
|
167
|
-
- [ ] [Feature 1 không bị ảnh hưởng]
|
|
168
|
-
- [ ] [Feature 2 không bị ảnh hưởng]
|
|
169
|
-
|
|
170
|
-
## Security Checklist (nếu applicable)
|
|
171
|
-
- [ ] Input validation
|
|
172
|
-
- [ ] Auth/authz checks
|
|
173
|
-
- [ ] No data exposure
|
|
174
|
-
|
|
175
|
-
## Performance Checklist (nếu applicable)
|
|
176
|
-
- [ ] Response time acceptable
|
|
177
|
-
- [ ] No N+1 queries introduced
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
### QC không có?
|
|
181
|
-
|
|
182
|
-
- Developer tự execute test plan (nếu có) hoặc manual verification
|
|
183
|
-
- Layer 4 QA sign-off skip — nhưng automated gates (Layer 4a) vẫn chạy
|
|
184
|
-
- Risk cao hơn về undiscovered bugs
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## Product Manager (`pm`)
|
|
189
|
-
|
|
190
|
-
**Trách nhiệm chính**: Progress visibility, metrics, sprint planning
|
|
191
|
-
|
|
192
|
-
### Phases PM Owns
|
|
193
|
-
|
|
194
|
-
| Phase | Responsibility |
|
|
195
|
-
|-------|---------------|
|
|
196
|
-
| Initialize | Sprint planning, priority |
|
|
197
|
-
| Close | Sprint review, velocity tracking |
|
|
198
|
-
| Standalone: Reports | Dashboard generation |
|
|
199
|
-
|
|
200
|
-
### PM View
|
|
201
|
-
|
|
202
|
-
PM không cần đọc code — PM đọc:
|
|
203
|
-
- Progress files (status per subtask)
|
|
204
|
-
- Dashboard reports (velocity, metrics)
|
|
205
|
-
- Sprint review summaries
|
|
206
|
-
|
|
207
|
-
### Dashboard Metrics
|
|
208
|
-
|
|
209
|
-
| Metric | Source | Update frequency |
|
|
210
|
-
|--------|--------|-----------------|
|
|
211
|
-
| Tasks: done/in-progress/blocked | Progress files | Real-time |
|
|
212
|
-
| Velocity | Closed tasks per sprint | Per sprint |
|
|
213
|
-
| Estimate accuracy | Estimate vs actual | Per task |
|
|
214
|
-
| DORA: deployment frequency | Git history | Per release |
|
|
215
|
-
| DORA: lead time | Task start → deploy | Per release |
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
## Multi-Role Workflow
|
|
220
|
-
|
|
221
|
-
Full team workflow (tất cả roles):
|
|
222
|
-
|
|
223
|
-
```
|
|
224
|
-
BA: /dw
|
|
225
|
-
↓
|
|
226
|
-
TL: /dw
|
|
227
|
-
↓
|
|
228
|
-
Dev: /dw
|
|
229
|
-
Dev: /dw
|
|
230
|
-
Dev+QC: /dw
|
|
231
|
-
↓
|
|
232
|
-
TL approve plan
|
|
233
|
-
↓
|
|
234
|
-
Dev: /dw
|
|
235
|
-
↓
|
|
236
|
-
TL: /dw
|
|
237
|
-
↓
|
|
238
|
-
QC: manual/auto testing → Layer 4 verification
|
|
239
|
-
↓
|
|
240
|
-
Dev: /dw
|
|
241
|
-
↓
|
|
242
|
-
PM: /dw
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
Không phải mọi task cần full chain. `default_depth` + available roles quyết định.
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## Role-Depth Matrix
|
|
250
|
-
|
|
251
|
-
| Role | Quick | Standard | Thorough |
|
|
252
|
-
|------|-------|----------|----------|
|
|
253
|
-
| dev | required | required | required |
|
|
254
|
-
| techlead | not needed | arch decisions only | full review + approval |
|
|
255
|
-
| ba | not needed | requirements check | full requirements |
|
|
256
|
-
| qc | not needed | not needed | full test plan + sign-off |
|
|
257
|
-
| pm | not needed | optional | dashboard |
|
|
1
|
+
<!-- core-version: 1.0 -->
|
|
2
|
+
|
|
3
|
+
# Team Roles & Authority
|
|
4
|
+
|
|
5
|
+
> **Nguyên tắc**: Roles = capabilities, không phải hierarchy.
|
|
6
|
+
> Config `team.roles` quyết định phases nào available, không phải quality tier.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Role Overview
|
|
11
|
+
|
|
12
|
+
| Role | Ký hiệu config | Core responsibility | Decision authority |
|
|
13
|
+
|------|----------------|--------------------|--------------------|
|
|
14
|
+
| Developer | `dev` | Implementation, testing | Code-level decisions |
|
|
15
|
+
| Tech Lead | `techlead` | Architecture, code standards | Architecture decisions, plan approval |
|
|
16
|
+
| Business Analyst | `ba` | Requirements, user stories | Requirements sign-off |
|
|
17
|
+
| QC Engineer | `qc` | Test planning, quality verification | QA sign-off (Layer 4) |
|
|
18
|
+
| Product Manager | `pm` | Progress visibility, metrics | Sprint planning, backlog priority |
|
|
19
|
+
|
|
20
|
+
> `dev` luôn required. Các roles khác là optional — không có thì phase đó gracefully degrade.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Developer (`dev`)
|
|
25
|
+
|
|
26
|
+
**Trách nhiệm chính**: Research → Plan → Execute → Commit
|
|
27
|
+
|
|
28
|
+
### Phases Developer Owns
|
|
29
|
+
|
|
30
|
+
| Phase | Responsibility |
|
|
31
|
+
|-------|---------------|
|
|
32
|
+
| Initialize | Tạo task docs, scope assessment |
|
|
33
|
+
| Understand | Codebase research, context gathering |
|
|
34
|
+
| Plan | Solution design, subtask breakdown |
|
|
35
|
+
| Execute | Implementation, TDD, subtask commits |
|
|
36
|
+
| Verify | Self-review (Layer 1), automated gates (Layer 2) |
|
|
37
|
+
| Close | Commit, effort log, handoff |
|
|
38
|
+
|
|
39
|
+
### Decision Authority
|
|
40
|
+
|
|
41
|
+
- Code implementation decisions
|
|
42
|
+
- Library/dependency choices (minor)
|
|
43
|
+
- Subtask ordering và approach (trong scope của plan approved)
|
|
44
|
+
- **DỪNG và hỏi khi**: architecture change, API contract change, scope expansion
|
|
45
|
+
|
|
46
|
+
### Best Practices
|
|
47
|
+
|
|
48
|
+
- Commit nhỏ, thường xuyên (mỗi subtask = 1 commit)
|
|
49
|
+
- Update progress file sau mỗi subtask
|
|
50
|
+
- Không implement ngoài scope plan đã approve
|
|
51
|
+
- Phát hiện giả định sai → ghi Changelog + hỏi TL trước khi tiếp tục
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Tech Lead (`techlead`)
|
|
56
|
+
|
|
57
|
+
**Trách nhiệm chính**: Architecture quality, standards enforcement, plan approval
|
|
58
|
+
|
|
59
|
+
### Phases TL Owns
|
|
60
|
+
|
|
61
|
+
| Phase | Responsibility |
|
|
62
|
+
|-------|---------------|
|
|
63
|
+
| Plan | Architecture review, approve plan trước Execute |
|
|
64
|
+
| Execute | Unblock architecture decisions during implementation |
|
|
65
|
+
| Verify | Code review (Layer 3 — architecture focus) |
|
|
66
|
+
| Close | Final technical sign-off |
|
|
67
|
+
|
|
68
|
+
### Decision Authority
|
|
69
|
+
|
|
70
|
+
- Architecture decisions (service boundaries, patterns, data models)
|
|
71
|
+
- Plan approval: **explicit gate** — Execute không bắt đầu khi chưa có TL approve
|
|
72
|
+
- A/B testing resolution: TL chọn approach khi hai approaches không rõ ưu/nhược
|
|
73
|
+
- Technical debt acknowledgment: quyết định "acceptable" hay "must fix"
|
|
74
|
+
|
|
75
|
+
### Architecture Review Checklist
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
[ ] Approach consistent với codebase patterns?
|
|
79
|
+
[ ] Scalability implications acceptable?
|
|
80
|
+
[ ] Security design đúng?
|
|
81
|
+
[ ] API contract backward compatible (hoặc migration plan có)?
|
|
82
|
+
[ ] Subtask breakdown hợp lý? Dependencies đúng?
|
|
83
|
+
[ ] Risks identified và có mitigation?
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### TL không có?
|
|
87
|
+
|
|
88
|
+
- Plan vẫn proceed nhưng developer self-review architecture decisions
|
|
89
|
+
- Ghi rõ trong plan: "Architecture decision by dev (no TL review)"
|
|
90
|
+
- Architecture decisions nên bảo thủ hơn khi không có TL
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Business Analyst (`ba`)
|
|
95
|
+
|
|
96
|
+
**Trách nhiệm chính**: Requirements clarity, user stories, acceptance criteria
|
|
97
|
+
|
|
98
|
+
### Phases BA Owns
|
|
99
|
+
|
|
100
|
+
| Phase | Responsibility |
|
|
101
|
+
|-------|---------------|
|
|
102
|
+
| Initialize | Requirements gathering, user stories |
|
|
103
|
+
| Plan | Review subtask acceptance criteria |
|
|
104
|
+
| Verify | Acceptance criteria verification |
|
|
105
|
+
|
|
106
|
+
### Decision Authority
|
|
107
|
+
|
|
108
|
+
- Requirements sign-off: "dev builds the right thing"
|
|
109
|
+
- Scope boundary: in-scope vs out-of-scope
|
|
110
|
+
- Acceptance criteria: testable, specific, agreed
|
|
111
|
+
|
|
112
|
+
### Requirements Output Format
|
|
113
|
+
|
|
114
|
+
```markdown
|
|
115
|
+
## User Story
|
|
116
|
+
As a [role], I want [goal] so that [benefit].
|
|
117
|
+
|
|
118
|
+
## Acceptance Criteria
|
|
119
|
+
Given [precondition]
|
|
120
|
+
When [action]
|
|
121
|
+
Then [outcome]
|
|
122
|
+
|
|
123
|
+
## Out of Scope
|
|
124
|
+
- [explicitly excluded items]
|
|
125
|
+
|
|
126
|
+
## Edge Cases to Handle
|
|
127
|
+
- [edge case 1]
|
|
128
|
+
- [edge case 2]
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### BA không có?
|
|
132
|
+
|
|
133
|
+
- Developer writes requirements từ conversation với stakeholder
|
|
134
|
+
- Requirements review là developer + TL (không có independent BA)
|
|
135
|
+
- Risk cao hơn về misunderstood requirements — tăng frequency of check-ins
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## QC Engineer (`qc`)
|
|
140
|
+
|
|
141
|
+
**Trách nhiệm chính**: Test planning, independent quality verification
|
|
142
|
+
|
|
143
|
+
### Phases QC Owns
|
|
144
|
+
|
|
145
|
+
| Phase | Responsibility |
|
|
146
|
+
|-------|---------------|
|
|
147
|
+
| Plan | Test plan tạo song song với dev plan |
|
|
148
|
+
| Verify | Execute test plan, Layer 4 sign-off |
|
|
149
|
+
|
|
150
|
+
### Decision Authority
|
|
151
|
+
|
|
152
|
+
- QA sign-off: **explicit gate** cho `thorough` depth — không thể self-approve
|
|
153
|
+
- Bug severity classification
|
|
154
|
+
- Regression scope: gì cần test lại sau change
|
|
155
|
+
|
|
156
|
+
### Test Plan Structure
|
|
157
|
+
|
|
158
|
+
```markdown
|
|
159
|
+
## Test Cases
|
|
160
|
+
### TC-1: [Test case name]
|
|
161
|
+
- **Given**: [precondition]
|
|
162
|
+
- **When**: [action]
|
|
163
|
+
- **Then**: [expected result]
|
|
164
|
+
- **Priority**: P1/P2/P3
|
|
165
|
+
|
|
166
|
+
## Regression Checklist
|
|
167
|
+
- [ ] [Feature 1 không bị ảnh hưởng]
|
|
168
|
+
- [ ] [Feature 2 không bị ảnh hưởng]
|
|
169
|
+
|
|
170
|
+
## Security Checklist (nếu applicable)
|
|
171
|
+
- [ ] Input validation
|
|
172
|
+
- [ ] Auth/authz checks
|
|
173
|
+
- [ ] No data exposure
|
|
174
|
+
|
|
175
|
+
## Performance Checklist (nếu applicable)
|
|
176
|
+
- [ ] Response time acceptable
|
|
177
|
+
- [ ] No N+1 queries introduced
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### QC không có?
|
|
181
|
+
|
|
182
|
+
- Developer tự execute test plan (nếu có) hoặc manual verification
|
|
183
|
+
- Layer 4 QA sign-off skip — nhưng automated gates (Layer 4a) vẫn chạy
|
|
184
|
+
- Risk cao hơn về undiscovered bugs
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Product Manager (`pm`)
|
|
189
|
+
|
|
190
|
+
**Trách nhiệm chính**: Progress visibility, metrics, sprint planning
|
|
191
|
+
|
|
192
|
+
### Phases PM Owns
|
|
193
|
+
|
|
194
|
+
| Phase | Responsibility |
|
|
195
|
+
|-------|---------------|
|
|
196
|
+
| Initialize | Sprint planning, priority |
|
|
197
|
+
| Close | Sprint review, velocity tracking |
|
|
198
|
+
| Standalone: Reports | Dashboard generation |
|
|
199
|
+
|
|
200
|
+
### PM View
|
|
201
|
+
|
|
202
|
+
PM không cần đọc code — PM đọc:
|
|
203
|
+
- Progress files (status per subtask)
|
|
204
|
+
- Dashboard reports (velocity, metrics)
|
|
205
|
+
- Sprint review summaries
|
|
206
|
+
|
|
207
|
+
### Dashboard Metrics
|
|
208
|
+
|
|
209
|
+
| Metric | Source | Update frequency |
|
|
210
|
+
|--------|--------|-----------------|
|
|
211
|
+
| Tasks: done/in-progress/blocked | Progress files | Real-time |
|
|
212
|
+
| Velocity | Closed tasks per sprint | Per sprint |
|
|
213
|
+
| Estimate accuracy | Estimate vs actual | Per task |
|
|
214
|
+
| DORA: deployment frequency | Git history | Per release |
|
|
215
|
+
| DORA: lead time | Task start → deploy | Per release |
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Multi-Role Workflow
|
|
220
|
+
|
|
221
|
+
Full team workflow (tất cả roles):
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
BA: /dw:requirements → requirements doc + user stories
|
|
225
|
+
↓
|
|
226
|
+
TL: /dw:arch-review → architecture decision + approve
|
|
227
|
+
↓
|
|
228
|
+
Dev: /dw:task-init → task docs
|
|
229
|
+
Dev: /dw:research → codebase analysis
|
|
230
|
+
Dev+QC: /dw:plan → dev plan + test plan (parallel)
|
|
231
|
+
↓
|
|
232
|
+
TL approve plan
|
|
233
|
+
↓
|
|
234
|
+
Dev: /dw:execute → TDD implementation, commits
|
|
235
|
+
↓
|
|
236
|
+
TL: /dw:review → architecture + code review
|
|
237
|
+
↓
|
|
238
|
+
QC: manual/auto testing → Layer 4 verification
|
|
239
|
+
↓
|
|
240
|
+
Dev: /dw:commit → pre-commit gates
|
|
241
|
+
↓
|
|
242
|
+
PM: /dw:dashboard → visibility, metrics
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Không phải mọi task cần full chain. `default_depth` + available roles quyết định.
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Role-Depth Matrix
|
|
250
|
+
|
|
251
|
+
| Role | Quick | Standard | Thorough |
|
|
252
|
+
|------|-------|----------|----------|
|
|
253
|
+
| dev | required | required | required |
|
|
254
|
+
| techlead | not needed | arch decisions only | full review + approval |
|
|
255
|
+
| ba | not needed | requirements check | full requirements |
|
|
256
|
+
| qc | not needed | not needed | full test plan + sign-off |
|
|
257
|
+
| pm | not needed | optional | dashboard |
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"updated": "2026-05-13",
|
|
4
|
+
"purpose": "Curated namespace patterns under ACTIVE incident — fallback for pre-install scan when OSV.dev is unavailable. Auto-expires per active_until date. TL updates when new incident requires fixture-level warning before OSV propagation.",
|
|
5
|
+
"namespaces": [
|
|
6
|
+
{
|
|
7
|
+
"pattern": "@tanstack/",
|
|
8
|
+
"reason": "Active incident 2026-05-11 — Mini Shai-Hulud worm (CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx). 84 malicious versions across 42 @tanstack/* packages published 2026-05-11 19:20-19:26 UTC. Worm self-propagated to 169+ packages.",
|
|
9
|
+
"advisory": "https://github.com/advisories/GHSA-g7cv-rxg3-hmpx",
|
|
10
|
+
"active_until": "2026-11-11",
|
|
11
|
+
"severity": "critical",
|
|
12
|
+
"guidance": "If installing @tanstack/* fresh: verify version is NOT in 1.169.5-1.169.8 range; prefer 1.169.9+. Check SLSA provenance attestation matches expected publisher. If already installed and lockfile pins 1.169.5-8: rotate ALL credentials (npm tokens, GitHub PATs, SSH keys, cloud keys, Claude/AI configs) before continuing."
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"pattern": "@uipath/",
|
|
16
|
+
"reason": "Worm spread vector from TanStack incident (2026-05-11) — 70+ @uipath/* packages compromised via stolen npm OIDC tokens.",
|
|
17
|
+
"advisory": "https://github.com/advisories/GHSA-g7cv-rxg3-hmpx",
|
|
18
|
+
"active_until": "2026-11-11",
|
|
19
|
+
"severity": "critical",
|
|
20
|
+
"guidance": "Verify each @uipath/* install against official UiPath release notes. Worm SLSA attestations are VALID — provenance check alone is insufficient. Cross-reference with UiPath security bulletin."
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"pattern": "@mistralai/",
|
|
24
|
+
"reason": "Worm spread vector (2026-05-11) — @mistralai/mistralai 2.2.3-2.2.4 compromised on both npm and PyPI.",
|
|
25
|
+
"advisory": "https://github.com/advisories/GHSA-g7cv-rxg3-hmpx",
|
|
26
|
+
"active_until": "2026-11-11",
|
|
27
|
+
"severity": "critical",
|
|
28
|
+
"guidance": "Avoid @mistralai/mistralai 2.2.3-2.2.4. Pin to 2.2.2 or 2.2.5+ once available."
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"pattern": "@opensearch-project/opensearch",
|
|
32
|
+
"reason": "Worm spread vector (2026-05-11) — @opensearch-project/opensearch 3.6.2 compromised (1.3M weekly downloads).",
|
|
33
|
+
"advisory": "https://github.com/advisories/GHSA-g7cv-rxg3-hmpx",
|
|
34
|
+
"active_until": "2026-11-11",
|
|
35
|
+
"severity": "critical",
|
|
36
|
+
"guidance": "Avoid version 3.6.2. Pin to 3.6.1 or 3.6.3+."
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"maintenance_note": "This fixture is a SHORT-TERM defensive measure. Per ADR-0005 design, OSV.dev/GHSA auto-sync is the primary source; this fixture handles offline + post-incident pre-propagation window. TL prunes entries past active_until on regular release cycles."
|
|
40
|
+
}
|
package/CLAUDE.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Workflow toolkit codebase. Rules live in `.claude/rules/` (auto-loaded).
|
|
4
4
|
|
|
5
5
|
**v2.0 direction:** Context-First SDLC Governance Layer (5 pillars — see `.dw/core/PILLARS.md`)
|
|
6
|
-
**Current:** v1.
|
|
6
|
+
**Current:** v1.3.5 (released 2026-05-12) · ADR-0001 active · ADR-0005 Accepted (Supply-Chain Guard, sunset review 2026-08-12) · v1.4 cuts pending telemetry
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -30,6 +30,8 @@ src/
|
|
|
30
30
|
tasks/ Active + archive/ (Bridges pillar — via tracking.md)
|
|
31
31
|
metrics/ Local telemetry (events.jsonl)
|
|
32
32
|
config/ dw.config.yml
|
|
33
|
+
security/ IoC namespace fixture (Guards pillar — ADR-0005)
|
|
34
|
+
research/ Investigation notes, RFC-style proposals, voter panel outputs
|
|
33
35
|
```
|
|
34
36
|
|
|
35
37
|
## Dev Notes
|
package/MIGRATION-v1.3.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Migration Guide — dw-kit v1.2.x → v1.3
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
**
|
|
5
|
-
**Status:**
|
|
3
|
+
**Current version:** 1.3.4
|
|
4
|
+
**Patch chain:** 1.3.0 → 1.3.1 (task-init + retroactive emit v2) → 1.3.2 (task-doc health metric) → 1.3.3 (writer skills v1/v2 compat + docs cleanup) → 1.3.4 (/dw:plan Quick Debate)
|
|
5
|
+
**Status:** Shipped
|
|
6
6
|
|
|
7
7
|
This guide documents all user-visible changes in v1.3. v1.3 is **fully backward compatible** with v1.2.x — existing projects continue to work. New features are opt-in.
|
|
8
8
|
|
|
@@ -17,7 +17,8 @@ This guide documents all user-visible changes in v1.3. v1.3 is **fully backward
|
|
|
17
17
|
| ACTIVE index | `.dw/tasks/ACTIVE.md` auto-generated | New feature |
|
|
18
18
|
| Telemetry | Local-only metrics in `.dw/metrics/events.jsonl` | Opt-out via `DW_NO_TELEMETRY=1` |
|
|
19
19
|
| Solo preset | `dw init --preset solo` available | New option |
|
|
20
|
-
| Skill naming | `/dw-*`
|
|
20
|
+
| Skill naming | `/dw-*` renamed to `/dw:*` (verified working in Claude CLI) | **Breaking** — update custom prompts |
|
|
21
|
+
| `/dw:plan` debate | Quick Debate (red/blue self-critique) integrated — depth-driven | v1.3.4 opt-in for standard, default for thorough |
|
|
21
22
|
| Archive | 8 Done tasks moved to `.dw/tasks/archive/` in dw-kit repo itself | No user impact |
|
|
22
23
|
|
|
23
24
|
---
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> An AI development workflow toolkit for teams using agentic IDEs (Claude Code, Cursor) — from idea to review-ready commits.
|
|
4
4
|
|
|
5
|
-
**v1.3** · `npm install -g dw-kit` · [Docs](docs/README.md) · [Get started](docs/get-started.md) · [Cheatsheet](docs/cheatsheet.md) · [Migration v1.3](MIGRATION-v1.3.md) · [Changelog](CHANGELOG.md)
|
|
5
|
+
**v1.3.5** · `npm install -g dw-kit` · [Docs](docs/README.md) · [Get started](docs/get-started.md) · [Cheatsheet](docs/cheatsheet.md) · [Migration v1.3](MIGRATION-v1.3.md) · [Changelog](CHANGELOG.md)
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -36,10 +36,22 @@ It’s designed for collaboration (Dev / Tech Lead / QA / PM) and keeps work aud
|
|
|
36
36
|
|
|
37
37
|
## Release notes
|
|
38
38
|
|
|
39
|
-
- v1.
|
|
39
|
+
- **v1.3.5** (2026-05-12) — AI-Native Supply-Chain Guard: `dw security-scan` CLI + OSV.dev auto-sync + Edit-lockfile hook + scoped `.gitignore` for end-user projects. See [`CHANGELOG.md#v135--2026-05-12`](CHANGELOG.md#v135--2026-05-12) and [ADR-0005](.dw/decisions/0005-supply-chain-guard.md). Public 90-day sunset review committed for 2026-08-12.
|
|
40
|
+
- v1.3.4 (2026-04-21) — `/dw:plan` Quick Debate (red/blue self-critique), depth-driven activation
|
|
41
|
+
- v1.3.3 (2026-04-21) — Writer skills v1/v2 compatibility fix
|
|
42
|
+
- v1.3.0 (2026-04-21) — 5-pillar governance layer + telemetry foundation + ADRs + v2 task docs ([ADR-0001](.dw/decisions/0001-v2-pragmatic-lean.md))
|
|
43
|
+
- v1.2.0 (2026-04-09) — [`CHANGELOG.md#v120--2026-04-09`](CHANGELOG.md#v120--2026-04-09)
|
|
40
44
|
- Full changelog: `CHANGELOG.md`
|
|
41
45
|
- Latest release notes: [GitHub Releases](https://github.com/dv-workflow/dv-workflow/releases)
|
|
42
46
|
|
|
47
|
+
### What's in v1.3.5 for your team
|
|
48
|
+
|
|
49
|
+
- **`dw security-scan`** — scan for known supply-chain advisories against your project's `package-lock.json` (full match) or `package.json` (pre-install approximate). Uses [OSV.dev](https://osv.dev/) as data source (multi-maintainer upstream feed; no solo-curated bundle to go stale).
|
|
50
|
+
- **AI-aware hook** — fires when Claude Code edits a lockfile. Auto-wired by `dw init --preset team` or `--preset enterprise`; opt-in OFF for `--preset solo`.
|
|
51
|
+
- **Scoped `.gitignore`** — `dw init` and `dw upgrade` write `.dw/.gitignore` and `.claude/.gitignore` managed blocks. Framework files stay out of your repo; tasks/decisions/docs/config stay in.
|
|
52
|
+
- **`dw doctor`** has a new security section that fails loud if advisory snapshot is stale (>7 days) or schema-incompatible.
|
|
53
|
+
- **Sunset rule** — feature retires silently in v1.4.x if 90-day telemetry shows zero real catches OR >5% false-positive rate. Disciplined experiment, not panic ship.
|
|
54
|
+
|
|
43
55
|
---
|
|
44
56
|
|
|
45
57
|
## Install
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dw-kit",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.5",
|
|
4
4
|
"description": "AI development workflow toolkit — structured, quality-assured, team-ready. From requirements to dashboard.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
".dw/core/",
|
|
15
15
|
".dw/config/",
|
|
16
16
|
".dw/adapters/",
|
|
17
|
+
".dw/security/",
|
|
17
18
|
".claude/agents/",
|
|
18
19
|
".claude/hooks/",
|
|
19
20
|
".claude/rules/",
|