@eltonssouza/development-utility-kit 0.11.0 → 0.13.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/README.md CHANGED
@@ -1,439 +1,53 @@
1
1
  # development-utility-kit
2
2
 
3
- > Meta-skill harness for Claude Code. Generic agents by domain, knowledge packs by stack, single-`npx` injection into any project.
3
+ > Meta-skill harness for Claude Code. Stack-agnostic agents, knowledge packs per stack, single-command injection into any project.
4
4
 
5
5
  [![npm](https://img.shields.io/npm/v/@eltonssouza/development-utility-kit)](https://www.npmjs.com/package/@eltonssouza/development-utility-kit)
6
- [![beta](https://img.shields.io/npm/v/@eltonssouza/development-utility-kit/beta?label=beta)](https://www.npmjs.com/package/@eltonssouza/development-utility-kit?activeTab=versions)
7
- [![downloads](https://img.shields.io/npm/dt/@eltonssouza/development-utility-kit)](https://www.npmjs.com/package/@eltonssouza/development-utility-kit)
8
- [![license](https://img.shields.io/npm/l/@eltonssouza/development-utility-kit)](LICENSE)
9
- [![stars](https://img.shields.io/github/stars/eltonssouza/development-utility-kit?style=social)](https://github.com/eltonssouza/development-utility-kit/stargazers)
10
- [![issues](https://img.shields.io/github/issues/eltonssouza/development-utility-kit)](https://github.com/eltonssouza/development-utility-kit/issues)
11
- [![roadmap](https://img.shields.io/badge/roadmap-public-blue)](ROADMAP.md)
12
- [![comparisons](https://img.shields.io/badge/comparisons-honest-orange)](docs/COMPARISONS.md)
13
- [![release](https://img.shields.io/github/v/release/eltonssouza/development-utility-kit)](https://github.com/eltonssouza/development-utility-kit/releases/latest)
6
+ [![license](https://img.shields.io/npm/l/@eltonssouza/development-utility-kit)](https://github.com/eltonssouza/development-utility-kit/blob/main/LICENSE)
14
7
 
15
8
  CLI binary: `duk` · Node `>=18` · License: MIT
16
9
 
17
- **Install as a Claude Code plugin** (recommended — global, works in every project):
10
+ ## Install
11
+
12
+ **As a Claude Code plugin** (recommended — global, every project, nothing written into your repo):
18
13
 
19
14
  ```
20
15
  /plugin marketplace add eltonssouza/development-utility-kit
21
16
  /plugin install development-utility-kit
22
17
  ```
23
18
 
24
- **Or inject per-project via npx** (writes `.claude/` + `CLAUDE.md` into the current project):
19
+ **Or inject per-project via npx** (writes `.claude/` + `CLAUDE.md` into the current project, and self-installs the `duk` CLI globally):
25
20
 
26
21
  ```bash
27
22
  npx @eltonssouza/development-utility-kit install
28
23
  ```
29
24
 
30
- ---
31
-
32
- ## What it is
33
-
34
- Not an agent. Not a skill. The **bundle** that turns any repo into a Claude-Code-driven project — with:
35
-
36
- - **20 keyword-triggered skills** (front-controller `project-manager`, `run-sprint`, `auto-test-guard`, `pair-debug`, `grill-me`, `to-prd`, `to-issues`, `quick-feature`, `brain-keeper`, `stack-discovery`, `create-stack-pack`, `quality-standards`, `caveman`, etc.)
37
- - **21 specialized sub-agents** (1 Opus for `tech-lead`, 3 Haiku for mechanical work, 17 Sonnet for everything else)
38
- - **5 stack knowledge packs** (Java + Spring Boot 3/4, Angular 18/19/21) — extend with `create-stack-pack` skill
39
- - **Full discovery → delivery pipeline** (`grill-me → to-prd → to-issues → analyst → run-sprint`) with mandatory TDD
40
- - **Local sub-agent telemetry** (`SubagentStop` hook → SQLite) + **web dashboard** (Express + Vanilla JS + Chart.js CDN)
41
- - **Non-negotiable Senior+ quality gate** (coverage ≥85%, mutation ≥70%, Lighthouse ≥0.80, a11y 0 critical)
42
- - **Autonomy Matrix**: agents decide on their own; human is interrupted only in 4 PO cases or 3 TL cases
43
- - **Drift detection** via `.claude/.MANIFEST` (sha256 per file) — `duk install` refuses to overwrite local modifications without `--force`
44
-
45
- > v2.0.0+ introduces **stack-agnostic agents** consuming knowledge packs at `.claude/stacks/<lang>/<framework>-<major>.md`. The pre-1.0 era of hardcoded Java/Angular agents is gone — agents now adapt to the declared stack via `STACK CONTEXT` injection (ADR-026).
46
-
47
- ---
48
-
49
- ## Why use it
50
-
51
- | Strength | Detail |
52
- |---|---|
53
- | **Zero-friction injection** | `duk install` in the project directory. No clone, no git, no boilerplate. |
54
- | **Stack-agnostic agents** | `backend-developer`, `frontend-developer`, `mobile-developer`, etc. read `## Project Identity` and consume the matching stack pack. Works on Java, TypeScript, Python, Go, etc. |
55
- | **Knowledge packs by version** | Java SB3 vs SB4 vs SB5 each get their own `## Code patterns`, `## Security`, `## Anti-patterns` section. No pack? `create-stack-pack` skill generates one conversationally. |
56
- | **Auto stack detection** | `detect-stack.js` parses `pom.xml`, `package.json`, `pyproject.toml`, `go.mod`, `docker-compose.yml`. |
57
- | **Idempotent install + drift detection** | Previous `.claude/` becomes `.claude.bak-<timestamp>/`. `.MANIFEST` (sha256) detects local modifications and refuses unsafe overwrites. `## Project Identity` preserved verbatim. |
58
- | **Local overrides via `.claude/local/`** | Project-specific tweaks live there. Never touched by `duk install`. Loader priority: `local/` wins over harness. |
59
- | **Aggressive autonomy by design** | Agents never ask permission for routine. PO/TL hold decision power; specialists never escalate directly to human. |
60
- | **Universal TDD** | `sprint-runner` enforces `qa-engineer (failing test) → developer → gate-keeper` on every task. ADR-020. |
61
- | **Obsidian-ready brain** | `brain-keeper` provisions `docs/brain/` with vault, color snippets, MOC, ADRs, daily, features, bugs, tech-debt, migrations. |
62
- | **Caveman mode by default** | ~65–75% cheaper output in tokens, no technical loss. ULTRA in code, FULL in `.md`. Credit: [@JuliusBrussee](https://github.com/JuliusBrussee). |
63
- | **No build for dashboard** | Vanilla JS + Chart.js via CDN. Tiny tarball. ADR-014. |
64
-
65
- ---
66
-
67
- ## How it works
68
-
69
- ### 3-layer architecture
70
-
71
- ```
72
- User prompt
73
-
74
-
75
- ┌─────────────────────────────┐
76
- │ SKILLS (entry point) │ keyword match
77
- │ .claude/skills/<X>/SKILL.md│ → specific skill OR
78
- └─────────────┬───────────────┘ project-manager (front-controller)
79
-
80
- ▼ Step 0 (orchestrating skills)
81
- ┌─────────────────────────────┐
82
- │ stack-resolver (Haiku) │ reads ## Project Identity
83
- │ reads .claude/stacks/<pack>│ returns STACK CONTEXT block
84
- └─────────────┬───────────────┘
85
-
86
- ▼ Task tool dispatch (with STACK CONTEXT inlined)
87
- ┌─────────────────────────────┐
88
- │ AGENTS (executors) │ 21 specialized agents
89
- │ .claude/agents/<X>.md │ Opus | Sonnet | Haiku per matrix
90
- └─────────────┬───────────────┘
91
-
92
-
93
- Artifact (code, ADR, PRD, plan, test, deploy)
94
- ```
95
-
96
- Skill = entry point + multi-step protocol. Agent = executor with tools. Pack = stack-specific knowledge consumed by agents. No loose commands.
97
-
98
- ### Discovery → delivery flow
99
-
100
- ```
101
- grill-me → docs/discovery/DISCOVERY_<NAME>.md
102
-
103
- to-prd → docs/prd/PRD_<NAME>.md
104
-
105
- to-issues → docs/issues/ISSUES_<NAME>.md (gh issue create-ready)
106
-
107
- analyst → docs/plans/PLAN_<NAME>.md (goal-ready DoD)
108
-
109
- run-sprint (thin) → sprint-runner (single execution contract; mandatory TDD, Stage 0 stack-resolver)
110
-
111
- gate-keeper → Senior+ gate (coverage, mutation, a11y, lighthouse, pyramid)
112
-
113
- brain-keeper → docs/brain/ (daily, feature, ADR, bug, tech-debt, migration, MOC)
114
- ```
115
-
116
- For small features that don't justify the full pipeline (adding a field, fixing a search, exporting CSV): use `quick-feature` skill — bypasses discovery/PRD/issues, generates minimal PLAN, dispatches `run-sprint` directly. TDD + Senior+ gate still mandatory.
117
-
118
- ### Flow governance
119
-
120
- Every prompt passes through `flow-guard.js` (UserPromptSubmit hook) before reaching the model. It injects `[FLOW STATE]`, classifies the lane (greenfield / brownfield / sprint / small-task), and hard-blocks qualified implementation work that is missing its prerequisite artifact (DISCOVERY_*.md or PLAN_*.md). Bypass is audited in `.flow-state.json`.
121
-
122
- `project-manager` is the universal front-controller: classifies the lane, enforces the stage order, then dispatches (ROUTE → 1 specialist | ORCHESTRATE → ≤5 parallel with a shared `run_group_id` | ESCALATE → `sprint-runner`).
123
-
124
- ### Telemetry + Dashboard
125
-
126
- ```
127
- Claude Code ─► UserPromptSubmit ─► flow-guard.js (lane classify + block)
128
-
129
- └► SubagentStop hook ─► subagent-telemetry.sh ─► telemetry-writer.js
130
-
131
-
132
- ~/.claude/telemetry.db (SQLite)
133
- events + orchestration_runs
134
-
135
- ┌─────────────────────────────────────────┘
136
-
137
- duk dashboard → Express @ :4242+ → Vanilla JS UI
138
- /api/stats
139
- /api/projects
140
- /api/projects/processes (run-groups + agent children)
141
- /api/rtk (rtk gain --format json)
142
- ```
143
-
144
- Polling every 5s. Click a project → **Processes panel** shows recent orchestration run-groups, each expandable into its parallel agent fan (agent type, model, status). Phase A: completed runs. Phase B (live in-flight): deferred — no `SubagentStart` hook available in Claude Code today.
145
-
146
- ---
147
-
148
- ## Quickstart
149
-
150
- ### Two ways to install
151
-
152
- | | **Plugin** (recommended) | **npx injection** |
153
- |---|---|---|
154
- | Command | `/plugin marketplace add eltonssouza/development-utility-kit` then `/plugin install development-utility-kit` | `npx @eltonssouza/development-utility-kit install` |
155
- | Scope | Global — every project, every session | Per-project (writes `.claude/` + `CLAUDE.md`) |
156
- | Lands in | `~/.claude/plugins/` | the project directory |
157
- | Updates | `/plugin update` (or auto on version bump) | re-run `npx … install` |
158
- | Per-project stack | declare in a small `CLAUDE.md` `## Project Identity` (or let agents auto-detect) | written into the injected `CLAUDE.md` |
159
-
160
- Both deliver the same 19 skills + 21 agents + stack packs. The plugin keeps them global and out of your repo; the npx path injects them into the project (and self-installs `duk` globally). Skills, agents and the flow-governance hook load identically either way.
161
-
162
- > **Note on `## Project Identity`:** Claude Code plugins cannot ship a project `CLAUDE.md` (plugin context arrives via skills/agents/hooks, not CLAUDE.md). When you install via the plugin, declare your stack in a short per-project `CLAUDE.md` block so `stack-resolver` picks the right pack — or rely on `detect-stack.js` auto-detection. The npx path still writes the full `CLAUDE.md` for you.
163
-
164
- ### Brand-new project
165
-
166
- ```bash
167
- duk new my-app
168
- cd my-app
169
- # Open Cowork or Claude Code in this folder, then in chat:
170
- # > "sabatina pra projeto novo"
171
- # stack-discovery skill walks you through 8 questions to declare type, language,
172
- # framework, version, database, UI lib, domain.
173
- ```
174
-
175
- ### Existing project
176
-
177
- ```bash
178
- cd <your-project>
179
- npx @eltonssouza/development-utility-kit install
180
- ```
181
-
182
- Injects `.claude/`, `CLAUDE.md`, `.claude/HARNESS_VERSION`, `.claude/.MANIFEST`, `.claude/local/` placeholder. Detects stack automatically.
183
-
184
- **Preview before applying** (no writes):
185
- ```bash
186
- duk install --check-only
187
- ```
188
-
189
- Reports detected stack + local vs latest harness version + pack availability.
190
-
191
- **Override local modifications** (skip drift detection):
192
- ```bash
193
- duk install --force
194
- ```
195
-
196
- `.claude.backup-<timestamp>/` is always created.
197
-
198
- ### Edit `## Project Identity` in `CLAUDE.md`
199
-
200
- The only section the project owns. All others are harness base and receive updates via `duk install` (with drift detection).
201
-
202
- ```markdown
203
- ## Project Identity
204
-
205
- - **Project name**: my-store
206
- - **Project type**: fullstack
207
- - **Primary stack**: Java 21 + Spring Boot 3.2
208
- - **Database**: PostgreSQL 17 + Redis 7
209
- - **Domain**: e-commerce
210
- - **Team size**: 3 fullstack
211
- ```
212
-
213
- `stack-resolver` reads this and loads `.claude/stacks/java/spring-boot-3.md`. If pack absent for declared stack: dispatches `create-stack-pack` skill to author it conversationally.
214
-
215
- ### Run the dashboard
216
-
217
- ```bash
218
- duk dashboard # auto-detects free port from 4242
219
- duk dashboard --port 5000
220
- duk dashboard --no-open # skip browser launch
221
- ```
222
-
223
- Before starting Express, prints `rtk gain` (token savings analytics). If `rtk` not in PATH: non-fatal warning, proceeds.
224
-
225
- ### Update many projects at once
25
+ > Run `npx … install` from inside a project folder — not from a drive root.
226
26
 
227
- ```bash
228
- # Preview which projects would be updated:
229
- duk sync-all C:\development\source\projects
27
+ ## What you get
230
28
 
231
- # Apply with filters (AND logic between multiple --filter):
232
- duk sync-all C:\development\source\projects --filter stack:java --apply
233
- duk sync-all C:\development\source\projects --filter age:30d --apply
234
- duk sync-all C:\development\source\projects --filter harness-version:<2 --apply
235
-
236
- # Exclude specific projects:
237
- duk sync-all C:\development\source\projects --exclude prod-critical --apply
238
- ```
239
-
240
- ---
29
+ - **18 keyword-triggered skills** + **21 stack-agnostic agents** + stack knowledge packs (Java/Spring, TypeScript/Angular, and more)
30
+ - **Front-controller routing** (`project-manager`) + flow governance hook
31
+ - **Full discovery delivery pipeline** with mandatory TDD and a Senior+ quality gate
32
+ - **Local sub-agent telemetry** + a no-build web dashboard (`duk dashboard`)
33
+ - **Obsidian project brain** (`brain-keeper`)
241
34
 
242
35
  ## `duk` commands
243
36
 
244
37
  ```
245
- duk new <name> # scaffold new project + open conversational discovery
246
- duk install [--sub <dir>] [--dry-run] [--check-only] [--force]
247
- # inject harness into CWD (idempotent)
248
- duk update # alias of install
249
- duk sync-all <dir> [--filter <expr>]* [--exclude <name>]* [--apply]
250
- # update harness in many projects
251
- duk dashboard [--port <n>] [--no-open] # launch local dashboard
252
- duk doctor [--strict] [--json] # validate environment (Node, git, hooks, packs)
253
- duk lint [--category <name>] [--json] # validate harness .claude/ structure
254
- duk help [command] # general help or command-specific
255
- duk --version # print version
256
- ```
257
-
258
- See `duk help <command>` for detailed per-command flags. The `doctor` and
259
- `lint` commands are deterministic and run without any LLM/API calls — safe
260
- to use in CI. See **ADR-034** for the design principle behind them.
261
-
262
- ---
263
-
264
- ## Prompts that trigger skills
265
-
266
- | You say | Skill fires |
267
- |---|---|
268
- | "sabatina pra projeto novo", "stack discovery" | `stack-discovery` → fills `## Project Identity` |
269
- | "cria pack para Django", "gera pack" | `create-stack-pack` → new `.claude/stacks/<lang>/<framework>-<major>.md` |
270
- | "grill me", "interview me about X" | `grill-me` → discovery interview |
271
- | "to-prd", "generate PRD" | `to-prd` (after `grill-me`) |
272
- | "to-issues", "break into issues" | `to-issues` (after `to-prd`) |
273
- | "run sprint 2", "execute the sprint" | `run-sprint` (Stage 0 stack-resolver) |
274
- | "quick-feature: add field X" | `quick-feature` → bypass discovery, minimal PLAN, run-sprint |
275
- | "pair debug", "investigate this bug" | `pair-debug` (Stage 0 stack-resolver) |
276
- | "audit coverage" | `test-coverage-auditor` |
277
- | "PRD-ready?", "ready for prod?" | `prd-ready-check` |
278
- | "create endpoint", "build the screen", anything else | `project-manager` (front-controller — classifies lane, enforces flow) |
279
- | "stop caveman", "normal mode" | disables caveman |
280
-
281
- ---
282
-
283
- ## Senior+ Quality Gate
284
-
285
- Non-negotiable. `gate-keeper` blocks merge if any item fails. **Thresholds are universal across stacks**; tooling specifics (JaCoCo vs coverage.py, JUnit vs pytest, etc.) come from the active stack pack:
286
-
287
- | Metric | Threshold |
288
- |---|---|
289
- | Backend coverage (lines / branches) | ≥85% / ≥80% |
290
- | Backend mutation score | ≥70% in domain + application layers |
291
- | Frontend coverage | ≥85% statements, ≥80% branches |
292
- | Static analysis (SpotBugs / mypy / golangci-lint / ESLint strict / ...) | 0 CRITICAL, 0 HIGH |
293
- | Dependency vuln scan (OWASP DC / npm audit / safety / govulncheck) | 0 CVE CVSS ≥7.0 |
294
- | Playwright E2E | 100% green, console 0 errors |
295
- | a11y (jest-axe + axe-playwright) | 0 serious, 0 critical |
296
- | Lighthouse | score ≥0.80, LCP ≤2500ms, CLS ≤0.1, TBT ≤300ms |
297
- | Testing pyramid | E2E ≤30% of total (ideal ≤15%) |
298
-
299
- Reference: ADR-007 (a11y + Lighthouse + pyramid), ADR-027 (pack `## Security` mandatory).
300
-
301
- ---
302
-
303
- ## Structure
304
-
305
- ```
306
- development-utility-kit/
307
- ├── .claude/
308
- │ ├── skills/ # 20 skills (project-manager front-controller, run-sprint, stack-discovery, ...)
309
- │ ├── agents/ # 21 agents (Opus/Sonnet/Haiku per matrix)
310
- │ ├── stacks/ # 5 stack packs (java/spring-boot-3, spring-boot-4; typescript/angular-18,19,21)
311
- │ │ ├── _template.md
312
- │ │ ├── README.md
313
- │ │ ├── CODEOWNERS
314
- │ │ ├── java/
315
- │ │ └── typescript/
316
- │ └── settings.json
317
- ├── bin/
318
- │ ├── cli.js # zero-deps `duk` CLI router (Node 18+)
319
- │ └── lib/ # 8 helper modules (detect-stack, version-check, sync-all, manifest, ...)
320
- ├── dashboard/
321
- │ ├── server.js # Express + 3 endpoints
322
- │ ├── db.js # better-sqlite3 / sql.js wrapper
323
- │ ├── rtk.js # spawns rtk gain --format json
324
- │ └── public/ # Vanilla JS + Chart.js CDN
325
- ├── scripts/
326
- │ ├── hooks/
327
- │ │ ├── subagent-telemetry.sh # SubagentStop hook
328
- │ │ └── telemetry-writer.js # triple-fallback writer
329
- │ ├── lint-harness.mjs # validates Pattern 1/2, packs, agent hardcode, drift
330
- │ └── latest-versions.json # offline fallback for version detection
331
- ├── docs/
332
- │ ├── brain/ # Obsidian vault (features, decisions, daily, bugs, migrations)
333
- │ ├── discovery/ # DISCOVERY_*.md
334
- │ ├── prd/ # PRD_*.md
335
- │ ├── issues/ # ISSUES_*.md
336
- │ └── plans/ # PLAN_*.md
337
- ├── tests/smoke/ # smoke tests (install, dashboard, telemetry)
338
- ├── .github/workflows/
339
- │ ├── publish.yml # auto-publish on GitHub Release published
340
- │ └── promote-dist-tag.yml # manual: promote beta → latest via Actions UI
341
- ├── CLAUDE.md # base template (Project Identity + plugin base)
342
- ├── CHANGELOG.md # release-please-managed
343
- └── package.json
38
+ duk new <name> # scaffold a new project + conversational stack discovery
39
+ duk install # inject the harness into the current project
40
+ duk install --check-only # preview detected stack + drift, write nothing
41
+ duk sync-all <dir> # update the harness across many projects
42
+ duk dashboard # launch the local telemetry + docs dashboard
43
+ duk doctor # validate environment
44
+ duk lint # validate harness .claude/ structure
45
+ duk help [command] # help
344
46
  ```
345
47
 
346
- ---
347
-
348
- ## Key ADRs
349
-
350
- | ADR | Decision |
351
- |---|---|
352
- | **ADR-007** | Senior+ gate (a11y + Lighthouse + pyramid thresholds) |
353
- | **ADR-008** | Standard pipeline (PO → analyst → tech-lead → sprint-runner → gate-keeper → reviewer → TL) |
354
- | **ADR-011** | `grill-me` as opt-in discovery skill |
355
- | **ADR-014** | Vanilla JS + Chart.js CDN dashboard |
356
- | **ADR-015** | Triple-fallback telemetry writer |
357
- | **ADR-017** | `DISCOVERY_*.md` in `docs/discovery/` (not `docs/plans/`) |
358
- | **ADR-018** | `duk` CLI redesign — `install → adoptProject` |
359
- | **ADR-020** | Mandatory TDD in `sprint-runner` |
360
- | **ADR-026** | Generic agents + stack packs (architecture foundation) |
361
- | **ADR-027** | Pack governance (frontmatter + `## Security` mandatory + CODEOWNERS + annual review) |
362
- | **ADR-028** | `duk` workflow (new, install --check-only, sync-all with filters, help) |
363
- | **ADR-029** | Canonical pack format (10 sections, 300-450L target) |
364
- | **ADR-030** | Migrator consumes 2 packs (FROM + TO), multi-major incremental, fullstack sequential |
365
- | **ADR-032** | Drift detection (`.MANIFEST`) + `.claude/local/` overrides + opt-in propagation |
366
- | **ADR-033** | `project-manager` orchestrate mode (ROUTE / ORCHESTRATE ≤5 / ESCALATE) — fast-lane for ad-hoc multi-domain tasks without a formal `PLAN_*.md` |
367
- | **ADR-034** | CLI vs Skill design principle — mechanical/deterministic → `duk` CLI; contextual/judgment → chat (skills + agents); hybrid → CLI executes + skill orchestrates |
368
-
369
- Full vault under [`docs/brain/`](docs/brain/) — browse via Obsidian. Live ADR index also rendered at `duk dashboard` → Tech Docs tab.
370
-
371
- ---
372
-
373
- ## Commit restrictions (NON-NEGOTIABLE)
374
-
375
- - Conventional Commits (`feat(scope): ...`, `fix(scope): ...`, `feat!: ...` for breaking)
376
- - **Never** reference Anthropic, Claude, AI, LLM, or assistant in subject/body/trailers
377
- - **Never** add `Co-Authored-By: Claude`
378
- - Commits must look 100% authored by the human developer
379
- - `tech-lead` rejects merge on violation
380
-
381
- ---
382
-
383
- ## Acknowledgements
384
-
385
- `development-utility-kit` is a **meta-skill harness** — it ships its own skills and agents, but it also stands on the shoulders of skills built by other people in the Claude Code community. The bundle would not work the way it does without them, and the credit belongs to their authors.
386
-
387
- Honest thanks to:
388
-
389
- - **[`grill-me`](https://github.com/mattpocock/skills)** — by **[Matt Pocock](https://github.com/mattpocock)** ([aihero.dev](https://www.aihero.dev/my-grill-me-skill-has-gone-viral)). The relentless discovery interview that opens our `grill-me → to-prd → to-issues → analyst → run-sprint` pipeline is Matt's design. We adapted the skill to persist its output to `docs/discovery/DISCOVERY_*.md` and hand off to `analyst`, but the interview mechanic — one decision branch at a time, with a recommended answer the user just confirms — is his.
390
- - **[`caveman`](https://github.com/JuliusBrussee/caveman)** — by **[Julius Brussee](https://github.com/JuliusBrussee)**. The telegraphic communication mode that saves us 65–75% of output tokens with zero technical loss. We use it as the default style in this harness; the compression rules, the levels (lite/full/ultra), and the auto-clarity carve-outs are Julius's work.
391
- - **[`impeccable`](https://github.com/pbakaus/impeccable)** — by **[Paul Bakaus](https://github.com/pbakaus)**. The design-refinement skill (`polish | harden | audit`) that drives our visual-quality gate. Paul's `npx skills add pbakaus/impeccable` distribution pattern also directly inspired our own `npx @eltonssouza/development-utility-kit install` installer (ADR-018).
392
- - **[`rtk`](https://github.com/rtk-ai/rtk)** — by the **[rtk-ai](https://github.com/rtk-ai) team**. The Rust Token Killer CLI proxy that powers the live "RTK savings" widget on the `duk dashboard` (`rtk gain --format json` → `/api/rtk`). The 60–90% savings on dev operations we surface in the dashboard are RTK's, not ours.
393
-
394
- If you build on top of this harness, please give these projects a star — they are the load-bearing dependencies our pipeline assumes, and their authors made them available freely to the community. Any mistake in the way we integrate or describe their work is ours, not theirs.
395
-
396
- > For the full rationale on **why each plugin was selected**, **how it integrates inside the harness**, **what breaks if you disable it**, and **alternatives considered**, see the dedicated [External plugins reference](dashboard/public/content/docs/plugins.en.md) — also rendered live at `duk dashboard` → Tech Docs → "External plugins".
397
-
398
- ---
399
-
400
- ## Release Process
401
-
402
- Releases ship through GitHub Actions, not manual `npm publish`.
403
-
404
- ### Publishing a new version
405
-
406
- 1. Bump `package.json` version (e.g., `2.0.0-beta.1 → 2.0.0`) and update `CHANGELOG.md`.
407
- 2. Commit + push + tag:
408
- ```bash
409
- git commit -m "feat!: <summary>"
410
- git tag v2.0.0
411
- git push origin <branch> --tags
412
- ```
413
- 3. Create a GitHub Release pointing at the tag (UI or `gh release create`).
414
- 4. `publish.yml` workflow fires on `release: published`, runs `npm publish --access public`.
415
- 5. `publishConfig.tag` in `package.json` controls dist-tag target (`beta` or `latest`).
416
-
417
- ### Pre-release vs stable
418
-
419
- - Pre-releases use `--tag beta` (default in `publishConfig`). `npx @eltonssouza/development-utility-kit@beta install` pulls them.
420
- - After validating against real projects: **manually promote** to `latest` via the **Promote npm dist-tag** workflow (GitHub Actions → Run workflow → enter version + target tag).
421
-
422
- ### Rollback
423
-
424
- If a release breaks something, rollback by re-pointing `latest` to the prior stable:
425
-
426
- ```
427
- GitHub Actions → Promote npm dist-tag → version=1.0.1, tag=latest
428
- ```
429
-
430
- Bad version stays published (npm doesn't allow real deletion past 72h), but no one downloads it via `npx` anymore.
431
-
432
- ### Required secret
433
-
434
- The promote workflow needs a `NPM_TOKEN` repository secret — a **Granular Access Token** with read+write on `@eltonssouza/development-utility-kit`. Generated at https://www.npmjs.com/settings/eltonssouza/tokens.
48
+ ## Full documentation
435
49
 
436
- ---
50
+ See the [GitHub repository](https://github.com/eltonssouza/development-utility-kit) for the complete README, architecture, ADRs, stack packs, and the live dashboard docs.
437
51
 
438
52
  ## License
439
53
 
package/README.npm.md ADDED
@@ -0,0 +1,54 @@
1
+ # development-utility-kit
2
+
3
+ > Meta-skill harness for Claude Code. Stack-agnostic agents, knowledge packs per stack, single-command injection into any project.
4
+
5
+ [![npm](https://img.shields.io/npm/v/@eltonssouza/development-utility-kit)](https://www.npmjs.com/package/@eltonssouza/development-utility-kit)
6
+ [![license](https://img.shields.io/npm/l/@eltonssouza/development-utility-kit)](https://github.com/eltonssouza/development-utility-kit/blob/main/LICENSE)
7
+
8
+ CLI binary: `duk` · Node `>=18` · License: MIT
9
+
10
+ ## Install
11
+
12
+ **As a Claude Code plugin** (recommended — global, every project, nothing written into your repo):
13
+
14
+ ```
15
+ /plugin marketplace add eltonssouza/development-utility-kit
16
+ /plugin install development-utility-kit
17
+ ```
18
+
19
+ **Or inject per-project via npx** (writes `.claude/` + `CLAUDE.md` into the current project, and self-installs the `duk` CLI globally):
20
+
21
+ ```bash
22
+ npx @eltonssouza/development-utility-kit install
23
+ ```
24
+
25
+ > Run `npx … install` from inside a project folder — not from a drive root.
26
+
27
+ ## What you get
28
+
29
+ - **18 keyword-triggered skills** + **21 stack-agnostic agents** + stack knowledge packs (Java/Spring, TypeScript/Angular, and more)
30
+ - **Front-controller routing** (`project-manager`) + flow governance hook
31
+ - **Full discovery → delivery pipeline** with mandatory TDD and a Senior+ quality gate
32
+ - **Local sub-agent telemetry** + a no-build web dashboard (`duk dashboard`)
33
+ - **Obsidian project brain** (`brain-keeper`)
34
+
35
+ ## `duk` commands
36
+
37
+ ```
38
+ duk new <name> # scaffold a new project + conversational stack discovery
39
+ duk install # inject the harness into the current project
40
+ duk install --check-only # preview detected stack + drift, write nothing
41
+ duk sync-all <dir> # update the harness across many projects
42
+ duk dashboard # launch the local telemetry + docs dashboard
43
+ duk doctor # validate environment
44
+ duk lint # validate harness .claude/ structure
45
+ duk help [command] # help
46
+ ```
47
+
48
+ ## Full documentation
49
+
50
+ See the [GitHub repository](https://github.com/eltonssouza/development-utility-kit) for the complete README, architecture, ADRs, stack packs, and the live dashboard docs.
51
+
52
+ ## License
53
+
54
+ MIT