@eltonssouza/development-utility-kit 1.0.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.
Files changed (137) hide show
  1. package/.claude/agents/analyst.md +198 -0
  2. package/.claude/agents/backend-developer.md +126 -0
  3. package/.claude/agents/brain-keeper.md +229 -0
  4. package/.claude/agents/code-reviewer.md +181 -0
  5. package/.claude/agents/database-engineer.md +94 -0
  6. package/.claude/agents/devops-engineer.md +141 -0
  7. package/.claude/agents/frontend-developer.md +97 -0
  8. package/.claude/agents/gate-keeper.md +118 -0
  9. package/.claude/agents/migrator.md +291 -0
  10. package/.claude/agents/mobile-developer.md +80 -0
  11. package/.claude/agents/n8n-specialist.md +94 -0
  12. package/.claude/agents/product-owner.md +115 -0
  13. package/.claude/agents/qa-engineer.md +232 -0
  14. package/.claude/agents/release-engineer.md +204 -0
  15. package/.claude/agents/scaffold.md +87 -0
  16. package/.claude/agents/security-engineer.md +199 -0
  17. package/.claude/agents/sprint-runner.md +44 -0
  18. package/.claude/agents/stack-resolver.md +84 -0
  19. package/.claude/agents/tech-lead.md +182 -0
  20. package/.claude/agents/update-template.md +54 -0
  21. package/.claude/agents/ux-designer.md +118 -0
  22. package/.claude/settings.json +44 -0
  23. package/.claude/skills/README.md +332 -0
  24. package/.claude/skills/active-project/SKILL.md +129 -0
  25. package/.claude/skills/api-integration-test/SKILL.md +64 -0
  26. package/.claude/skills/auto-test-guard/SKILL.md +237 -0
  27. package/.claude/skills/auto-test-guard/resources/backend-tests.md +20 -0
  28. package/.claude/skills/auto-test-guard/resources/e2e-tests.md +24 -0
  29. package/.claude/skills/auto-test-guard/resources/execution-report.md +49 -0
  30. package/.claude/skills/auto-test-guard/resources/frontend-tests.md +18 -0
  31. package/.claude/skills/auto-test-guard/resources/initial-setup.md +108 -0
  32. package/.claude/skills/auto-test-guard/resources/run-suite.md +48 -0
  33. package/.claude/skills/auto-test-guard/resources/senior-gate.md +19 -0
  34. package/.claude/skills/brain-keeper/SKILL.md +60 -0
  35. package/.claude/skills/brain-keeper/obsidian/app.json +9 -0
  36. package/.claude/skills/brain-keeper/obsidian/appearance.json +4 -0
  37. package/.claude/skills/brain-keeper/obsidian/core-plugins.json +20 -0
  38. package/.claude/skills/brain-keeper/obsidian/daily-notes.json +5 -0
  39. package/.claude/skills/brain-keeper/obsidian/graph.json +32 -0
  40. package/.claude/skills/brain-keeper/obsidian/snippets/folder-colors.css +90 -0
  41. package/.claude/skills/brain-keeper/obsidian/templates.json +5 -0
  42. package/.claude/skills/brain-keeper/templates/README.md +51 -0
  43. package/.claude/skills/brain-keeper/templates/adr.md +40 -0
  44. package/.claude/skills/brain-keeper/templates/bug.md +35 -0
  45. package/.claude/skills/brain-keeper/templates/daily.md +38 -0
  46. package/.claude/skills/brain-keeper/templates/feature.md +62 -0
  47. package/.claude/skills/brain-keeper/templates/meeting.md +34 -0
  48. package/.claude/skills/brain-keeper/templates/tech-debt.md +21 -0
  49. package/.claude/skills/caveman/SKILL.md +187 -0
  50. package/.claude/skills/create-stack-pack/SKILL.md +281 -0
  51. package/.claude/skills/grill-me/SKILL.md +79 -0
  52. package/.claude/skills/honcho-memory/SKILL.md +207 -0
  53. package/.claude/skills/honcho-memory/docs/api-endpoints-verified.md +75 -0
  54. package/.claude/skills/honcho-memory/hooks/on-prompt-submit.js +221 -0
  55. package/.claude/skills/honcho-memory/hooks/on-stop.js +193 -0
  56. package/.claude/skills/honcho-memory/lib/honcho-client.js +363 -0
  57. package/.claude/skills/honcho-memory/lib/memory-injector.js +93 -0
  58. package/.claude/skills/honcho-memory/package.json +32 -0
  59. package/.claude/skills/honcho-memory/scripts/cli.js +370 -0
  60. package/.claude/skills/honcho-memory/scripts/setup.js +109 -0
  61. package/.claude/skills/honcho-memory/tests/t001-api-endpoints-verified.test.js +89 -0
  62. package/.claude/skills/honcho-memory/tests/t002-structure.test.js +97 -0
  63. package/.claude/skills/honcho-memory/tests/t003-honcho-client.test.js +162 -0
  64. package/.claude/skills/honcho-memory/tests/t004-soft-delete.test.js +259 -0
  65. package/.claude/skills/honcho-memory/tests/t005-memory-injector.test.js +175 -0
  66. package/.claude/skills/honcho-memory/tests/t006-on-prompt-submit.test.js +215 -0
  67. package/.claude/skills/honcho-memory/tests/t007-on-stop.test.js +165 -0
  68. package/.claude/skills/honcho-memory/tests/t008-cli.test.js +214 -0
  69. package/.claude/skills/honcho-memory/tests/t009-setup.test.js +232 -0
  70. package/.claude/skills/honcho-memory/tests/t010-skill-md.test.js +114 -0
  71. package/.claude/skills/honcho-memory/tests/t011-settings-hooks.test.js +105 -0
  72. package/.claude/skills/honcho-memory/tests/t012-docs-update.test.js +106 -0
  73. package/.claude/skills/honcho-memory/tests/t013-smoke-e2e.test.js +90 -0
  74. package/.claude/skills/pair-debug/SKILL.md +288 -0
  75. package/.claude/skills/prd-ready-check/SKILL.md +58 -0
  76. package/.claude/skills/project-manager/SKILL.md +167 -0
  77. package/.claude/skills/quality-standards/SKILL.md +201 -0
  78. package/.claude/skills/quick-feature/SKILL.md +264 -0
  79. package/.claude/skills/run-sprint/SKILL.md +342 -0
  80. package/.claude/skills/scaffold/SKILL.md +58 -0
  81. package/.claude/skills/stack-discovery/SKILL.md +159 -0
  82. package/.claude/skills/test-coverage-auditor/SKILL.md +59 -0
  83. package/.claude/skills/to-issues/SKILL.md +163 -0
  84. package/.claude/skills/to-prd/SKILL.md +130 -0
  85. package/.claude/skills/update-template/SKILL.md +254 -0
  86. package/.claude/stacks/CODEOWNERS +30 -0
  87. package/.claude/stacks/README.md +88 -0
  88. package/.claude/stacks/_template.md +116 -0
  89. package/.claude/stacks/java/spring-boot-3.md +376 -0
  90. package/.claude/stacks/java/spring-boot-4.md +438 -0
  91. package/.claude/stacks/typescript/angular-18.md +420 -0
  92. package/.claude/stacks/typescript/angular-19.md +397 -0
  93. package/.claude/stacks/typescript/angular-21.md +494 -0
  94. package/CLAUDE.md +453 -0
  95. package/README.md +391 -0
  96. package/bin/cli.js +773 -0
  97. package/bin/lib/backup.js +62 -0
  98. package/bin/lib/detect-stack.js +476 -0
  99. package/bin/lib/help.js +233 -0
  100. package/bin/lib/identity.js +108 -0
  101. package/bin/lib/local-dir.js +69 -0
  102. package/bin/lib/manifest.js +236 -0
  103. package/bin/lib/sync-all.js +394 -0
  104. package/bin/lib/version-check.js +398 -0
  105. package/dashboard/db.js +199 -0
  106. package/dashboard/package.json +22 -0
  107. package/dashboard/public/app.js +709 -0
  108. package/dashboard/public/content/docs/agents-reference.en.md +911 -0
  109. package/dashboard/public/content/docs/architecture-overview.en.md +260 -0
  110. package/dashboard/public/content/docs/autonomy-matrix.en.md +186 -0
  111. package/dashboard/public/content/docs/git-flow.en.md +525 -0
  112. package/dashboard/public/content/docs/honcho-memory.en.md +394 -0
  113. package/dashboard/public/content/docs/hooks-reference.en.md +420 -0
  114. package/dashboard/public/content/docs/pipeline.en.md +400 -0
  115. package/dashboard/public/content/docs/quality-gate.en.md +315 -0
  116. package/dashboard/public/content/docs/skills-reference.en.md +500 -0
  117. package/dashboard/public/content/docs/stack-rules.en.md +362 -0
  118. package/dashboard/public/content/docs/troubleshooting.en.md +637 -0
  119. package/dashboard/public/content/manifest.json +102 -0
  120. package/dashboard/public/content/manual/backend.en.md +1138 -0
  121. package/dashboard/public/content/manual/existing-project.en.md +831 -0
  122. package/dashboard/public/content/manual/frontend.en.md +1065 -0
  123. package/dashboard/public/content/manual/fullstack.en.md +1508 -0
  124. package/dashboard/public/content/manual/mobile.en.md +866 -0
  125. package/dashboard/public/index.html +108 -0
  126. package/dashboard/public/style.css +610 -0
  127. package/dashboard/public/vendor/marked.min.js +69 -0
  128. package/dashboard/rtk.js +143 -0
  129. package/dashboard/server-app.js +403 -0
  130. package/dashboard/server.js +104 -0
  131. package/dashboard/test/sprint1.test.js +406 -0
  132. package/dashboard/test/sprint2.test.js +571 -0
  133. package/dashboard/test/sprint3.test.js +560 -0
  134. package/package.json +33 -0
  135. package/scripts/hooks/subagent-telemetry.sh +14 -0
  136. package/scripts/hooks/telemetry-writer.js +250 -0
  137. package/scripts/latest-versions.json +56 -0
