dw-kit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/.claude/agents/executor.md +80 -0
  2. package/.claude/agents/planner.md +100 -0
  3. package/.claude/agents/quality-checker.md +86 -0
  4. package/.claude/agents/researcher.md +93 -0
  5. package/.claude/agents/reviewer.md +126 -0
  6. package/.claude/hooks/post-write.sh +62 -0
  7. package/.claude/hooks/pre-commit-gate.sh +90 -0
  8. package/.claude/hooks/progress-ping.sh +47 -0
  9. package/.claude/hooks/safety-guard.sh +54 -0
  10. package/.claude/rules/code-style.md +37 -0
  11. package/.claude/rules/commit-standards.md +37 -0
  12. package/.claude/rules/workflow-rules.md +62 -0
  13. package/.claude/settings.json +71 -0
  14. package/.claude/settings.local.json +12 -0
  15. package/.claude/skills/dw-arch-review/SKILL.md +119 -0
  16. package/.claude/skills/dw-archive/SKILL.md +81 -0
  17. package/.claude/skills/dw-commit/SKILL.md +81 -0
  18. package/.claude/skills/dw-config-init/SKILL.md +91 -0
  19. package/.claude/skills/dw-config-validate/SKILL.md +75 -0
  20. package/.claude/skills/dw-dashboard/SKILL.md +209 -0
  21. package/.claude/skills/dw-debug/SKILL.md +97 -0
  22. package/.claude/skills/dw-docs-update/SKILL.md +125 -0
  23. package/.claude/skills/dw-estimate/SKILL.md +90 -0
  24. package/.claude/skills/dw-execute/SKILL.md +98 -0
  25. package/.claude/skills/dw-flow/SKILL.md +274 -0
  26. package/.claude/skills/dw-handoff/SKILL.md +81 -0
  27. package/.claude/skills/dw-log-work/SKILL.md +69 -0
  28. package/.claude/skills/dw-plan/SKILL.md +125 -0
  29. package/.claude/skills/dw-plan/template-plan.md +47 -0
  30. package/.claude/skills/dw-requirements/SKILL.md +98 -0
  31. package/.claude/skills/dw-research/SKILL.md +98 -0
  32. package/.claude/skills/dw-research/template-research.md +51 -0
  33. package/.claude/skills/dw-review/SKILL.md +66 -0
  34. package/.claude/skills/dw-review/checklist.md +88 -0
  35. package/.claude/skills/dw-rollback/SKILL.md +90 -0
  36. package/.claude/skills/dw-sprint-review/SKILL.md +99 -0
  37. package/.claude/skills/dw-task-init/SKILL.md +59 -0
  38. package/.claude/skills/dw-test-plan/SKILL.md +113 -0
  39. package/.claude/skills/dw-thinking/SKILL.md +70 -0
  40. package/.claude/skills/dw-thinking/THINKING.md +91 -0
  41. package/.claude/skills/dw-upgrade/SKILL.md +82 -0
  42. package/.claude/templates/en/task-context.md +73 -0
  43. package/.claude/templates/en/task-plan.md +79 -0
  44. package/.claude/templates/en/task-progress.md +65 -0
  45. package/.claude/templates/pr-template.md +56 -0
  46. package/.claude/templates/task-context.md +73 -0
  47. package/.claude/templates/task-plan.md +79 -0
  48. package/.claude/templates/task-progress.md +65 -0
  49. package/.dw/adapters/claude-cli/extensions/.gitkeep +0 -0
  50. package/.dw/adapters/claude-cli/extensions/README.md +36 -0
  51. package/.dw/adapters/claude-cli/generated/README.md +23 -0
  52. package/.dw/adapters/claude-cli/generated/agents/.gitkeep +0 -0
  53. package/.dw/adapters/claude-cli/generated/skills/.gitkeep +0 -0
  54. package/.dw/adapters/claude-cli/overrides/README.md +35 -0
  55. package/.dw/adapters/claude-cli/overrides/agents/.gitkeep +0 -0
  56. package/.dw/adapters/claude-cli/overrides/skills/.gitkeep +0 -0
  57. package/.dw/adapters/generic/AGENT.md +169 -0
  58. package/.dw/adapters/generic/README.md +21 -0
  59. package/.dw/config/config.schema.json +121 -0
  60. package/.dw/config/dw.config.yml +82 -0
  61. package/.dw/config/presets/enterprise.yml +52 -0
  62. package/.dw/config/presets/small-team.yml +39 -0
  63. package/.dw/config/presets/solo-quick.yml +37 -0
  64. package/.dw/core/QUALITY.md +220 -0
  65. package/.dw/core/ROLES.md +257 -0
  66. package/.dw/core/THINKING.md +126 -0
  67. package/.dw/core/WORKFLOW.md +450 -0
  68. package/.dw/core/templates/vi/task-context.md +92 -0
  69. package/.dw/core/templates/vi/task-plan.md +93 -0
  70. package/.dw/core/templates/vi/task-progress.md +56 -0
  71. package/CLAUDE.md +98 -0
  72. package/LICENSE +21 -0
  73. package/README.md +183 -0
  74. package/bin/dw.mjs +28 -0
  75. package/package.json +52 -0
  76. package/scripts/e2e-local-check.sh +76 -0
  77. package/scripts/migrate-v03-to-v1.sh +243 -0
  78. package/scripts/upgrade.sh +246 -0
  79. package/setup.sh +382 -0
  80. package/src/cli.mjs +68 -0
  81. package/src/commands/doctor.mjs +149 -0
  82. package/src/commands/init.mjs +332 -0
  83. package/src/commands/migrate.mjs +215 -0
  84. package/src/commands/upgrade.mjs +262 -0
  85. package/src/commands/validate.mjs +102 -0
  86. package/src/lib/config.mjs +75 -0
  87. package/src/lib/copy.mjs +110 -0
  88. package/src/lib/platform.mjs +39 -0
  89. package/src/lib/ui.mjs +66 -0
  90. package/src/smoke-test.mjs +315 -0
