@eltonssouza/development-utility-kit 0.14.0 → 0.14.2

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/bin/cli.js CHANGED
@@ -267,6 +267,31 @@ function harnessVersion() {
267
267
  }
268
268
  }
269
269
 
270
+ // ─── spawn helpers (DEP0190-safe) ─────────────────────────────────────────────
271
+
272
+ /**
273
+ * Whether a binary resolves on PATH — cross-platform, no shell (so no DEP0190).
274
+ * @param {string} bin
275
+ * @returns {boolean}
276
+ */
277
+ function isOnPath(bin) {
278
+ const probe = process.platform === 'win32' ? 'where' : 'which';
279
+ const r = spawnSync(probe, [bin], { stdio: 'ignore' });
280
+ return r.status === 0;
281
+ }
282
+
283
+ /**
284
+ * Run a TRUSTED, static command line. A shell is needed on Windows to resolve
285
+ * `.cmd`/`.bat` shims (npm, git, rtk). Passing the command as a SINGLE string
286
+ * (not args[] + shell:true) avoids Node's DEP0190 warning. Never pass untrusted
287
+ * input — quote path arguments at the call site.
288
+ * @param {string} cmd
289
+ * @param {object} [opts]
290
+ */
291
+ function runShell(cmd, opts = {}) {
292
+ return spawnSync(cmd, { shell: true, ...opts });
293
+ }
294
+
270
295
  // ─── adoptProject (install / update) ──────────────────────────────────────────
271
296
 
