@eltonssouza/development-utility-kit 0.12.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.
@@ -74,6 +74,7 @@ Once the pack is loaded, **the pack overrides anything generic in this agent** f
74
74
  | Auth flow / token storage | `security-engineer` | Storage strategy, CSRF, OWASP review |
75
75
  | Bundle size > threshold or LCP regression | `tech-lead` | Decide split, lazy, preload, code-splitting strategy |
76
76
  | Missing tests after implementation | `qa-engineer` | Write the test suite |
77
+ | Frontend/UI work delivered | `project-manager` (§6.6, ADR-048) | PM offers the **impeccable** design gate (install → `/impeccable teach` → polish/audit). Mandatory offer; user chooses |
77
78
  | Lint / coverage / a11y / Lighthouse gate fail | `gate-keeper` | Auto-fix or block merge |
78
79
  | Final PR | `code-reviewer` → `tech-lead` | Merge gate |
79
80
 
@@ -48,9 +48,15 @@ When the pack declares a UI library, propose components using that library's pri
48
48
 
49
49
  Never invent a custom component when the declared library has a matching primitive. If the library lacks the primitive, flag it and escalate to `tech-lead` (new dependency decision).
50
50
 
51
- ## Impeccable skill (ADR-010)
51
+ ## Impeccable design gate (ADR-010 + ADR-048)
52
52
 
