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,37 +1,37 @@
|
|
|
1
|
-
# Code Style & Conventions
|
|
2
|
-
|
|
3
|
-
## Nguyên tắc chung
|
|
4
|
-
- Đặt tên biến/hàm rõ ràng, tự giải thích (self-documenting)
|
|
5
|
-
- Ưu tiên đơn giản, dễ đọc hơn clever code
|
|
6
|
-
- Mỗi function làm MỘT việc
|
|
7
|
-
- Comments giải thích WHY, không phải WHAT
|
|
8
|
-
- Xử lý errors ở đầu function (guard clauses / early return)
|
|
9
|
-
|
|
10
|
-
## Naming Conventions
|
|
11
|
-
- Variables/Functions: camelCase
|
|
12
|
-
- Classes/Components: PascalCase
|
|
13
|
-
- Constants: UPPER_SNAKE_CASE
|
|
14
|
-
- Files: kebab-case hoặc theo convention của framework
|
|
15
|
-
- Directories: kebab-case
|
|
16
|
-
|
|
17
|
-
## File Organization
|
|
18
|
-
- 1 component/class per file (trừ khi strongly related)
|
|
19
|
-
- Group imports: external → internal → relative
|
|
20
|
-
- Export ở cuối file hoặc inline (nhất quán trong project)
|
|
21
|
-
|
|
22
|
-
## Error Handling
|
|
23
|
-
- KHÔNG swallow errors (catch rỗng)
|
|
24
|
-
- Log đủ context để debug (error message, input data, stack)
|
|
25
|
-
- Dùng custom error types cho domain errors
|
|
26
|
-
- Validate input ở boundary (API, form, external data)
|
|
27
|
-
|
|
28
|
-
## Testing
|
|
29
|
-
- Test file cùng tên với source: `foo.ts` → `foo.test.ts` hoặc `foo.spec.ts`
|
|
30
|
-
- Mỗi test case kiểm tra MỘT behavior
|
|
31
|
-
- Test name mô tả expected behavior: "should return error when input is empty"
|
|
32
|
-
- Arrange → Act → Assert pattern
|
|
33
|
-
- KHÔNG mock internal implementation details
|
|
34
|
-
|
|
35
|
-
## NOTE
|
|
36
|
-
Đây là quy tắc mặc định. Team tùy chỉnh theo stack cụ thể của dự án.
|
|
37
|
-
Thêm framework-specific rules vào file này hoặc tạo file riêng trong `.claude/rules/`.
|
|
1
|
+
# Code Style & Conventions
|
|
2
|
+
|
|
3
|
+
## Nguyên tắc chung
|
|
4
|
+
- Đặt tên biến/hàm rõ ràng, tự giải thích (self-documenting)
|
|
5
|
+
- Ưu tiên đơn giản, dễ đọc hơn clever code
|
|
6
|
+
- Mỗi function làm MỘT việc
|
|
7
|
+
- Comments giải thích WHY, không phải WHAT
|
|
8
|
+
- Xử lý errors ở đầu function (guard clauses / early return)
|
|
9
|
+
|
|
10
|
+
## Naming Conventions
|
|
11
|
+
- Variables/Functions: camelCase
|
|
12
|
+
- Classes/Components: PascalCase
|
|
13
|
+
- Constants: UPPER_SNAKE_CASE
|
|
14
|
+
- Files: kebab-case hoặc theo convention của framework
|
|
15
|
+
- Directories: kebab-case
|
|
16
|
+
|
|
17
|
+
## File Organization
|
|
18
|
+
- 1 component/class per file (trừ khi strongly related)
|
|
19
|
+
- Group imports: external → internal → relative
|
|
20
|
+
- Export ở cuối file hoặc inline (nhất quán trong project)
|
|
21
|
+
|
|
22
|
+
## Error Handling
|
|
23
|
+
- KHÔNG swallow errors (catch rỗng)
|
|
24
|
+
- Log đủ context để debug (error message, input data, stack)
|
|
25
|
+
- Dùng custom error types cho domain errors
|
|
26
|
+
- Validate input ở boundary (API, form, external data)
|
|
27
|
+
|
|
28
|
+
## Testing
|
|
29
|
+
- Test file cùng tên với source: `foo.ts` → `foo.test.ts` hoặc `foo.spec.ts`
|
|
30
|
+
- Mỗi test case kiểm tra MỘT behavior
|
|
31
|
+
- Test name mô tả expected behavior: "should return error when input is empty"
|
|
32
|
+
- Arrange → Act → Assert pattern
|
|
33
|
+
- KHÔNG mock internal implementation details
|
|
34
|
+
|
|
35
|
+
## NOTE
|
|
36
|
+
Đây là quy tắc mặc định. Team tùy chỉnh theo stack cụ thể của dự án.
|
|
37
|
+
Thêm framework-specific rules vào file này hoặc tạo file riêng trong `.claude/rules/`.
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
# Commit Standards
|
|
2
|
-
|
|
3
|
-
## Format
|
|
4
|
-
```
|
|
5
|
-
<type>(<scope>): <mô tả tiếng Việt hoặc tiếng Anh>
|
|
6
|
-
|
|
7
|
-
[Body - chi tiết thay đổi, lý do]
|
|
8
|
-
[Blank line]
|
|
9
|
-
[Footer - breaking changes, references]
|
|
10
|
-
|
|
11
|
-
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Types
|
|
15
|
-
| Type | Khi nào dùng |
|
|
16
|
-
|------|-------------|
|
|
17
|
-
| `feat` | Tính năng mới |
|
|
18
|
-
| `fix` | Sửa lỗi |
|
|
19
|
-
| `refactor` | Tái cấu trúc, không thay đổi behavior |
|
|
20
|
-
| `test` | Thêm/sửa tests |
|
|
21
|
-
| `docs` | Tài liệu, comments |
|
|
22
|
-
| `chore` | Build, config, dependencies |
|
|
23
|
-
| `style` | Format, whitespace (không thay đổi logic) |
|
|
24
|
-
| `perf` | Cải thiện performance |
|
|
25
|
-
|
|
26
|
-
## Quy tắc
|
|
27
|
-
- Mỗi commit = 1 subtask hoặc 1 đơn vị logic hoàn chỉnh
|
|
28
|
-
- Mô tả ngắn <= 72 ký tự
|
|
29
|
-
- Dùng thì hiện tại: "thêm", "sửa", "cập nhật" (không phải "đã thêm")
|
|
30
|
-
- KHÔNG commit files chứa secrets (.env, credentials, tokens)
|
|
31
|
-
- KHÔNG commit console.log/debugger còn sót
|
|
32
|
-
|
|
33
|
-
## Branch Naming
|
|
34
|
-
```
|
|
35
|
-
<type>/<task-name>
|
|
36
|
-
```
|
|
37
|
-
Ví dụ: `feat/user-auth`, `fix/login-redirect`, `refactor/api-structure`
|
|
1
|
+
# Commit Standards
|
|
2
|
+
|
|
3
|
+
## Format
|
|
4
|
+
```
|
|
5
|
+
<type>(<scope>): <mô tả tiếng Việt hoặc tiếng Anh>
|
|
6
|
+
|
|
7
|
+
[Body - chi tiết thay đổi, lý do]
|
|
8
|
+
[Blank line]
|
|
9
|
+
[Footer - breaking changes, references]
|
|
10
|
+
|
|
11
|
+
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Types
|
|
15
|
+
| Type | Khi nào dùng |
|
|
16
|
+
|------|-------------|
|
|
17
|
+
| `feat` | Tính năng mới |
|
|
18
|
+
| `fix` | Sửa lỗi |
|
|
19
|
+
| `refactor` | Tái cấu trúc, không thay đổi behavior |
|
|
20
|
+
| `test` | Thêm/sửa tests |
|
|
21
|
+
| `docs` | Tài liệu, comments |
|
|
22
|
+
| `chore` | Build, config, dependencies |
|
|
23
|
+
| `style` | Format, whitespace (không thay đổi logic) |
|
|
24
|
+
| `perf` | Cải thiện performance |
|
|
25
|
+
|
|
26
|
+
## Quy tắc
|
|
27
|
+
- Mỗi commit = 1 subtask hoặc 1 đơn vị logic hoàn chỉnh
|
|
28
|
+
- Mô tả ngắn <= 72 ký tự
|
|
29
|
+
- Dùng thì hiện tại: "thêm", "sửa", "cập nhật" (không phải "đã thêm")
|
|
30
|
+
- KHÔNG commit files chứa secrets (.env, credentials, tokens)
|
|
31
|
+
- KHÔNG commit console.log/debugger còn sót
|
|
32
|
+
|
|
33
|
+
## Branch Naming
|
|
34
|
+
```
|
|
35
|
+
<type>/<task-name>
|
|
36
|
+
```
|
|
37
|
+
Ví dụ: `feat/user-auth`, `fix/login-redirect`, `refactor/api-structure`
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# dw Workflow (consolidated)
|
|
2
|
+
|
|
3
|
+
Config: `.dw/config/dw.config.yml`
|
|
4
|
+
Full methodology: `.dw/core/` (WORKFLOW · THINKING · QUALITY · ROLES · PILLARS)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Override
|
|
9
|
+
|
|
10
|
+
Prompt contains `--no-dw` → ignore all dw instructions for that request, work as plain Claude Code.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 5-Pillar Architecture (v2.0)
|
|
15
|
+
|
|
16
|
+
| Pillar | Role | Owners | Examples |
|
|
17
|
+
|--------|------|--------|----------|
|
|
18
|
+
| **Guards** | Block unsafe actions | privacy-block, pre-commit-gate | Non-negotiable safety |
|
|
19
|
+
| **Surfaces** | Make state visible | ACTIVE.md, project-map, modules | Shared team context |
|
|
20
|
+
| **Records** | Capture decisions | ADRs in `.dw/decisions/` | Organizational memory |
|
|
21
|
+
| **Bridges** | Connect across sessions | auto-handoff, tracking.md | Continuity over time |
|
|
22
|
+
| **Tunes** | Behavioral knobs | roles, depth, presets | Team/solo customization |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Depth Routing
|
|
27
|
+
|
|
28
|
+
Assess per task — file count, API changes, git blame:
|
|
29
|
+
|
|
30
|
+
| Scope | Depth | Approach |
|
|
31
|
+
|-------|-------|----------|
|
|
32
|
+
| ≤2 files, hotfix | quick | Understand → Execute → Close |
|
|
33
|
+
| 3–5 files, new module | standard | spec.md + tracking.md |
|
|
34
|
+
| 6+ files, API/DB/security | thorough | Full 2-file + optional reports/ |
|
|
35
|
+
|
|
36
|
+
Default when unsure: `standard`.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Session Start
|
|
41
|
+
|
|
42
|
+
1. Read `.dw/tasks/ACTIVE.md` — single source of truth for team state
|
|
43
|
+
2. Resume any task with status `In Progress` from its `tracking.md`
|
|
44
|
+
3. Check `.dw/decisions/` for recent ADRs if task touches architecture
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Task Docs (v2 default — 2 files)
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
.dw/tasks/{task-name}/
|
|
52
|
+
├── spec.md # Intent + plan (stable after approve)
|
|
53
|
+
└── tracking.md # Progress + handoff (mutable)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Legacy 3-file (`context + plan + progress`) still supported for older tasks.
|
|
57
|
+
|
|
58
|
+
Templates at `.dw/core/templates/v2/`.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Skills — Namespace `/dw:*`
|
|
63
|
+
|
|
64
|
+
All dw skills invoke via `/dw:{name}` (colon namespace separator).
|
|
65
|
+
|
|
66
|
+
Core workflow: `/dw:flow` · `/dw:task-init` · `/dw:research` · `/dw:plan` · `/dw:execute` · `/dw:commit` · `/dw:handoff`
|
|
67
|
+
|
|
68
|
+
Decisions: `/dw:decision [title]` — create ADR
|
|
69
|
+
|
|
70
|
+
Dev: `/dw:debug` · `/dw:review` · `/dw:thinking` · `/dw:prompt` · `/dw:docs-update`
|
|
71
|
+
|
|
72
|
+
Role-specific: `/dw:requirements` · `/dw:test-plan` · `/dw:arch-review` · `/dw:dashboard` · `/dw:sprint-review`
|
|
73
|
+
|
|
74
|
+
Setup: `/dw:onboard` · `/dw:retroactive` · `/dw:config-init` · `/dw:upgrade` · `/dw:rollback` · `/dw:archive`
|
|
75
|
+
|
|
76
|
+
See `.dw/core/skills-index.md` for complete list with descriptions.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Commit Format
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
<type>(<scope>): <description ≤72 chars>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Types: `feat` `fix` `refactor` `test` `docs` `chore` `style` `perf`
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Hooks
|
|
91
|
+
|
|
92
|
+
| Hook | Purpose |
|
|
93
|
+
|------|---------|
|
|
94
|
+
| `privacy-block` | Guard — block .env/credentials/keys |
|
|
95
|
+
| `pre-commit-gate` | Guard — quality check + sensitive scan |
|
|
96
|
+
| `stop-check` | Bridge — auto-handoff to tracking.md + uncommitted warning |
|
|
97
|
+
| `telemetry-log` | Meta — local event log for v1.4 cut decisions |
|
|
98
|
+
|
|
99
|
+
Legacy (deprecated, removal in v2.0 based on telemetry): scout-block, post-write, progress-ping, session-init, safety-guard.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Decisions Layer
|
|
104
|
+
|
|
105
|
+
ADRs at `.dw/decisions/{NNNN}-{title}.md`. Create with `/dw:decision`.
|
|
106
|
+
|
|
107
|
+
Status values: `Proposed | Accepted | Deprecated | Superseded by ADR-{NNNN}`
|
|
108
|
+
|
|
109
|
+
When to write: architectural choice · cross-cutting concern · breaking change · trade-off with long-term impact.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Telemetry (Local-Only)
|
|
114
|
+
|
|
115
|
+
- Storage: `.dw/metrics/events.jsonl`
|
|
116
|
+
- Inspect: `dw metrics show`
|
|
117
|
+
- Privacy: zero network; `DW_NO_TELEMETRY=1` to disable
|
|
118
|
+
- Used for: v1.4 data-driven cut decisions (internal teams only)
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Config Local Override
|
|
123
|
+
|
|
124
|
+
`.dw/config/dw.config.local.yml` (gitignored) for machine-specific overrides.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Presets
|
|
129
|
+
|
|
130
|
+
| Preset | Audience | Config |
|
|
131
|
+
|--------|----------|--------|
|
|
132
|
+
| `solo` | Vibe coders, solo dev | Guards only, zero task docs |
|
|
133
|
+
| `team` | 5-15 dev teams | Full hooks, tracking encouraged |
|
|
134
|
+
| `enterprise` | Regulated / large teams | Full + roles + audit |
|
|
135
|
+
|
|
136
|
+
Install: `dw init --preset {name}` or `dw init --solo`.
|
package/.claude/settings.json
CHANGED
|
@@ -1,99 +1,120 @@
|
|
|
1
|
-
{
|
|
2
|
-
"
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"Bash(git
|
|
9
|
-
"Bash(git
|
|
10
|
-
"Bash(git
|
|
11
|
-
"Bash(git
|
|
12
|
-
"Bash(git
|
|
13
|
-
"Bash(
|
|
14
|
-
"Bash(
|
|
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
|
-
"hooks": [
|
|
42
|
-
{
|
|
43
|
-
"type": "command",
|
|
44
|
-
"command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/
|
|
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
|
-
"matcher": "
|
|
70
|
-
"hooks": [
|
|
71
|
-
{
|
|
72
|
-
"type": "command",
|
|
73
|
-
"command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/
|
|
74
|
-
}
|
|
75
|
-
]
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
"
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
"hooks": [
|
|
91
|
-
{
|
|
92
|
-
"type": "command",
|
|
93
|
-
"command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/
|
|
94
|
-
}
|
|
95
|
-
]
|
|
96
|
-
}
|
|
97
|
-
]
|
|
98
|
-
|
|
99
|
-
|
|
1
|
+
{
|
|
2
|
+
"includeCoAuthoredBy": false,
|
|
3
|
+
"permissions": {
|
|
4
|
+
"allow": [
|
|
5
|
+
"Read(*)",
|
|
6
|
+
"Grep(*)",
|
|
7
|
+
"Glob(*)",
|
|
8
|
+
"Bash(git log *)",
|
|
9
|
+
"Bash(git diff *)",
|
|
10
|
+
"Bash(git show *)",
|
|
11
|
+
"Bash(git status)",
|
|
12
|
+
"Bash(git blame *)",
|
|
13
|
+
"Bash(git stash list)",
|
|
14
|
+
"Bash(ls *)",
|
|
15
|
+
"Bash(wc *)",
|
|
16
|
+
"Bash(node src/smoke-test.mjs)",
|
|
17
|
+
"Bash(xargs echo *)",
|
|
18
|
+
"Edit(/.claude/skills/dw-decision/**)",
|
|
19
|
+
"Bash(node bin/dw.mjs active)",
|
|
20
|
+
"Bash(node bin/dw.mjs metrics show)",
|
|
21
|
+
"Bash(node bin/dw.mjs dashboard)",
|
|
22
|
+
"Bash(node bin/dw.mjs init --help)",
|
|
23
|
+
"Bash(mkdir -p /tmp/test-solo)",
|
|
24
|
+
"Read(//tmp/**)",
|
|
25
|
+
"Bash(DW_NAME=test node /d/huygdv_projects/dw-kit/bin/dw.mjs init --solo)",
|
|
26
|
+
"Bash(npm test *)",
|
|
27
|
+
"Bash(node bin/dw.mjs metrics cut-analysis)",
|
|
28
|
+
"Bash(bash -n .claude/hooks/pre-commit-gate.sh)",
|
|
29
|
+
"Bash(bash -n /dev/stdin)",
|
|
30
|
+
"Bash(dos2unix .claude/hooks/pre-commit-gate.sh)",
|
|
31
|
+
"Bash(sed -i 's/\\\\r$//' .claude/hooks/pre-commit-gate.sh)",
|
|
32
|
+
"Bash(git add *)"
|
|
33
|
+
],
|
|
34
|
+
"additionalDirectories": [
|
|
35
|
+
"D:\\huygdv_projects\\dw-kit\\.claude\\rules"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"hooks": {
|
|
39
|
+
"UserPromptSubmit": [
|
|
40
|
+
{
|
|
41
|
+
"hooks": [
|
|
42
|
+
{
|
|
43
|
+
"type": "command",
|
|
44
|
+
"command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/session-init.sh\""
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"PreToolUse": [
|
|
50
|
+
{
|
|
51
|
+
"matcher": "Read|Glob",
|
|
52
|
+
"hooks": [
|
|
53
|
+
{
|
|
54
|
+
"type": "command",
|
|
55
|
+
"command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/scout-block.sh\""
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"matcher": "Read",
|
|
61
|
+
"hooks": [
|
|
62
|
+
{
|
|
63
|
+
"type": "command",
|
|
64
|
+
"command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/privacy-block.sh\""
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"matcher": "Bash",
|
|
70
|
+
"hooks": [
|
|
71
|
+
{
|
|
72
|
+
"type": "command",
|
|
73
|
+
"command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/pre-commit-gate.sh\""
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"matcher": "Bash",
|
|
79
|
+
"hooks": [
|
|
80
|
+
{
|
|
81
|
+
"type": "command",
|
|
82
|
+
"command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/safety-guard.sh\""
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"PostToolUse": [
|
|
88
|
+
{
|
|
89
|
+
"matcher": "Write|Edit",
|
|
90
|
+
"hooks": [
|
|
91
|
+
{
|
|
92
|
+
"type": "command",
|
|
93
|
+
"command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/post-write.sh\""
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"Stop": [
|
|
99
|
+
{
|
|
100
|
+
"hooks": [
|
|
101
|
+
{
|
|
102
|
+
"type": "command",
|
|
103
|
+
"command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/stop-check.sh\""
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"Notification": [
|
|
109
|
+
{
|
|
110
|
+
"hooks": [
|
|
111
|
+
{
|
|
112
|
+
"type": "command",
|
|
113
|
+
"command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/progress-ping.sh\""
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
"mcpServers": {}
|
|
120
|
+
}
|