272
297
  /**
@@ -432,17 +457,11 @@ function adoptProject(opts) {
432
457
  process.stdout.write('Written : CLAUDE.md\n');
433
458
 
434
459
  // Auto-install duk globally when running via npx (duk not yet in PATH).
435
- const dukCheck = spawnSync('duk', ['--version'], {
436
- shell: process.platform === 'win32',
437
- stdio: 'ignore',
438
- });
439
- if (dukCheck.error) {
460
+ if (!isOnPath('duk')) {
440
461
  process.stdout.write('\nInstalling duk CLI globally...\n');
441
- const globalInstall = spawnSync(
442
- 'npm',
443
- ['install', '-g', '@eltonssouza/development-utility-kit'],
444
- { stdio: 'inherit', shell: process.platform === 'win32' }
445
- );
462
+ const globalInstall = runShell('npm install -g @eltonssouza/development-utility-kit', {
463
+ stdio: 'inherit',
464
+ });
446
465
  if (globalInstall.status === 0) {
447
466
  process.stdout.write('duk installed globally. Run: duk help\n');
448
467
  } else {
@@ -530,10 +549,9 @@ function newProject(name, options) {
530
549
  fs.mkdirSync(target, { recursive: true });
531
550
 
532
551
  // 2. git init (non-fatal if git not installed; warn and continue)
533
- const gitResult = spawnSync('git', ['init', '-q'], {
552
+ const gitResult = runShell('git init -q', {
534
553
  cwd: target,
535
554
  stdio: 'inherit',
536
- shell: process.platform === 'win32',
537
555
  });
538
556
  if (gitResult.status !== 0) {
539
557
  process.stdout.write('Warning: "git init" failed or git is not in PATH. Continuing without git repo.\n');
@@ -707,9 +725,8 @@ function dashboard(passthroughArgs) {
707
725
 
708
726
  if (!fs.existsSync(nodeModulesDir)) {
709
727
  process.stdout.write('Installing dashboard dependencies (first run)...\n');
710
- const result = spawnSync('npm', ['install', '--prefix', dashboardDir], {
728
+ const result = runShell(`npm install --prefix "${dashboardDir}"`, {
711
729
  stdio: 'inherit',
712
- shell: process.platform === 'win32',
713
730
  });
714
731
  if (result.status !== 0) {
715
732
  process.stderr.write('Error: npm install failed for dashboard dependencies.\n');
@@ -718,8 +735,7 @@ function dashboard(passthroughArgs) {
718
735
  }
719
736
 
720
737
  // FR-008: print rtk gain output before starting the server
721
- const rtkResult = spawnSync('rtk', ['gain'], {
722
- shell: process.platform === 'win32',
738
+ const rtkResult = runShell('rtk gain', {
723
739
  stdio: ['ignore', 'pipe', 'ignore'],
724
740
  });
725
741
  if (rtkResult.status === 0 && rtkResult.stdout && rtkResult.stdout.length > 0) {
@@ -1,10 +1,10 @@
1
1
  # Agents reference
2
2
 
3
- This reference catalogs the 25 agents in the `development-utility-kit` harness. Each agent is a specialist declared in `.claude/agents/<name>.md` with a YAML frontmatter (`name`, `description`, `tools`, `model`). Skills invoke agents through the `Task` tool; agents can also invoke other agents (orchestration). Use this page as the operational index: which agent to open, with which model, at which point in the pipeline, and which downstream agents it dispatches.
3
+ This reference catalogs the 21 agents in the `development-utility-kit` harness. Each agent is a specialist declared in `.claude/agents/<name>.md` with a YAML frontmatter (`name`, `description`, `tools`, `model`). Skills invoke agents through the `Task` tool; agents can also invoke other agents (orchestration). Use this page as the operational index: which agent to open, with which model, at which point in the pipeline, and which downstream agents it dispatches.
4
4
 
5
5
  Audience: developers on the team who open the local dashboard and need to decide, in seconds, which harness piece to move. Who decides what is consolidated in [autonomy-matrix](autonomy-matrix). Who enters each pipeline stage is in [pipeline](pipeline).
6
6
 
7
- ## Master table — 25 agents
7
+ ## Master table — 21 agents
8
8
 
9
9
  | Agent | Model | Domain | Decides alone? | When to invoke |
10
10
  |---|---|---|---|---|
@@ -12,7 +12,6 @@ Audience: developers on the team who open the local dashboard and need to decide
12
12
  | `tech-lead` | opus 4.7 | Stack, pattern, refactor, final review | Yes (3 human-only exceptions) | Approve merge, decide pattern, resolve technical conflict |
13
13
  | `security-engineer` | opus 4.7 | OWASP, LGPD, hardening | Yes (technical veto HIGH/CRITICAL) | Security audit, vulnerability, headers, CORS |
14
14
  | `analyst` | sonnet 4.6 | Technical decomposition, goal-ready PLAN_*.md | Yes within scope | Break feature into FR/NFR/BR/IR and sprints with DoD |
15
- | `architect` | sonnet 4.6 | Macro architecture, ADR | Yes; cross-context escalates to tech-lead | Decide architectural pattern, propose ADR |
16
15
  | `backend-developer` | sonnet 4.6 | Java 25 + Spring Boot 4 | Yes within scope | Implement endpoint, service, DTO, repository |
17
16
  | `frontend-developer` | sonnet 4.6 | Angular 21 + Signals + ng-bootstrap | Yes within scope | Build component, screen, typed service |
18
17
  | `mobile-developer` | sonnet 4.6 | React Native 0.84 + Expo SDK 54 | Yes within scope | Mobile app from scratch, Angular→RN conversion, native integration |
@@ -22,16 +21,13 @@ Audience: developers on the team who open the local dashboard and need to decide
22
21
  | `ux-designer` | sonnet 4.6 | Wireframes, design system, a11y | Yes on "how it looks"; scope goes to PO | Wireframe, component spec, screen flow |
23
22
  | `qa-engineer` | sonnet 4.6 | Unit/integration/E2E/mutation tests | Yes within scope | Write JUnit, Jest, Playwright, PIT tests |
24
23
  | `gate-keeper` | sonnet 4.6 | Senior+ quality gate | Yes; blocks merge on red | Validate coverage, mutation, a11y, Lighthouse, pyramid |
25
- | `test-coverage-auditor` | sonnet 4.6 | Coverage + debt audit | Yes (gate inside prd-ready-check) | Map test debt, P0/P1 |
26
24
  | `code-reviewer` | sonnet 4.6 | Initial code review | Recommends; tech-lead merges | Review PR, findings by severity |
27
- | `prd-ready-check` | sonnet 4.6 | Final pre-production gate | Yes; GO/NO-GO | Final checklist before deploy |
28
- | `api-integration-test` | sonnet 4.6 | Real backend↔frontend smoke | Yes within scope | Boot stack and validate curl + clean console |
29
25
  | `sprint-runner` | sonnet 4.6 | TDD sprint orchestration | Yes; asks on plan ambiguity | Execute Sprint N of PLAN_*.md |
26
+ | `stack-resolver` | haiku 4.5 | Stack pack resolution — reads Project Identity, returns STACK CONTEXT | Yes (mechanical) | Resolve the matching stack pack for the declared stack |
30
27
  | `scaffold` | haiku 4.5 | Java/Angular initial skeleton | Yes (mechanical, idempotent) | Create backend/, frontend/, or fullstack from scratch |
31
28
  | `update-template` | haiku 4.5 | Sync with development-utility-kit | Yes (with Y checkpoint) | Update `.claude/` + CLAUDE.md |
32
29
  | `migrator` | sonnet 4.6 | Legacy → target stack migration | Yes per phase; ADR per major cross | Java 8/11/17→25, Spring 2/3→4, Angular 14-20→21 |
33
30
  | `release-engineer` | sonnet 4.6 | SemVer bump + CHANGELOG | Yes through command output; human pushes | Cut release, generate tag, validate permissions |
34
- | `auditor` | sonnet 4.6 | Audit drift vs template | Reports only (read-only) | Compare project vs template, list divergent files |
35
31
  | `brain-keeper` | sonnet 4.6 | Obsidian vault under `docs/brain/` | Yes within scope | Record daily, feature, ADR, bug at end of PLAN |
36
32
 
37
33
  ---
@@ -48,7 +44,7 @@ PT triggers: `"decide produto"`, `"define escopo"`, `"regra de negócio"`, `"pri
48
44
 
49
45
  **Mission**: decide product and record an ADR. Never asks the human outside the 4 exceptions (deleting real customer data, relevant financial cost, breaking change on a published public contract, brand identity change approved by marketing).
50
46
 
51
- **Expected inputs**: raw user demand or hand-off from `analyst`/`architect`/developers with a product question.
47
+ **Expected inputs**: raw user demand or hand-off from `analyst`/`tech-lead`/developers with a product question.
52
48
 
53
49
  **Outputs / artifacts**:
54
50
  - ADR at `docs/brain/decisions/ADR-NNN-<slug>.md`
@@ -79,7 +75,7 @@ PT triggers: `"decisão técnica"`, `"qual padrão"`, `"aprova merge"`, `"review
79
75
 
80
76
  **Mission**: orchestrate specialists, maintain technical consistency, block merge if the senior+ gate fails. Decides with a weighted framework (Impact 30 / Effort 25 / Risk 25 / Adherence 20).
81
77
 
82
- **Expected inputs**: technical demand, ADR proposed by `architect`, PR ready after `code-reviewer`.
78
+ **Expected inputs**: technical demand, ADR to record, PR ready after `code-reviewer`.
83
79
 
84
80
  **Outputs**:
85
81
  - Technical decision ADR with score grid in `## Justification`
@@ -162,39 +158,12 @@ Autonomous path (`sprint-runner`, `release-engineer`): exempt via signal `caller
162
158
  - Never invent a requirement — ambiguities go in §7 "Pending decisions".
163
159
  - Filename always `PLAN_<NAME_KEBAB_CASE>.md`, no spaces or accents.
164
160
 
165
- **Escalation**: `architect` for new architectural decisions; `tech-lead` for ambiguity between stacks.
161
+ **Escalation**: `tech-lead` for new architectural decisions and for ambiguity between stacks.
166
162
 
167
163
  **Tools**: Read, Write, Edit, Glob, Grep, Bash(cat/find/git log).
168
164
 
169
165
  **When NOT to use**: implementation (use `backend-developer`/`frontend-developer`). Trivial single-file edit. Bug with unknown root cause (use `pair-debug`).
170
166
 
171
- ### architect
172
-
173
- **Model**: sonnet 4.6
174
-
175
- **When to invoke**: decide architectural pattern (DDD vs CRUD, modular monolith vs microservices, REST vs Event-Driven), model domain, record macro ADR.
176
-
177
- PT triggers: `"decide arquitetura"`, `"qual padrão usar"`, `"modela domínio"`, `"trade-off arquitetural"`, `"registra ADR"`.
178
-
179
- **Mission**: propose architecture with weighted framework (Impact 30 / Effort 25 / Risk 25 / Adherence 20). `tech-lead` approves cross-cutting decisions.
180
-
181
- **Expected inputs**: technical context (scale, team, domain complexity), constraints, existing code.
182
-
183
- **Outputs**: ADR saved at `docs/brain/decisions/ADR-NNN-<slug>.md` with Context, Decision, Consequences, Discarded alternatives and score grid.
184
-
185
- **Inviolable rules**:
186
- - No ADR, no architecture change.
187
- - Decision framework mandatory — score in the ADR.
188
- - Never introduce a dependency without justification.
189
- - Inspect code before proposing; never propose a rewrite of code you have not read.
190
- - No premature abstraction — only complicate with a concrete requirement.
191
-
192
- **Escalation**: `tech-lead` when decision spans > 1 bounded context, cost > R$ 200/month, or public external contract.
193
-
194
- **Tools**: Read, Write, Glob, Grep, Bash(git log/git diff/cat/find).
195
-
196
- **When NOT to use**: implementation (use a developer). Patch or lib bump (use `tech-lead`). Product decision (use `product-owner`).
197
-
198
167
  ---
199
168
 
200
169
  ## Implementation
@@ -465,32 +434,7 @@ PT triggers: `"roda os testes"`, `"gera os testes"`, `"garante que nada quebrou"
465
434
 
466
435
  **Tools**: Read, Write, Edit, MultiEdit, Glob, Grep, Bash(git/node/mvn/mvnw/gradle/gradlew/npm/npx/ng/cat/find/ls).
467
436
 
468
- **When NOT to use**: debt audit without running the suite (use `test-coverage-auditor`). Decision about what to test (use `qa-engineer`).
469
-
470
- ### test-coverage-auditor
471
-
472
- **Model**: sonnet 4.6
473
-
474
- **When to invoke**: map untested code, identify recurring manual tests, prioritize debt (P0/P1/P2/P3). Acts as a gate inside `prd-ready-check`.
475
-
476
- PT triggers: `"audita os testes"`, `"tem débito de teste?"`, `"cobertura tá ok?"`, `"faz auditoria de cobertura"`.
477
-
478
- **Mission**: audit and report. Does not write tests (that's `qa-engineer`) nor run the suite (that's `gate-keeper`).
479
-
480
- **Expected inputs**: source tree (backend + frontend), JaCoCo + Jest reports, previous `tech-debt.md`.
481
-
482
- **Outputs**: count by severity, trend vs previous audit, verdict for the PRD gate, update to `tech-debt.md` with P0/P1.
483
-
484
- **Inviolable rules**:
485
- - Never lowers threshold without a formal ADR.
486
- - Never closes a P0 without a corresponding committed automated test.
487
- - Never confuses "passes CI" with "actually covered" — analyzes assertions.
488
-
489
- **Escalation**: open P0 → blocks `prd-ready-check`. Prioritization → `tech-lead`. Test generation → `gate-keeper`.
490
-
491
- **Tools**: Read, Write, Edit, Glob, Grep, Bash(git/mvn/mvnw/npm/npx/find/cat/ls).
492
-
493
- **When NOT to use**: generate the tests (use `qa-engineer`/`gate-keeper`). Formally accept the debt (use `tech-lead`).
437
+ **When NOT to use**: debt audit without running the suite (use the `test-coverage-auditor` skill). Decision about what to test (use `qa-engineer`).
494
438
 
495
439
  ### code-reviewer
496
440
 
@@ -514,66 +458,12 @@ PT triggers: `"revisa o PR"`, `"code review"`, `"audita o código"`, `"revisa qu
514
458
  - Reviews the test diff with the same rigor as the production diff.
515
459
  - Does not merge — `tech-lead` merges.
516
460
 
517
- **Escalation**: security HIGH/CRITICAL → `security-engineer`. Conflict with active ADR → `tech-lead`. Architectural smell → `architect`. Test regression → `gate-keeper`.
461
+ **Escalation**: security HIGH/CRITICAL → `security-engineer`. Conflict with active ADR → `tech-lead`. Architectural smell → `tech-lead`. Test regression → `gate-keeper`.
518
462
 
519
463
  **Tools**: Read, Glob, Grep, Bash(git diff/git log/git show).
520
464
 
521
465
  **When NOT to use**: formal merge approval (use `tech-lead`). Deep security audit (use `security-engineer`).
522
466
 
523
- ### prd-ready-check
524
-
525
- **Model**: sonnet 4.6
526
-
527
- **When to invoke**: final gate before deploy. Runs the full checklist (tests, coverage, lint, production build, smoke E2E, security, observability, database) and returns GO or NO-GO.
528
-
529
- PT triggers: `"tá pronto pra PRD?"`, `"pode subir pra produção?"`, `"roda o checklist final"`, `"DoD"`, `"definição de pronto"`.
530
-
531
- **Mission**: confidently say whether the release goes to production. Never relaxes the gate — broken test = NO-GO; critical warning = NO-GO; console with error = NO-GO.
532
-
533
- **Expected inputs**: ready branch, viable local build, accessible smoke infrastructure.
534
-
535
- **Outputs**: report with each item OK/FAIL and evidence (HTTP status, console log, finding counts).
536
-
537
- **Inviolable rules**:
538
- - Any FAIL = NO-GO.
539
- - Never relaxes limits without a formal ADR.
540
- - Runs real commands — never assumes it passes because it passed yesterday.
541
- - Flaky: 1 failure in 3 = NO-GO + open a bug.
542
- - P0 from `test-coverage-auditor` = automatic NO-GO.
543
- - No recent GREEN from `gate-keeper` = NO-GO.
544
-
545
- **Escalation**: NO-GO returns to the specialist (backend/frontend/qa) with pending items.
546
-
547
- **Tools**: Read, Glob, Grep, Bash(mvn/mvnw/npm/npx/ng/docker/docker-compose/git/ls/cat/find).
548
-
549
- **When NOT to use**: task or sprint validation (use `gate-keeper`). Debt audit (use `test-coverage-auditor`).
550
-
551
- ### api-integration-test
552
-
553
- **Model**: sonnet 4.6
554
-
555
- **When to invoke**: validate real backend↔frontend integration after the green gate, before the final gate. Boots the stack, hits curl, opens a browser via Chrome MCP and checks console + network.
556
-
557
- PT triggers: `"testa a integração"`, `"smoke test"`, `"sobe tudo e testa"`, `"verifica se a tela funciona"`, `"faz o E2E rápido"`.
558
-
559
- **Mission**: confirm backend and frontend talk in a live dev environment. Anything failing = integration NOT-OK.
560
-
561
- **Expected inputs**: built project, docker-compose or boot command, documented main endpoints.
562
-
563
- **Outputs**: report of each check with OK/FAIL and evidence. Process tear-down at the end (even on failure).
564
-
565
- **Inviolable rules**:
566
- - Never "proves OK" by reading code only — must boot and observe.
567
- - Zero console errors is a hard requirement.
568
- - Process tear-down on exit (uses trap).
569
- - Documents tested URLs, methods, and responses.
570
-
571
- **Escalation**: failure → returns to `backend-developer` or `frontend-developer`.
572
-
573
- **Tools**: Read, Glob, Grep, Bash(mvn/mvnw/npm/npx/ng/docker/docker-compose/curl/ss/netstat/cat/ls/sleep).
574
-
575
- **When NOT to use**: unit/integration suite (use `gate-keeper`). Final pre-production gate (use `prd-ready-check`).
576
-
577
467
  ---
578
468
 
579
469
  ## Orchestration
@@ -609,6 +499,34 @@ PT triggers: `"roda a sprint 1"`, `"executa a sprint"`, `"implementa as tarefas
609
499
 
610
500
  ## Project lifecycle
611
501
 
502
+ ### stack-resolver
503
+
504
+ **Model**: haiku 4.5
505
+
506
+ **When to invoke**: resolve the stack pack for the declared stack before specialists run. Reads `## Project Identity` from `CLAUDE.md`, locates the matching pack in `.claude/stacks/<lang>/<framework>-<major>.md`, and returns a rendered STACK CONTEXT block. Invoked programmatically by orchestrating skills at Step 0 (per ADR-026), not usually called by hand.
507
+
508
+ PT triggers: `"resolve stack"`, `"carrega pack da stack"`.
509
+
510
+ **Mission**: mechanical, read-only resolver. No decisions — just parse Project Identity, build the pack path, check `.claude/local/stacks/` first (override), read the pack, and format the STACK CONTEXT block. Hard-fails with `PACK_MISSING_ERROR` (plus nearest-pack suggestions) when no exact pack matches — never silently falls back to defaults.
511
+
512
+ **Expected inputs**: project `CLAUDE.md` with a valid `## Project Identity` → `Primary stack` field (e.g., `Java 21 + Spring Boot 3.2`).
513
+
514
+ **Outputs**: STACK CONTEXT block with the first-line tag `[STACK: <lang>/<framework>-<major> | PACK: loaded|none]`, the resolved language/framework/major, the pack path, and the full inline pack content. On miss, a `PACK_MISSING_ERROR` block the invoking skill must gate on.
515
+
516
+ **Inviolable rules**:
517
+ - Mechanical only — never makes a decision.
518
+ - Local overrides win — `.claude/local/stacks/` checked before `.claude/stacks/`.
519
+ - Always emits the `[STACK:` first-line tag for validation.
520
+ - Never modifies any file — read-only.
521
+ - No agent dispatch — it is a leaf; invokers dispatch specialists from its output.
522
+ - Hard-fail on missing pack — no silent fallback; always suggests nearest packs.
523
+
524
+ **Escalation**: pack missing → invoking skill dispatches the `create-stack-pack` skill or requires an explicit `[STACK_BYPASS: <reason>]` token before proceeding.
525
+
526
+ **Tools**: Read, Glob, Grep.
527
+
528
+ **When NOT to use**: create a missing pack (use the `create-stack-pack` skill). Migrate between stacks (use `migrator`). Any implementation work (use the specialists).
529
+
612
530
  ### scaffold
613
531
 
614
532
  **Model**: haiku 4.5
@@ -629,7 +547,7 @@ PT triggers: `"scaffolda o projeto"`, `"monta a estrutura"`, `"cria o esqueleto"
629
547
  - Versions pinned to `CLAUDE.md`; never silent fallback.
630
548
  - Smoke build mandatory (`./mvnw compile` or `npm run build` returns 0).
631
549
 
632
- **Escalation**: type missing → `tech-lead`. Stack version unavailable → `devops-engineer`. After scaffold, first feature → `analyst` → `architect` → `sprint-runner`.
550
+ **Escalation**: type missing → `tech-lead`. Stack version unavailable → `devops-engineer`. After scaffold, first feature → `analyst` → `tech-lead` → `sprint-runner`.
633
551
 
634
552
  **Tools**: Read, Write, Edit, Glob, Grep, Bash(mvn/mvnw/npm/npx/ng/curl/cat/find/mkdir/unzip).
635
553
 
@@ -719,30 +637,6 @@ PT triggers: `"release"`, `"bump version"`, `"cria tag"`, `"novo release"`, `"pr
719
637
 
720
638
  **When NOT to use**: dependency update (use `tech-lead`). Revert release (use `tech-lead` + ADR — never undoes, bumps again). Intermediate QA tag (branch + manual tag, outside release flow).
721
639
 
722
- ### auditor
723
-
724
- **Model**: sonnet 4.6
725
-
726
- **When to invoke**: compare a project's structure against the official template. Detects missing, divergent, and outdated files in `.claude/`, `CLAUDE.md`, `.claude/agents`, `.claude/commands`, `.claude/skills`, `.claude/settings.json`, `.claude-version.json`.
727
-
728
- PT triggers: `"audita estrutura claude"`, `"compara projetos com template"`, `"verifica desatualizado"`.
729
-
730
- **Mission**: read-only. Never copies, edits, deletes, or overwrites. Reports and recommends `/sync-all-projects` or `/update-template`.
731
-
732
- **Expected inputs**: project path, official template path.
733
-
734
- **Outputs**: per project — Path, Status, Missing files, Divergent files, Local version, Expected version, Risk, Recommendation.
735
-
736
- **Inviolable rules**:
737
- - Auditor only. NEVER copies/edits/deletes/overwrites.
738
- - When it finds an issue, recommends a command — does not fix.
739
-
740
- **Escalation**: corrective action → `update-template` (with human confirmation).
741
-
742
- **Tools**: Read, Glob, Bash.
743
-
744
- **When NOT to use**: apply correction (use `update-template`). Create project (use `scaffold`).
745
-
746
640
  ---
747
641
 
748
642
  ## History
@@ -757,7 +651,7 @@ PT triggers: `"registra no cérebro"`, `"atualiza brain"`, `"log do dia"`, `"sal
757
651
 
758
652
  **Mission**: WRITE mode in `docs/brain/`. Never deletes history — on conflict, new note prevails with `[[supersedes ADR-XXX]]` or a `## History` section.
759
653
 
760
- **Expected inputs**: plan path, output of `sprint-runner`, output of `gate-keeper`, output of `prd-ready-check`, git range (starting SHA → HEAD).
654
+ **Expected inputs**: plan path, output of `sprint-runner`, output of `gate-keeper`, output of the `prd-ready-check` skill, git range (starting SHA → HEAD).
761
655
 
762
656
  **Outputs**:
763
657
  - `daily/YYYY-MM-DD.md` (always)
@@ -777,7 +671,7 @@ PT triggers: `"registra no cérebro"`, `"atualiza brain"`, `"log do dia"`, `"sal
777
671
  - Never logs PII/token/password.
778
672
  - Read-only outside `docs/brain/` (except marking PLAN as `status: completed`).
779
673
 
780
- **Escalation**: formal ADR comes from `architect`; this agent only records. Accepting debt is `tech-lead`'s call; this agent only persists into `tech-debt.md`.
674
+ **Escalation**: formal ADR comes from `tech-lead`; this agent only records. Accepting debt is `tech-lead`'s call; this agent only persists into `tech-debt.md`.
781
675
 
782
676
  **Tools**: Read, Write, Edit, MultiEdit, Glob, Grep, Bash(git log/git diff/git show/find/cat/ls/mkdir/cp).
783
677
 
@@ -791,7 +685,7 @@ PT triggers: `"registra no cérebro"`, `"atualiza brain"`, `"log do dia"`, `"sal
791
685
  |---|---|---|
792
686
  | Scope, business rule, UX, API contract | `product-owner` | 4 situations: deleting real data, relevant financial cost, breaking change to public contract, identity change |
793
687
  | Stack, pattern, refactor, lib, final review | `tech-lead` | 3 situations: irreconcilable requirement conflict, public breaking change, infra cost > R$ 200/month |
794
- | Macro architecture | `architect` proposes → `tech-lead` decides | Never (escalates via `tech-lead`) |
688
+ | Macro architecture, ADR | `tech-lead` | 3 situations (as above) |
795
689
  | Schema, index, DB perf | `database-engineer` | Cross-cutting → `tech-lead` |
796
690
  | Security HIGH/CRITICAL | `security-engineer` (technical veto) | 1 situation: irreversible action on real data |
797
691
  | Infra, cost, deploy | `devops-engineer` | Cost > R$ 200/month → human |
@@ -816,11 +710,11 @@ Full details in [autonomy-matrix](autonomy-matrix).
816
710
  │ Task
817
711
  ┌─────────────┼─────────────────────────┐
818
712
  ▼ ▼ ▼
819
- product-owner tech-lead scaffold / update-template / migrator
713
+ product-owner tech-lead stack-resolver / scaffold / update-template / migrator
820
714
  │ │
821
715
  │ │ delegates
822
716
  │ ▼
823
- │ analyst ──► architect ──► (ADR)
717
+ │ analyst ──► tech-lead ──► (ADR)
824
718
  │ │
825
719
  │ │
826
720
  │ ▼
@@ -843,8 +737,9 @@ Full details in [autonomy-matrix](autonomy-matrix).
843
737
 
844
738
  ┌───────────────────┼───────────────────┐
845
739
  ▼ ▼ ▼
846
- api-integration-test prd-ready-check security-engineer
847
- (veto at any point)
740
+ api-integration-test prd-ready-check security-engineer
741
+ (skill) (skill) (veto at any point)
742
+
848
743
 
849
744
  release-engineer
850
745
 
@@ -859,8 +754,8 @@ Reading the diagram:
859
754
  - `code-reviewer` recommends; only `tech-lead` merges.
860
755
  - `security-engineer` has lateral entry — can issue veto at any point in the flow.
861
756
  - `brain-keeper` is always the last step of the PLAN.
862
- - `test-coverage-auditor` is an internal gate inside `prd-ready-check`.
863
- - `auditor` operates outside the feature flow it diagnoses against the template.
757
+ - `stack-resolver` runs at Step 0 of orchestrating skills — it resolves the stack pack before any specialist is dispatched.
758
+ - The `test-coverage-auditor` skill is an internal gate inside the `prd-ready-check` skill; both are skills, not agents.
864
759
 
865
760
  ---
866
761
 
@@ -884,9 +779,9 @@ model: opus | sonnet | haiku
884
779
 
885
780
  3. **Write the description in English** (the rest of the prompt too), but **include 2-5 PT triggers** at the end of the `description`, in quotes, in the format `PT triggers: '...', '...'`. The project-manager matcher keys on those triggers.
886
781
 
887
- 4. **List required tools** with scoped Bash permissions (`Bash(mvn:*)`, not `Bash`). Avoid open `Bash` except when the agent must run arbitrary commands (case of `auditor`).
782
+ 4. **List required tools** with scoped Bash permissions (`Bash(mvn:*)`, not `Bash`). Avoid open `Bash` except when the agent must run arbitrary commands.
888
783
 
889
- 5. **Write the agent body** following the pattern of the 25 existing ones: "You decide. You don't ask." block at the top, mission, flow, numbered inviolable rules, interface with other agents, examples when useful.
784
+ 5. **Write the agent body** following the pattern of the 21 existing ones: "You decide. You don't ask." block at the top, mission, flow, numbered inviolable rules, interface with other agents, examples when useful.
890
785
 
891
786
  6. **Register in `CLAUDE.md`** in the sections:
892
787
  - "Sub-Agent Routing" table
@@ -115,8 +115,8 @@ The `model:` field is mandatory. The model-per-agent rule (defined in `CLAUDE.md
115
115
  | Model | When to use | Agents |
116
116
  |---|---|---|
117
117
  | **Opus 4.7** | Irreversible decision, macro technical veto | `product-owner`, `tech-lead`, `security-engineer` |
118
- | **Sonnet 4.6** | Implementation, decomposition, review, test, UI, recording | `architect`, `analyst`, `backend-developer`, `frontend-developer`, `mobile-developer`, `n8n-specialist`, `ux-designer`, `database-engineer`, `devops-engineer`, `qa-engineer`, `code-reviewer`, `gate-keeper`, `test-coverage-auditor`, `prd-ready-check`, `api-integration-test`, `sprint-runner`, `brain-keeper`, `auditor`, `release-engineer`, `migrator` |
119
- | **Haiku 4.5** | Scaffold, template, mechanical sync | `scaffold`, `update-template` |
118
+ | **Sonnet 4.6** | Implementation, decomposition, review, test, UI, recording | `analyst`, `backend-developer`, `frontend-developer`, `mobile-developer`, `n8n-specialist`, `ux-designer`, `database-engineer`, `devops-engineer`, `qa-engineer`, `code-reviewer`, `gate-keeper`, `sprint-runner`, `brain-keeper`, `release-engineer`, `migrator` |
119
+ | **Haiku 4.5** | Scaffold, template, mechanical sync, stack resolution | `scaffold`, `update-template`, `stack-resolver` |
120
120
 
121
121
  Invocation happens via the Task tool, inside a Skill:
122
122
 
@@ -258,7 +258,7 @@ Captured metrics: agent name, model used, tokens in/out, duration, success/failu
258
258
 
259
259
  ## Cross-references
260
260
 
261
- - [Agents reference](agents-reference) — full catalog of the 22 agents + responsibilities + model
261
+ - [Agents reference](agents-reference) — full catalog of the 21 agents + responsibilities + model
262
262
  - [Skills reference](skills-reference) — catalog of skills + triggers + outputs
263
263
  - [Hooks reference](hooks-reference) — scripts in `scripts/hooks/` + matchers + behavior
264
264
  - [Autonomy matrix](autonomy-matrix) — who decides what, when to escalate
@@ -41,13 +41,13 @@ Everything else fits below these two poles:
41
41
  └──────┬──────┘ └──────┬──────┘
42
42
  │ │
43
43
  ┌────────────┴──────┐ ┌────────────┼─────────────┐
44
- │ │
45
- ▼ ▼
46
- ux-designer architect database- devops- security-
47
- (Sonnet) (Sonnet) engineer engineer engineer
48
- (Sonnet) (Sonnet) (Opus, veto)
49
- │ │
50
- └──────────┬───────┴──────────────┴─────────────┴────────────┘
44
+ │ │ │
45
+ ▼ ▼ ▼
46
+ ux-designer database- devops- security-
47
+ (Sonnet) engineer engineer engineer
48
+ (Sonnet) (Sonnet) (Opus, veto)
49
+ │ │ │
50
+ └──────────┬─────────────┴─────────────┴────────────┘
51
51
 
52
52
  backend-developer / frontend-developer / mobile-developer
53
53
  (Sonnet)
@@ -80,7 +80,7 @@ For everything else (high/critical vuln, OWASP Top 10, missing security header,
80
80
 
81
81
  ### Specialists NEVER escalate to the human
82
82
 
83
- The 17 specialist agents (analyst, architect, backend-developer, frontend-developer, mobile-developer, database-engineer, devops-engineer, qa-engineer, code-reviewer, ux-designer, n8n-specialist, sprint-runner, scaffold, release-engineer, migrator, auditor, brain-keeper) **DO NOT escalate to human**.
83
+ The 18 specialist agents (analyst, backend-developer, frontend-developer, mobile-developer, database-engineer, devops-engineer, qa-engineer, code-reviewer, gate-keeper, ux-designer, n8n-specialist, sprint-runner, scaffold, stack-resolver, release-engineer, migrator, update-template, brain-keeper) **DO NOT escalate to human**.
84
84
 
85
85
  The rule is:
86
86
  - **Product** doubt → escalate to `product-owner`.
@@ -180,7 +180,7 @@ If they cannot agree, **PO has final say on scope, TL has final say on technical
180
180
 
181
181
  ## Cross-references
182
182
 
183
- - [Agents reference](agents-reference) — full list of the 22 agents + model + responsibilities
183
+ - [Agents reference](agents-reference) — full list of the 21 agents + model + responsibilities
184
184
  - [Pipeline](pipeline) — where and how each agent shows up in the end-to-end flow
185
185
  - [Quality gate](quality-gate) — thresholds that `gate-keeper` and `security-engineer` enforce without human
186
186
  - [Architecture overview](architecture-overview) — 2-layer macro model
@@ -7,7 +7,7 @@ This document describes the full path. For trivial changes or hotfixes, shortcut
7
7
  ## Macro view
8
8
 
9
9
  ```
10
- discovery → specification → planning → architecture → execution → validation → recording
10
+ discovery → specification → planning → architecture (tech-lead) → execution → validation → recording
11
11
 
12
12
 
13
13
  gate-keeper blocks
@@ -17,12 +17,12 @@ discovery → specification → planning → architecture → execution → vali
17
17
  ## Full pipeline diagram
18
18
 
19
19
  ```
20
- ┌──────────┐ ┌────────┐ ┌──────────┐ ┌─────────┐ ┌───────────┐ ┌──────────┐
21
- │ grill-me │ -> │ to-prd │ -> │to-issues │ -> │ analyst │ -> │ architect │ -> │tech-lead
22
- │(skill) │ │(skill) │ │ (skill) │ │ (agent) │ │ (agent) │ │ (approve)│
23
- └──────────┘ └────────┘ └──────────┘ └─────────┘ └───────────┘ └────┬─────┘
24
-
25
-
20
+ ┌──────────┐ ┌────────┐ ┌──────────┐ ┌─────────┐ ┌──────────────────────┐
21
+ │ grill-me │ -> │ to-prd │ -> │to-issues │ -> │ analyst │ -> │ tech-lead
22
+ │(skill) │ │(skill) │ │ (skill) │ │ (agent) │ │ (ADR + approve)
23
+ └──────────┘ └────────┘ └──────────┘ └─────────┘ └────┬─────────────────┘
24
+
25
+
26
26
  ┌────────────────────────────────────────────────────────┐
27
27
  │ sprint-runner (skill+agent) │
28
28
  │ ├─► qa-engineer (TDD: failing tests) │
@@ -131,17 +131,17 @@ Acceptance criteria:
131
131
  - Estimates (in "complexity", not hours)
132
132
  - Definition of Done per task
133
133
 
134
- **Next step**: `architect` (if there is a new macro decision) or directly to `tech-lead` (if it is only an established pattern).
134
+ **Next step**: `tech-lead` — proposes an ADR if there is a new macro decision, or approves directly if it is only an established pattern.
135
135
 
136
136
  ⏸️ **Checkpoint**: human confirms the PLAN.
137
137
 
138
- ### 5. Architecture (`architect`)
138
+ ### 5. Architecture + approval (`tech-lead`)
139
139
 
140
- **When it fires**: PLAN includes a new macro decision (new lib, new pattern, new bounded context, relevant tech choice).
140
+ **When it fires**: PLAN includes a new macro decision (new lib, new pattern, new bounded context, relevant tech choice); or at the end of the PLAN when there are patterns to approve.
141
141
 
142
142
  **Input**: PLAN + project context + prior decisions in `docs/decisions/`.
143
143
 
144
- **Output**: `docs/decisions/ADR-NNN-<slug>.md` (proposed) following the MADR template:
144
+ **How it works**: `tech-lead` owns both the architectural proposal and its approval. It writes the ADR following the MADR template:
145
145
  - Status: Proposed
146
146
  - Context
147
147
  - Decision drivers
@@ -149,13 +149,7 @@ Acceptance criteria:
149
149
  - Decision outcome
150
150
  - Consequences
151
151
 
152
- **Next step**: `tech-lead` reviews and approves (Status: Accepted) or requests revision (Status: Rejected → back).
153
-
154
- ### 6. Approval (`tech-lead`)
155
-
156
- **When it fires**: after `architect` produces an ADR; or at the end of the PLAN when there are patterns to approve.
157
-
158
- **Input**: PLAN + proposed ADR(s).
152
+ It then accepts (Status: Accepted) or rejects (Status: Rejected → re-propose) the decision.
159
153
 
160
154
  **Output**: ADR with Status: Accepted (or Rejected with reason). Updates `CLAUDE.md` if the decision changes a stack rule.
161
155
 
@@ -279,7 +273,7 @@ code-reviewer with bugs → back to developer
279
273
  api-integration-test FAIL → back to `qa-engineer` to debug
280
274
  prd-ready-check NO-GO → back to `gate-keeper` or specific specialist
281
275
  tech-lead returns in review → back to developer
282
- ADR rejected → back to architect to re-propose
276
+ ADR rejected → back to tech-lead to re-propose
283
277
  ```
284
278
 
285
279
  ## Shortcuts
@@ -296,7 +290,7 @@ The full pipeline is for new features. Shortcuts exist for other cases:
296
290
  ### Hotfix in production
297
291
 
298
292
  ```
299
- hotfix request → architect (quick proposal) → sprint-runner (1 task) → gate-keeper → tech-lead → merge → brain-keeper (bug entry)
293
+ hotfix request → tech-lead (quick proposal) → sprint-runner (1 task) → gate-keeper → tech-lead → merge → brain-keeper (bug entry)
300
294
  ```
301
295
 
302
296
  - Skip `grill-me`/`to-prd`/`to-issues`.
@@ -355,11 +349,9 @@ Out of scope: batch signup.
355
349
  - Sprint 1: backend (T1: migration, T2: service, T3: controller, T4: tests)
356
350
  - Sprint 2: frontend (T1: component, T2: Angular service, T3: E2E)
357
351
 
358
- **5. `architect`** — does not fire (patterns already established).
359
-
360
- **6. `tech-lead`** — approves PLAN.
352
+ **5. `tech-lead`** — no new ADR needed (patterns already established); approves PLAN.
361
353
 
362
- **7. `sprint-runner` Sprint 1** — dispatches in parallel:
354
+ **6. `sprint-runner` Sprint 1** — dispatches in parallel:
363
355
  - `qa-engineer` writes JUnit tests for Service + controller
364
356
  - `database-engineer` generates `V20260527_001__create_product.sql`
365
357
  - `backend-developer` implements Service + Controller + DTOs (record)
@@ -371,11 +363,11 @@ After 30 min, `gate-keeper` runs:
371
363
  - SpotBugs: 0 issues ✓
372
364
  - OWASP DC: 0 CVE ✓
373
365
 
374
- **8. `code-reviewer`** suggests extracting unique-name validation to a domain service. `backend-developer` applies.
366
+ **7. `code-reviewer`** suggests extracting unique-name validation to a domain service. `backend-developer` applies.
375
367
 
376
- **9. `tech-lead`** approves Sprint 1.
368
+ **8. `tech-lead`** approves Sprint 1.
377
369
 
378
- **10. `sprint-runner` Sprint 2** — dispatches:
370
+ **9. `sprint-runner` Sprint 2** — dispatches:
379
371
  - `qa-engineer` writes Playwright E2E + jest-axe component test
380
372
  - `ux-designer` produces wireframe + tokens
381
373
  - `frontend-developer` implements component (3 files: `.ts`, `.html`, `.scss`)
@@ -389,13 +381,13 @@ After 30 min, `gate-keeper` runs:
389
381
  - LCP: 1820ms ✓, CLS: 0.04 ✓, TBT: 210ms ✓
390
382
  - E2E pyramid: 18% ✓
391
383
 
392
- **11. `api-integration-test`** boots local stack, validates POST + UI via Chrome MCP. Clean console.
384
+ **10. `api-integration-test`** boots local stack, validates POST + UI via Chrome MCP. Clean console.
393
385
 
394
- **12. `prd-ready-check`** returns GO.
386
+ **11. `prd-ready-check`** returns GO.
395
387
 
396
- **13. `tech-lead`** approves merge. Human triggers merge on GitHub.
388
+ **12. `tech-lead`** approves merge. Human triggers merge on GitHub.
397
389
 
398
- **14. `brain-keeper`** updates `docs/brain/`:
390
+ **13. `brain-keeper`** updates `docs/brain/`:
399
391
  - `features/product-signup.md` — feature summary
400
392
  - `daily/2026-05-27.md` — daily entry
401
393
  - `MOC.md` — link to `product-signup` under Catalog
@@ -46,7 +46,7 @@ Matt's original design surfaced hidden requirements that prompt-only conversatio
46
46
  Three pre-existing problems in our pipeline made grill-me an obvious fit:
47
47
 
48
48
  - **PRD authoring used to start from a single user paragraph.** Result: under-specified scope, edge cases discovered late, sprint rework. Grill-me forces the user to confront ambiguity *before* the PRD exists.
49
- - **Planning agents (`analyst`, `architect`) need a structured input.** Free-form prompts make them hallucinate constraints. Grill-me produces a structured `DISCOVERY_*.md` that `analyst` can consume deterministically.
49
+ - **Planning agents (`analyst`, `tech-lead`) need a structured input.** Free-form prompts make them hallucinate constraints. Grill-me produces a structured `DISCOVERY_*.md` that `analyst` can consume deterministically.
50
50
  - **The interview pattern was already proven viral.** Reproducing it from scratch would have taken weeks, with no clear UX improvement.
51
51
 
52
52
  We did not modify the interview mechanic, the recommended-answer pattern, the rubber-duck framing, or the conversational tone. Those are Matt's design.
@@ -298,7 +298,7 @@ Summary of what `gate-keeper` enforces, in order:
298
298
 
299
299
  1. `product-owner` decides requirements.
300
300
  2. `analyst` produces PLAN_*.md with goal-ready DoD.
301
- 3. `architect` proposes ADR when there is a macro decision; `tech-lead` approves.
301
+ 3. `tech-lead` proposes ADR when there is a macro decision and approves it.
302
302
  4. `sprint-runner` executes Sprint N delegating to `backend-developer` + `frontend-developer` + `database-engineer` in parallel; `qa-engineer` writes tests.
303
303
  5. `gate-keeper` generates missing tests + runs the full senior+ gate (coverage, mutation, a11y, Lighthouse, pyramid).
304
304
  6. `code-reviewer` does initial review.
@@ -41,7 +41,7 @@ This document covers the 18 official skills of the harness, grouped by purpose.
41
41
 
42
42
  **What it does**: reads the intent, decides one of three modes (per ADR-033), and dispatches accordingly:
43
43
 
44
- - **ROUTE** (single-domain task) → picks ONE specialist from the routing table (`analyst`, `architect`, `backend-developer`, `frontend-developer`, `code-reviewer`, `database-engineer`, `devops-engineer`, `mobile-developer`, `n8n-specialist`, `product-owner`, `qa-engineer`, `security-engineer`, `tech-lead`, `ux-designer`, `migrator`, `release-engineer`, `auditor`), announces the choice in one line, and dispatches via the `Task` tool.
44
+ - **ROUTE** (single-domain task) → picks ONE specialist from the routing table (`analyst`, `backend-developer`, `frontend-developer`, `code-reviewer`, `database-engineer`, `devops-engineer`, `mobile-developer`, `n8n-specialist`, `product-owner`, `qa-engineer`, `security-engineer`, `tech-lead`, `ux-designer`, `migrator`, `release-engineer`), announces the choice in one line, and dispatches via the `Task` tool.
45
45
  - **ORCHESTRATE** (multi-domain ad-hoc task, ≤5 subtasks) → prints a mini-plan inline (table: Subtask | Agent | Mode `[PAR]`/`[SEQ]` | Touches | Depends on) and dispatches multiple `Task` calls in parallel. Each parallel subtask must touch disjoint paths and have no output dependency on a sibling; otherwise it gets marked `[SEQ]`. No `PLAN_*.md` is generated.
46
46
  - **ESCALATE** (>5 subtasks, formal `PLAN_*.md` needed, or any subtask requires further decomposition) → refuses inline, suggests `grill-me` → `analyst` → `sprint-runner` chain.
47
47
 
@@ -374,8 +374,7 @@ Standard feature flow, from zero to deploy:
374
374
 
375
375
 
376
376
  [auto] project-manager → analyst → docs/plans/PLAN_<name>.md
377
- architect (if new ADR) → docs/decisions/ADR-NNN.md
378
- tech-lead (approves)
377
+ tech-lead (ADR + approve) → docs/decisions/ADR-NNN.md
379
378
 
380
379
 
381
380
  [manual] run-sprint → sprint-runner
@@ -583,7 +583,7 @@ correctly in case of conflict.
583
583
  | `migrator` | Sonnet 4.6 | Java 8/11/17 → 25, Spring Boot 2/3 → 4 |
584
584
  | `sprint-runner` | Sonnet 4.6 | Orchestrates the sprint, delegates in parallel |
585
585
  | `brain-keeper` | Sonnet 4.6 | History in `docs/brain/` |
586
- | `auditor` | Sonnet 4.6 | Audits `.claude/` consistency |
586
+ | `update-template` | Haiku 4.5 | Audits/syncs `.claude/` against the template |
587
587
  | `release-engineer` | Sonnet 4.6 | Version bump, CHANGELOG, tag |
588
588
  | `scaffold` | Haiku 4.5 | Initial scaffold pipeline |
589
589
 
@@ -162,10 +162,11 @@ harness for offline reference.
162
162
  From here the chat has access to all agents/skills. Recommended first prompt:
163
163
 
164
164
  ```text
165
- auditor compares .claude structure with official template
165
+ update the template
166
166
  ```
167
167
 
168
- Confirms the install came out clean.
168
+ The `update-template` agent compares the `.claude/` structure against the
169
+ template and confirms the install came out clean.
169
170
 
170
171
  ## 3. Onboarding — project ALREADY HAS `.claude/`
171
172
 
@@ -275,11 +276,11 @@ You just installed the harness. Before touching code, audit the state.
275
276
 
276
277
  ```text
277
278
  You:
278
- auditor compares .claude structure with official template
279
+ update the template
279
280
 
280
- Claude (auditor):
281
+ Claude (update-template):
281
282
  > Diff vs template development-utility-kit v5.18.0:
282
- > .claude/agents/: 25 agents, all up to date ✓
283
+ > .claude/agents/: 21 agents, all up to date ✓
283
284
  > .claude/skills/: 18 skills, 1 outdated:
284
285
  > - auto-test-guard V5.13 (current V5.18) — pyramid ratio gate missing
285
286
  > CLAUDE.md: Project Identity OK ✓
@@ -347,7 +348,7 @@ Claude (brain-keeper):
347
348
  > docs/brain/ provisioned:
348
349
  > ├── MOC.md (map of content)
349
350
  > ├── architecture/
350
- > │ ├── tech-debt.md (auditor report)
351
+ > │ ├── tech-debt.md (test-coverage-auditor report)
351
352
  > │ └── decisions.md (ADR index)
352
353
  > ├── features/
353
354
  > ├── daily/2026-05-27.md
@@ -442,7 +443,7 @@ Claude (grill-me):
442
443
  > Output: docs/discovery/DISCOVERY-csv-export-sales.md
443
444
  ```
444
445
 
445
- From here the flow is standard (analyst → architect → sprint-runner →
446
+ From here the flow is standard (analyst → tech-lead → sprint-runner →
446
447
  gate-keeper → code-reviewer → tech-lead). See `pipeline.en.md` for details.
447
448
 
448
449
  ## 7. Workflow 3 — Stack migration (migrator)
@@ -600,7 +601,7 @@ All trigger the `update-template` agent (haiku). Result identical to CLI.
600
601
  - ALWAYS on a dedicated branch (`chore/update-harness-<date>`)
601
602
  - Review diff in `.claude/settings.json` (hooks can change behavior)
602
603
  - Confirm `## Project Identity` in `CLAUDE.md` is intact
603
- - Run `auditor` afterwards to validate
604
+ - Run `duk lint` afterwards to validate the `.claude/` structure
604
605
  - Test 1-2 critical skills before merge (`audit the tests`, `run the tests`)
605
606
  - Keep `.claude.backup-*` backup for 7 days before removing
606
607
 
@@ -610,7 +611,7 @@ All trigger the `update-template` agent (haiku). Result identical to CLI.
610
611
  |---|---|
611
612
  | Adopt project without .claude/ | `duk install` (terminal) OR `update-template` (chat) |
612
613
  | Update template | `duk install` (terminal) OR `update the template` (chat) |
613
- | Compare with official template | `auditor compares .claude structure with official template` |
614
+ | Compare with official template | `duk lint` (terminal) OR `update the template` (chat) |
614
615
  | Audit coverage | `audit the tests` |
615
616
  | Prioritize debt | `tech-lead prioritizes P0/P1` |
616
617
  | Generate missing tests | `gate-keeper generates tests for P0` |
@@ -744,8 +745,8 @@ conflict on the next merge.
744
745
  | `duk install` fails with "not a git repo" | Target directory isn't a git repo | `git init` or abort — installer requires git |
745
746
  | `duk install` fails with `git pull` error | Target directory has pending changes | `git commit` or `git stash` first |
746
747
  | Directory exists but isn't a git repo | Detected but invalid | Installer aborts with exit 1 — init git or remove directory |
747
- | `auditor` reports outdated agents | Template evolved | `duk install` re-injects |
748
- | `auditor` reports custom skills deleted | Overwritten by update | Restore from `.claude.backup-<date>/skills/` |
748
+ | `update-template` reports outdated agents | Template evolved | `duk install` re-injects |
749
+ | `update-template` reports custom skills deleted | Overwritten by update | Restore from `.claude.backup-<date>/skills/` |
749
750
  | `migrator` refuses to start | Gate baseline isn't GREEN | `run the tests`, pay debt, try again |
750
751
  | `test-coverage-auditor` returns P0 | Business rules without tests | DO NOT skip; generate tests (`gate-keeper generates...`) OR create a documented acceptance ADR |
751
752
  | `update-template` botched `CLAUDE.md` merge | Conflict in automatic merge | `cp CLAUDE.md.bak.<date> CLAUDE.md` + manual section merge |
@@ -821,7 +821,7 @@ Full details in `[Mobile](mobile)`.
821
821
  | Wireframe / screen flow | `wireframe for <screen>` |
822
822
  | Refactor component | `refactor <ComponentName>` |
823
823
  | Standalone a11y audit | `accessibility audit on <feature>` |
824
- | Macro ADR (signal vs RxJS, etc.) | `architect proposes ADR for <decision>` |
824
+ | Macro ADR (signal vs RxJS, etc.) | `tech-lead proposes ADR for <decision>` |
825
825
  | Remember preference | `remember that <X>` |
826
826
  | Record history | `record in brain` |
827
827
  | Stop caveman | `stop caveman` |
@@ -1015,7 +1015,7 @@ Full reference: `[Hooks reference](../docs/hooks-reference)`.
1015
1015
  - `[Architecture](../docs/architecture-overview)` — harness macro view
1016
1016
  - `[Agents reference](../docs/agents-reference)` — full agent list
1017
1017
  - `[Skills reference](../docs/skills-reference)` — full skill list
1018
- - `[Pipeline](../docs/pipeline)` — PO → analyst → architect → run-sprint → gate-keeper flow
1018
+ - `[Pipeline](../docs/pipeline)` — PO → analyst → tech-lead → run-sprint → gate-keeper flow
1019
1019
  - `[Quality gate](../docs/quality-gate)` — detailed senior+ thresholds
1020
1020
  - `[Stack rules](../docs/stack-rules)` — Angular/Spring/etc. conventions
1021
1021
  - `[Hooks reference](../docs/hooks-reference)` — active Git hooks
@@ -18,7 +18,7 @@ a project with:
18
18
  `ng-bootstrap`).
19
19
  - **PostgreSQL 17** + **Redis 7** via `docker-compose`.
20
20
  - Shared types via `openapi-typescript` (generated from `/v3/api-docs`).
21
- - Workflow driven by Cowork / Claude Code agents (analyst, architect,
21
+ - Workflow driven by Cowork / Claude Code agents (analyst,
22
22
  backend-developer, frontend-developer, qa-engineer, gate-keeper,
23
23
  tech-lead, etc.).
24
24
 
@@ -172,7 +172,7 @@ my-fullstack/
172
172
  │ ├── prd/ ← PRD_*.md (to-prd skill)
173
173
  │ ├── issues/ ← ISSUES_*.md (to-issues skill)
174
174
  │ ├── plans/ ← PLAN_*.md (analyst agent)
175
- │ ├── decisions/ ← ADR-NNN-<slug>.md (architect/tech-lead)
175
+ │ ├── decisions/ ← ADR-NNN-<slug>.md (tech-lead)
176
176
  │ └── brain/ ← Obsidian vault (brain-keeper agent)
177
177
  │ ├── daily/
178
178
  │ ├── features/
@@ -180,7 +180,7 @@ my-fullstack/
180
180
  │ ├── decisions/
181
181
  │ └── architecture/tech-debt.md
182
182
  ├── .claude/ ← harness config
183
- │ ├── agents/ ← 25 agents
183
+ │ ├── agents/ ← 21 agents
184
184
  │ ├── skills/ ← 18 skills
185
185
  │ ├── hooks/ ← PreToolUse, PostToolUse, etc.
186
186
  │ └── settings.json
@@ -899,7 +899,7 @@ Edit `CLAUDE.md`:
899
899
  In chat:
900
900
 
901
901
  ```text
902
- > "auditor, compare structure with template"
902
+ > "update the template"
903
903
  > "test-coverage-auditor, audit test debt"
904
904
  > "tech-lead, prioritize P0/P1"
905
905
  > "migrate to Spring Boot 4 + Angular 21" (optional)
@@ -1152,13 +1152,13 @@ Big table, ordered by intent.
1152
1152
  | Intent | Example trigger | Skill / Agent |
1153
1153
  |---|---|---|
1154
1154
  | New monorepo from scratch | `scaffold the monorepo` | `bootstrap-fullstack` |
1155
- | Adopt existing project | `duk install` (CLI) + `auditor, compare structure` | `update-template` + `auditor` |
1155
+ | Adopt existing project | `duk install` (CLI) + `update the template` | `update-template` agent |
1156
1156
  | Non-interactive adoption | `duk install` (per project) / `duk sync-all` (batch) | `duk` CLI |
1157
1157
  | Idea discovery | `grill me about <X>` | `grill-me` |
1158
1158
  | Generate PRD | `generate PRD` | `to-prd` |
1159
1159
  | PRD into issues | `break into issues` | `to-issues` |
1160
1160
  | Technical plan (Sprint) | `analyst, generate the plan` | `analyst` agent |
1161
- | Decision ADR | `architect, propose an ADR for <X>` | `architect` agent |
1161
+ | Decision ADR | `tech-lead, propose an ADR for <X>` | `tech-lead` agent |
1162
1162
  | Implement Sprint N | `run sprint <N> of PLAN_<X>.md` | `run-sprint` |
1163
1163
  | Backend feature | `backend-developer, create endpoint <X>` | `backend-developer` agent |
1164
1164
  | Frontend feature | `frontend-developer, create screen <X>` | `frontend-developer` agent |
@@ -679,11 +679,10 @@ Tests missing? -> run tests
679
679
  |---|---|---|
680
680
  | `mobile-developer` | Sonnet 4.6 | React Native 0.84+, Expo SDK 54+, New Architecture, TS strict, Reanimated 4, FlashList 2 |
681
681
  | `ux-designer` | Sonnet 4.6 | Mobile-specific: touch targets (>= 44pt), safe area, dynamic type, dark mode |
682
- | `architect` | Sonnet 4.6 | State mgmt (Zustand vs TanStack vs Jotai), navigation pattern, OTA strategy |
683
682
  | `qa-engineer` | Sonnet 4.6 | Jest + RN Testing Library + Detox/Maestro |
684
683
  | `gate-keeper` | Sonnet 4.6 | Senior+ gate adapted for mobile (Detox flakiness tolerated) |
685
684
  | `devops-engineer` | Sonnet 4.6 | EAS Build, EAS Submit, EAS Update, fastlane (if bare workflow) |
686
- | `tech-lead` | Opus 4.7 | Mobile stack decision, OTA strategy, native breaking changes |
685
+ | `tech-lead` | Opus 4.7 | Mobile stack decision, state mgmt (Zustand vs TanStack vs Jotai), navigation pattern, OTA strategy, native breaking changes |
687
686
  | `product-owner` | Opus 4.7 | Scope, MVP iOS-first vs Android-first, mobile persona |
688
687
  | `security-engineer` | Opus 4.7 | SecureStore, jailbreak/root detection, certificate pinning, OWASP MASVS |
689
688
  | `database-engineer` | Sonnet 4.6 | MMKV schema, AsyncStorage migration, encrypted local DB (SQLite + sqlcipher) |
@@ -823,7 +822,7 @@ Check:
823
822
  ## Cross references
824
823
 
825
824
  - [Architecture overview](../docs/architecture-overview) — 2-layer model (skill + agent)
826
- - [Agents reference](../docs/agents-reference) — all 25 agents
825
+ - [Agents reference](../docs/agents-reference) — all 21 agents
827
826
  - [Skills reference](../docs/skills-reference) — all 18 skills
828
827
  - [Pipeline](../docs/pipeline) — end-to-end flow
829
828
  - [Quality gate](../docs/quality-gate) — senior+ thresholds
@@ -151,7 +151,7 @@ You just installed the harness, scaffolded or adopted a project, ran your first
151
151
  |---|---|
152
152
  | "How do skills know when to fire?" | [architecture-overview](../docs/architecture-overview) — 3-layer model, keyword matching, agent dispatch |
153
153
  | "What skill should I use for X?" | [skills-reference](../docs/skills-reference) — full catalog, per-skill triggers, when NOT to use |
154
- | "Which agent does what?" | [agents-reference](../docs/agents-reference) — 25 agents grouped by domain authority |
154
+ | "Which agent does what?" | [agents-reference](../docs/agents-reference) — 21 agents grouped by domain authority |
155
155
  | "What is the discovery → delivery pipeline?" | [pipeline](../docs/pipeline) — full canonical flow + shortcuts for small features |
156
156
  | "Who decides what, when do I get interrupted?" | [autonomy-matrix](../docs/autonomy-matrix) — the master rule |
157
157
  | "Why these external plugins?" | [plugins](../docs/plugins) — selection rationale for grill-me, caveman, impeccable, rtk |
@@ -184,7 +184,7 @@ For deeper problems: [troubleshooting](../docs/troubleshooting).
184
184
 
185
185
  ## What this guide skipped on purpose
186
186
 
187
- - The 8-stage canonical pipeline (`grill-me → to-prd → to-issues → analyst → architect → tech-lead → sprint-runner → gate-keeper → code-reviewer → tech-lead → brain-keeper`). For 99% of tasks you do not invoke it directly — `project-manager` handles routing. Read [pipeline](../docs/pipeline) when you need the formal flow.
187
+ - The canonical pipeline (`grill-me → to-prd → to-issues → analyst → tech-lead → sprint-runner → gate-keeper → code-reviewer → tech-lead → brain-keeper`). For 99% of tasks you do not invoke it directly — `project-manager` handles routing. Read [pipeline](../docs/pipeline) when you need the formal flow.
188
188
  - 34 ADRs. They explain why each architectural choice was made. Read them when you are evaluating whether to adopt the harness for a serious project, or when you propose a change. Not required for daily use.
189
189
  - The senior+ quality gate thresholds (coverage ≥85%, mutation ≥70%, a11y, Lighthouse). They run when `gate-keeper` is invoked — you do not need to memorize them.
190
190
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eltonssouza/development-utility-kit",
3
- "version": "0.14.0",
3
+ "version": "0.14.2",
4
4
  "description": "npx installer for the development-utility-kit harness",
5
5
  "bin": {
6
6
  "duk": "bin/cli.js"