53
- For visual refinement, use the Impeccable skill: `/impeccable polish|harden|audit|typeset|colorize|layout`. Reference `DESIGN.md` in the project. Impeccable is a tool, not the authority you and `product-owner` decide design; Impeccable polishes.
53
+ `impeccable` is the harness's frontend design-quality gate an external plugin by Paul Bakaus (credited in `README.md §Acknowledgements`), not bundled. It is **gated through `project-manager` §6.6 (ADR-048)**: whenever frontend/ux work is in scope, `project-manager` **offers** impeccable to the user (mandatory offer, the user chooses). On "Sim" the flow is, in order:
54
+
55
+ 1. **Install (if absent)** — terminal, in the selected project: `npx skills add pbakaus/impeccable`.
56
+ 2. **Teach** — Claude Code: `/impeccable teach` (analyzes the project's stack, tokens, patterns).
57
+ 3. **Act** — Claude Code: the fitting verb — `/impeccable shape` (from scratch), `polish`, `audit`, `critique`, `harden`, `clarify`, `colorize`, `animate`, …
58
+
59
+ **Impeccable is a tool, not the authority** — you and `product-owner` decide design; impeccable polishes/audits. `project-manager` orchestrates the gate and resumes control afterward (never a takeover).
54
60
 
55
61
  ## Interaction with other agents
56
62
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: project-manager
3
3
  description: "Universal front-controller and front-door for all development tasks. Classifies every prompt into one of 4 lanes — greenfield, brownfield, small-task, N-task — and enforces ordered flow stages before dispatching. Greenfield and brownfield implementation work requires a DISCOVERY_*.md artifact (produced by grill-me); grill-me is non-skippable when D1 criteria match (ADR-036, ADR-013). Sprint execution requires a PLAN_*.md; sprint-runner refuses without it. Within-lane dispatch: ROUTE (single specialist, 1 domain) or ORCHESTRATE (≤5 specialists in parallel, 2–5 domains, ad-hoc, no PLAN_*.md). Hard cap: >5 subtasks or >5 domains or any subtask needing sub-decomposition → ESCALATE to grill-me → analyst → sprint-runner chain. Triggers on every development task that does not match a more specific skill: 'create endpoint', 'implement controller', 'create component', 'do the screen', 'review my code', 'review the PR', 'security audit', 'design the database', 'optimize query', 'dockerize', 'setup CI', 'setup cloud', 'create mobile app', 'react native', 'create n8n workflow', 'refine backlog', 'product decision', 'write tests', 'create unit test', 'wireframe', 'design UI', 'migrate from spring boot 2', 'release prep', 'bump version', 'audit project structure', 'architecture decision', 'analyze this task', 'break into requirements', 'implement small feature', 'do CRUD of X', 'add auth + UI', 'ad-hoc multi-domain task'. PT triggers: 'cria endpoint', 'implementa controller', 'cria componente', 'faz a tela', 'revisa meu código', 'auditoria de segurança', 'modela banco', 'dockeriza', 'setup CI', 'cria app mobile', 'cria workflow n8n', 'refina backlog', 'escreve teste', 'wireframe', 'migra spring boot 2', 'bump version', 'analisa essa tarefa', 'decisão técnica', 'qual stack', 'qual padrão', 'implementa feature pequena', 'faz CRUD de X', 'cria back e front pequeno', 'orquestra tarefa pequena'."
4
- tools: Read, Glob, Grep, AskUserQuestion
4
+ tools: Read, Glob, Grep, AskUserQuestion, Bash, Skill
5
5
  model: sonnet
6
6
  ---
7
7
 
@@ -33,7 +33,7 @@ Beyond 5 subtasks or whenever a formal `PLAN_*.md` is required, escalate to `gri
33
33
  3. Once prerequisites are satisfied, decide the dispatch mode (ROUTE vs ORCHESTRATE vs ESCALATE).
34
34
  4. Announce the decision, dispatch, step aside.
35
35
 
36
- References: **ADR-033** (orchestrate mode), **ADR-036** (D1 criteria — grill-me non-skippable), **ADR-013** (discovery gate), **ADR-008** (senior+ pipeline).
36
+ References: **ADR-033** (orchestrate mode), **ADR-036** (D1 criteria — grill-me non-skippable), **ADR-013** (discovery gate), **ADR-008** (senior+ pipeline), **ADR-048** (impeccable frontend design gate).
37
37
 
38
38
  ---
39
39
 
@@ -128,6 +128,8 @@ Each distinct domain present in the prompt counts 1:
128
128
 
129
129
  Same domain mentioned multiple times = still 1 domain (don't inflate). "Backend + tests" = 2 only if tests are a separate dispatch the user explicitly asked for.
130
130
 
131
+ **`frontend` or `ux` present → the impeccable design gate (§6.6) is mandatory to OFFER** — regardless of ROUTE or ORCHESTRATE.
132
+
131
133
  ### 4.2 Hard cap (non-negotiable)
132
134
 
133
135
  - **>5 subtasks** → refuse orchestrate, escalate to `run-sprint`.
@@ -163,7 +165,8 @@ Used when §4 selected `route`.
163
165
  )
164
166
  ```
165
167
 
166
- 5. Return the specialist's output to the user. Done.
168
+ 5. **If the agent is `frontend-developer` or `ux-designer`** → the impeccable design gate (§6.6) is mandatory: offer impeccable before delivering the work.
169
+ 6. Return the specialist's output to the user. Done.
167
170
 
168
171
  ---
169
172
 
@@ -233,6 +236,69 @@ After all subtasks complete:
233
236
 
234
237
  ---
235
238
 
239
+ ## 6.6 Frontend design gate — impeccable (mandatory offer)
240
+
241
+ Applies to **both ROUTE and ORCHESTRATE**. **WHENEVER** the dispatch touches the **`frontend`** or **`ux`** domain — any screen, page, component, layout, landing, styling, or visual UI work (anything that *renders a front*) — the Project Manager **MUST offer `impeccable`** before the frontend work is considered delivered.
242
+
243
+ The **OFFER is mandatory; the USE is the user's choice** — same gating philosophy as `grill-me`. The Project Manager never auto-runs impeccable, and never skips the offer on frontend work.
244
+
245
+ `impeccable` is the harness's **frontend design-quality gate** (analogous to `gate-keeper` for tests, `grill-me` for discovery). It is an **external plugin** by Paul Bakaus (credited in `README.md §Acknowledgements`), not bundled with the harness — so the first step may be installing it.
246
+
247
+ ### Trigger
248
+ - ROUTE whose target is `frontend-developer` or `ux-designer`, OR
249
+ - any ORCHESTRATE subtask in the `frontend` / `ux` domain.
250
+
251
+ ### Step 1 — Ask (mandatory, `AskUserQuestion`)
252
+ Before the frontend work is marked complete, ask the user (PT):
253
+
254
+ > "Há trabalho de front aqui. Quer aplicar o **impeccable** (gate de qualidade de design — analisa o projeto e faz polish / audit / critique)?"
255
+
256
+ Options: **Sim** / **Não**.
257
+
258
+ - **Não** → deliver the normal `frontend-developer` / `ux-designer` output. Done.
259
+ - **Sim** → run the three ordered gates below (Steps 2→4), then **resume orchestration** (Step 5).
260
+
261
+ ### Step 2 — Install gate (terminal, in the selected project)
262
+ Check whether impeccable is present in the selected project (`.claude/skills/impeccable/` or the `/impeccable` skill is available). If **absent**, install it **into the current project** from the terminal — cwd = the selected project root:
263
+
264
+ ```bash
265
+ npx skills add pbakaus/impeccable
266
+ ```
267
+
268
+ This lands impeccable in the project's `.claude/skills/`. **Skip** this step if it is already installed. (Per-project install — not global.)
269
+
270
+ ### Step 3 — Teach gate (Claude Code, in-session)
271
+ impeccable must learn the project before it acts. Invoke its project-analysis command:
272
+
273
+ ```
274
+ /impeccable teach
275
+ ```
276
+
277
+ (`teach` is impeccable's deprecated alias for `init` — it analyzes the project's stack, design tokens, and existing patterns to build its working context.)
278
+
279
+ ### Step 4 — Act gate (Claude Code, in-session)
280
+ Invoke the impeccable verb that fits the task:
281
+
282
+ | Task shape | impeccable verb |
283
+ |---|---|
284
+ | New UI / build from scratch | `/impeccable shape` then `/impeccable polish` |
285
+ | Just-built or existing UI to refine | `/impeccable polish` |
286
+ | Review / find problems | `/impeccable audit` or `/impeccable critique` |
287
+ | Specific need | matching verb (`harden`, `clarify`, `colorize`, `animate`, `distill`, …) |
288
+
289
+ ### Step 5 — Resume (PM never abdicates)
290
+ After impeccable acts, the Project Manager **resumes orchestration**: collect the result, fold it into the final summary, surface any follow-ups. impeccable is a **sub-routine under the Project Manager's control — never a takeover**. The Project Manager stays the front-controller throughout.
291
+
292
+ ```
293
+ Frontend in scope → PM asks "usar impeccable?"
294
+ └─ Sim → [terminal/projeto] npx skills add pbakaus/impeccable (se ausente)
295
+ [claude code] /impeccable teach (analisa)
296
+ [claude code] /impeccable <verbo> (atua)
297
+ → PM retoma o controle
298
+ ```
299
+
300
+ ---
301
+
236
302
  ## 7. ESCALATE to run-sprint (refuse orchestration)
237
303
 
238
304
  If §4 hard caps trigger (`>5 subtasks`, `>5 domains`, any subtask needs decomposition, or formal PLAN_*.md required), respond:
@@ -264,6 +330,7 @@ Hard escalation heuristics (any one triggers):
264
330
  8. **Parallelism is conditional** (§6.2). Two `[PAR]` subtasks NEVER touch the same file path. NEVER cross output dependency. Errar pelo seguro = SEQ.
265
331
  9. **No PLAN_*.md generation.** Orchestrate mode produces an inline table only. If the user wants a persisted plan, escalate (§7).
266
332
  10. **Brazilian Portuguese reply** to the user (per CLAUDE.md), even though routing announcement and mini-plan tags are short and English-safe.
333
+ 11. **Frontend design gate is a mandatory OFFER** (§6.6). Never deliver `frontend`/`ux` work without first offering impeccable; never auto-run it without the user's explicit "Sim". On yes, run install → teach → act in order, then **resume control** — impeccable is a sub-routine, never a takeover.
267
334
 
268
335
  ---
269
336
 
@@ -323,6 +390,15 @@ ORCHESTRATE → 2 specialists (2 PAR) — security + devops independentes.
323
390
  | "constrói o MVP completo da feature X" | ESCALATE | Requires PLAN. Suggest `grill-me` → `analyst` first. |
324
391
  | "decide stack e implementa auth" | ESCALATE | Architecture decision + implementation = ADR-008 pipeline. Suggest TL + sprint flow. |
325
392
 
393
+ ### 9.4 Frontend design gate (impeccable) — §6.6
394
+
395
+ | Prompt | Flow |
396
+ |---|---|
397
+ | "cria a tela de login em Angular" | ROUTE → `frontend-developer`. Then §6.6: ask "usar impeccable?" → Sim → (install se ausente) `npx skills add pbakaus/impeccable` → `/impeccable teach` → `/impeccable polish` → PM resume. |
398
+ | "faz a landing page do produto" | ROUTE → `ux-designer`/`frontend-developer`. §6.6 offer mandatory → on Sim → teach → `/impeccable shape` + `polish`. |
399
+ | "CRUD products: backend + tela Angular + schema" | ORCHESTRATE (3 specialists). The `frontend` subtask triggers §6.6: after the front subtask, offer impeccable → on Sim → teach → `audit`/`polish` the screen → PM aggregates. |
400
+ | "cria endpoint POST /api/v1/products" | No frontend/ux domain → §6.6 does NOT fire. |
401
+
326
402
  ---
327
403
 
328
404
  ## 10. Hand-off
@@ -47,6 +47,8 @@ This document covers the 18 official skills of the harness, grouped by purpose.
47
47
 
48
48
  Reference: **ADR-033** — orchestrate mode fills the fast-lane gap acknowledged in ADR-008 §Consequences ("8 etapas para feature pequena é cerimônia").
49
49
 
50
+ **Frontend design gate (§6.6, ADR-048)**: whenever the dispatch touches the `frontend`/`ux` domain, `project-manager` **must offer the external `impeccable` design gate** (mandatory offer; the user chooses). On "Sim" it runs, in order: install if absent (`npx skills add pbakaus/impeccable`, terminal, per-project) → `/impeccable teach` (analyze project) → `/impeccable <verb>` (polish/audit/…) → then resumes orchestration. Impeccable is a tool, not the authority; `project-manager` never auto-runs it and never abdicates control. Extends ADR-010's gate-keeper WARN check.
51
+
50
52
  **Delegated agent(s)**: variable, per internal routing table. ROUTE dispatches 1; ORCHESTRATE dispatches 2–5 in parallel.
51
53
 
52
54
  **Output / artifacts**: ROUTE → single `Task(subagent_type="<agent>", description="...", prompt="...")` call. ORCHESTRATE → inline mini-plan table + multiple `Task` calls in the same content block. Final artifacts (code, ADR, report) come from the chosen specialist(s).
@@ -311,39 +311,56 @@ The harness exposes skills that trigger by **keyword** in Claude Code/Cowork con
311
311
 
312
312
  ---
313
313
 
314
- ## 5. External **Impeccable** skill — visual refinement
314
+ ## 5. External **Impeccable** skill — frontend design gate
315
315
 
316
316
  > Impeccable does not ship with `development-utility-kit`. It's an independent skill by Paul Bakaus. **For frontend it is highly recommended.**
317
317
 
318
+ ### How it fires (ADR-048)
319
+
320
+ `project-manager` is the **front-controller** and owns the design gate. **Whenever frontend/ux work is in scope, it offers impeccable** (mandatory offer; you choose). On "Sim" it runs three ordered gates and then resumes control:
321
+
322
+ ```
323
+ front detectada → PM pergunta "usar impeccable?"
324
+ └─ Sim:
325
+ 1. [terminal, no projeto] npx skills add pbakaus/impeccable (só se ausente)
326
+ 2. [claude code] /impeccable teach (analisa o projeto)
327
+ 3. [claude code] /impeccable <verbo> (polish / audit / …)
328
+ → project-manager retoma a orquestração
329
+ ```
330
+
331
+ The offer is mandatory, the use is yours — same gating philosophy as `grill-me`. `project-manager` never auto-runs it and never abdicates control (impeccable is a sub-routine, not a takeover).
332
+
318
333
  ### Origin
319
334
 
320
335
  - Author: Paul Bakaus
321
336
  - Repo: `github.com/pbakaus/impeccable`
322
337
 
323
- ### Installation
338
+ ### Installation (gate 1 — terminal, per-project)
324
339
 
325
340
  ```bash
326
341
  npx skills add pbakaus/impeccable
327
342
  ```
328
343
 
329
- Installs as an additional Claude Code skill. The `/impeccable *` commands become available in chat.
344
+ Installs into the **selected project's** `.claude/skills/` the `/impeccable *` commands then become available in that project's Claude Code chat. `project-manager` runs this automatically when you accept the offer and impeccable is not yet present.
330
345
 
331
- ### Available commands
346
+ ### Available commands (gates 2 & 3 — Claude Code)
332
347
 
333
348
  | Command | What it does |
334
349
  |---|---|
350
+ | `/impeccable teach` | **Run first.** Analyzes the project (stack, tokens, existing patterns) so impeccable acts in context. Alias of `init`. |
351
+ | `/impeccable shape` | Builds/redesigns a UI from scratch. |
335
352
  | `/impeccable polish` | Refines fine details: spacing, alignment, visual hierarchy, microinteractions. |
336
- | `/impeccable harden` | Hardens visual robustness against edge cases: overflow, long text, RTL, 200% zoom, dark mode. |
337
353
  | `/impeccable audit` | Full scan: typography, color, layout, WCAG contrast, hierarchy. Produces report. |
338
- | `/impeccable typeset` | Refines typography (scale, line-height, tracking, leading). |
339
- | `/impeccable colorize` | Refines palette and ensures WCAG AA/AAA contrast. |
340
- | `/impeccable layout` | Reviews hierarchy, spacing, density, grid alignment. |
354
+ | `/impeccable critique` | Heuristic critique of an existing UI. |
355
+ | `/impeccable harden` | Hardens visual robustness against edge cases: overflow, long text, RTL, 200% zoom, dark mode. |
356
+ | `/impeccable clarify` · `colorize` · `animate` · `distill` | Targeted refinements (copy clarity, palette, motion, simplification). |
341
357
 
342
358
  ### When to use
343
359
 
344
- - **After** `frontend-developer` implements a screen.
360
+ - When `project-manager` offers it on frontend work and you accept (the normal path).
361
+ - **After** `frontend-developer` implements a screen, or standalone visual refactor.
345
362
  - **Before** `prd-ready-check`.
346
- - In short cycle: `polish` re-run `jest-axe` `harden` re-run Lighthouse → `audit`.
363
+ - Always run `/impeccable teach` once per project before the action verbs.
347
364
 
348
365
  ### When **NOT** to use Impeccable
349
366
 
@@ -348,7 +348,12 @@ Front-controller (ADR-041): it intercepts every prompt, enforces the flow order,
348
348
  typographic polish**. Especially relevant on the frontend side of a
349
349
  fullstack project.
350
350
 
351
- **Install** (once per project):
351
+ > **How it fires (ADR-048):** `project-manager` offers impeccable whenever
352
+ > frontend/ux work is in scope (mandatory offer, your choice). On "Sim" it
353
+ > installs if absent, runs `/impeccable teach` (analyzes the project), then the
354
+ > action verb — and resumes control. See the [frontend manual](frontend) §5.
355
+
356
+ **Install** (gate 1 — once per project, terminal):
352
357
 
353
358
  ```bash
354
359
  npx skills add pbakaus/impeccable
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eltonssouza/development-utility-kit",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "npx installer for the development-utility-kit harness",
5
5
  "bin": {
6
6
  "duk": "bin/cli.js"