@@ -0,0 +1,400 @@
1
+ # Development pipeline
2
+
3
+ The canonical pipeline of the harness goes from **discovery** (understanding the problem) to **delivery** (merge with green tests and vault recording). Each stage has a responsible agent, concrete input/output artifacts, and checkpoints for the human.
4
+
5
+ This document describes the full path. For trivial changes or hotfixes, shortcuts are documented at the end.
6
+
7
+ ## Macro view
8
+
9
+ ```
10
+ discovery → specification → planning → architecture → execution → validation → recording
11
+
12
+
13
+ gate-keeper blocks
14
+ if thresholds fail
15
+ ```
16
+
17
+ ## Full pipeline diagram
18
+
19
+ ```
20
+ ┌──────────┐ ┌────────┐ ┌──────────┐ ┌─────────┐ ┌───────────┐ ┌──────────┐
21
+ │ grill-me │ -> │ to-prd │ -> │to-issues │ -> │ analyst │ -> │ architect │ -> │tech-lead │
22
+ │(skill) │ │(skill) │ │ (skill) │ │ (agent) │ │ (agent) │ │ (approve)│
23
+ └──────────┘ └────────┘ └──────────┘ └─────────┘ └───────────┘ └────┬─────┘
24
+
25
+
26
+ ┌────────────────────────────────────────────────────────┐
27
+ │ sprint-runner (skill+agent) │
28
+ │ ├─► qa-engineer (TDD: failing tests) │
29
+ │ ├─► backend-developer ┐ │
30
+ │ ├─► frontend-developer ├─ parallel │
31
+ │ ├─► database-engineer ┘ │
32
+ │ └─► gate-keeper (validate senior+) │
33
+ └────────────────────────────────┬───────────────────────┘
34
+
35
+
36
+ ┌─────────────────────────────────┐
37
+ │ code-reviewer → tech-lead (rev) │
38
+ └────────────┬────────────────────┘
39
+
40
+
41
+ ┌─────────────────────────────────┐
42
+ │ api-integration-test (curl+MCP) │
43
+ └────────────┬────────────────────┘
44
+
45
+
46
+ ┌─────────────────────────────────┐
47
+ │ prd-ready-check (GO / NO-GO) │
48
+ └────────────┬────────────────────┘
49
+
50
+
51
+ ┌─────────────────────────────────┐
52
+ │ tech-lead (merge OR return) │
53
+ └────────────┬────────────────────┘
54
+
55
+
56
+ ┌─────────────────────────────────┐
57
+ │ brain-keeper (Obsidian vault) │
58
+ └─────────────────────────────────┘
59
+ ```
60
+
61
+ ## Stages in detail
62
+
63
+ ### 1. Discovery (`grill-me`)
64
+
65
+ **When it fires**: user says "grill me", "interview me about X", "stress-test the plan". Opt-in — never auto-triggered.
66
+
67
+ **Input**: vague initial description ("I want to allow product signup").
68
+
69
+ **How it works**: the skill runs an interactive interview, one question at a time, with recommendations. Continues until requirements are clear (typically 5-15 questions).
70
+
71
+ **Output**: `docs/discovery/DISCOVERY_<feature-slug>.md` containing:
72
+ - Problem
73
+ - Personas involved
74
+ - Constraints (legal, technical, business)
75
+ - Hypotheses validated and to be validated
76
+ - Handoff to `analyst` or proposed ADR
77
+
78
+ **Next step**: `to-prd` (if it becomes a product) or directly to `analyst` (if it becomes an immediate sprint).
79
+
80
+ ⏸️ **Checkpoint**: human confirms the DISCOVERY before continuing.
81
+
82
+ ### 2. PRD (`to-prd`)
83
+
84
+ **When it fires**: "to-prd", "generate PRD", "create PRD". Opt-in — requires `grill-me` to have run first.
85
+
86
+ **Input**: `docs/discovery/DISCOVERY_<slug>.md`.
87
+
88
+ **Output**: `docs/prd/PRD_<slug>.md` with 6 mandatory sections:
89
+ 1. Overview
90
+ 2. Goals
91
+ 3. User Stories (in prose, with persona + motivation)
92
+ 4. Functional Requirements
93
+ 5. Non-functional Requirements
94
+ 6. Out of scope
95
+
96
+ **Next step**: `to-issues`.
97
+
98
+ Idempotent — can be re-run; overwrites with merge.
99
+
100
+ ### 3. Issues (`to-issues`)
101
+
102
+ **When it fires**: "to-issues", "break into issues". Opt-in — requires an existing PRD.
103
+
104
+ **Input**: `docs/prd/PRD_<slug>.md`.
105
+
106
+ **Output**: `docs/issues/ISSUES_<slug>.md` with `[ISSUE-N]` blocks ready for `gh issue create`:
107
+
108
+ ```
109
+ [ISSUE-1]
110
+ Labels: backend, api, sprint-1
111
+ Body: |
112
+ Implement POST /api/v1/products...
113
+ Acceptance criteria:
114
+ - DTO validates required name
115
+ - Returns 201 with Location header
116
+ - Persists product + audit log
117
+ ```
118
+
119
+ **Next step**: `analyst`.
120
+
121
+ ### 4. Plan (`analyst`)
122
+
123
+ **When it fires**: direct call by `project-manager`, `sprint-runner`, or via "create plan for X".
124
+
125
+ **Input**: `DISCOVERY_*.md` + `PRD_*.md` + `ISSUES_*.md` (when present). On the human path, requires a discovery artifact (`DISCOVERY_*.md`, PLAN seed, or Proposed ADR) — see ADR-013 + ADR-017. Autonomous callers (`sprint-runner`, `release-engineer`) are exempt via `caller: sprint-runner|autonomous` in the Task prompt.
126
+
127
+ **Output**: `docs/plans/PLAN_<slug>.md` with:
128
+ - Goal-ready DoD (verifiable by `/goal` command)
129
+ - Sprints (1, 2, 3...) with tasks (T1, T2...)
130
+ - Dependencies between tasks
131
+ - Estimates (in "complexity", not hours)
132
+ - Definition of Done per task
133
+
134
+ **Next step**: `architect` (if there is a new macro decision) or directly to `tech-lead` (if it is only an established pattern).
135
+
136
+ ⏸️ **Checkpoint**: human confirms the PLAN.
137
+
138
+ ### 5. Architecture (`architect`)
139
+
140
+ **When it fires**: PLAN includes a new macro decision (new lib, new pattern, new bounded context, relevant tech choice).
141
+
142
+ **Input**: PLAN + project context + prior decisions in `docs/decisions/`.
143
+
144
+ **Output**: `docs/decisions/ADR-NNN-<slug>.md` (proposed) following the MADR template:
145
+ - Status: Proposed
146
+ - Context
147
+ - Decision drivers
148
+ - Considered options
149
+ - Decision outcome
150
+ - Consequences
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).
159
+
160
+ **Output**: ADR with Status: Accepted (or Rejected with reason). Updates `CLAUDE.md` if the decision changes a stack rule.
161
+
162
+ **Next step**: `sprint-runner`.
163
+
164
+ ⏸️ **Checkpoint**: human confirms ADRs before execution.
165
+
166
+ ### 7. Execution (`sprint-runner`)
167
+
168
+ **When it fires**: "run sprint X", "execute the sprint". Skill that orchestrates the full execution.
169
+
170
+ **Input**: `docs/plans/PLAN_<slug>.md`, Sprint N parameter.
171
+
172
+ **How it works**: mandatory TDD cycle per task:
173
+
174
+ #### 7a. `qa-engineer` writes failing tests
175
+
176
+ For each sprint task, `qa-engineer` creates tests **before** the implementation:
177
+ - Backend: JUnit 5 + Mockito + Testcontainers
178
+ - Frontend: Jest + Testing Library + jest-axe
179
+ - E2E: Playwright + @axe-core/playwright
180
+
181
+ The tests fail (the implementation does not yet exist). That is correct.
182
+
183
+ #### 7b. Developers implement in parallel
184
+
185
+ `sprint-runner` dispatches in parallel (when tasks do not share files):
186
+ - `backend-developer` — implements controller, service, repo, security
187
+ - `frontend-developer` — implements component, service, route
188
+ - `database-engineer` — generates Flyway migration + indexes
189
+
190
+ Each developer runs the tests locally until green before marking the task done.
191
+
192
+ #### 7c. `gate-keeper` validates senior+ thresholds
193
+
194
+ After developers finish, `gate-keeper` runs the full gate (see [Quality gate](quality-gate)):
195
+ - JaCoCo coverage >= 85% lines, >= 80% branches
196
+ - PIT mutation >= 70% in `domain/`+`application/`
197
+ - Jest >= 85% statements, >= 80% branches
198
+ - SpotBugs, ESLint, npm audit, OWASP DC
199
+ - Playwright, jest-axe, Lighthouse
200
+ - E2E test pyramid <= 30%
201
+
202
+ If any fails → blocks + returns to the responsible task.
203
+
204
+ **Output**: implemented code + green tests + GREEN gate.
205
+
206
+ ### 8. Code review (`code-reviewer`)
207
+
208
+ **When it fires**: after sprint-runner finishes a task or sprint.
209
+
210
+ **Input**: branch diff.
211
+
212
+ **Output**: structured feedback: bugs, edge cases, questions, refactor suggestions.
213
+
214
+ **Next step**: developer fixes (or `tech-lead` decides whether feedback is valid).
215
+
216
+ ### 9. Integration test (`api-integration-test`)
217
+
218
+ **When it fires**: "test integration", "smoke", or auto-triggered at the end of sprint-runner.
219
+
220
+ **Input**: local backend + frontend deploy.
221
+
222
+ **How it works**:
223
+ - Boots backend (`./mvnw spring-boot:run` or via Docker Compose)
224
+ - Boots frontend (`npm run dev` or via Docker Compose)
225
+ - Runs critical flow via:
226
+ - `curl` to validate API (status, schema, headers)
227
+ - Chrome MCP to validate UI (navigation, console errors, form submit)
228
+
229
+ **Output**: smoke report with real errors (not mocks).
230
+
231
+ ⏸️ **Checkpoint**: human reads the report.
232
+
233
+ ### 10. Final gate (`prd-ready-check`)
234
+
235
+ **When it fires**: "PRD-ready?", "can we deploy?", "DoD". Terminal skill.
236
+
237
+ **Input**: full project state.
238
+
239
+ **How it works**: runs everything again (build, test, lint, E2E, security scan) + checks:
240
+ - No `@Disabled` / `.skip()` in tests
241
+ - No `// TODO` in production code
242
+ - No hardcoded secrets
243
+ - Coverage maintained above thresholds
244
+ - ADRs referenced by the PLAN are accepted
245
+
246
+ **Output**: GO or NO-GO. NO-GO includes exact list of what needs to be fixed.
247
+
248
+ ### 11. Final review (`tech-lead`)
249
+
250
+ **When it fires**: after prd-ready-check GREEN.
251
+
252
+ **Output**: approves merge OR returns with reason.
253
+
254
+ ⏸️ **Checkpoint**: human triggers the merge on GitHub/GitLab.
255
+
256
+ ### 12. History (`brain-keeper`)
257
+
258
+ **When it fires**: at the end of the PLAN (or explicitly "record in the brain").
259
+
260
+ **Input**: full state of the closed sprint.
261
+
262
+ **Output**: updates `docs/brain/` (Obsidian vault):
263
+ - `daily/YYYY-MM-DD.md` — daily log
264
+ - `features/<slug>.md` — feature note
265
+ - `decisions/<adr-id>.md` — link to accepted ADRs
266
+ - `bugs/<slug>.md` — bugs found during the sprint
267
+ - `tech-debt.md` — deferred items
268
+ - `MOC.md` — updates the Map of Content with links
269
+
270
+ On first run, it provisions `docs/brain/.obsidian/` with the per-folder color snippet.
271
+
272
+ ## Return loop
273
+
274
+ When something fails, the pipeline returns — it does not end. Canonical returns:
275
+
276
+ ```
277
+ gate-keeper FAIL → back to responsible developer (with list of failures)
278
+ code-reviewer with bugs → back to developer
279
+ api-integration-test FAIL → back to `qa-engineer` to debug
280
+ prd-ready-check NO-GO → back to `gate-keeper` or specific specialist
281
+ tech-lead returns in review → back to developer
282
+ ADR rejected → back to architect to re-propose
283
+ ```
284
+
285
+ ## Shortcuts
286
+
287
+ The full pipeline is for new features. Shortcuts exist for other cases:
288
+
289
+ ### Trivial change (1 file, no new domain)
290
+
291
+ - Skip discovery/PRD/issues/PLAN.
292
+ - Edit directly via appropriate agent (`backend-developer`, `frontend-developer`).
293
+ - `gate-keeper` still runs mandatorily.
294
+ - `brain-keeper` records as a simple entry in the daily.
295
+
296
+ ### Hotfix in production
297
+
298
+ ```
299
+ hotfix request → architect (quick proposal) → sprint-runner (1 task) → gate-keeper → tech-lead → merge → brain-keeper (bug entry)
300
+ ```
301
+
302
+ - Skip `grill-me`/`to-prd`/`to-issues`.
303
+ - ADR optional (only if a decision changed).
304
+ - Git Flow: `hotfix/<slug>` based on `main`, merges to `main` AND `develop` (see [Git Flow](git-flow)).
305
+
306
+ ### Internal technical refactor (no behavior change)
307
+
308
+ ```
309
+ tech-lead identifies → analyst (technical PLAN) → sprint-runner → gate-keeper → tech-lead → merge
310
+ ```
311
+
312
+ - No PO, no `grill-me`/`to-prd`.
313
+ - `qa-engineer` adds regression tests if they do not already exist.
314
+
315
+ ## Concrete example — "implement product signup"
316
+
317
+ Follow the full pipeline on a realistic feature.
318
+
319
+ **1. `grill-me`** — interview produces `DISCOVERY_product-signup.md`:
320
+ ```
321
+ Persona: catalog manager
322
+ Constraints: unique name per tenant, price >= 0, integer stock >= 0
323
+ Hypotheses: batch signup (CSV) will come later (out of scope MVP)
324
+ ```
325
+
326
+ **2. `to-prd`** — produces `PRD_product-signup.md`:
327
+ ```
328
+ User story: as a manager, I want to register a product with name, price
329
+ and stock, to make it available in the catalog.
330
+ Functional req: POST /api/v1/products, validation, 201 return.
331
+ Non-functional req: p95 latency < 300ms, creation audit log.
332
+ Out of scope: batch signup.
333
+ ```
334
+
335
+ **3. `to-issues`** — produces `ISSUES_product-signup.md` with 3 issues:
336
+ - [ISSUE-1] Backend: POST endpoint + DTO + validation
337
+ - [ISSUE-2] Backend: migration + repo + service
338
+ - [ISSUE-3] Frontend: signup screen + form + integration
339
+
340
+ **4. `analyst`** — produces `PLAN_product-signup.md` with 2 sprints:
341
+ - Sprint 1: backend (T1: migration, T2: service, T3: controller, T4: tests)
342
+ - Sprint 2: frontend (T1: component, T2: Angular service, T3: E2E)
343
+
344
+ **5. `architect`** — does not fire (patterns already established).
345
+
346
+ **6. `tech-lead`** — approves PLAN.
347
+
348
+ **7. `sprint-runner` Sprint 1** — dispatches in parallel:
349
+ - `qa-engineer` writes JUnit tests for Service + controller
350
+ - `database-engineer` generates `V20260527_001__create_product.sql`
351
+ - `backend-developer` implements Service + Controller + DTOs (record)
352
+
353
+ After 30 min, `gate-keeper` runs:
354
+ - JaCoCo lines: 87% ✓
355
+ - JaCoCo branches: 82% ✓
356
+ - PIT mutation: 73% ✓
357
+ - SpotBugs: 0 issues ✓
358
+ - OWASP DC: 0 CVE ✓
359
+
360
+ **8. `code-reviewer`** suggests extracting unique-name validation to a domain service. `backend-developer` applies.
361
+
362
+ **9. `tech-lead`** approves Sprint 1.
363
+
364
+ **10. `sprint-runner` Sprint 2** — dispatches:
365
+ - `qa-engineer` writes Playwright E2E + jest-axe component test
366
+ - `ux-designer` produces wireframe + tokens
367
+ - `frontend-developer` implements component (3 files: `.ts`, `.html`, `.scss`)
368
+
369
+ `gate-keeper` runs:
370
+ - Jest statements: 88% ✓
371
+ - Jest branches: 84% ✓
372
+ - jest-axe: 0 violations ✓
373
+ - Playwright: 100% green ✓
374
+ - Lighthouse perf: 0.84 ✓
375
+ - LCP: 1820ms ✓, CLS: 0.04 ✓, TBT: 210ms ✓
376
+ - E2E pyramid: 18% ✓
377
+
378
+ **11. `api-integration-test`** boots local stack, validates POST + UI via Chrome MCP. Clean console.
379
+
380
+ **12. `prd-ready-check`** returns GO.
381
+
382
+ **13. `tech-lead`** approves merge. Human triggers merge on GitHub.
383
+
384
+ **14. `brain-keeper`** updates `docs/brain/`:
385
+ - `features/product-signup.md` — feature summary
386
+ - `daily/2026-05-27.md` — daily entry
387
+ - `MOC.md` — link to `product-signup` under Catalog
388
+
389
+ Total: ~3-4 wall-clock hours, 0 human interruptions beyond the 4 checkpoints.
390
+
391
+ ## Cross-references
392
+
393
+ - [Agents reference](agents-reference) — details of each agent invoked in the pipeline
394
+ - [Skills reference](skills-reference) — exact triggers of each skill
395
+ - [Quality gate](quality-gate) — thresholds enforced by `gate-keeper` and `prd-ready-check`
396
+ - [Architecture overview](architecture-overview) — Skill + Agent macro model
397
+ - [Autonomy matrix](autonomy-matrix) — who decides at each stage without the human
398
+ - [Git Flow](git-flow) — branch model used at merge time
399
+ - [Stack rules](stack-rules) — versions and conventions applied during execution
400
+ - [Hooks reference](hooks-reference) — hooks that run along the pipeline