dw-kit 1.9.0 → 1.9.2
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/agents/planner.md +100 -100
- package/.claude/agents/quality-checker.md +86 -86
- package/.claude/agents/researcher.md +93 -93
- package/.claude/agents/reviewer.md +126 -126
- package/.claude/hooks/supply-chain-scan.sh +0 -0
- package/.claude/rules/code-style.md +37 -37
- package/.claude/settings.json +2 -28
- package/.claude/skills/dw-kit-report/SKILL.md +38 -7
- package/.claude/skills/dw-plan/template-plan.md +47 -47
- package/.claude/skills/dw-research/template-research.md +51 -51
- package/.claude/skills/dw-review/checklist.md +88 -88
- package/.claude/skills/dw-thinking/THINKING.md +91 -91
- package/.claude/templates/agent-report.md +35 -35
- package/.claude/templates/en/task-context.md +77 -73
- package/.claude/templates/en/task-plan.md +83 -79
- package/.claude/templates/en/task-progress.md +69 -65
- package/.claude/templates/pr-template.md +56 -56
- package/.claude/templates/task-context.md +77 -73
- package/.claude/templates/task-plan.md +83 -79
- package/.claude/templates/task-progress.md +69 -65
- package/.dw/adapters/claude-cli/extensions/README.md +36 -36
- package/.dw/adapters/claude-cli/generated/README.md +23 -23
- package/.dw/adapters/claude-cli/overrides/README.md +37 -37
- package/.dw/adapters/generic/README.md +21 -21
- package/.dw/config/presets/enterprise.yml +52 -52
- package/.dw/config/presets/small-team.yml +39 -39
- package/.dw/config/presets/solo-quick.yml +37 -37
- package/.dw/core/AGENTS.md +53 -53
- package/.dw/core/QUALITY.md +220 -220
- package/.dw/core/THINKING.md +126 -126
- package/.dw/core/WORKFLOW.md +17 -12
- package/.dw/core/templates/v2/spec.md +2 -0
- package/.dw/core/templates/v2/tracking.md +2 -0
- package/.dw/core/templates/v3/task.md +15 -22
- package/.dw/core/templates/vi/task-context.md +96 -92
- package/.dw/core/templates/vi/task-plan.md +97 -93
- package/.dw/core/templates/vi/task-progress.md +60 -56
- package/LICENSE +201 -201
- package/NOTICE +26 -26
- package/README.md +1 -1
- package/bin/dw.mjs +28 -28
- package/package.json +1 -1
- package/src/commands/claude-vn-fix.mjs +267 -267
- package/src/commands/prompt.mjs +112 -112
- package/src/commands/validate.mjs +102 -102
- package/src/lib/clipboard.mjs +24 -24
- package/src/lib/goal-store.mjs +2 -14
- package/src/lib/platform.mjs +39 -39
- package/src/lib/prompt-suggest.mjs +84 -84
- package/src/lib/timeline-parser.mjs +54 -15
- package/src/lib/ui.mjs +66 -66
- package/src/lib/update-checker.mjs +73 -73
- package/.dw/security/advisory-snapshot.json +0 -157
|
@@ -1,79 +1,83 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
##
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- **
|
|
29
|
-
- **
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
- **
|
|
33
|
-
- **
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
- **
|
|
37
|
-
- **
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
- **
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
|
76
|
-
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
|
|
|
1
|
+
<!-- ⚠️ LEGACY TEMPLATE — do not use for new tasks. -->
|
|
2
|
+
<!-- Canonical task doc lineage = v3 (.dw/core/templates/v3/task.md), per ADR-0008 / ADR-0020. -->
|
|
3
|
+
<!-- Kept only as reference for `dw task migrate` + reading legacy task docs. -->
|
|
4
|
+
|
|
5
|
+
# Plan: [Task Name]
|
|
6
|
+
|
|
7
|
+
## Ngày tạo: [date]
|
|
8
|
+
## Trạng thái: Draft | Approved | In Progress | Done
|
|
9
|
+
## Approved by: [tên / role]
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Tóm Tắt Giải Pháp
|
|
14
|
+
|
|
15
|
+
[1-2 đoạn mô tả mục tiêu và approach đã chọn]
|
|
16
|
+
|
|
17
|
+
## Phương Án Đã Xem Xét
|
|
18
|
+
|
|
19
|
+
| # | Phương án | Ưu điểm | Nhược điểm | Chọn? |
|
|
20
|
+
|---|-----------|---------|------------|-------|
|
|
21
|
+
| 1 | [Approach A] | | | **Chọn** |
|
|
22
|
+
| 2 | [Approach B] | | | Loại — lý do: |
|
|
23
|
+
|
|
24
|
+
## Subtasks
|
|
25
|
+
|
|
26
|
+
### ST-1: [Tên subtask]
|
|
27
|
+
- **Mô tả**: [Cụ thể, actionable]
|
|
28
|
+
- **Files**: [Danh sách files cần thay đổi]
|
|
29
|
+
- **Acceptance Criteria**:
|
|
30
|
+
- [ ] [Điều kiện 1]
|
|
31
|
+
- [ ] [Điều kiện 2]
|
|
32
|
+
- **Dependencies**: none
|
|
33
|
+
- **Estimate**: [effort — nếu estimation enabled]
|
|
34
|
+
|
|
35
|
+
### ST-2: [Tên subtask]
|
|
36
|
+
- **Mô tả**: ...
|
|
37
|
+
- **Files**: ...
|
|
38
|
+
- **Acceptance Criteria**:
|
|
39
|
+
- [ ] ...
|
|
40
|
+
- **Dependencies**: ST-1
|
|
41
|
+
- **Estimate**: ...
|
|
42
|
+
|
|
43
|
+
<!-- Thêm subtasks theo nhu cầu -->
|
|
44
|
+
|
|
45
|
+
## Rủi Ro & Giả Định
|
|
46
|
+
|
|
47
|
+
| # | Loại | Mô tả | Xác suất | Tác động | Giảm thiểu |
|
|
48
|
+
|---|------|--------|----------|----------|------------|
|
|
49
|
+
| 1 | Giả định | | | | Kiểm chứng bằng: |
|
|
50
|
+
| 2 | Rủi ro | | Cao/TB/Thấp | Cao/TB/Thấp | |
|
|
51
|
+
|
|
52
|
+
## Edge Cases
|
|
53
|
+
|
|
54
|
+
- [ ] [Edge case 1 — khi nào xảy ra, xử lý thế nào]
|
|
55
|
+
- [ ] [Edge case 2]
|
|
56
|
+
|
|
57
|
+
## Tác Động Hệ Thống
|
|
58
|
+
|
|
59
|
+
- **Modules bị ảnh hưởng**: [danh sách]
|
|
60
|
+
- **API changes**: [endpoints mới/sửa/xóa]
|
|
61
|
+
- **Database changes**: [migration cần thiết]
|
|
62
|
+
- **Backward compatibility**: [Có/Không — chi tiết]
|
|
63
|
+
- **Breaking changes**: [nếu có]
|
|
64
|
+
|
|
65
|
+
## Góc Nhìn & Trade-offs
|
|
66
|
+
|
|
67
|
+
| Quyết định | User impact | Developer impact | Security | Ops/Deploy |
|
|
68
|
+
|-----------|-------------|------------------|----------|------------|
|
|
69
|
+
| [Quyết định 1] | | | | |
|
|
70
|
+
|
|
71
|
+
<!-- Section dưới chỉ hiển thị khi flags.estimation = true -->
|
|
72
|
+
|
|
73
|
+
## Estimation Tổng
|
|
74
|
+
|
|
75
|
+
| Phase | Estimate | Ghi chú |
|
|
76
|
+
|-------|----------|---------|
|
|
77
|
+
| Research | [done] | |
|
|
78
|
+
| Planning | [done] | |
|
|
79
|
+
| Coding | | |
|
|
80
|
+
| Testing | | |
|
|
81
|
+
| Review | | |
|
|
82
|
+
| Documentation | | |
|
|
83
|
+
| **Total** | **[sum]** | |
|
|
@@ -1,65 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
##
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
1
|
+
<!-- ⚠️ LEGACY TEMPLATE — do not use for new tasks. -->
|
|
2
|
+
<!-- Canonical task doc lineage = v3 (.dw/core/templates/v3/task.md), per ADR-0008 / ADR-0020. -->
|
|
3
|
+
<!-- Kept only as reference for `dw task migrate` + reading legacy task docs. -->
|
|
4
|
+
|
|
5
|
+
# Progress: [Task Name]
|
|
6
|
+
|
|
7
|
+
## Trạng thái: Not Started | In Progress | Blocked | Done
|
|
8
|
+
## Branch: [branch-name]
|
|
9
|
+
## Bắt đầu: [date]
|
|
10
|
+
## Kết thúc: [date — khi done]
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Subtask Progress
|
|
15
|
+
|
|
16
|
+
| # | Subtask | Trạng thái | Commit | Người thực hiện | Ghi chú |
|
|
17
|
+
|---|---------|-----------|--------|-----------------|---------|
|
|
18
|
+
| ST-1 | | Pending | | | |
|
|
19
|
+
| ST-2 | | Pending | | | |
|
|
20
|
+
|
|
21
|
+
**Trạng thái**: Pending → In Progress → Done | Blocked | Skipped
|
|
22
|
+
|
|
23
|
+
## Changelog
|
|
24
|
+
|
|
25
|
+
Ghi lại mọi thay đổi so với plan gốc.
|
|
26
|
+
|
|
27
|
+
### [date] — [mô tả thay đổi]
|
|
28
|
+
- **Lý do**: [tại sao thay đổi]
|
|
29
|
+
- **Ảnh hưởng**: [subtasks nào bị ảnh hưởng]
|
|
30
|
+
- **Quyết định bởi**: [human / agent / cả hai]
|
|
31
|
+
|
|
32
|
+
## Phát Hiện Mới
|
|
33
|
+
|
|
34
|
+
Ghi lại khi phát hiện giả định sai, rủi ro mới, hoặc scope thay đổi.
|
|
35
|
+
|
|
36
|
+
| # | Phát hiện | Ảnh hưởng | Hành động | Trạng thái |
|
|
37
|
+
|---|-----------|-----------|-----------|-----------|
|
|
38
|
+
| 1 | | | | Resolved / Open |
|
|
39
|
+
|
|
40
|
+
## Blockers
|
|
41
|
+
|
|
42
|
+
- [ ] [Blocker 1] — owner: [ai chịu trách nhiệm] — since: [date]
|
|
43
|
+
|
|
44
|
+
<!-- Section dưới chỉ hiển thị khi flags.log_work = true -->
|
|
45
|
+
|
|
46
|
+
## Effort Log
|
|
47
|
+
|
|
48
|
+
| Ngày | Subtask | Loại công việc | Estimate | Actual | Ghi chú |
|
|
49
|
+
|------|---------|---------------|----------|--------|---------|
|
|
50
|
+
| | | coding/testing/review | | | |
|
|
51
|
+
|
|
52
|
+
### Tổng kết Effort
|
|
53
|
+
|
|
54
|
+
| Metric | Giá trị |
|
|
55
|
+
|--------|---------|
|
|
56
|
+
| Total Estimate | |
|
|
57
|
+
| Total Actual | |
|
|
58
|
+
| Variance | |
|
|
59
|
+
| Accuracy | % |
|
|
60
|
+
|
|
61
|
+
## Handoff Notes
|
|
62
|
+
|
|
63
|
+
Ghi lại khi kết thúc session để người/agent tiếp theo hiểu context.
|
|
64
|
+
|
|
65
|
+
### Session [date]
|
|
66
|
+
- **Đang ở**: ST-[N] — [mô tả trạng thái]
|
|
67
|
+
- **Context quan trọng**: [decisions, gotchas]
|
|
68
|
+
- **Bước tiếp theo**: [việc cần làm ngay]
|
|
69
|
+
- **Cẩn thận**: [warnings, edge cases đã gặp]
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
# .dw/adapters/claude-cli/extensions/
|
|
2
|
-
|
|
3
|
-
> **NET-NEW TEAM SKILLS — Không conflict với generated, không bị overwrite.**
|
|
4
|
-
|
|
5
|
-
## Mục đích
|
|
6
|
-
|
|
7
|
-
Thêm skills hoàn toàn mới mà không có trong dw-kit core.
|
|
8
|
-
|
|
9
|
-
## Cách dùng
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
extensions/
|
|
13
|
-
└── dw-deploy/
|
|
14
|
-
├── SKILL.md ← skill definition
|
|
15
|
-
└── README.md ← optional: mô tả skill
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
`dw upgrade` copy tất cả skills trong thư mục này vào `.claude/skills/` (extensions không ghi đè skills đã customize).
|
|
19
|
-
|
|
20
|
-
## Ví dụ Skills Phù Hợp
|
|
21
|
-
|
|
22
|
-
- `/dw-deploy` — deployment workflow cho team
|
|
23
|
-
- `/dw-migration` — database migration helper
|
|
24
|
-
- `/dw-release` — release checklist
|
|
25
|
-
- `/dw-notify` — team notification integration
|
|
26
|
-
|
|
27
|
-
## Convention
|
|
28
|
-
|
|
29
|
-
- Tên folder = tên skill (kebab-case)
|
|
30
|
-
- SKILL.md theo format chuẩn (xem `.claude/skills/` cho examples)
|
|
31
|
-
- Tên skill nên bắt đầu bằng `dw-` để nhất quán
|
|
32
|
-
|
|
33
|
-
## Đóng góp cho community
|
|
34
|
-
|
|
35
|
-
Nếu skill hữu ích cho mọi team, submit PR vào toolkit repo.
|
|
36
|
-
Xem `docs/custom-skills.md` để biết hướng dẫn.
|
|
1
|
+
# .dw/adapters/claude-cli/extensions/
|
|
2
|
+
|
|
3
|
+
> **NET-NEW TEAM SKILLS — Không conflict với generated, không bị overwrite.**
|
|
4
|
+
|
|
5
|
+
## Mục đích
|
|
6
|
+
|
|
7
|
+
Thêm skills hoàn toàn mới mà không có trong dw-kit core.
|
|
8
|
+
|
|
9
|
+
## Cách dùng
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
extensions/
|
|
13
|
+
└── dw-deploy/
|
|
14
|
+
├── SKILL.md ← skill definition
|
|
15
|
+
└── README.md ← optional: mô tả skill
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
`dw upgrade` copy tất cả skills trong thư mục này vào `.claude/skills/` (extensions không ghi đè skills đã customize).
|
|
19
|
+
|
|
20
|
+
## Ví dụ Skills Phù Hợp
|
|
21
|
+
|
|
22
|
+
- `/dw-deploy` — deployment workflow cho team
|
|
23
|
+
- `/dw-migration` — database migration helper
|
|
24
|
+
- `/dw-release` — release checklist
|
|
25
|
+
- `/dw-notify` — team notification integration
|
|
26
|
+
|
|
27
|
+
## Convention
|
|
28
|
+
|
|
29
|
+
- Tên folder = tên skill (kebab-case)
|
|
30
|
+
- SKILL.md theo format chuẩn (xem `.claude/skills/` cho examples)
|
|
31
|
+
- Tên skill nên bắt đầu bằng `dw-` để nhất quán
|
|
32
|
+
|
|
33
|
+
## Đóng góp cho community
|
|
34
|
+
|
|
35
|
+
Nếu skill hữu ích cho mọi team, submit PR vào toolkit repo.
|
|
36
|
+
Xem `docs/custom-skills.md` để biết hướng dẫn.
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
# .dw/adapters/claude-cli/generated/
|
|
2
|
-
|
|
3
|
-
> **AUTO-GENERATED — Không edit tay.**
|
|
4
|
-
> Thư mục này được overwrite khi nâng cấp toolkit trong quá trình build/generation nội bộ.
|
|
5
|
-
|
|
6
|
-
## Nội dung
|
|
7
|
-
|
|
8
|
-
Chứa Claude Code-specific files được generate từ `core/` + `.dw/config/dw.config.yml`:
|
|
9
|
-
|
|
10
|
-
```
|
|
11
|
-
generated/
|
|
12
|
-
├── skills/ # Skill shell files (.claude/skills/ → populated từ đây)
|
|
13
|
-
├── agents/ # Agent files (.claude/agents/ → populated từ đây)
|
|
14
|
-
└── settings.json # settings.json base template
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Cách hoạt động
|
|
18
|
-
|
|
19
|
-
`dw init`/`dw upgrade` → populate `.claude/`, áp dụng overrides từ `overrides/` (override thắng).
|
|
20
|
-
|
|
21
|
-
## Nếu muốn customize
|
|
22
|
-
|
|
23
|
-
Đặt file override vào `.dw/adapters/claude-cli/overrides/` — không edit tay ở đây.
|
|
1
|
+
# .dw/adapters/claude-cli/generated/
|
|
2
|
+
|
|
3
|
+
> **AUTO-GENERATED — Không edit tay.**
|
|
4
|
+
> Thư mục này được overwrite khi nâng cấp toolkit trong quá trình build/generation nội bộ.
|
|
5
|
+
|
|
6
|
+
## Nội dung
|
|
7
|
+
|
|
8
|
+
Chứa Claude Code-specific files được generate từ `core/` + `.dw/config/dw.config.yml`:
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
generated/
|
|
12
|
+
├── skills/ # Skill shell files (.claude/skills/ → populated từ đây)
|
|
13
|
+
├── agents/ # Agent files (.claude/agents/ → populated từ đây)
|
|
14
|
+
└── settings.json # settings.json base template
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Cách hoạt động
|
|
18
|
+
|
|
19
|
+
`dw init`/`dw upgrade` → populate `.claude/`, áp dụng overrides từ `overrides/` (override thắng).
|
|
20
|
+
|
|
21
|
+
## Nếu muốn customize
|
|
22
|
+
|
|
23
|
+
Đặt file override vào `.dw/adapters/claude-cli/overrides/` — không edit tay ở đây.
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
# .dw/adapters/claude-cli/overrides/
|
|
2
|
-
|
|
3
|
-
> **TEAM CUSTOMIZATIONS — KHÔNG BAO GIỜ bị overwrite khi upgrade.**
|
|
4
|
-
|
|
5
|
-
## Mục đích
|
|
6
|
-
|
|
7
|
-
Đặt file override vào đây khi team muốn customize skill hoặc agent mà không mất khi upgrade toolkit.
|
|
8
|
-
|
|
9
|
-
## Cách dùng
|
|
10
|
-
|
|
11
|
-
Tạo file với đường dẫn tương tự `generated/`:
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
overrides/
|
|
15
|
-
├── skills/
|
|
16
|
-
│ └── plan/
|
|
17
|
-
│ └── SKILL.md ← override generated/skills/plan/SKILL.md
|
|
18
|
-
└── agents/
|
|
19
|
-
└── reviewer.md ← override generated/agents/reviewer.md
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Khi chạy `dw upgrade`, luồng sẽ:
|
|
23
|
-
1. Update `generated/` từ toolkit mới
|
|
24
|
-
2. Apply overrides từ thư mục này (overrides thắng generated)
|
|
25
|
-
3. Copy kết quả vào `.claude/`
|
|
26
|
-
|
|
27
|
-
Trong v1, luồng chuẩn là `dw upgrade`: nó tôn trọng overrides khi cập nhật `.claude/`.
|
|
28
|
-
|
|
29
|
-
## Khi nào nên override?
|
|
30
|
-
|
|
31
|
-
- Team có domain-specific review rules
|
|
32
|
-
- Team muốn thêm instruction vào planning workflow
|
|
33
|
-
- Team cần custom output format
|
|
34
|
-
|
|
35
|
-
## Khi nào dùng extensions/ thay vì overrides/?
|
|
36
|
-
|
|
37
|
-
Dùng `extensions/` cho skills net-new (không override gì trong generated).
|
|
1
|
+
# .dw/adapters/claude-cli/overrides/
|
|
2
|
+
|
|
3
|
+
> **TEAM CUSTOMIZATIONS — KHÔNG BAO GIỜ bị overwrite khi upgrade.**
|
|
4
|
+
|
|
5
|
+
## Mục đích
|
|
6
|
+
|
|
7
|
+
Đặt file override vào đây khi team muốn customize skill hoặc agent mà không mất khi upgrade toolkit.
|
|
8
|
+
|
|
9
|
+
## Cách dùng
|
|
10
|
+
|
|
11
|
+
Tạo file với đường dẫn tương tự `generated/`:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
overrides/
|
|
15
|
+
├── skills/
|
|
16
|
+
│ └── plan/
|
|
17
|
+
│ └── SKILL.md ← override generated/skills/plan/SKILL.md
|
|
18
|
+
└── agents/
|
|
19
|
+
└── reviewer.md ← override generated/agents/reviewer.md
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Khi chạy `dw upgrade`, luồng sẽ:
|
|
23
|
+
1. Update `generated/` từ toolkit mới
|
|
24
|
+
2. Apply overrides từ thư mục này (overrides thắng generated)
|
|
25
|
+
3. Copy kết quả vào `.claude/`
|
|
26
|
+
|
|
27
|
+
Trong v1, luồng chuẩn là `dw upgrade`: nó tôn trọng overrides khi cập nhật `.claude/`.
|
|
28
|
+
|
|
29
|
+
## Khi nào nên override?
|
|
30
|
+
|
|
31
|
+
- Team có domain-specific review rules
|
|
32
|
+
- Team muốn thêm instruction vào planning workflow
|
|
33
|
+
- Team cần custom output format
|
|
34
|
+
|
|
35
|
+
## Khi nào dùng extensions/ thay vì overrides/?
|
|
36
|
+
|
|
37
|
+
Dùng `extensions/` cho skills net-new (không override gì trong generated).
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
# Generic Adapter
|
|
2
|
-
|
|
3
|
-
Dành cho bất kỳ AI coding assistant nào (Cursor, Windsurf, Copilot, etc.).
|
|
4
|
-
|
|
5
|
-
## Cách dùng
|
|
6
|
-
|
|
7
|
-
1. Copy `AGENT.md` vào project root
|
|
8
|
-
2. Copy `.dw/config/dw.config.yml` và điền settings
|
|
9
|
-
3. Tạo `.dw/tasks/` directory
|
|
10
|
-
|
|
11
|
-
## Limitations
|
|
12
|
-
|
|
13
|
-
Generic adapter cung cấp **methodology** (what to do), không phải **execution** (how Claude Code does it).
|
|
14
|
-
|
|
15
|
-
Không có:
|
|
16
|
-
- Agent delegation với tool constraints
|
|
17
|
-
- Pre-commit hooks (safety-guard, quality gates)
|
|
18
|
-
- MCP server integration
|
|
19
|
-
- Automatic context management
|
|
20
|
-
|
|
21
|
-
Muốn full capabilities → dùng Claude Code với Claude CLI adapter.
|
|
1
|
+
# Generic Adapter
|
|
2
|
+
|
|
3
|
+
Dành cho bất kỳ AI coding assistant nào (Cursor, Windsurf, Copilot, etc.).
|
|
4
|
+
|
|
5
|
+
## Cách dùng
|
|
6
|
+
|
|
7
|
+
1. Copy `AGENT.md` vào project root
|
|
8
|
+
2. Copy `.dw/config/dw.config.yml` và điền settings
|
|
9
|
+
3. Tạo `.dw/tasks/` directory
|
|
10
|
+
|
|
11
|
+
## Limitations
|
|
12
|
+
|
|
13
|
+
Generic adapter cung cấp **methodology** (what to do), không phải **execution** (how Claude Code does it).
|
|
14
|
+
|
|
15
|
+
Không có:
|
|
16
|
+
- Agent delegation với tool constraints
|
|
17
|
+
- Pre-commit hooks (safety-guard, quality gates)
|
|
18
|
+
- MCP server integration
|
|
19
|
+
- Automatic context management
|
|
20
|
+
|
|
21
|
+
Muốn full capabilities → dùng Claude Code với Claude CLI adapter.
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
# dw-kit Preset: Enterprise — Full Workflow
|
|
2
|
-
# Dùng cho: 5+ devs, full team roles, metrics tracking
|
|
3
|
-
# Kế thừa từ: config/dw.config.yml (copy và modify)
|
|
4
|
-
|
|
5
|
-
project:
|
|
6
|
-
name: "my-project"
|
|
7
|
-
language: "vi"
|
|
8
|
-
|
|
9
|
-
workflow:
|
|
10
|
-
default_depth: "thorough"
|
|
11
|
-
|
|
12
|
-
team:
|
|
13
|
-
roles:
|
|
14
|
-
- dev
|
|
15
|
-
- techlead
|
|
16
|
-
- ba
|
|
17
|
-
- qc
|
|
18
|
-
- pm
|
|
19
|
-
|
|
20
|
-
quality:
|
|
21
|
-
test_command: "" # BẮT BUỘC điền: "npm test" | "pytest" | ...
|
|
22
|
-
lint_command: "" # BẮT BUỘC điền: "npm run lint" | ...
|
|
23
|
-
block_on_fail: true # Block commit nếu fail
|
|
24
|
-
|
|
25
|
-
tracking:
|
|
26
|
-
estimation: true
|
|
27
|
-
log_work: true
|
|
28
|
-
estimation_unit: "story-points"
|
|
29
|
-
|
|
30
|
-
paths:
|
|
31
|
-
tasks: ".dw/tasks"
|
|
32
|
-
docs: ".dw/docs"
|
|
33
|
-
|
|
34
|
-
claude:
|
|
35
|
-
models:
|
|
36
|
-
plan: "claude-opus-4-6" # Dùng model mạnh nhất cho planning
|
|
37
|
-
execute: "claude-sonnet-4-6"
|
|
38
|
-
review: "claude-sonnet-4-6"
|
|
39
|
-
structured_output: true
|
|
40
|
-
worktree_execution: true # Isolate risky refactors
|
|
41
|
-
mcp: []
|
|
42
|
-
# Uncomment và điền env vars để enable external integrations:
|
|
43
|
-
# mcp:
|
|
44
|
-
# - name: "github"
|
|
45
|
-
# command: "npx @modelcontextprotocol/server-github"
|
|
46
|
-
# env:
|
|
47
|
-
# GITHUB_TOKEN: "${GITHUB_TOKEN}"
|
|
48
|
-
|
|
49
|
-
_toolkit:
|
|
50
|
-
core_version: "1.0"
|
|
51
|
-
platform_version: "1.0"
|
|
52
|
-
capability_version: "1.0"
|
|
1
|
+
# dw-kit Preset: Enterprise — Full Workflow
|
|
2
|
+
# Dùng cho: 5+ devs, full team roles, metrics tracking
|
|
3
|
+
# Kế thừa từ: config/dw.config.yml (copy và modify)
|
|
4
|
+
|
|
5
|
+
project:
|
|
6
|
+
name: "my-project"
|
|
7
|
+
language: "vi"
|
|
8
|
+
|
|
9
|
+
workflow:
|
|
10
|
+
default_depth: "thorough"
|
|
11
|
+
|
|
12
|
+
team:
|
|
13
|
+
roles:
|
|
14
|
+
- dev
|
|
15
|
+
- techlead
|
|
16
|
+
- ba
|
|
17
|
+
- qc
|
|
18
|
+
- pm
|
|
19
|
+
|
|
20
|
+
quality:
|
|
21
|
+
test_command: "" # BẮT BUỘC điền: "npm test" | "pytest" | ...
|
|
22
|
+
lint_command: "" # BẮT BUỘC điền: "npm run lint" | ...
|
|
23
|
+
block_on_fail: true # Block commit nếu fail
|
|
24
|
+
|
|
25
|
+
tracking:
|
|
26
|
+
estimation: true
|
|
27
|
+
log_work: true
|
|
28
|
+
estimation_unit: "story-points"
|
|
29
|
+
|
|
30
|
+
paths:
|
|
31
|
+
tasks: ".dw/tasks"
|
|
32
|
+
docs: ".dw/docs"
|
|
33
|
+
|
|
34
|
+
claude:
|
|
35
|
+
models:
|
|
36
|
+
plan: "claude-opus-4-6" # Dùng model mạnh nhất cho planning
|
|
37
|
+
execute: "claude-sonnet-4-6"
|
|
38
|
+
review: "claude-sonnet-4-6"
|
|
39
|
+
structured_output: true
|
|
40
|
+
worktree_execution: true # Isolate risky refactors
|
|
41
|
+
mcp: []
|
|
42
|
+
# Uncomment và điền env vars để enable external integrations:
|
|
43
|
+
# mcp:
|
|
44
|
+
# - name: "github"
|
|
45
|
+
# command: "npx @modelcontextprotocol/server-github"
|
|
46
|
+
# env:
|
|
47
|
+
# GITHUB_TOKEN: "${GITHUB_TOKEN}"
|
|
48
|
+
|
|
49
|
+
_toolkit:
|
|
50
|
+
core_version: "1.0"
|
|
51
|
+
platform_version: "1.0"
|
|
52
|
+
capability_version: "1.0"
|