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.
- package/.claude/hooks/post-write.sh +64 -58
- package/.claude/hooks/pre-commit-gate.sh +96 -90
- package/.claude/hooks/privacy-block.sh +99 -94
- package/.claude/hooks/progress-ping.sh +53 -47
- package/.claude/hooks/safety-guard.sh +60 -54
- package/.claude/hooks/scout-block.sh +88 -82
- package/.claude/hooks/session-init.sh +91 -74
- package/.claude/hooks/stop-check.sh +88 -36
- package/.claude/hooks/telemetry-log.sh +34 -0
- package/.claude/rules/code-style.md +37 -37
- package/.claude/rules/commit-standards.md +37 -37
- package/.claude/rules/dw.md +136 -0
- package/.claude/settings.json +120 -99
- package/.claude/skills/dw-arch-review/SKILL.md +119 -119
- package/.claude/skills/dw-archive/SKILL.md +81 -81
- package/.claude/skills/dw-commit/SKILL.md +81 -81
- package/.claude/skills/dw-config-init/SKILL.md +91 -91
- package/.claude/skills/dw-config-validate/SKILL.md +75 -75
- package/.claude/skills/dw-dashboard/SKILL.md +209 -209
- package/.claude/skills/dw-debug/SKILL.md +97 -97
- package/.claude/skills/dw-decision/SKILL.md +116 -0
- package/.claude/skills/dw-docs-update/SKILL.md +125 -125
- package/.claude/skills/dw-estimate/SKILL.md +90 -90
- package/.claude/skills/dw-execute/SKILL.md +98 -98
- package/.claude/skills/dw-flow/SKILL.md +274 -274
- package/.claude/skills/dw-handoff/SKILL.md +81 -81
- package/.claude/skills/dw-kit-report/SKILL.md +152 -152
- package/.claude/skills/dw-log-work/SKILL.md +69 -69
- package/.claude/skills/dw-onboard/SKILL.md +201 -201
- package/.claude/skills/dw-plan/SKILL.md +125 -125
- package/.claude/skills/dw-prompt/SKILL.md +62 -62
- package/.claude/skills/dw-requirements/SKILL.md +98 -98
- package/.claude/skills/dw-research/SKILL.md +114 -114
- package/.claude/skills/dw-retroactive/SKILL.md +311 -311
- package/.claude/skills/dw-review/SKILL.md +66 -66
- package/.claude/skills/dw-rollback/SKILL.md +90 -90
- package/.claude/skills/dw-sprint-review/SKILL.md +99 -99
- package/.claude/skills/dw-task-init/SKILL.md +59 -59
- package/.claude/skills/dw-test-plan/SKILL.md +113 -113
- package/.claude/skills/dw-thinking/SKILL.md +70 -70
- package/.claude/skills/dw-upgrade/SKILL.md +72 -72
- package/.dw/config/dw.config.yml +82 -82
- package/.dw/core/PILLARS.md +122 -0
- package/.dw/core/templates/v2/spec.md +68 -0
- package/.dw/core/templates/v2/tracking.md +62 -0
- package/.dw/core/v14-evaluation-protocol.md +118 -0
- package/CLAUDE.md +42 -39
- package/MIGRATION-v1.3.md +201 -0
- package/README.md +43 -6
- package/package.json +86 -84
- package/src/cli.mjs +45 -9
- package/src/commands/dashboard.mjs +116 -0
- package/src/commands/doctor.mjs +165 -149
- package/src/commands/init.mjs +339 -332
- package/src/commands/metrics.mjs +165 -0
- package/src/commands/upgrade.mjs +297 -262
- package/src/lib/active-index.mjs +87 -0
- package/src/lib/copy.mjs +118 -110
- package/src/lib/cut-analysis.mjs +161 -0
- package/src/lib/telemetry.mjs +80 -0
- package/.claude/rules/dw-core.md +0 -100
- package/.claude/rules/dw-skills.md +0 -53
- package/.claude/rules/workflow-rules.md +0 -77
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dw
|
|
3
|
-
description: "QC skill: Tạo test plan cho feature/task. Bao gồm test cases, edge cases, regression checklist. Dùng sau khi plan được approve."
|
|
4
|
-
argument-hint: "[task-name | feature-name]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Glob
|
|
9
|
-
- Grep
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Tạo Test Plan
|
|
13
|
-
|
|
14
|
-
Feature/Task: **$ARGUMENTS**
|
|
15
|
-
|
|
16
|
-
## Đọc Config
|
|
17
|
-
|
|
18
|
-
Đọc `.dw/config/dw.config.yml` → `paths.tasks`, `workflow.default_depth`.
|
|
19
|
-
Skill này dành cho depth: `standard` hoặc `thorough` (QC role).
|
|
20
|
-
|
|
21
|
-
## Đọc Tài Liệu Liên Quan
|
|
22
|
-
|
|
23
|
-
1. Đọc requirements: `{paths.tasks}/$ARGUMENTS/$ARGUMENTS-requirements.md` (nếu có)
|
|
24
|
-
2. Đọc plan: `{paths.tasks}/$ARGUMENTS/$ARGUMENTS-plan.md`
|
|
25
|
-
3. Đọc context: `{paths.tasks}/$ARGUMENTS/$ARGUMENTS-context.md`
|
|
26
|
-
|
|
27
|
-
## Tạo Test Plan
|
|
28
|
-
|
|
29
|
-
Ghi ra `{paths.tasks}/$ARGUMENTS/$ARGUMENTS-test-plan.md`:
|
|
30
|
-
|
|
31
|
-
```markdown
|
|
32
|
-
# Test Plan: [Feature/Task Name]
|
|
33
|
-
|
|
34
|
-
## Ngày: [date] | QC: [name] | Status: Draft
|
|
35
|
-
|
|
36
|
-
## Scope
|
|
37
|
-
**In scope**: [Những gì sẽ được test]
|
|
38
|
-
**Out of scope**: [Những gì KHÔNG test]
|
|
39
|
-
**Test environment**: [dev / staging]
|
|
40
|
-
|
|
41
|
-
## Test Strategy
|
|
42
|
-
- [ ] Unit testing (dev responsibility)
|
|
43
|
-
- [ ] Integration testing
|
|
44
|
-
- [ ] Manual functional testing (QC)
|
|
45
|
-
- [ ] Regression testing
|
|
46
|
-
- [ ] Performance testing (nếu cần)
|
|
47
|
-
- [ ] Security testing (nếu cần)
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Test Cases
|
|
52
|
-
|
|
53
|
-
### TC-001: [Happy Path - Tên mô tả]
|
|
54
|
-
- **Preconditions**: [Điều kiện trước]
|
|
55
|
-
- **Steps**:
|
|
56
|
-
1. [Bước 1]
|
|
57
|
-
2. [Bước 2]
|
|
58
|
-
- **Expected Result**: [Kết quả mong đợi]
|
|
59
|
-
- **Priority**: P1 Critical / P2 High / P3 Medium / P4 Low
|
|
60
|
-
- **Status**: Not Run / Pass / Fail / Blocked
|
|
61
|
-
|
|
62
|
-
### TC-002: [Edge Case]
|
|
63
|
-
...
|
|
64
|
-
|
|
65
|
-
### TC-00N: [Negative Test]
|
|
66
|
-
...
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Regression Checklist
|
|
71
|
-
|
|
72
|
-
Các tính năng hiện có có thể bị ảnh hưởng bởi thay đổi này:
|
|
73
|
-
- [ ] [Feature A] — Test: [quick test steps]
|
|
74
|
-
- [ ] [Feature B]
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Performance Criteria (nếu applicable)
|
|
79
|
-
| Metric | Target | Actual |
|
|
80
|
-
|--------|--------|--------|
|
|
81
|
-
| Page load | < 2s | |
|
|
82
|
-
| API response | < 500ms | |
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Bug Report Template
|
|
87
|
-
|
|
88
|
-
```markdown
|
|
89
|
-
**Bug**: [Tiêu đề ngắn gọn]
|
|
90
|
-
**Severity**: Critical / High / Medium / Low
|
|
91
|
-
**Steps to Reproduce**:
|
|
92
|
-
1.
|
|
93
|
-
**Expected**:
|
|
94
|
-
**Actual**:
|
|
95
|
-
**Environment**: [OS, Browser, Version]
|
|
96
|
-
**Screenshot**: [đính kèm]
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
## Sign-off Criteria
|
|
102
|
-
- [ ] Tất cả P1 test cases PASS
|
|
103
|
-
- [ ] Không có open Critical/High bugs
|
|
104
|
-
- [ ] Regression checklist clear
|
|
105
|
-
- [ ] Performance criteria met
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
## Thông Báo
|
|
109
|
-
|
|
110
|
-
Sau khi tạo:
|
|
111
|
-
- "Test plan sẵn sàng: [path]"
|
|
112
|
-
- Gợi ý cho dev: "Review test cases để đảm bảo unit tests cover các scenarios này"
|
|
113
|
-
- Gợi ý cho TL: "Review có cần thêm test cases nào không"
|
|
1
|
+
---
|
|
2
|
+
name: dw:test-plan
|
|
3
|
+
description: "QC skill: Tạo test plan cho feature/task. Bao gồm test cases, edge cases, regression checklist. Dùng sau khi plan được approve."
|
|
4
|
+
argument-hint: "[task-name | feature-name]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Glob
|
|
9
|
+
- Grep
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Tạo Test Plan
|
|
13
|
+
|
|
14
|
+
Feature/Task: **$ARGUMENTS**
|
|
15
|
+
|
|
16
|
+
## Đọc Config
|
|
17
|
+
|
|
18
|
+
Đọc `.dw/config/dw.config.yml` → `paths.tasks`, `workflow.default_depth`.
|
|
19
|
+
Skill này dành cho depth: `standard` hoặc `thorough` (QC role).
|
|
20
|
+
|
|
21
|
+
## Đọc Tài Liệu Liên Quan
|
|
22
|
+
|
|
23
|
+
1. Đọc requirements: `{paths.tasks}/$ARGUMENTS/$ARGUMENTS-requirements.md` (nếu có)
|
|
24
|
+
2. Đọc plan: `{paths.tasks}/$ARGUMENTS/$ARGUMENTS-plan.md`
|
|
25
|
+
3. Đọc context: `{paths.tasks}/$ARGUMENTS/$ARGUMENTS-context.md`
|
|
26
|
+
|
|
27
|
+
## Tạo Test Plan
|
|
28
|
+
|
|
29
|
+
Ghi ra `{paths.tasks}/$ARGUMENTS/$ARGUMENTS-test-plan.md`:
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
# Test Plan: [Feature/Task Name]
|
|
33
|
+
|
|
34
|
+
## Ngày: [date] | QC: [name] | Status: Draft
|
|
35
|
+
|
|
36
|
+
## Scope
|
|
37
|
+
**In scope**: [Những gì sẽ được test]
|
|
38
|
+
**Out of scope**: [Những gì KHÔNG test]
|
|
39
|
+
**Test environment**: [dev / staging]
|
|
40
|
+
|
|
41
|
+
## Test Strategy
|
|
42
|
+
- [ ] Unit testing (dev responsibility)
|
|
43
|
+
- [ ] Integration testing
|
|
44
|
+
- [ ] Manual functional testing (QC)
|
|
45
|
+
- [ ] Regression testing
|
|
46
|
+
- [ ] Performance testing (nếu cần)
|
|
47
|
+
- [ ] Security testing (nếu cần)
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Test Cases
|
|
52
|
+
|
|
53
|
+
### TC-001: [Happy Path - Tên mô tả]
|
|
54
|
+
- **Preconditions**: [Điều kiện trước]
|
|
55
|
+
- **Steps**:
|
|
56
|
+
1. [Bước 1]
|
|
57
|
+
2. [Bước 2]
|
|
58
|
+
- **Expected Result**: [Kết quả mong đợi]
|
|
59
|
+
- **Priority**: P1 Critical / P2 High / P3 Medium / P4 Low
|
|
60
|
+
- **Status**: Not Run / Pass / Fail / Blocked
|
|
61
|
+
|
|
62
|
+
### TC-002: [Edge Case]
|
|
63
|
+
...
|
|
64
|
+
|
|
65
|
+
### TC-00N: [Negative Test]
|
|
66
|
+
...
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Regression Checklist
|
|
71
|
+
|
|
72
|
+
Các tính năng hiện có có thể bị ảnh hưởng bởi thay đổi này:
|
|
73
|
+
- [ ] [Feature A] — Test: [quick test steps]
|
|
74
|
+
- [ ] [Feature B]
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Performance Criteria (nếu applicable)
|
|
79
|
+
| Metric | Target | Actual |
|
|
80
|
+
|--------|--------|--------|
|
|
81
|
+
| Page load | < 2s | |
|
|
82
|
+
| API response | < 500ms | |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Bug Report Template
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
**Bug**: [Tiêu đề ngắn gọn]
|
|
90
|
+
**Severity**: Critical / High / Medium / Low
|
|
91
|
+
**Steps to Reproduce**:
|
|
92
|
+
1.
|
|
93
|
+
**Expected**:
|
|
94
|
+
**Actual**:
|
|
95
|
+
**Environment**: [OS, Browser, Version]
|
|
96
|
+
**Screenshot**: [đính kèm]
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Sign-off Criteria
|
|
102
|
+
- [ ] Tất cả P1 test cases PASS
|
|
103
|
+
- [ ] Không có open Critical/High bugs
|
|
104
|
+
- [ ] Regression checklist clear
|
|
105
|
+
- [ ] Performance criteria met
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Thông Báo
|
|
109
|
+
|
|
110
|
+
Sau khi tạo:
|
|
111
|
+
- "Test plan sẵn sàng: [path]"
|
|
112
|
+
- Gợi ý cho dev: "Review test cases để đảm bảo unit tests cover các scenarios này"
|
|
113
|
+
- Gợi ý cho TL: "Review có cần thêm test cases nào không"
|
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dw
|
|
3
|
-
description: "Áp dụng framework tư duy phản biện, hệ thống và đa góc nhìn vào vấn đề. Auto-load khi planning hoặc khi cần phân tích sâu. Dùng proactively."
|
|
4
|
-
argument-hint: "[vấn đề cần phân tích]"
|
|
5
|
-
user-invocable: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Framework Tư Duy — Áp Dụng Vào Task
|
|
9
|
-
|
|
10
|
-
Vấn đề: **$ARGUMENTS**
|
|
11
|
-
|
|
12
|
-
## Nạp Framework
|
|
13
|
-
|
|
14
|
-
@THINKING.md
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Áp Dụng Vào Task Hiện Tại
|
|
19
|
-
|
|
20
|
-
Sau khi đọc framework trên, áp dụng vào vấn đề `$ARGUMENTS`:
|
|
21
|
-
|
|
22
|
-
### 1. Tư Duy Phản Biện
|
|
23
|
-
|
|
24
|
-
**Giả định đang dùng:**
|
|
25
|
-
- [ ] [Giả định 1] — Cách kiểm chứng: ...
|
|
26
|
-
- [ ] [Giả định 2]
|
|
27
|
-
|
|
28
|
-
**Rủi ro chính (top 3):**
|
|
29
|
-
1. [Rủi ro] — Xác suất: Cao/TB/Thấp — Tác động: ...
|
|
30
|
-
2. ...
|
|
31
|
-
3. ...
|
|
32
|
-
|
|
33
|
-
**Phương án thay thế đã loại:**
|
|
34
|
-
- [Phương án A] — Loại vì: ...
|
|
35
|
-
|
|
36
|
-
**Edge cases cần xử lý:**
|
|
37
|
-
- [ ] [Edge case 1]
|
|
38
|
-
|
|
39
|
-
### 2. Tư Duy Hệ Thống
|
|
40
|
-
|
|
41
|
-
**Dependencies:**
|
|
42
|
-
- Upstream: [ai/module gì phụ thuộc vào]
|
|
43
|
-
- Downstream: [bị ảnh hưởng bởi thay đổi này]
|
|
44
|
-
|
|
45
|
-
**Tác động cascade:**
|
|
46
|
-
- Nếu thay đổi X → Y bị ảnh hưởng → Z cần cập nhật
|
|
47
|
-
|
|
48
|
-
**Failure modes:**
|
|
49
|
-
- [Nếu phần A fail → hệ thống phản ứng thế nào]
|
|
50
|
-
|
|
51
|
-
### 3. Đa Góc Nhìn
|
|
52
|
-
|
|
53
|
-
| Góc nhìn | Câu hỏi | Đánh giá |
|
|
54
|
-
|----------|---------|----------|
|
|
55
|
-
| User | [Ảnh hưởng UX?] | [OK / Concern] |
|
|
56
|
-
| Developer | [Maintainable?] | |
|
|
57
|
-
| Security | [Expose gì?] | |
|
|
58
|
-
| Ops | [Deploy issues?] | |
|
|
59
|
-
| Business | [Giá trị delivered?] | |
|
|
60
|
-
|
|
61
|
-
### 4. Kết Luận
|
|
62
|
-
|
|
63
|
-
**Quyết định:**
|
|
64
|
-
[Approach được chọn và lý do]
|
|
65
|
-
|
|
66
|
-
**Trade-offs chấp nhận:**
|
|
67
|
-
[Điểm yếu nào của approach này được chấp nhận]
|
|
68
|
-
|
|
69
|
-
**Điểm cần monitor:**
|
|
70
|
-
[Theo dõi gì sau khi implement]
|
|
1
|
+
---
|
|
2
|
+
name: dw:thinking
|
|
3
|
+
description: "Áp dụng framework tư duy phản biện, hệ thống và đa góc nhìn vào vấn đề. Auto-load khi planning hoặc khi cần phân tích sâu. Dùng proactively."
|
|
4
|
+
argument-hint: "[vấn đề cần phân tích]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Framework Tư Duy — Áp Dụng Vào Task
|
|
9
|
+
|
|
10
|
+
Vấn đề: **$ARGUMENTS**
|
|
11
|
+
|
|
12
|
+
## Nạp Framework
|
|
13
|
+
|
|
14
|
+
@THINKING.md
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Áp Dụng Vào Task Hiện Tại
|
|
19
|
+
|
|
20
|
+
Sau khi đọc framework trên, áp dụng vào vấn đề `$ARGUMENTS`:
|
|
21
|
+
|
|
22
|
+
### 1. Tư Duy Phản Biện
|
|
23
|
+
|
|
24
|
+
**Giả định đang dùng:**
|
|
25
|
+
- [ ] [Giả định 1] — Cách kiểm chứng: ...
|
|
26
|
+
- [ ] [Giả định 2]
|
|
27
|
+
|
|
28
|
+
**Rủi ro chính (top 3):**
|
|
29
|
+
1. [Rủi ro] — Xác suất: Cao/TB/Thấp — Tác động: ...
|
|
30
|
+
2. ...
|
|
31
|
+
3. ...
|
|
32
|
+
|
|
33
|
+
**Phương án thay thế đã loại:**
|
|
34
|
+
- [Phương án A] — Loại vì: ...
|
|
35
|
+
|
|
36
|
+
**Edge cases cần xử lý:**
|
|
37
|
+
- [ ] [Edge case 1]
|
|
38
|
+
|
|
39
|
+
### 2. Tư Duy Hệ Thống
|
|
40
|
+
|
|
41
|
+
**Dependencies:**
|
|
42
|
+
- Upstream: [ai/module gì phụ thuộc vào]
|
|
43
|
+
- Downstream: [bị ảnh hưởng bởi thay đổi này]
|
|
44
|
+
|
|
45
|
+
**Tác động cascade:**
|
|
46
|
+
- Nếu thay đổi X → Y bị ảnh hưởng → Z cần cập nhật
|
|
47
|
+
|
|
48
|
+
**Failure modes:**
|
|
49
|
+
- [Nếu phần A fail → hệ thống phản ứng thế nào]
|
|
50
|
+
|
|
51
|
+
### 3. Đa Góc Nhìn
|
|
52
|
+
|
|
53
|
+
| Góc nhìn | Câu hỏi | Đánh giá |
|
|
54
|
+
|----------|---------|----------|
|
|
55
|
+
| User | [Ảnh hưởng UX?] | [OK / Concern] |
|
|
56
|
+
| Developer | [Maintainable?] | |
|
|
57
|
+
| Security | [Expose gì?] | |
|
|
58
|
+
| Ops | [Deploy issues?] | |
|
|
59
|
+
| Business | [Giá trị delivered?] | |
|
|
60
|
+
|
|
61
|
+
### 4. Kết Luận
|
|
62
|
+
|
|
63
|
+
**Quyết định:**
|
|
64
|
+
[Approach được chọn và lý do]
|
|
65
|
+
|
|
66
|
+
**Trade-offs chấp nhận:**
|
|
67
|
+
[Điểm yếu nào của approach này được chấp nhận]
|
|
68
|
+
|
|
69
|
+
**Điểm cần monitor:**
|
|
70
|
+
[Theo dõi gì sau khi implement]
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dw
|
|
3
|
-
description: "Upgrade dv-workflow-kit lên version mới. So sánh toolkit files, báo cáo thay đổi, cho phép selective update mà không overwrite customizations."
|
|
4
|
-
argument-hint: ""
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Upgrade dv-workflow-kit
|
|
8
|
-
|
|
9
|
-
## Điều Kiện tiên quyết
|
|
10
|
-
|
|
11
|
-
Toolkit được cài theo luồng chuẩn v1 trong project hiện tại (thường là `npm install -g dw-kit` + `dw init`).
|
|
12
|
-
Các tùy chỉnh của team được đặt tại:
|
|
13
|
-
- overrides: `.dw/adapters/claude-cli/overrides/`
|
|
14
|
-
- extensions (skills mới): `.dw/adapters/claude-cli/extensions/`
|
|
15
|
-
|
|
16
|
-
## Bước 1: Preview upgrade (khuyến nghị)
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
dw upgrade --check
|
|
20
|
-
dw upgrade --dry-run
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Bước 2: Backup config (tùy chọn nhưng nên làm)
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
cp .dw/config/dw.config.yml .dw/config/dw.config.yml.backup-$(date +%Y%m%d)
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Bước 3: Chạy upgrade
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
dw upgrade
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
`dw upgrade` sẽ update toolkit files theo version mới và **tôn trọng overrides** của team (không ghi đè override).
|
|
36
|
-
|
|
37
|
-
## Bước 4: Validate & health check
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
dw validate
|
|
41
|
-
dw doctor
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Bước 5: Báo cáo kết quả
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
=== Upgrade Report ===
|
|
48
|
-
|
|
49
|
-
Từ: [old version/commit]
|
|
50
|
-
Đến: [new version/commit]
|
|
51
|
-
|
|
52
|
-
Files mới (đã copy):
|
|
53
|
-
+ .claude/skills/dw-[new-skill]/SKILL.md
|
|
54
|
-
+ .claude/templates/en/task-context.md
|
|
55
|
-
|
|
56
|
-
Files đã thay đổi trong toolkit (KHÔNG tự động update vì bạn có thể đã customize):
|
|
57
|
-
~ .claude/skills/dw-task-init/SKILL.md — xem diff: git diff .claude/skills/dw-task-init/SKILL.md
|
|
58
|
-
~ .claude/agents/planner.md
|
|
59
|
-
|
|
60
|
-
Files của bạn (giữ nguyên):
|
|
61
|
-
= .dw/config/dw.config.yml (backup tại .backup-[date])
|
|
62
|
-
|
|
63
|
-
Lưu ý:
|
|
64
|
-
- Review các files "đã thay đổi" và merge thủ công nếu cần
|
|
65
|
-
- Xem CHANGELOG của release (nếu cần) để biết breaking changes
|
|
66
|
-
- Chạy /dw
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## Cleanup backup (tùy chọn)
|
|
70
|
-
|
|
71
|
-
Hỏi user: "Bạn có muốn xóa file backup config không? (y/n)"
|
|
72
|
-
Nếu y: `rm .dw/config/dw.config.yml.backup-*`
|
|
1
|
+
---
|
|
2
|
+
name: dw:upgrade
|
|
3
|
+
description: "Upgrade dv-workflow-kit lên version mới. So sánh toolkit files, báo cáo thay đổi, cho phép selective update mà không overwrite customizations."
|
|
4
|
+
argument-hint: ""
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Upgrade dv-workflow-kit
|
|
8
|
+
|
|
9
|
+
## Điều Kiện tiên quyết
|
|
10
|
+
|
|
11
|
+
Toolkit được cài theo luồng chuẩn v1 trong project hiện tại (thường là `npm install -g dw-kit` + `dw init`).
|
|
12
|
+
Các tùy chỉnh của team được đặt tại:
|
|
13
|
+
- overrides: `.dw/adapters/claude-cli/overrides/`
|
|
14
|
+
- extensions (skills mới): `.dw/adapters/claude-cli/extensions/`
|
|
15
|
+
|
|
16
|
+
## Bước 1: Preview upgrade (khuyến nghị)
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
dw upgrade --check
|
|
20
|
+
dw upgrade --dry-run
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Bước 2: Backup config (tùy chọn nhưng nên làm)
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
cp .dw/config/dw.config.yml .dw/config/dw.config.yml.backup-$(date +%Y%m%d)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Bước 3: Chạy upgrade
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
dw upgrade
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`dw upgrade` sẽ update toolkit files theo version mới và **tôn trọng overrides** của team (không ghi đè override).
|
|
36
|
+
|
|
37
|
+
## Bước 4: Validate & health check
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
dw validate
|
|
41
|
+
dw doctor
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Bước 5: Báo cáo kết quả
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
=== Upgrade Report ===
|
|
48
|
+
|
|
49
|
+
Từ: [old version/commit]
|
|
50
|
+
Đến: [new version/commit]
|
|
51
|
+
|
|
52
|
+
Files mới (đã copy):
|
|
53
|
+
+ .claude/skills/dw-[new-skill]/SKILL.md
|
|
54
|
+
+ .claude/templates/en/task-context.md
|
|
55
|
+
|
|
56
|
+
Files đã thay đổi trong toolkit (KHÔNG tự động update vì bạn có thể đã customize):
|
|
57
|
+
~ .claude/skills/dw-task-init/SKILL.md — xem diff: git diff .claude/skills/dw-task-init/SKILL.md
|
|
58
|
+
~ .claude/agents/planner.md
|
|
59
|
+
|
|
60
|
+
Files của bạn (giữ nguyên):
|
|
61
|
+
= .dw/config/dw.config.yml (backup tại .backup-[date])
|
|
62
|
+
|
|
63
|
+
Lưu ý:
|
|
64
|
+
- Review các files "đã thay đổi" và merge thủ công nếu cần
|
|
65
|
+
- Xem CHANGELOG của release (nếu cần) để biết breaking changes
|
|
66
|
+
- Chạy /dw:config-validate sau khi upgrade để kiểm tra config
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Cleanup backup (tùy chọn)
|
|
70
|
+
|
|
71
|
+
Hỏi user: "Bạn có muốn xóa file backup config không? (y/n)"
|
|
72
|
+
Nếu y: `rm .dw/config/dw.config.yml.backup-*`
|
package/.dw/config/dw.config.yml
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
# ============================================================================
|
|
2
|
-
# dw-kit Configuration — v1
|
|
3
|
-
# ============================================================================
|
|
4
|
-
# Copy file này vào project và tùy chỉnh theo nhu cầu.
|
|
5
|
-
# Toolkit đọc file này để điều chỉnh behavior per project.
|
|
6
|
-
# ============================================================================
|
|
7
|
-
|
|
8
|
-
# --- Project Info -----------------------------------------------------------
|
|
9
|
-
project:
|
|
10
|
-
name: "my-project"
|
|
11
|
-
language: "vi" # vi | en
|
|
12
|
-
|
|
13
|
-
# --- Workflow ----------------------------------------------------------------
|
|
14
|
-
workflow:
|
|
15
|
-
default_depth: "standard" # quick | standard | thorough
|
|
16
|
-
# AI assesses per-task và có thể recommend depth khác nhau:
|
|
17
|
-
# quick : ≤2 files, hotfix, familiar module
|
|
18
|
-
# standard : 3-5 files, module mới, unfamiliar code
|
|
19
|
-
# thorough : 6+ files, API contract changes, DB schema, security
|
|
20
|
-
|
|
21
|
-
# --- Team -------------------------------------------------------------------
|
|
22
|
-
team:
|
|
23
|
-
roles:
|
|
24
|
-
- dev # luôn có
|
|
25
|
-
- techlead # architecture review, plan approval
|
|
26
|
-
# - ba # requirements, user stories
|
|
27
|
-
# - qc # test plans, QA sign-off
|
|
28
|
-
# - pm # dashboard, reports
|
|
29
|
-
|
|
30
|
-
# --- Quality Gates ----------------------------------------------------------
|
|
31
|
-
quality:
|
|
32
|
-
test_command: "" # ví dụ: "npm test" | "pytest" | "go test ./..."
|
|
33
|
-
lint_command: "" # ví dụ: "npm run lint" | "ruff check ." | "golangci-lint run"
|
|
34
|
-
block_on_fail: false # true = block commit nếu test/lint fail
|
|
35
|
-
|
|
36
|
-
# --- Tracking ---------------------------------------------------------------
|
|
37
|
-
tracking:
|
|
38
|
-
estimation: false
|
|
39
|
-
log_work: false
|
|
40
|
-
estimation_unit: "hours" # hours | story-points | t-shirt
|
|
41
|
-
|
|
42
|
-
# --- Paths ------------------------------------------------------------------
|
|
43
|
-
paths:
|
|
44
|
-
tasks: ".dw/tasks"
|
|
45
|
-
docs: ".dw/docs"
|
|
46
|
-
|
|
47
|
-
# --- Claude Capabilities (Layer 2) ------------------------------------------
|
|
48
|
-
# Tính năng đặc thù của Claude Code.
|
|
49
|
-
claude:
|
|
50
|
-
# Model per phase — để trống = dùng model mặc định từ Claude Code settings
|
|
51
|
-
models:
|
|
52
|
-
plan: "" # ví dụ: "claude-opus-4-6" cho complex planning
|
|
53
|
-
execute: "" # ví dụ: "claude-sonnet-4-6"
|
|
54
|
-
review: ""
|
|
55
|
-
|
|
56
|
-
# Structured JSON output từ reviewer và estimate skills
|
|
57
|
-
structured_output: true
|
|
58
|
-
|
|
59
|
-
# Isolate execution trong git worktree (cho risky refactors)
|
|
60
|
-
worktree_execution: false
|
|
61
|
-
|
|
62
|
-
# MCP servers — Claude Code sẽ load các servers này
|
|
63
|
-
mcp: []
|
|
64
|
-
# Ví dụ:
|
|
65
|
-
# mcp:
|
|
66
|
-
# - name: "github"
|
|
67
|
-
# command: "npx @modelcontextprotocol/server-github"
|
|
68
|
-
# env:
|
|
69
|
-
# GITHUB_TOKEN: "${GITHUB_TOKEN}"
|
|
70
|
-
# - name: "jira"
|
|
71
|
-
# command: "npx @anthropic/mcp-server-jira"
|
|
72
|
-
# env:
|
|
73
|
-
# JIRA_URL: "${JIRA_URL}"
|
|
74
|
-
# JIRA_TOKEN: "${JIRA_TOKEN}"
|
|
75
|
-
|
|
76
|
-
# --- Toolkit Version (do not edit manually) ---------------------------------
|
|
77
|
-
_toolkit:
|
|
78
|
-
core_version: "1.
|
|
79
|
-
platform_version: "1.
|
|
80
|
-
capability_version: "1.0"
|
|
81
|
-
installed: "2026-03-23"
|
|
82
|
-
last_upgrade: "2026-
|
|
1
|
+
# ============================================================================
|
|
2
|
+
# dw-kit Configuration — v1
|
|
3
|
+
# ============================================================================
|
|
4
|
+
# Copy file này vào project và tùy chỉnh theo nhu cầu.
|
|
5
|
+
# Toolkit đọc file này để điều chỉnh behavior per project.
|
|
6
|
+
# ============================================================================
|
|
7
|
+
|
|
8
|
+
# --- Project Info -----------------------------------------------------------
|
|
9
|
+
project:
|
|
10
|
+
name: "my-project"
|
|
11
|
+
language: "vi" # vi | en
|
|
12
|
+
|
|
13
|
+
# --- Workflow ----------------------------------------------------------------
|
|
14
|
+
workflow:
|
|
15
|
+
default_depth: "standard" # quick | standard | thorough
|
|
16
|
+
# AI assesses per-task và có thể recommend depth khác nhau:
|
|
17
|
+
# quick : ≤2 files, hotfix, familiar module
|
|
18
|
+
# standard : 3-5 files, module mới, unfamiliar code
|
|
19
|
+
# thorough : 6+ files, API contract changes, DB schema, security
|
|
20
|
+
|
|
21
|
+
# --- Team -------------------------------------------------------------------
|
|
22
|
+
team:
|
|
23
|
+
roles:
|
|
24
|
+
- dev # luôn có
|
|
25
|
+
- techlead # architecture review, plan approval
|
|
26
|
+
# - ba # requirements, user stories
|
|
27
|
+
# - qc # test plans, QA sign-off
|
|
28
|
+
# - pm # dashboard, reports
|
|
29
|
+
|
|
30
|
+
# --- Quality Gates ----------------------------------------------------------
|
|
31
|
+
quality:
|
|
32
|
+
test_command: "" # ví dụ: "npm test" | "pytest" | "go test ./..."
|
|
33
|
+
lint_command: "" # ví dụ: "npm run lint" | "ruff check ." | "golangci-lint run"
|
|
34
|
+
block_on_fail: false # true = block commit nếu test/lint fail
|
|
35
|
+
|
|
36
|
+
# --- Tracking ---------------------------------------------------------------
|
|
37
|
+
tracking:
|
|
38
|
+
estimation: false
|
|
39
|
+
log_work: false
|
|
40
|
+
estimation_unit: "hours" # hours | story-points | t-shirt
|
|
41
|
+
|
|
42
|
+
# --- Paths ------------------------------------------------------------------
|
|
43
|
+
paths:
|
|
44
|
+
tasks: ".dw/tasks"
|
|
45
|
+
docs: ".dw/docs"
|
|
46
|
+
|
|
47
|
+
# --- Claude Capabilities (Layer 2) ------------------------------------------
|
|
48
|
+
# Tính năng đặc thù của Claude Code.
|
|
49
|
+
claude:
|
|
50
|
+
# Model per phase — để trống = dùng model mặc định từ Claude Code settings
|
|
51
|
+
models:
|
|
52
|
+
plan: "" # ví dụ: "claude-opus-4-6" cho complex planning
|
|
53
|
+
execute: "" # ví dụ: "claude-sonnet-4-6"
|
|
54
|
+
review: ""
|
|
55
|
+
|
|
56
|
+
# Structured JSON output từ reviewer và estimate skills
|
|
57
|
+
structured_output: true
|
|
58
|
+
|
|
59
|
+
# Isolate execution trong git worktree (cho risky refactors)
|
|
60
|
+
worktree_execution: false
|
|
61
|
+
|
|
62
|
+
# MCP servers — Claude Code sẽ load các servers này
|
|
63
|
+
mcp: []
|
|
64
|
+
# Ví dụ:
|
|
65
|
+
# mcp:
|
|
66
|
+
# - name: "github"
|
|
67
|
+
# command: "npx @modelcontextprotocol/server-github"
|
|
68
|
+
# env:
|
|
69
|
+
# GITHUB_TOKEN: "${GITHUB_TOKEN}"
|
|
70
|
+
# - name: "jira"
|
|
71
|
+
# command: "npx @anthropic/mcp-server-jira"
|
|
72
|
+
# env:
|
|
73
|
+
# JIRA_URL: "${JIRA_URL}"
|
|
74
|
+
# JIRA_TOKEN: "${JIRA_TOKEN}"
|
|
75
|
+
|
|
76
|
+
# --- Toolkit Version (do not edit manually) ---------------------------------
|
|
77
|
+
_toolkit:
|
|
78
|
+
core_version: "1.2"
|
|
79
|
+
platform_version: "1.2"
|
|
80
|
+
capability_version: "1.0"
|
|
81
|
+
installed: "2026-03-23"
|
|
82
|
+
last_upgrade: "2026-04-15"
|