@@ -0,0 +1,65 @@
1
+ # Progress: [Task Name]
2
+
3
+ ## Trạng thái: Not Started | In Progress | Blocked | Done
4
+ ## Branch: [branch-name]
5
+ ## Bắt đầu: [date]
6
+ ## Kết thúc: [date — khi done]
7
+
8
+ ---
9
+
10
+ ## Subtask Progress
11
+
12
+ | # | Subtask | Trạng thái | Commit | Người thực hiện | Ghi chú |
13
+ |---|---------|-----------|--------|-----------------|---------|
14
+ | ST-1 | | Pending | | | |
15
+ | ST-2 | | Pending | | | |
16
+
17
+ **Trạng thái**: Pending → In Progress → Done | Blocked | Skipped
18
+
19
+ ## Changelog
20
+
21
+ Ghi lại mọi thay đổi so với plan gốc.
22
+
23
+ ### [date] — [mô tả thay đổi]
24
+ - **Lý do**: [tại sao thay đổi]
25
+ - **Ảnh hưởng**: [subtasks nào bị ảnh hưởng]
26
+ - **Quyết định bởi**: [human / agent / cả hai]
27
+
28
+ ## Phát Hiện Mới
29
+
30
+ Ghi lại khi phát hiện giả định sai, rủi ro mới, hoặc scope thay đổi.
31
+
32
+ | # | Phát hiện | Ảnh hưởng | Hành động | Trạng thái |
33
+ |---|-----------|-----------|-----------|-----------|
34
+ | 1 | | | | Resolved / Open |
35
+
36
+ ## Blockers
37
+
38
+ - [ ] [Blocker 1] — owner: [ai chịu trách nhiệm] — since: [date]
39
+
40
+ <!-- Section dưới chỉ hiển thị khi flags.log_work = true -->
41
+
42
+ ## Effort Log
43
+
44
+ | Ngày | Subtask | Loại công việc | Estimate | Actual | Ghi chú |
45
+ |------|---------|---------------|----------|--------|---------|
46
+ | | | coding/testing/review | | | |
47
+
48
+ ### Tổng kết Effort
49
+
50
+ | Metric | Giá trị |
51
+ |--------|---------|
52
+ | Total Estimate | |
53
+ | Total Actual | |
54
+ | Variance | |
55
+ | Accuracy | % |
56
+
57
+ ## Handoff Notes
58
+
59
+ Ghi lại khi kết thúc session để người/agent tiếp theo hiểu context.
60
+
61
+ ### Session [date]
62
+ - **Đang ở**: ST-[N] — [mô tả trạng thái]
63
+ - **Context quan trọng**: [decisions, gotchas]
64
+ - **Bước tiếp theo**: [việc cần làm ngay]
65
+ - **Cẩn thận**: [warnings, edge cases đã gặp]
File without changes
@@ -0,0 +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
+ `setup.sh` copy tất cả skills trong thư mục này vào `.claude/skills/`.
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.
@@ -0,0 +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 chạy `scripts/upgrade.sh` hoặc `setup.sh`.
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
+ `setup.sh` → copy `generated/` → `.claude/`, với overrides từ `overrides/` 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.
@@ -0,0 +1,35 @@
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 upgrade, `scripts/upgrade.sh` 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
+ ## Khi nào nên override?
28
+
29
+ - Team có domain-specific review rules
30
+ - Team muốn thêm instruction vào planning workflow
31
+ - Team cần custom output format
32
+
33
+ ## Khi nào dùng extensions/ thay vì overrides/?
34
+
35
+ Dùng `extensions/` cho skills net-new (không override gì trong generated).
@@ -0,0 +1,169 @@
1
+ # dw-kit Workflow — Generic Agent Instructions
2
+
3
+ > **For**: Cursor, Windsurf, Copilot Chat, or any AI coding assistant
4
+ > **Note**: This is a methodology reference. It cannot replicate Claude Code-specific features
5
+ > (agent delegation with tool constraints, hooks, MCP integration). For full capabilities, use the Claude CLI adapter.
6
+
7
+ ---
8
+
9
+ ## Setup
10
+
11
+ 1. Copy this file to your project root as `AGENT.md` (or paste into your AI assistant's context)
12
+ 2. Copy `.dw/config/dw.config.yml` to your project and fill in your settings
13
+ 3. Create `.dw/tasks/` directory for task documentation
14
+
15
+ ---
16
+
17
+ ## Configuration
18
+
19
+ Read `.dw/config/dw.config.yml` for:
20
+ - `workflow.default_depth` — quick | standard | thorough
21
+ - `team.roles` — available team roles
22
+ - `quality.test_command`, `quality.lint_command` — quality gates
23
+ - `paths.tasks` — where task docs are stored
24
+
25
+ ---
26
+
27
+ ## Depth Routing
28
+
29
+ | Scope | Depth | Workflow |
30
+ |-------|-------|---------|
31
+ | ≤2 files, hotfix | quick | Understand → Execute → Close |
32
+ | 3-5 files | standard | All 6 phases |
33
+ | 6+ files, API/DB changes | thorough | All phases + arch review |
34
+
35
+ ---
36
+
37
+ ## Workflow Phases
38
+
39
+ ### Phase 1: Initialize
40
+
41
+ Create task documentation at `{paths.tasks}/[task-name]/`:
42
+ ```
43
+ [name]-context.md # Research findings
44
+ [name]-plan.md # Implementation plan
45
+ [name]-progress.md # Progress tracking
46
+ ```
47
+
48
+ **Before proceeding**: Task name defined, scope assessed, depth chosen.
49
+
50
+ ### Phase 2: Understand (Research)
51
+
52
+ Explore the codebase:
53
+ - Find all files related to the task
54
+ - Map dependencies (upstream and downstream)
55
+ - Identify current patterns and conventions
56
+ - Check test coverage
57
+ - Note git history for recent changes in the area
58
+ - Document what is unclear
59
+
60
+ Fill in `[name]-context.md` with findings.
61
+
62
+ **Before proceeding**: All files identified, no critical unknowns.
63
+
64
+ ### Phase 3: Plan
65
+
66
+ Design solution before writing any code:
67
+ - Consider ≥2 approaches with trade-offs
68
+ - Apply devil's advocate: strongest reason NOT to choose your preferred approach
69
+ - Break into subtasks (each ≤3 files, ≤4 hours, independent commit)
70
+ - Order: schema → service → API → tests → docs
71
+
72
+ Fill in `[name]-plan.md`.
73
+
74
+ **STOP**: Wait for human approval before executing.
75
+ If team has TL: TL must review architecture decisions.
76
+
77
+ ### Phase 4: Execute
78
+
79
+ For each subtask:
80
+ 1. Read acceptance criteria
81
+ 2. Write tests first (failing) — RED
82
+ 3. Implement to make tests pass — GREEN
83
+ 4. Refactor if needed — REFACTOR
84
+ 5. Update progress file
85
+ 6. Commit: `type(scope): description`
86
+
87
+ **Rules**:
88
+ - Only work within subtask scope
89
+ - If ambiguous → stop and ask (don't guess for large changes)
90
+ - If scope changes → update plan, ask human
91
+
92
+ ### Phase 5: Verify
93
+
94
+ **Self-review** (always):
95
+ - Logic correct? Edge cases handled?
96
+ - No debug code (console.log, debugger, etc.)
97
+ - No sensitive data (passwords, tokens, keys)
98
+
99
+ **Automated** (if configured):
100
+ ```bash
101
+ {quality.test_command}
102
+ {quality.lint_command}
103
+ ```
104
+
105
+ **Peer/TL review** (standard+):
106
+ - Architecture decisions reviewed
107
+ - Code review with checklist (see `.dw/core/QUALITY.md`)
108
+
109
+ **QA** (thorough + qc role):
110
+ - QA reviews against test plan
111
+ - Explicit sign-off required
112
+
113
+ ### Phase 6: Close
114
+
115
+ Commit format:
116
+ ```
117
+ <type>(<scope>): <description ≤72 chars>
118
+
119
+ Co-Authored-By: [AI assistant name]
120
+ ```
121
+
122
+ Update progress file: status → Done.
123
+ If handing off: write handoff notes (done/in-progress/blocked, next steps).
124
+
125
+ ---
126
+
127
+ ## Standalone: Debug
128
+
129
+ When encountering a bug:
130
+ 1. **Investigate**: Reproduce exactly. Gather evidence (error, stack trace, file:line).
131
+ 2. **Diagnose**: Form hypothesis. Verify. Find root cause (not symptom).
132
+ 3. **Fix**: Fix root cause. Test the fix. Check for regressions. Commit.
133
+
134
+ ---
135
+
136
+ ## Quality Principles
137
+
138
+ Full quality strategy: `.dw/core/QUALITY.md`
139
+
140
+ Key principles:
141
+ - Write tests before implementation (TDD)
142
+ - Each subtask = one commit
143
+ - Review checklist: correctness, security, performance, maintainability, tests
144
+ - CRITICAL issues must be fixed before merge
145
+
146
+ ---
147
+
148
+ ## Limitations of This Adapter
149
+
150
+ This generic adapter provides the **methodology** but cannot provide:
151
+
152
+ | Feature | Claude CLI Adapter | Generic Adapter |
153
+ |---------|-------------------|-----------------|
154
+ | Agent delegation (researcher/planner/reviewer) | ✅ | ❌ |
155
+ | Tool constraints (read-only research agent) | ✅ | ❌ |
156
+ | Pre-commit hooks (safety-guard, quality gates) | ✅ | ❌ |
157
+ | MCP server integration | ✅ | ❌ |
158
+ | Automatic progress tracking | ✅ | Manual |
159
+
160
+ For full capabilities, use Claude Code with the Claude CLI adapter.
161
+
162
+ ---
163
+
164
+ ## Full Methodology Reference
165
+
166
+ - Workflow phases: `.dw/core/WORKFLOW.md`
167
+ - Thinking framework: `.dw/core/THINKING.md`
168
+ - Quality strategy: `.dw/core/QUALITY.md`
169
+ - Role definitions: `.dw/core/ROLES.md`
@@ -0,0 +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.
@@ -0,0 +1,121 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "dw-kit Configuration Schema",
4
+ "description": "Schema for config/dw.config.yml",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "properties": {
8
+ "project": {
9
+ "type": "object",
10
+ "additionalProperties": false,
11
+ "required": ["name"],
12
+ "properties": {
13
+ "name": { "type": "string", "minLength": 1 },
14
+ "language": { "type": "string", "enum": ["vi", "en"], "default": "vi" }
15
+ }
16
+ },
17
+ "workflow": {
18
+ "type": "object",
19
+ "additionalProperties": false,
20
+ "properties": {
21
+ "default_depth": {
22
+ "type": "string",
23
+ "enum": ["quick", "standard", "thorough"],
24
+ "default": "standard"
25
+ }
26
+ }
27
+ },
28
+ "team": {
29
+ "type": "object",
30
+ "additionalProperties": false,
31
+ "properties": {
32
+ "roles": {
33
+ "type": "array",
34
+ "items": {
35
+ "type": "string",
36
+ "enum": ["dev", "techlead", "ba", "qc", "pm"]
37
+ },
38
+ "minItems": 1,
39
+ "contains": { "const": "dev" },
40
+ "description": "dev is always required"
41
+ }
42
+ }
43
+ },
44
+ "quality": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "properties": {
48
+ "test_command": { "type": "string", "default": "" },
49
+ "lint_command": { "type": "string", "default": "" },
50
+ "block_on_fail": { "type": "boolean", "default": false }
51
+ }
52
+ },
53
+ "tracking": {
54
+ "type": "object",
55
+ "additionalProperties": false,
56
+ "properties": {
57
+ "estimation": { "type": "boolean", "default": false },
58
+ "log_work": { "type": "boolean", "default": false },
59
+ "estimation_unit": {
60
+ "type": "string",
61
+ "enum": ["hours", "story-points", "t-shirt"],
62
+ "default": "hours"
63
+ }
64
+ }
65
+ },
66
+ "paths": {
67
+ "type": "object",
68
+ "additionalProperties": false,
69
+ "properties": {
70
+ "tasks": { "type": "string", "default": ".dw/tasks" },
71
+ "docs": { "type": "string", "default": ".dw/docs" }
72
+ }
73
+ },
74
+ "claude": {
75
+ "type": "object",
76
+ "additionalProperties": false,
77
+ "properties": {
78
+ "models": {
79
+ "type": "object",
80
+ "additionalProperties": false,
81
+ "properties": {
82
+ "plan": { "type": "string", "default": "" },
83
+ "execute": { "type": "string", "default": "" },
84
+ "review": { "type": "string", "default": "" }
85
+ }
86
+ },
87
+ "structured_output": { "type": "boolean", "default": true },
88
+ "worktree_execution": { "type": "boolean", "default": false },
89
+ "mcp": {
90
+ "type": "array",
91
+ "items": {
92
+ "type": "object",
93
+ "required": ["name", "command"],
94
+ "additionalProperties": false,
95
+ "properties": {
96
+ "name": { "type": "string" },
97
+ "command": { "type": "string" },
98
+ "args": { "type": "array", "items": { "type": "string" } },
99
+ "env": {
100
+ "type": "object",
101
+ "additionalProperties": { "type": "string" }
102
+ }
103
+ }
104
+ }
105
+ }
106
+ }
107
+ },
108
+ "_toolkit": {
109
+ "type": "object",
110
+ "additionalProperties": true,
111
+ "properties": {
112
+ "core_version": { "type": "string" },
113
+ "platform_version": { "type": "string" },
114
+ "capability_version": { "type": "string" },
115
+ "installed": { "type": "string" },
116
+ "last_upgrade": { "type": "string" },
117
+ "migrated_from": { "type": "string" }
118
+ }
119
+ }
120
+ }
121
+ }
@@ -0,0 +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.0"
79
+ platform_version: "1.0"
80
+ capability_version: "1.0"
81
+ installed: "2026-03-23"
82
+ last_upgrade: "2026-03-23"
@@ -0,0 +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"
@@ -0,0 +1,39 @@
1
+ # dw-kit Preset: Small Team — Standard Workflow
2
+ # Dùng cho: 2-5 devs, có TL, sprint-based development
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: "standard"
11
+
12
+ team:
13
+ roles:
14
+ - dev
15
+ - techlead
16
+
17
+ quality:
18
+ test_command: "" # điền vào: "npm test" | "pytest" | ...
19
+ lint_command: "" # điền vào: "npm run lint" | "ruff check ." | ...
20
+ block_on_fail: false
21
+
22
+ tracking:
23
+ estimation: true
24
+ log_work: false
25
+ estimation_unit: "hours"
26
+
27
+ paths:
28
+ tasks: ".dw/tasks"
29
+ docs: ".dw/docs"
30
+
31
+ claude:
32
+ structured_output: true
33
+ worktree_execution: false
34
+ mcp: []
35
+
36
+ _toolkit:
37
+ core_version: "1.0"
38
+ platform_version: "1.0"
39
+ capability_version: "1.0"