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,91 +1,91 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dw
|
|
3
|
-
description: "Khởi tạo dv-workflow-kit cho dự án mới. Tạo config file, thư mục, và cấu trúc cần thiết."
|
|
4
|
-
argument-hint: "[project-name]"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Khởi Tạo dv-workflow-kit
|
|
8
|
-
|
|
9
|
-
Thiết lập toolkit cho dự án: **$ARGUMENTS**
|
|
10
|
-
|
|
11
|
-
## Quy Trình
|
|
12
|
-
|
|
13
|
-
### 1. Hỏi thông tin cơ bản
|
|
14
|
-
|
|
15
|
-
Nếu chưa có đủ thông tin, hỏi user:
|
|
16
|
-
- **Project type**: `new-product` hay `old-maintenance`?
|
|
17
|
-
- **Level**: 1 (lite), 2 (standard), hay 3 (full)?
|
|
18
|
-
- **Team roles**: Những role nào tham gia? (dev, techlead, ba, qc, pm)
|
|
19
|
-
|
|
20
|
-
### 2. Tạo config file
|
|
21
|
-
|
|
22
|
-
Copy `.dw/config/dw.config.yml` vào root dự án.
|
|
23
|
-
Cập nhật các giá trị:
|
|
24
|
-
- `project.name` = tên dự án
|
|
25
|
-
- `project.type` = loại dự án
|
|
26
|
-
- `level` = level đã chọn
|
|
27
|
-
|
|
28
|
-
Nếu **new-product**:
|
|
29
|
-
```yaml
|
|
30
|
-
level: 2
|
|
31
|
-
flags:
|
|
32
|
-
research: true
|
|
33
|
-
plan: true
|
|
34
|
-
execute: true
|
|
35
|
-
commit: true
|
|
36
|
-
review: true
|
|
37
|
-
living_docs: false # Bật lên level 3
|
|
38
|
-
estimation: true
|
|
39
|
-
log_work: true
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
Nếu **old-maintenance**:
|
|
43
|
-
```yaml
|
|
44
|
-
level: 1
|
|
45
|
-
flags:
|
|
46
|
-
research: true
|
|
47
|
-
plan: "skip" # Optional cho bug fixes
|
|
48
|
-
execute: true
|
|
49
|
-
commit: true
|
|
50
|
-
review: "skip"
|
|
51
|
-
debug: true
|
|
52
|
-
estimation: "skip"
|
|
53
|
-
log_work: "skip"
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### 3. Tạo thư mục
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
mkdir -p .dw/tasks .dw/docs .dw/metrics .dw/reports
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### 4. Auto-enable role flags
|
|
63
|
-
|
|
64
|
-
Nếu team có `ba` → bật `requirements_skill: true`
|
|
65
|
-
Nếu team có `qc` → bật `test_plan_skill: true`
|
|
66
|
-
Nếu team có `techlead` → bật `arch_review_skill: true`
|
|
67
|
-
Nếu team có `pm` → bật `dashboard_skill: true`
|
|
68
|
-
|
|
69
|
-
### 5. Validate config
|
|
70
|
-
|
|
71
|
-
Sau khi tạo hoặc khi user gọi `/dw
|
|
72
|
-
|
|
73
|
-
**Known keys** (nếu có key nào ngoài danh sách → warn typo):
|
|
74
|
-
- Top-level: `project`, `level`, `team`, `flags`, `routing`, `estimation`, `metrics`, `paths`
|
|
75
|
-
- `flags` keys: `research`, `plan`, `execute`, `commit`, `review`, `debug`, `living_docs`, `docs_update_on_commit`, `estimation`, `log_work`, `metrics_tracking`, `dora_metrics`, `pre_commit_tests`, `pre_commit_lint`, `block_commit_on_fail`, `handoff`, `thinking_framework`, `requirements_skill`, `test_plan_skill`, `arch_review_skill`, `dashboard_skill`
|
|
76
|
-
|
|
77
|
-
**Level check**:
|
|
78
|
-
- Nếu `level: 3` → hiển thị warning: "Level 3 đang ở trạng thái beta — một số features (living docs automation, DORA calculation, dashboard HTML export) chưa fully automated."
|
|
79
|
-
|
|
80
|
-
**Flag value check**:
|
|
81
|
-
- Mỗi flag phải là `true`, `false`, hoặc `"skip"` — nếu giá trị khác → warn
|
|
82
|
-
|
|
83
|
-
Hiển thị kết quả validation trước khi thông báo hoàn tất.
|
|
84
|
-
|
|
85
|
-
### 6. Thông báo kết quả
|
|
86
|
-
|
|
87
|
-
Hiển thị:
|
|
88
|
-
- Config đã tạo với settings gì
|
|
89
|
-
- Danh sách skills có sẵn (dựa trên flags)
|
|
90
|
-
- Hướng dẫn bước tiếp theo
|
|
91
|
-
- Gợi ý: "Chạy `/dw
|
|
1
|
+
---
|
|
2
|
+
name: dw:config-init
|
|
3
|
+
description: "Khởi tạo dv-workflow-kit cho dự án mới. Tạo config file, thư mục, và cấu trúc cần thiết."
|
|
4
|
+
argument-hint: "[project-name]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Khởi Tạo dv-workflow-kit
|
|
8
|
+
|
|
9
|
+
Thiết lập toolkit cho dự án: **$ARGUMENTS**
|
|
10
|
+
|
|
11
|
+
## Quy Trình
|
|
12
|
+
|
|
13
|
+
### 1. Hỏi thông tin cơ bản
|
|
14
|
+
|
|
15
|
+
Nếu chưa có đủ thông tin, hỏi user:
|
|
16
|
+
- **Project type**: `new-product` hay `old-maintenance`?
|
|
17
|
+
- **Level**: 1 (lite), 2 (standard), hay 3 (full)?
|
|
18
|
+
- **Team roles**: Những role nào tham gia? (dev, techlead, ba, qc, pm)
|
|
19
|
+
|
|
20
|
+
### 2. Tạo config file
|
|
21
|
+
|
|
22
|
+
Copy `.dw/config/dw.config.yml` vào root dự án.
|
|
23
|
+
Cập nhật các giá trị:
|
|
24
|
+
- `project.name` = tên dự án
|
|
25
|
+
- `project.type` = loại dự án
|
|
26
|
+
- `level` = level đã chọn
|
|
27
|
+
|
|
28
|
+
Nếu **new-product**:
|
|
29
|
+
```yaml
|
|
30
|
+
level: 2
|
|
31
|
+
flags:
|
|
32
|
+
research: true
|
|
33
|
+
plan: true
|
|
34
|
+
execute: true
|
|
35
|
+
commit: true
|
|
36
|
+
review: true
|
|
37
|
+
living_docs: false # Bật lên level 3
|
|
38
|
+
estimation: true
|
|
39
|
+
log_work: true
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Nếu **old-maintenance**:
|
|
43
|
+
```yaml
|
|
44
|
+
level: 1
|
|
45
|
+
flags:
|
|
46
|
+
research: true
|
|
47
|
+
plan: "skip" # Optional cho bug fixes
|
|
48
|
+
execute: true
|
|
49
|
+
commit: true
|
|
50
|
+
review: "skip"
|
|
51
|
+
debug: true
|
|
52
|
+
estimation: "skip"
|
|
53
|
+
log_work: "skip"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 3. Tạo thư mục
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
mkdir -p .dw/tasks .dw/docs .dw/metrics .dw/reports
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 4. Auto-enable role flags
|
|
63
|
+
|
|
64
|
+
Nếu team có `ba` → bật `requirements_skill: true`
|
|
65
|
+
Nếu team có `qc` → bật `test_plan_skill: true`
|
|
66
|
+
Nếu team có `techlead` → bật `arch_review_skill: true`
|
|
67
|
+
Nếu team có `pm` → bật `dashboard_skill: true`
|
|
68
|
+
|
|
69
|
+
### 5. Validate config
|
|
70
|
+
|
|
71
|
+
Sau khi tạo hoặc khi user gọi `/dw:config-init` trên config đã có, kiểm tra:
|
|
72
|
+
|
|
73
|
+
**Known keys** (nếu có key nào ngoài danh sách → warn typo):
|
|
74
|
+
- Top-level: `project`, `level`, `team`, `flags`, `routing`, `estimation`, `metrics`, `paths`
|
|
75
|
+
- `flags` keys: `research`, `plan`, `execute`, `commit`, `review`, `debug`, `living_docs`, `docs_update_on_commit`, `estimation`, `log_work`, `metrics_tracking`, `dora_metrics`, `pre_commit_tests`, `pre_commit_lint`, `block_commit_on_fail`, `handoff`, `thinking_framework`, `requirements_skill`, `test_plan_skill`, `arch_review_skill`, `dashboard_skill`
|
|
76
|
+
|
|
77
|
+
**Level check**:
|
|
78
|
+
- Nếu `level: 3` → hiển thị warning: "Level 3 đang ở trạng thái beta — một số features (living docs automation, DORA calculation, dashboard HTML export) chưa fully automated."
|
|
79
|
+
|
|
80
|
+
**Flag value check**:
|
|
81
|
+
- Mỗi flag phải là `true`, `false`, hoặc `"skip"` — nếu giá trị khác → warn
|
|
82
|
+
|
|
83
|
+
Hiển thị kết quả validation trước khi thông báo hoàn tất.
|
|
84
|
+
|
|
85
|
+
### 6. Thông báo kết quả
|
|
86
|
+
|
|
87
|
+
Hiển thị:
|
|
88
|
+
- Config đã tạo với settings gì
|
|
89
|
+
- Danh sách skills có sẵn (dựa trên flags)
|
|
90
|
+
- Hướng dẫn bước tiếp theo
|
|
91
|
+
- Gợi ý: "Chạy `/dw:task-init [tên-task]` để bắt đầu task đầu tiên"
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dw
|
|
3
|
-
description: "Kiểm tra .dw/config/dw.config.yml có hợp lệ không. Phát hiện unknown keys, typos, invalid values. Chạy sau khi sửa config thủ công."
|
|
4
|
-
argument-hint: ""
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Validate Config
|
|
8
|
-
|
|
9
|
-
Kiểm tra `.dw/config/dw.config.yml` trong project hiện tại.
|
|
10
|
-
|
|
11
|
-
## Bước 1: Đọc config
|
|
12
|
-
|
|
13
|
-
Đọc toàn bộ `.dw/config/dw.config.yml`.
|
|
14
|
-
|
|
15
|
-
## Bước 2: Kiểm tra top-level keys
|
|
16
|
-
|
|
17
|
-
**Known top-level keys:**
|
|
18
|
-
```
|
|
19
|
-
project, level, team, flags, routing, estimation, metrics, paths
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Nếu có key nào khác → **WARN**: "Unknown top-level key: `[key]` — có thể là typo?"
|
|
23
|
-
|
|
24
|
-
## Bước 3: Kiểm tra `flags` keys
|
|
25
|
-
|
|
26
|
-
**Known flag keys:**
|
|
27
|
-
```
|
|
28
|
-
research, plan, execute, commit, review, debug,
|
|
29
|
-
living_docs, docs_update_on_commit,
|
|
30
|
-
estimation, log_work, metrics_tracking, dora_metrics,
|
|
31
|
-
pre_commit_tests, pre_commit_lint, block_commit_on_fail,
|
|
32
|
-
handoff, thinking_framework,
|
|
33
|
-
requirements_skill, test_plan_skill, arch_review_skill, dashboard_skill
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Nếu có flag key nào khác → **WARN**: "Unknown flag: `[key]` — có thể là typo? Flag này sẽ bị ignore."
|
|
37
|
-
|
|
38
|
-
## Bước 4: Kiểm tra flag values
|
|
39
|
-
|
|
40
|
-
Mỗi flag phải có giá trị `true`, `false`, hoặc `"skip"`.
|
|
41
|
-
Nếu giá trị khác → **ERROR**: "Flag `[key]` có giá trị không hợp lệ: `[value]`. Phải là true | false | \"skip\"."
|
|
42
|
-
|
|
43
|
-
## Bước 5: Kiểm tra `level`
|
|
44
|
-
|
|
45
|
-
- Phải là `1`, `2`, hoặc `3`.
|
|
46
|
-
- Nếu `level: 3` → **INFO**: "Level 3 đang ở beta — living docs automation, DORA auto-calculation, và dashboard HTML export chưa fully implemented."
|
|
47
|
-
|
|
48
|
-
## Bước 6: Kiểm tra `project.language`
|
|
49
|
-
|
|
50
|
-
- Phải là `"vi"` hoặc `"en"`.
|
|
51
|
-
- Nếu `"en"` → kiểm tra `.claude/templates/en/` có tồn tại không. Nếu không → **WARN**: "English templates chưa có. Chạy `/dw
|
|
52
|
-
|
|
53
|
-
## Bước 7: Báo cáo kết quả
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
=== Config Validation Report ===
|
|
57
|
-
|
|
58
|
-
File: .dw/config/dw.config.yml
|
|
59
|
-
Project: [project.name]
|
|
60
|
-
Level: [level]
|
|
61
|
-
Language: [language]
|
|
62
|
-
|
|
63
|
-
ERRORS (phải fix):
|
|
64
|
-
[danh sách lỗi nếu có]
|
|
65
|
-
|
|
66
|
-
WARNINGS (nên xem xét):
|
|
67
|
-
[danh sách warnings nếu có]
|
|
68
|
-
|
|
69
|
-
INFO:
|
|
70
|
-
[thông tin thêm]
|
|
71
|
-
|
|
72
|
-
[OK] Config hợp lệ / [FAIL] Có X error(s) cần fix
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
Nếu không có lỗi: "Config hợp lệ. X flags đang bật, Y flags đang tắt."
|
|
1
|
+
---
|
|
2
|
+
name: dw:config-validate
|
|
3
|
+
description: "Kiểm tra .dw/config/dw.config.yml có hợp lệ không. Phát hiện unknown keys, typos, invalid values. Chạy sau khi sửa config thủ công."
|
|
4
|
+
argument-hint: ""
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Validate Config
|
|
8
|
+
|
|
9
|
+
Kiểm tra `.dw/config/dw.config.yml` trong project hiện tại.
|
|
10
|
+
|
|
11
|
+
## Bước 1: Đọc config
|
|
12
|
+
|
|
13
|
+
Đọc toàn bộ `.dw/config/dw.config.yml`.
|
|
14
|
+
|
|
15
|
+
## Bước 2: Kiểm tra top-level keys
|
|
16
|
+
|
|
17
|
+
**Known top-level keys:**
|
|
18
|
+
```
|
|
19
|
+
project, level, team, flags, routing, estimation, metrics, paths
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Nếu có key nào khác → **WARN**: "Unknown top-level key: `[key]` — có thể là typo?"
|
|
23
|
+
|
|
24
|
+
## Bước 3: Kiểm tra `flags` keys
|
|
25
|
+
|
|
26
|
+
**Known flag keys:**
|
|
27
|
+
```
|
|
28
|
+
research, plan, execute, commit, review, debug,
|
|
29
|
+
living_docs, docs_update_on_commit,
|
|
30
|
+
estimation, log_work, metrics_tracking, dora_metrics,
|
|
31
|
+
pre_commit_tests, pre_commit_lint, block_commit_on_fail,
|
|
32
|
+
handoff, thinking_framework,
|
|
33
|
+
requirements_skill, test_plan_skill, arch_review_skill, dashboard_skill
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Nếu có flag key nào khác → **WARN**: "Unknown flag: `[key]` — có thể là typo? Flag này sẽ bị ignore."
|
|
37
|
+
|
|
38
|
+
## Bước 4: Kiểm tra flag values
|
|
39
|
+
|
|
40
|
+
Mỗi flag phải có giá trị `true`, `false`, hoặc `"skip"`.
|
|
41
|
+
Nếu giá trị khác → **ERROR**: "Flag `[key]` có giá trị không hợp lệ: `[value]`. Phải là true | false | \"skip\"."
|
|
42
|
+
|
|
43
|
+
## Bước 5: Kiểm tra `level`
|
|
44
|
+
|
|
45
|
+
- Phải là `1`, `2`, hoặc `3`.
|
|
46
|
+
- Nếu `level: 3` → **INFO**: "Level 3 đang ở beta — living docs automation, DORA auto-calculation, và dashboard HTML export chưa fully implemented."
|
|
47
|
+
|
|
48
|
+
## Bước 6: Kiểm tra `project.language`
|
|
49
|
+
|
|
50
|
+
- Phải là `"vi"` hoặc `"en"`.
|
|
51
|
+
- Nếu `"en"` → kiểm tra `.claude/templates/en/` có tồn tại không. Nếu không → **WARN**: "English templates chưa có. Chạy `/dw:upgrade` để lấy templates mới nhất."
|
|
52
|
+
|
|
53
|
+
## Bước 7: Báo cáo kết quả
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
=== Config Validation Report ===
|
|
57
|
+
|
|
58
|
+
File: .dw/config/dw.config.yml
|
|
59
|
+
Project: [project.name]
|
|
60
|
+
Level: [level]
|
|
61
|
+
Language: [language]
|
|
62
|
+
|
|
63
|
+
ERRORS (phải fix):
|
|
64
|
+
[danh sách lỗi nếu có]
|
|
65
|
+
|
|
66
|
+
WARNINGS (nên xem xét):
|
|
67
|
+
[danh sách warnings nếu có]
|
|
68
|
+
|
|
69
|
+
INFO:
|
|
70
|
+
[thông tin thêm]
|
|
71
|
+
|
|
72
|
+
[OK] Config hợp lệ / [FAIL] Có X error(s) cần fix
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Nếu không có lỗi: "Config hợp lệ. X flags đang bật, Y flags đang tắt."
|