dw-kit 1.0.0 → 1.0.1
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 +1 -3
- package/.claude/skills/dw-upgrade/SKILL.md +20 -30
- package/.dw/adapters/claude-cli/extensions/README.md +2 -2
- package/.dw/adapters/claude-cli/generated/README.md +3 -3
- package/.dw/adapters/claude-cli/overrides/README.md +4 -2
- package/README.md +68 -127
- package/package.json +4 -5
- package/scripts/e2e-local-check.sh +1 -2
- package/src/cli.mjs +0 -9
- package/src/smoke-test.mjs +1 -11
- package/scripts/migrate-v03-to-v1.sh +0 -243
- package/scripts/upgrade.sh +0 -246
- package/setup.sh +0 -382
- package/src/commands/migrate.mjs +0 -215
|
@@ -22,9 +22,7 @@ except:
|
|
|
22
22
|
[ -z "$FILE_PATH" ] && exit 0
|
|
23
23
|
|
|
24
24
|
# ── Đọc lint command từ config ────────────────────────────────────────────────
|
|
25
|
-
CONFIG_FILE="${CLAUDE_PROJECT_DIR:-$PWD}/config/dw.config.yml"
|
|
26
|
-
# Fallback sang old config nếu chưa migrate
|
|
27
|
-
[ ! -f "$CONFIG_FILE" ] && CONFIG_FILE="${CLAUDE_PROJECT_DIR:-$PWD}/config/dw.config.yml"
|
|
25
|
+
CONFIG_FILE="${CLAUDE_PROJECT_DIR:-$PWD}/.dw/config/dw.config.yml"
|
|
28
26
|
[ ! -f "$CONFIG_FILE" ] && exit 0
|
|
29
27
|
|
|
30
28
|
LINT_CMD=$(grep -m1 "lint_command:" "$CONFIG_FILE" 2>/dev/null \
|
|
@@ -6,52 +6,42 @@ argument-hint: ""
|
|
|
6
6
|
|
|
7
7
|
# Upgrade dv-workflow-kit
|
|
8
8
|
|
|
9
|
-
## Điều Kiện
|
|
9
|
+
## Điều Kiện tiên quyết
|
|
10
10
|
|
|
11
|
-
|
|
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/`
|
|
12
15
|
|
|
13
|
-
## Bước 1:
|
|
16
|
+
## Bước 1: Preview upgrade (khuyến nghị)
|
|
14
17
|
|
|
15
|
-
Kiểm tra `.dw-module/` có tồn tại và là git repo:
|
|
16
18
|
```bash
|
|
17
|
-
|
|
19
|
+
dw upgrade --check
|
|
20
|
+
dw upgrade --dry-run
|
|
18
21
|
```
|
|
19
22
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## Bước 2: Pull version mới nhất
|
|
23
|
+
## Bước 2: Backup config (tùy chọn nhưng nên làm)
|
|
23
24
|
|
|
24
|
-
```bash
|
|
25
|
-
cd .dv-workflow && git fetch origin && git log origin/main --oneline -5
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Hiển thị 5 commits mới nhất của upstream để user biết có gì thay đổi.
|
|
29
|
-
|
|
30
|
-
## Bước 3: Backup config
|
|
31
|
-
|
|
32
|
-
Trước khi update, backup config hiện tại:
|
|
33
25
|
```bash
|
|
34
26
|
cp .dw/config/dw.config.yml .dw/config/dw.config.yml.backup-$(date +%Y%m%d)
|
|
35
27
|
```
|
|
36
28
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
## Bước 4: Update submodule
|
|
29
|
+
## Bước 3: Chạy upgrade
|
|
40
30
|
|
|
41
31
|
```bash
|
|
42
|
-
|
|
32
|
+
dw upgrade
|
|
43
33
|
```
|
|
44
34
|
|
|
45
|
-
|
|
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
|
|
46
38
|
|
|
47
|
-
Chạy setup script với mode update (không overwrite):
|
|
48
39
|
```bash
|
|
49
|
-
|
|
40
|
+
dw validate
|
|
41
|
+
dw doctor
|
|
50
42
|
```
|
|
51
43
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
## Bước 6: Báo cáo kết quả
|
|
44
|
+
## Bước 5: Báo cáo kết quả
|
|
55
45
|
|
|
56
46
|
```
|
|
57
47
|
=== Upgrade Report ===
|
|
@@ -64,7 +54,7 @@ Files mới (đã copy):
|
|
|
64
54
|
+ .claude/templates/en/task-context.md
|
|
65
55
|
|
|
66
56
|
Files đã thay đổi trong toolkit (KHÔNG tự động update vì bạn có thể đã customize):
|
|
67
|
-
~ .claude/skills/dw-task-init/SKILL.md — xem diff: git diff .
|
|
57
|
+
~ .claude/skills/dw-task-init/SKILL.md — xem diff: git diff .claude/skills/dw-task-init/SKILL.md
|
|
68
58
|
~ .claude/agents/planner.md
|
|
69
59
|
|
|
70
60
|
Files của bạn (giữ nguyên):
|
|
@@ -72,11 +62,11 @@ Files của bạn (giữ nguyên):
|
|
|
72
62
|
|
|
73
63
|
Lưu ý:
|
|
74
64
|
- Review các files "đã thay đổi" và merge thủ công nếu cần
|
|
75
|
-
- Xem CHANGELOG
|
|
65
|
+
- Xem CHANGELOG của release (nếu cần) để biết breaking changes
|
|
76
66
|
- Chạy /dw-config-validate sau khi upgrade để kiểm tra config
|
|
77
67
|
```
|
|
78
68
|
|
|
79
|
-
##
|
|
69
|
+
## Cleanup backup (tùy chọn)
|
|
80
70
|
|
|
81
71
|
Hỏi user: "Bạn có muốn xóa file backup config không? (y/n)"
|
|
82
72
|
Nếu y: `rm .dw/config/dw.config.yml.backup-*`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# .dw/adapters/claude-cli/extensions/
|
|
2
2
|
|
|
3
3
|
> **NET-NEW TEAM SKILLS — Không conflict với generated, không bị overwrite.**
|
|
4
4
|
|
|
@@ -15,7 +15,7 @@ extensions/
|
|
|
15
15
|
└── README.md ← optional: mô tả skill
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
`
|
|
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
19
|
|
|
20
20
|
## Ví dụ Skills Phù Hợp
|
|
21
21
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
# .dw/adapters/claude-cli/generated/
|
|
2
2
|
|
|
3
3
|
> **AUTO-GENERATED — Không edit tay.**
|
|
4
|
-
> Thư mục này được overwrite khi
|
|
4
|
+
> Thư mục này được overwrite khi nâng cấp toolkit trong quá trình build/generation nội bộ.
|
|
5
5
|
|
|
6
6
|
## Nội dung
|
|
7
7
|
|
|
@@ -16,7 +16,7 @@ generated/
|
|
|
16
16
|
|
|
17
17
|
## Cách hoạt động
|
|
18
18
|
|
|
19
|
-
`
|
|
19
|
+
`dw init`/`dw upgrade` → populate `.claude/`, áp dụng overrides từ `overrides/` (override thắng).
|
|
20
20
|
|
|
21
21
|
## Nếu muốn customize
|
|
22
22
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# .dw/adapters/claude-cli/overrides/
|
|
2
2
|
|
|
3
3
|
> **TEAM CUSTOMIZATIONS — KHÔNG BAO GIỜ bị overwrite khi upgrade.**
|
|
4
4
|
|
|
@@ -19,11 +19,13 @@ overrides/
|
|
|
19
19
|
└── reviewer.md ← override generated/agents/reviewer.md
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
Khi
|
|
22
|
+
Khi chạy `dw upgrade`, luồng sẽ:
|
|
23
23
|
1. Update `generated/` từ toolkit mới
|
|
24
24
|
2. Apply overrides từ thư mục này (overrides thắng generated)
|
|
25
25
|
3. Copy kết quả vào `.claude/`
|
|
26
26
|
|
|
27
|
+
Trong v1, luồng chuẩn là `dw upgrade`: nó tôn trọng overrides khi cập nhật `.claude/`.
|
|
28
|
+
|
|
27
29
|
## Khi nào nên override?
|
|
28
30
|
|
|
29
31
|
- Team có domain-specific review rules
|
package/README.md
CHANGED
|
@@ -1,183 +1,124 @@
|
|
|
1
|
-
|
|
1
|
+
# dw-kit
|
|
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.0** · `npm install -g dw-kit` · [Docs](docs/README.md) · [
|
|
5
|
+
**v1.0** · `npm install -g dw-kit` · [Docs](docs/README.md) · [Get started](docs/get-started.md) · [Cheatsheet](docs/cheatsheet.md)
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## What is dw-kit?
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
dw-kit helps your team run AI-assisted development with a **repeatable workflow** and clear checkpoints:
|
|
12
12
|
|
|
13
13
|
```
|
|
14
|
-
|
|
14
|
+
Initialize → Understand → Plan → Execute (TDD) → Verify → Close
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
```mermaid
|
|
18
|
+
%%{init: {'flowchart': {'nodeSpacing': 10, 'rankSpacing': 18}}}%%
|
|
19
|
+
flowchart LR
|
|
20
|
+
classDef extra fill:#f3f4f6,stroke:#9ca3af,stroke-width:1px,color:#111;
|
|
18
21
|
|
|
19
|
-
|
|
22
|
+
D[Init + Understand] --> P[Plan (approve)]
|
|
23
|
+
P -->|approved| E[Execute (TDD)]
|
|
24
|
+
P -->|revise| P
|
|
20
25
|
|
|
21
|
-
|
|
26
|
+
E --> V[Verify (gates)]
|
|
27
|
+
V -->|sign-off| C[Close (handoff + archive)]
|
|
28
|
+
V -->|revise (fix)| E
|
|
22
29
|
|
|
23
|
-
|
|
30
|
+
subgraph Extra[Depth=thorough]
|
|
31
|
+
R[Req] --> Est[Est] --> AR[Arch] --> P
|
|
32
|
+
P -.-> TP[Test] -.-> E
|
|
33
|
+
E -.-> DU[Docs] --> LW[Log] -.-> C
|
|
34
|
+
end
|
|
24
35
|
|
|
25
|
-
|
|
26
|
-
npm install -g dw-kit
|
|
36
|
+
class R,Est,AR,TP,DU,LW extra
|
|
27
37
|
```
|
|
28
38
|
|
|
29
|
-
|
|
39
|
+
### 6 phases (full workflow)
|
|
40
|
+
- **Initialize**: clarify task scope and set up the workspace + task docs.
|
|
41
|
+
- **Understand**: survey the codebase, dependencies, patterns, and test coverage (no implementation).
|
|
42
|
+
- **Plan**: design the solution and subtasks; **pause for your approval**.
|
|
43
|
+
- **Execute**: implement using **TDD**; each subtask produces a commit.
|
|
44
|
+
- **Verify**: run quality gates + review sign-off to ensure correctness and safety.
|
|
45
|
+
- **Close**: handoff notes, finalize progress, and archive when done.
|
|
30
46
|
|
|
31
|
-
|
|
32
|
-
dw init
|
|
33
|
-
```
|
|
47
|
+
It’s designed for collaboration (Dev / Tech Lead / QA / PM) and keeps work auditable via lightweight task docs.
|
|
34
48
|
|
|
35
|
-
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Install
|
|
36
52
|
|
|
37
53
|
```bash
|
|
38
|
-
|
|
39
|
-
dw init --preset solo-quick # solo dev, minimal ceremony
|
|
40
|
-
dw init --preset enterprise # full team, all features
|
|
54
|
+
npm install -g dw-kit
|
|
41
55
|
```
|
|
42
56
|
|
|
43
|
-
|
|
57
|
+
---
|
|
44
58
|
|
|
45
|
-
|
|
46
|
-
npx dw-kit init
|
|
47
|
-
```
|
|
59
|
+
## Quick start
|
|
48
60
|
|
|
49
|
-
|
|
61
|
+
From your project directory:
|
|
50
62
|
|
|
51
63
|
```bash
|
|
52
|
-
|
|
53
|
-
bash .dw-module/setup.sh
|
|
64
|
+
dw init
|
|
54
65
|
```
|
|
55
66
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
### Start working
|
|
59
|
-
|
|
60
|
-
Open Claude Code in your project directory:
|
|
67
|
+
Then in **Claude Code** (Update for Cursor/Antigravity/... in the next version):
|
|
61
68
|
|
|
62
69
|
```
|
|
63
|
-
/dw-
|
|
70
|
+
/dw-flow new-feature
|
|
64
71
|
```
|
|
65
72
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
dw init # Setup wizard
|
|
70
|
-
dw upgrade # Update toolkit files (override-aware)
|
|
71
|
-
dw upgrade --dry-run # Preview changes
|
|
72
|
-
dw upgrade --check # Check for updates only
|
|
73
|
-
dw validate # Validate config against schema
|
|
74
|
-
dw doctor # Check installation health
|
|
75
|
-
dw migrate # Migrate from v0.3 to v1
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
---
|
|
73
|
+
## Workflow overview
|
|
79
74
|
|
|
80
|
-
|
|
75
|
+
`dw` runs a 6-phase process (all phases for `standard` and `thorough`):
|
|
81
76
|
|
|
82
|
-
|
|
83
|
-
|-------|----------|----------|
|
|
84
|
-
| `quick` | Solo dev, hotfix, familiar code | Understand → Execute → Close |
|
|
85
|
-
| `standard` | Team nhỏ, feature mới | Tất cả 6 phases |
|
|
86
|
-
| `thorough` | Enterprise, API/DB/security changes | Full workflow + arch-review + test-plan |
|
|
87
|
-
|
|
88
|
-
Cấu hình trong `.dw/config/dw.config.yml`:
|
|
89
|
-
```yaml
|
|
90
|
-
workflow:
|
|
91
|
-
default_depth: "standard"
|
|
92
|
-
```
|
|
77
|
+
Initialize → Understand → Plan (stops for approval) → Execute (TDD; 1 commit per subtask) → Verify (quality gates + review sign-off) → Close (handoff + archive when done).
|
|
93
78
|
|
|
94
|
-
`default_depth` là baseline. Với task cụ thể, bạn có thể override sang `thorough` khi scope/risk tăng (API/DB/security), kể cả project nhỏ.
|
|
95
79
|
|
|
96
80
|
---
|
|
97
81
|
|
|
98
|
-
##
|
|
82
|
+
## CLI commands
|
|
99
83
|
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
84
|
+
```bash
|
|
85
|
+
dw init # setup wizard / presets
|
|
86
|
+
dw validate # validate .dw/config/dw.config.yml
|
|
87
|
+
dw doctor # installation health check
|
|
88
|
+
dw upgrade # update toolkit files (override-aware)
|
|
89
|
+
dw upgrade --check # check for updates only
|
|
90
|
+
dw upgrade --dry-run # preview changes
|
|
105
91
|
```
|
|
106
92
|
|
|
107
93
|
---
|
|
108
94
|
|
|
109
|
-
##
|
|
95
|
+
## Depth system
|
|
110
96
|
|
|
111
|
-
|
|
112
|
-
dự-án-của-bạn/
|
|
113
|
-
├── .dw-module/ ← toolkit (git submodule, read-only)
|
|
114
|
-
├── core/ ← portable methodology
|
|
115
|
-
│ ├── WORKFLOW.md ← 6-phase workflow
|
|
116
|
-
│ ├── THINKING.md ← thinking framework
|
|
117
|
-
│ ├── QUALITY.md ← 4-layer quality strategy
|
|
118
|
-
│ └── ROLES.md ← team role definitions
|
|
119
|
-
├── config/
|
|
120
|
-
│ ├── dw.config.yml ← config (~45 lines)
|
|
121
|
-
│ ├── config.schema.json ← validation schema
|
|
122
|
-
│ └── presets/ ← solo-quick, small-team, enterprise
|
|
123
|
-
├── adapters/
|
|
124
|
-
│ ├── claude-cli/overrides/ ← team customizations (upgrade-safe)
|
|
125
|
-
│ ├── claude-cli/extensions/ ← net-new team skills
|
|
126
|
-
│ └── generic/AGENT.md ← for Cursor/Windsurf/Copilot
|
|
127
|
-
├── .claude/ ← skills, agents, rules, hooks
|
|
128
|
-
├── .dw/ ← tasks, docs, metrics, reports
|
|
129
|
-
└── scripts/
|
|
130
|
-
├── upgrade.sh ← upgrade toolkit (--dry-run)
|
|
131
|
-
└── migrate-v03-to-v1.sh ← migration từ v0.3
|
|
132
|
-
```
|
|
97
|
+
Pick a default depth for your project, then override per task when risk increases.
|
|
133
98
|
|
|
134
|
-
|
|
99
|
+
| Depth | Best for | Workflow |
|
|
100
|
+
|-------|----------|----------|
|
|
101
|
+
| `quick` | Solo dev, hotfix, familiar code | Understand → Execute → Close |
|
|
102
|
+
| `standard` | Small teams, new features | Full 6 phases |
|
|
103
|
+
| `thorough` | Risky changes (API/DB/security) | Full workflow + arch-review + test-plan |
|
|
135
104
|
|
|
136
|
-
|
|
105
|
+
Configured in `.dw/config/dw.config.yml`:
|
|
137
106
|
|
|
138
|
-
|
|
107
|
+
```yaml
|
|
108
|
+
workflow:
|
|
109
|
+
default_depth: "standard"
|
|
110
|
+
```
|
|
139
111
|
|
|
140
112
|
---
|
|
141
113
|
|
|
142
|
-
##
|
|
114
|
+
## What gets added to your repo?
|
|
143
115
|
|
|
144
|
-
```bash
|
|
145
|
-
dw migrate --dry-run # preview changes
|
|
146
|
-
dw migrate # apply migration
|
|
147
116
|
```
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
bash scripts/migrate-v03-to-v1.sh --dry-run
|
|
153
|
-
bash scripts/migrate-v03-to-v1.sh
|
|
117
|
+
.dw/ # methodology, config, adapters, task docs
|
|
118
|
+
.claude/ # Claude Code: skills, hooks, agents, rules
|
|
119
|
+
CLAUDE.md # project context for the agent
|
|
154
120
|
```
|
|
155
121
|
|
|
156
|
-
`scripts/upgrade.sh` và `scripts/migrate-v03-to-v1.sh` được giữ cho backward-compat; ưu tiên dùng `dw upgrade` và `dw migrate`.
|
|
157
|
-
|
|
158
|
-
Migration sẽ:
|
|
159
|
-
- Map `level: 2` → `default_depth: standard`
|
|
160
|
-
- Preserve customized skills vào `.dw/adapters/claude-cli/overrides/`
|
|
161
|
-
- Backup old config, create new `.dw/config/dw.config.yml`
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## Demo
|
|
166
|
-
|
|
167
|
-
- [Demo A](examples/demo-A-bug-fix/) — Bug fix workflow (quick depth)
|
|
168
|
-
- [Demo B](examples/demo-B-new-feature/) — Full team feature workflow (BA → PM)
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
## Tài Liệu
|
|
173
|
-
|
|
174
|
-
| Tài liệu | Nội dung |
|
|
175
|
-
|----------|---------|
|
|
176
|
-
| [docs/README.md](docs/README.md) | Hướng dẫn đầy đủ, setup, tips |
|
|
177
|
-
| [docs/cheatsheet.md](docs/cheatsheet.md) | Bảng tham chiếu nhanh tất cả skills |
|
|
178
|
-
| [docs/custom-skills.md](docs/custom-skills.md) | Hướng dẫn tạo custom skills |
|
|
179
|
-
| [CHANGELOG.md](CHANGELOG.md) | Lịch sử thay đổi |
|
|
180
|
-
|
|
181
122
|
---
|
|
182
123
|
|
|
183
|
-
|
|
124
|
+
Maintainer: [huygdv](mailto:huygdv19@gmail.com)
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dw-kit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "AI development workflow toolkit — structured, quality-assured, team-ready. From requirements to dashboard.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"dw": "
|
|
7
|
+
"dw": "bin/dw.mjs"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"bin/",
|
|
@@ -14,8 +14,7 @@
|
|
|
14
14
|
".dw/adapters/",
|
|
15
15
|
"scripts/",
|
|
16
16
|
".claude/",
|
|
17
|
-
"CLAUDE.md"
|
|
18
|
-
"setup.sh"
|
|
17
|
+
"CLAUDE.md"
|
|
19
18
|
],
|
|
20
19
|
"engines": {
|
|
21
20
|
"node": ">=18"
|
|
@@ -40,7 +39,7 @@
|
|
|
40
39
|
"license": "MIT",
|
|
41
40
|
"repository": {
|
|
42
41
|
"type": "git",
|
|
43
|
-
"url": "https://github.com/dv-workflow/dv-workflow.git"
|
|
42
|
+
"url": "git+https://github.com/dv-workflow/dv-workflow.git"
|
|
44
43
|
},
|
|
45
44
|
"homepage": "https://github.com/dv-workflow/dv-workflow#readme",
|
|
46
45
|
"dependencies": {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
#!/bin/bash
|
|
2
2
|
# scripts/e2e-local-check.sh
|
|
3
3
|
# End-to-end local publish check (pack -> install -> run CLI)
|
|
4
4
|
|
|
@@ -60,7 +60,6 @@ npx dw init --preset small-team
|
|
|
60
60
|
npx dw validate
|
|
61
61
|
npx dw doctor
|
|
62
62
|
npx dw upgrade --check
|
|
63
|
-
npx dw migrate --dry-run
|
|
64
63
|
|
|
65
64
|
info "Step 6: Verify task-depth override guidance artifacts"
|
|
66
65
|
grep -q "Task-Level Depth Override" ".dw/core/WORKFLOW.md"
|
package/src/cli.mjs
CHANGED
|
@@ -55,14 +55,5 @@ export function run(argv) {
|
|
|
55
55
|
await doctorCommand();
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
program
|
|
59
|
-
.command('migrate')
|
|
60
|
-
.description('Migrate project from dw-kit v0.3 to v1')
|
|
61
|
-
.option('-n, --dry-run', 'Preview migration without applying')
|
|
62
|
-
.action(async (opts) => {
|
|
63
|
-
const { migrateCommand } = await import('./commands/migrate.mjs');
|
|
64
|
-
await migrateCommand(opts);
|
|
65
|
-
});
|
|
66
|
-
|
|
67
58
|
program.parse(argv);
|
|
68
59
|
}
|
package/src/smoke-test.mjs
CHANGED
|
@@ -72,7 +72,7 @@ test('--version returns semver', () => {
|
|
|
72
72
|
|
|
73
73
|
test('--help lists all commands', () => {
|
|
74
74
|
const out = dw('--help', TEMP_BASE);
|
|
75
|
-
for (const cmd of ['init', 'upgrade', 'validate', 'doctor'
|
|
75
|
+
for (const cmd of ['init', 'upgrade', 'validate', 'doctor']) {
|
|
76
76
|
assert(out.includes(cmd), `Missing command: ${cmd}`);
|
|
77
77
|
}
|
|
78
78
|
});
|
|
@@ -288,16 +288,6 @@ test('upgrade fails on project without config', () => {
|
|
|
288
288
|
}
|
|
289
289
|
});
|
|
290
290
|
|
|
291
|
-
// ── Test: dw migrate ─────────────────────────────────────────────────────────
|
|
292
|
-
console.log();
|
|
293
|
-
console.log('▶ dw migrate');
|
|
294
|
-
|
|
295
|
-
test('migrate on v1 project reports no v0.3 config', () => {
|
|
296
|
-
const dir = join(TEMP_BASE, 'init-solo');
|
|
297
|
-
const out = dw('migrate', dir);
|
|
298
|
-
assert(out.includes('Already on v1') || out.includes('No v0.3'), 'Should report no migration needed');
|
|
299
|
-
});
|
|
300
|
-
|
|
301
291
|
// ── Cleanup ──────────────────────────────────────────────────────────────────
|
|
302
292
|
rmSync(TEMP_BASE, { recursive: true });
|
|
303
293
|
|