dw-kit 1.9.0-rc.1 → 1.9.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/stop-check.sh +10 -0
- package/.claude/skills/dw-decision/SKILL.md +2 -1
- package/.claude/skills/dw-kit-report/SKILL.md +38 -7
- package/.dw/core/schemas/decision-frontmatter.schema.json +54 -0
- package/.dw/core/schemas/goal-frontmatter.schema.json +2 -2
- package/.dw/core/schemas/task-frontmatter.schema.json +2 -2
- package/.dw/core/templates/v3/task.md +41 -19
- package/README.md +5 -2
- package/package.json +5 -3
- package/src/cli.mjs +33 -0
- package/src/commands/decision-index.mjs +45 -0
- package/src/commands/goal-delete.mjs +3 -1
- package/src/commands/goal-link.mjs +3 -1
- package/src/commands/goal-status.mjs +95 -0
- package/src/commands/lint-task.mjs +20 -0
- package/src/commands/task-index.mjs +47 -0
- package/src/commands/task-migrate.mjs +16 -5
- package/src/commands/task-new.mjs +6 -0
- package/src/commands/task-summary.mjs +4 -3
- package/src/lib/decision-store.mjs +146 -0
- package/src/lib/goal-store.mjs +42 -15
- package/src/lib/lint-rules.mjs +10 -1
- package/src/lib/task-store.mjs +164 -0
- package/src/lib/timeline-parser.mjs +54 -15
- package/.dw/core/PILLARS.md +0 -122
- package/CLAUDE.md +0 -44
package/.dw/core/PILLARS.md
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
# dw-kit v2.0 — 5 Pillar Architecture
|
|
2
|
-
|
|
3
|
-
dw-kit v2.0 positions itself as a **Context-First SDLC Governance Layer** — not a prescriptive workflow engine. AI drives execution; dw-kit provides guardrails, context, and decision trail.
|
|
4
|
-
|
|
5
|
-
**Framing inversion:** `prescriptive workflow → descriptive governance`. Moat is organizational memory compounding over time — something IDE tools (Cursor, Copilot) structurally cannot own because they are session-scoped.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Pillar 1: GUARDS — Block unsafe actions
|
|
10
|
-
|
|
11
|
-
**Role:** Non-negotiable safety boundaries. Enforced by hooks, zero discretion.
|
|
12
|
-
|
|
13
|
-
**Components:**
|
|
14
|
-
- `.claude/hooks/privacy-block.sh` — Prevent reading `.env*`, `credentials*`, `*.pem`, key files
|
|
15
|
-
- `.claude/hooks/pre-commit-gate.sh` — Quality checks + sensitive data scan before commits
|
|
16
|
-
|
|
17
|
-
**Obsolescence test:** AI gets smarter → safety becomes MORE important (velocity × risk). These hooks never obsolete.
|
|
18
|
-
|
|
19
|
-
**Team impact:** Prevents accidents at individual dev level, reduces incident count team-wide.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Pillar 2: SURFACES — Make state visible
|
|
24
|
-
|
|
25
|
-
**Role:** Shared team context. Human and AI both read.
|
|
26
|
-
|
|
27
|
-
**Components:**
|
|
28
|
-
- `.dw/tasks/ACTIVE.md` — Auto-generated index of active tasks (TechLead cat to see team state)
|
|
29
|
-
- `.dw/context/project-map.md` — Module structure and boundaries
|
|
30
|
-
- `.dw/context/modules/*.md` — Per-module documentation
|
|
31
|
-
- `CLAUDE.md` + `.claude/rules/dw.md` — Auto-injected conventions
|
|
32
|
-
|
|
33
|
-
**Obsolescence test:** AI gets smarter → teams coordinate more ambitiously → surfaces become MORE load-bearing.
|
|
34
|
-
|
|
35
|
-
**Team impact:** New dev onboards from surfaces alone. TechLead audits without asking devs "what are you doing?"
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Pillar 3: RECORDS — Capture decisions
|
|
40
|
-
|
|
41
|
-
**Role:** Organizational memory. The WHY behind architectural choices.
|
|
42
|
-
|
|
43
|
-
**Components:**
|
|
44
|
-
- `.dw/decisions/{NNNN}-{title}.md` — ADRs with structured YAML header
|
|
45
|
-
- `/dw:decision` skill — Interactive ADR wizard
|
|
46
|
-
- Status tracking: `Proposed | Accepted | Deprecated | Superseded by ADR-{NNNN}`
|
|
47
|
-
|
|
48
|
-
**Obsolescence test:** AI gets smarter → needs WHY context to avoid technically-correct but strategically-wrong decisions. ADRs become MORE valuable.
|
|
49
|
-
|
|
50
|
-
**Team impact:** Replaces scattered Slack threads. 6-month-old devs find decision trail. New hires understand architecture fast.
|
|
51
|
-
|
|
52
|
-
**Unique moat:** IDE tools (Cursor, Copilot) structurally can't own this — they're session-scoped, ADRs are cross-session artifacts.
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Pillar 4: BRIDGES — Connect across sessions
|
|
57
|
-
|
|
58
|
-
**Role:** Continuity over time. Handle the "long chat → no handoff → team lost context" problem.
|
|
59
|
-
|
|
60
|
-
**Components:**
|
|
61
|
-
- `.dw/tasks/{task}/tracking.md` — Mutable progress log with friction journal
|
|
62
|
-
- Stop hook auto-handoff — Appends session summary to tracking.md on uncommitted changes
|
|
63
|
-
- (v2.0+) Living docs detection — Flag when code diverges from docs
|
|
64
|
-
|
|
65
|
-
**Obsolescence test:** AI sessions remain ephemeral regardless of capability. Bridges always needed.
|
|
66
|
-
|
|
67
|
-
**Team impact:** Pick-up-where-left-off works across devs and across sessions. TechLead sees real velocity from actual logs, not status meeting summaries.
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## Pillar 5: TUNES — Behavioral knobs
|
|
72
|
-
|
|
73
|
-
**Role:** Team/solo customization. Governs how Pillars 1-4 behave.
|
|
74
|
-
|
|
75
|
-
**Components:**
|
|
76
|
-
- `.dw/config/dw.config.yml` — Master config (depth, roles, flags)
|
|
77
|
-
- `.dw/config/dw.config.local.yml` — Machine-specific override (gitignored)
|
|
78
|
-
- Presets: `solo` · `team` · `enterprise`
|
|
79
|
-
- Depth routing: `quick` · `standard` · `thorough`
|
|
80
|
-
- Role system: `dev` · `techlead` · `ba` · `qc` · `pm`
|
|
81
|
-
|
|
82
|
-
**Obsolescence test:** Team size and preferences always vary. Config always needed.
|
|
83
|
-
|
|
84
|
-
**Team impact:** Same dw-kit serves vibe coder (preset solo) and enterprise team (preset enterprise) with same core.
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Pillar Cross-References
|
|
89
|
-
|
|
90
|
-
| Question | Answer location |
|
|
91
|
-
|----------|----------------|
|
|
92
|
-
| "Is this safe to do?" | Pillar 1 (Guards) — hooks block |
|
|
93
|
-
| "What's everyone working on?" | Pillar 2 (Surfaces) — ACTIVE.md |
|
|
94
|
-
| "Why did we choose X?" | Pillar 3 (Records) — ADRs |
|
|
95
|
-
| "Where were we yesterday?" | Pillar 4 (Bridges) — tracking.md |
|
|
96
|
-
| "How does our team work?" | Pillar 5 (Tunes) — config + presets |
|
|
97
|
-
|
|
98
|
-
## Design Principles
|
|
99
|
-
|
|
100
|
-
1. **Descriptive, not prescriptive** — AI chooses approach; dw-kit supplies context + safety
|
|
101
|
-
2. **Obsolescence-aware** — Every feature passes "more valuable if AI smarter?" test
|
|
102
|
-
3. **Dual audience** — Solo + team from same core, different defaults
|
|
103
|
-
4. **Data-driven evolution** — Telemetry guides cut decisions, not gut-feel
|
|
104
|
-
5. **Escape hatches** — `--no-dw`, `legacy_features: true`, `DW_NO_TELEMETRY=1`
|
|
105
|
-
|
|
106
|
-
## Future: Pillar 6 — JANITORS (deferred to post-v2.0)
|
|
107
|
-
|
|
108
|
-
**Status:** Draft, deferred — see `.dw/decisions/0003-pillar-6-janitors.md`
|
|
109
|
-
|
|
110
|
-
**Role:** Reactive cleanup of AI-generated waste. Current 5 pillars are *preventive* (govern what goes in); Janitors governs *what stays*.
|
|
111
|
-
|
|
112
|
-
**Rationale:** When 99% of code is AI-generated, prevention alone cannot scale. Inspired by urban waste management — cities use multi-tier systems (sort → collect → recycle → regulate), not just "don't litter."
|
|
113
|
-
|
|
114
|
-
**Revisit:** After v2.0 GA (post 2026-08-15), based on real-world friction data.
|
|
115
|
-
|
|
116
|
-
## Versioning
|
|
117
|
-
|
|
118
|
-
- **v1.3** — Foundation (new format, scaffolding, telemetry)
|
|
119
|
-
- **v1.4** — Data-driven cuts based on telemetry evidence
|
|
120
|
-
- **v2.0** — Unified release with full 5-pillar integration
|
|
121
|
-
- **v2.1+** — Advanced features (auto-handoff LLM, cross-repo, dashboard UI)
|
|
122
|
-
- **v2.2+** — Janitors pillar (if validated by v2.0 friction data)
|
package/CLAUDE.md
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# dw-kit (repo)
|
|
2
|
-
|
|
3
|
-
Workflow toolkit codebase. Rules live in `.claude/rules/` (auto-loaded).
|
|
4
|
-
|
|
5
|
-
**v2.0 direction:** Context-First SDLC Governance Layer (5 pillars — see `.dw/core/PILLARS.md`)
|
|
6
|
-
**Current:** **v1.8.0-rc.1** (2026-05-25) — 4/5 phase substrate for [G-rgoal-realtime-orch](.dw/goals/G-rgoal-realtime-orch/goal.md) voice-meeting Root Goal: persistent CLI-agent session runtime (`dw session *`), Telegram chat bridge (`dw connector telegram setup`) with 1-command interactive wizard, multi-workspace registry (`dw workspace *`), and browser voice MVP (`dw voice`) with hybrid orchestrator fallback (Claude/Codex/Gemini), full bilingual UX (en + vi), voice-not-installed fallback via Google Translate TTS proxy. **v1.7.0 stable** on `main` (2026-05-24). 368/368 smoke tests. Active ADRs: ADR-0001 (Pragmatic Lean), ADR-0005/0006 (Supply-Chain Guard; sunset review 2026-08-12), ADR-0008 (Task Docs v3, v1.5), ADR-0009 (Agent OS, v1.6), ADR-0010 (Goals Layer, v1.7), ADR-0011 (Session Runtime + Voice Orchestrator, v1.8 — Accepted), ADR-0014 (Orchestrator Action Execution — Accepted), ADR-0015 (Multi-Agent Live Debate — Accepted), ADR-0016 (`dw:goal` Outcome-Driven Pursuit Loop — Accepted).
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Tech Stack
|
|
11
|
-
|
|
12
|
-
- Runtime: Node.js ≥18, ESM (`.mjs`)
|
|
13
|
-
- CLI: `commander` · UI: `enquirer`, `chalk` · Config: `js-yaml`, `ajv`
|
|
14
|
-
- Tests: `node src/smoke-test.mjs`
|
|
15
|
-
|
|
16
|
-
## Repo Structure
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
bin/ CLI entrypoint
|
|
20
|
-
src/
|
|
21
|
-
commands/ CLI subcommands (init, upgrade, dashboard, metrics, ...)
|
|
22
|
-
lib/ Shared utilities (config, telemetry, active-index, ...)
|
|
23
|
-
.claude/
|
|
24
|
-
hooks/ Bash hooks (Guards pillar)
|
|
25
|
-
rules/ dw.md (consolidated) + code-style + commit-standards
|
|
26
|
-
skills/ Slash commands with dw:* namespace
|
|
27
|
-
.dw/
|
|
28
|
-
core/ WORKFLOW · THINKING · QUALITY · ROLES · PILLARS · templates/
|
|
29
|
-
decisions/ ADRs (Records pillar)
|
|
30
|
-
tasks/ Active + archive/ (Bridges pillar — via task.md v3 / tracking.md v2)
|
|
31
|
-
metrics/ Local telemetry (events.jsonl)
|
|
32
|
-
config/ dw.config.yml
|
|
33
|
-
security/ IoC namespace fixture (Guards pillar — ADR-0005)
|
|
34
|
-
research/ Investigation notes, RFC-style proposals, voter panel outputs
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Dev Notes
|
|
38
|
-
|
|
39
|
-
- All source ESM — no CommonJS
|
|
40
|
-
- `TOOLKIT_ROOT` resolved from `import.meta.url` in each command
|
|
41
|
-
- Hooks python3-free (node only — Windows compat)
|
|
42
|
-
- `dw-kit-evolve` + `dw-kit-audit` are maintainer-only — excluded from npm package
|
|
43
|
-
- Published package files declared explicitly in `package.json#files`
|
|
44
|
-
- Telemetry local-only, `DW_NO_TELEMETRY=1` to disable
|