@event4u/agent-config 9.17.0 → 9.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +122 -171
- package/dist/agent-src/commands/challenge-me/vision.md +5 -0
- package/dist/agent-src/commands/evals/rule-compliance-audit.json +46 -0
- package/dist/agent-src/commands/feature/plan.md +20 -0
- package/dist/agent-src/commands/feature/roadmap.md +19 -0
- package/dist/agent-src/commands/pr/create.md +29 -0
- package/dist/agent-src/commands/roadmap/create.md +29 -0
- package/dist/agent-src/commands/rule-compliance-audit.md +28 -5
- package/dist/agent-src/contexts/execution/plan-confidence-gate.md +133 -0
- package/dist/agent-src/rules/active-remediation.md +2 -0
- package/dist/agent-src/rules/architecture.md +2 -0
- package/dist/agent-src/rules/augment-edit-discipline.md +2 -0
- package/dist/agent-src/rules/brand-consistency.md +10 -62
- package/dist/agent-src/rules/brand-source-of-truth.md +62 -11
- package/dist/agent-src/rules/broken-access-control.md +4 -0
- package/dist/agent-src/rules/cli-output-handling.md +5 -0
- package/dist/agent-src/rules/code-comment-discipline.md +3 -0
- package/dist/agent-src/rules/commit-conventions.md +2 -0
- package/dist/agent-src/rules/cross-source-consistency.md +3 -0
- package/dist/agent-src/rules/design-fidelity.md +2 -0
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +2 -0
- package/dist/agent-src/rules/docker-commands.md +4 -0
- package/dist/agent-src/rules/domain-adoption-policy.md +2 -0
- package/dist/agent-src/rules/domain-safety-disclaimer.md +5 -2
- package/dist/agent-src/rules/engineering-safety-floor.md +2 -0
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +9 -0
- package/dist/agent-src/rules/image-likeness-and-rights.md +4 -0
- package/dist/agent-src/rules/improve-before-implement.md +4 -0
- package/dist/agent-src/rules/laravel-routing.md +4 -0
- package/dist/agent-src/rules/legal-safety-floor.md +3 -0
- package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -0
- package/dist/agent-src/rules/media-governance-routing.md +5 -0
- package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
- package/dist/agent-src/rules/no-roadmap-references.md +2 -0
- package/dist/agent-src/rules/notes-first-reasoning.md +2 -0
- package/dist/agent-src/rules/php-coding.md +2 -0
- package/dist/agent-src/rules/prefer-enums-over-literals.md +3 -0
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +5 -0
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +2 -0
- package/dist/agent-src/rules/roadmap-progress-sync.md +2 -0
- package/dist/agent-src/rules/rule-type-governance.md +2 -0
- package/dist/agent-src/rules/scale-discipline.md +3 -0
- package/dist/agent-src/rules/secret-vcs-guard.md +2 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +9 -2
- package/dist/agent-src/rules/senior-engineering-discipline.md +6 -0
- package/dist/agent-src/rules/skill-quality.md +2 -0
- package/dist/agent-src/rules/source-confidentiality.md +4 -0
- package/dist/agent-src/rules/source-discovery-gate.md +3 -0
- package/dist/agent-src/rules/source-of-truth.md +2 -0
- package/dist/agent-src/rules/strategy-safety-floor.md +2 -0
- package/dist/agent-src/rules/think-before-action.md +5 -0
- package/dist/agent-src/rules/ui-audit-gate.md +2 -0
- package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -180
- package/dist/agent-src/skills/design-intelligence/references/context-and-registers.md +100 -0
- package/dist/agent-src/skills/design-intelligence/references/integration-mapping.md +91 -0
- package/dist/agent-src/skills/design-review/SKILL.md +4 -141
- package/dist/agent-src/skills/design-review/references/review-communication.md +92 -0
- package/dist/agent-src/skills/design-review/references/verification-automation.md +61 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +8 -27
- package/dist/agent-src/skills/existing-ui-audit/references/anti-slop-cross-reference.md +31 -0
- package/dist/agent-src/skills/fe-design/SKILL.md +4 -289
- package/dist/agent-src/skills/fe-design/references/design-patterns.md +227 -0
- package/dist/agent-src/skills/fe-design/references/design-read-and-memory.md +75 -0
- package/dist/agent-src/skills/roadmap-management/SKILL.md +10 -0
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +12 -1
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/roadmaps.md +12 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/_fix_lane.ts +52 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +8 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/design.ts +6 -0
- package/dist/agent-src/templates/scripts/work_engine/intent/classify.ts +56 -4
- package/dist/cli/registry.js +2 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli-delegate/chunk-AIIUU73N.js +2040 -0
- package/dist/cli-delegate/{chunk-IMSXPRVH.js → chunk-ELMFOQPW.js} +11 -0
- package/dist/cli-delegate/chunk-LF2KKJ4Q.js +183 -0
- package/dist/cli-delegate/cmd_explain.js +36 -36
- package/dist/cli-delegate/cmd_export.js +1 -1
- package/dist/cli-delegate/cmd_handoff.js +203 -2228
- package/dist/cli-delegate/cmd_prune.js +1 -1
- package/dist/cli-delegate/cmd_route_audit.js +249 -0
- package/dist/cli-delegate/cmd_route_explain.js +285 -0
- package/dist/cli-delegate/cmd_settings_migrate.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +1 -1
- package/dist/cli-delegate/cmd_uninstall.js +1 -1
- package/dist/cli-delegate/cmd_validate.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +57 -57
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +2 -2
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +2 -2
- package/dist/install/install.mjs +11 -0
- package/dist/mcp/registry-manifest.json +1 -1
- package/dist/mcp/server.json +2 -2
- package/dist/router.json +1 -1
- package/dist/server/schemas/settings.js +12 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/package.json +1 -1
- package/src/agent-src/templates/scripts/work_engine/directives/ui/_fix_lane.ts +52 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +8 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +6 -0
- package/src/agent-src/templates/scripts/work_engine/intent/classify.ts +56 -4
- package/src/config/agent-settings.template.yml +46 -0
- package/src/config/evaluator-budgets.json +3 -3
- package/src/config/gate-coverage.yml +44 -0
- package/src/scripts/_cli/cmd_explain.ts +41 -36
- package/src/scripts/_cli/cmd_route_audit.ts +290 -0
- package/src/scripts/_cli/cmd_route_explain.ts +269 -0
- package/src/scripts/_dispatch.bash +23 -0
- package/src/scripts/_lib/git_env.ts +40 -0
- package/src/scripts/_lib/md_table.ts +27 -0
- package/src/scripts/_lib/planning_settings.ts +43 -0
- package/src/scripts/_lib/release_highlights.ts +279 -0
- package/src/scripts/_lib/router_match.ts +301 -0
- package/src/scripts/annotate_r1_outcomes.ts +258 -0
- package/src/scripts/check_completion_review.ts +1322 -0
- package/src/scripts/check_release_highlights.ts +60 -152
- package/src/scripts/compile_router.ts +20 -3
- package/src/scripts/dispatch_r2_reviewer.ts +969 -0
- package/src/scripts/eval_ui_triviality.ts +156 -0
- package/src/scripts/lint_abstraction_thresholds.ts +3 -1
- package/src/scripts/lint_plan_risk_register.ts +931 -0
- package/src/scripts/lint_trigger_collisions.ts +257 -0
- package/src/scripts/release.ts +47 -13
- package/src/scripts/router_telemetry.ts +16 -290
- package/src/scripts/schemas/rule.schema.json +10 -0
- package/src/server/schemas/settings.ts +18 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# design-intelligence — integration mapping
|
|
2
|
+
|
|
3
|
+
> Section-level entry point of the `design-intelligence` skill (progressive
|
|
4
|
+
> disclosure, 2026-08-04). Content moved VERBATIM from SKILL.md —
|
|
5
|
+
> load this file when the section index in SKILL.md routes here.
|
|
6
|
+
|
|
7
|
+
## `MASTER.md` + page overrides ↔ `state.ui_design` (mapping)
|
|
8
|
+
|
|
9
|
+
The upstream cross-session memory pattern maps onto our delivery state:
|
|
10
|
+
|
|
11
|
+
| Upstream artifact | Our state | Notes |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `design-system/<project>/MASTER.md` | `state.ui_design` (project-level brief: style, tokens, typography, anti-patterns) | The state is the source of truth during a run. |
|
|
14
|
+
| `design-system/<project>/pages/<page>.md` | per-page override entries inside `state.ui_design` (e.g. `pages.<page>` dict) | Page rules override project rules for that page only. |
|
|
15
|
+
|
|
16
|
+
File persistence stays **opt-in** (`ground … --persist <dir>`) and writes
|
|
17
|
+
under the consumer's project as a durable artifact for multi-session
|
|
18
|
+
consistency; on a fresh session, re-hydrate `state.ui_design` from
|
|
19
|
+
`MASTER.md` + the page file before re-running `design`.
|
|
20
|
+
|
|
21
|
+
## Grounding the review/polish a11y gate (charts + contrast)
|
|
22
|
+
|
|
23
|
+
The `review`/`polish` steps gate on `state.ui_review.a11y`. Ground two
|
|
24
|
+
finding classes instead of ad-hoc judgment:
|
|
25
|
+
|
|
26
|
+
- **Chart-type findings** — the grounding CLI (`ground` via
|
|
27
|
+
./scripts-run) — `…/ground search --manifest … --domain
|
|
28
|
+
chart "<data shape>"` → `Accessibility Grade`, `A11y Fallback`,
|
|
29
|
+
`Color Guidance` columns justify "wrong chart type / missing colorblind
|
|
30
|
+
fallback" findings with a citable row.
|
|
31
|
+
- **Contrast findings** — `--domain color "<product>"` returns the
|
|
32
|
+
WCAG-adjusted token set; a finding that a hex pair deviates from the
|
|
33
|
+
adopted set cites the row instead of eyeballing ratios. Auditing
|
|
34
|
+
*method* stays with [`accessibility-auditor`](../accessibility-auditor/SKILL.md).
|
|
35
|
+
|
|
36
|
+
## Stack guidance (`--stack` axis)
|
|
37
|
+
|
|
38
|
+
Per-framework Do/Don't corpora (16 stacks) ride the same manifest:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
./scripts-run <skills-root>/corpus-grounding/scripts/ground search \
|
|
42
|
+
--manifest <skills-root>/design-intelligence/data/manifest.json \
|
|
43
|
+
--stack react "list rerender memo" [--filter "Severity=HIGH"]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Stack executors ([`blade-ui`](../blade-ui/SKILL.md),
|
|
47
|
+
[`livewire`](../livewire/SKILL.md), [`flux`](../flux/SKILL.md),
|
|
48
|
+
[`react-shadcn-ui`](../react-shadcn-ui/SKILL.md),
|
|
49
|
+
[`tailwind-engineer`](../tailwind-engineer/SKILL.md)) pull idiomatic
|
|
50
|
+
guidance + docs URLs from here instead of memory.
|
|
51
|
+
|
|
52
|
+
## Diagram-type routing — route on the verb
|
|
53
|
+
|
|
54
|
+
Choose a visualization by the *intent verb*, not the noun. Count the nouns
|
|
55
|
+
before you draw (input-complexity triage): 1–2 → inline prose or a single
|
|
56
|
+
shape; 3–7 → one diagram; 8+ → split or summarize, never one dense picture.
|
|
57
|
+
|
|
58
|
+
| The user asks… | Intent | Draw |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| "how does X **work** / flow" | illustrative (intuition) | flowchart / sequence — illustrative default |
|
|
61
|
+
| "what is X's **architecture** / structure" | reference (structural) | structural diagram (boxes + typed edges) |
|
|
62
|
+
| a **cycle** / loop / lifecycle | — | a **stepper widget**, never a hand-drawn ring |
|
|
63
|
+
| a **DB schema / ERD** / entity relations | — | **mermaid**, never hand-placed SVG |
|
|
64
|
+
|
|
65
|
+
### Geometric pre-checks (run BEFORE finalizing an SVG/diagram)
|
|
66
|
+
|
|
67
|
+
Ranked by failure rate — procedures, not constants:
|
|
68
|
+
|
|
69
|
+
1. **viewBox safety** — compute the lowest + rightmost element (plus a buffer)
|
|
70
|
+
and set the viewBox from that; never assume the default fits.
|
|
71
|
+
2. **arrow-through-box trace** — trace every arrow's path and confirm it does
|
|
72
|
+
not cross through an unrelated box before drawing it.
|
|
73
|
+
3. **box-width-from-longest-label** — size each box from its longest label
|
|
74
|
+
before placing it, so text never overflows.
|
|
75
|
+
|
|
76
|
+
(Reference-only: any color/easing/frame values come from the consumer's tokens
|
|
77
|
+
or a maintained upstream — this skill vendors no drawn-asset corpus.)
|
|
78
|
+
|
|
79
|
+
## Interplay (who owns what)
|
|
80
|
+
|
|
81
|
+
| Concern | Owner |
|
|
82
|
+
|---|---|
|
|
83
|
+
| What already exists (components, tokens) | [`existing-ui-audit`](../existing-ui-audit/SKILL.md) — mandatory pre-step; audit findings outrank corpus suggestions |
|
|
84
|
+
| What to build (grounded selection) | **this skill** |
|
|
85
|
+
| Stack-agnostic heuristics + flow | [`fe-design`](../fe-design/SKILL.md) — invokes this skill for grounding |
|
|
86
|
+
| Orchestration gates + locks | `directives/ui/{design,review,polish}.ts` — never import the engine |
|
|
87
|
+
| WCAG audit method | [`accessibility-auditor`](../accessibility-auditor/SKILL.md) |
|
|
88
|
+
| Token authoring | [`design-tokens`](../design-tokens/SKILL.md) |
|
|
89
|
+
| Lo-fi structure exploration (pre-selection) | [`wireframe`](../wireframe/SKILL.md) — disposable greyscale variants |
|
|
90
|
+
| Multiple hi-fi options (post-selection) | [`design-variations`](../design-variations/SKILL.md) — grounds each variation via this skill |
|
|
91
|
+
| Fixed-canvas slide decks | [`html-deck`](../html-deck/SKILL.md) — own medium, still corpus-grounded |
|
|
@@ -160,127 +160,12 @@ When a finding warrants a remediation recommendation, prefer in this order:
|
|
|
160
160
|
suggesting a different easing curve.* The same applies to decorative elements,
|
|
161
161
|
excessive copy, and redundant UI chrome.
|
|
162
162
|
|
|
163
|
-
##
|
|
163
|
+
## Section index — load on demand
|
|
164
164
|
|
|
165
|
-
|
|
165
|
+
Load the reference file whose sections the review needs — never all of them by default:
|
|
166
166
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
| **Before** | The current state (quote the code, value, or describe the pattern) |
|
|
170
|
-
| **After** | The corrected state (specific value or alternative) |
|
|
171
|
-
| **Why** | The mechanism: why is Before wrong and After better? (one sentence, states the principle) |
|
|
172
|
-
|
|
173
|
-
**Wrong format** (do not use):
|
|
174
|
-
```
|
|
175
|
-
Before:
|
|
176
|
-
button { transition: all 0.3s ease; }
|
|
177
|
-
After:
|
|
178
|
-
button { transition: transform 0.2s ease-out, opacity 0.2s ease-out; }
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**Right format:**
|
|
182
|
-
|
|
183
|
-
| | |
|
|
184
|
-
|---|---|
|
|
185
|
-
| **Before** | `transition: all 0.3s ease` |
|
|
186
|
-
| **After** | `transition: transform 0.2s ease-out, opacity 0.2s ease-out` |
|
|
187
|
-
| **Why** | `transition: all` animates layout properties on every state change, causing browser reflow; enumerate only the properties that move. |
|
|
188
|
-
|
|
189
|
-
The Why column carries the reasoning — it's the part that teaches the developer
|
|
190
|
-
and prevents the same finding from recurring.
|
|
191
|
-
|
|
192
|
-
## Communication principles
|
|
193
|
-
|
|
194
|
-
### Problems over prescriptions
|
|
195
|
-
|
|
196
|
-
Describe **what's wrong and why it matters**, not how to fix it.
|
|
197
|
-
|
|
198
|
-
```
|
|
199
|
-
❌ "Change margin to 16px"
|
|
200
|
-
✅ "Spacing feels inconsistent with adjacent elements, creating visual clutter near the CTA."
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
### Triage matrix
|
|
204
|
-
|
|
205
|
-
Every issue gets a severity:
|
|
206
|
-
|
|
207
|
-
| Severity | Meaning | Action |
|
|
208
|
-
|---|---|---|
|
|
209
|
-
| **Blocker** | Must fix before merge | Blocks PR |
|
|
210
|
-
| **High** | Should fix before merge | Strong recommendation |
|
|
211
|
-
| **Medium** | Consider for follow-up | Suggestion |
|
|
212
|
-
| **Nitpick** | Optional polish | Prefix with "Nit:" |
|
|
213
|
-
|
|
214
|
-
### Evidence-based
|
|
215
|
-
|
|
216
|
-
Screenshots required for all visual issues. Reference specific viewport and state.
|
|
217
|
-
|
|
218
|
-
### Start positive
|
|
219
|
-
|
|
220
|
-
Acknowledge what works well before listing issues.
|
|
221
|
-
|
|
222
|
-
## Report structure
|
|
223
|
-
|
|
224
|
-
```markdown
|
|
225
|
-
## Design Review Summary
|
|
226
|
-
[Positive opening + overall assessment]
|
|
227
|
-
|
|
228
|
-
### 🚫 Blockers
|
|
229
|
-
[Critical issues — must fix]
|
|
230
|
-
|
|
231
|
-
### ⚠️ High Priority
|
|
232
|
-
[Significant issues — should fix]
|
|
233
|
-
|
|
234
|
-
### 💡 Suggestions
|
|
235
|
-
[Improvements for follow-up]
|
|
236
|
-
|
|
237
|
-
### ✨ Nitpicks
|
|
238
|
-
[Minor aesthetic details]
|
|
239
|
-
|
|
240
|
-
### Testing Evidence
|
|
241
|
-
[Screenshots: Desktop, Tablet, Mobile]
|
|
242
|
-
|
|
243
|
-
### Next Steps
|
|
244
|
-
1. [Fix blockers]
|
|
245
|
-
2. [Address high-priority]
|
|
246
|
-
|
|
247
|
-
**Overall: [Ready to merge | Needs revisions]**
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
## Visual QA with browser automation
|
|
252
|
-
|
|
253
|
-
When Playwright MCP or browser tools are available, use them for automated visual verification:
|
|
254
|
-
|
|
255
|
-
### Before/After comparison
|
|
256
|
-
|
|
257
|
-
1. **Capture baseline** — screenshot before changes at all 3 viewports.
|
|
258
|
-
2. **Apply changes** — deploy or hot-reload.
|
|
259
|
-
3. **Capture after** — screenshot at the same viewports and states.
|
|
260
|
-
4. **Compare** — visually diff the screenshots, flag regressions.
|
|
261
|
-
|
|
262
|
-
### State-based verification
|
|
263
|
-
|
|
264
|
-
Don't just screenshot the default state. Capture:
|
|
265
|
-
|
|
266
|
-
| State | How to trigger |
|
|
267
|
-
|---|---|
|
|
268
|
-
| Empty | Remove data, check empty state UI |
|
|
269
|
-
| Loading | Throttle network, capture skeleton/spinner |
|
|
270
|
-
| Error | Force an error response, check error UI |
|
|
271
|
-
| Overflow | Add very long text, many items |
|
|
272
|
-
| Interactive | Hover, focus, open dropdowns |
|
|
273
|
-
|
|
274
|
-
### Mockup-to-code verification
|
|
275
|
-
|
|
276
|
-
When implementing from a design mockup or screenshot:
|
|
277
|
-
|
|
278
|
-
1. **Open the mockup** — use the provided image/screenshot.
|
|
279
|
-
2. **Implement** — build the UI component.
|
|
280
|
-
3. **Side-by-side** — compare mockup vs. implementation at the same viewport.
|
|
281
|
-
4. **Flag deviations** — spacing, colors, typography, alignment differences.
|
|
282
|
-
|
|
283
|
-
This is especially useful when the user provides a screenshot or Figma export as a reference.
|
|
167
|
+
- [`references/review-communication.md`](references/review-communication.md) — Before / After / Why output format · Communication principles · Report structure · Design Review Summary
|
|
168
|
+
- [`references/verification-automation.md`](references/verification-automation.md) — Visual QA with browser automation · Async-verifier pattern (keep the main context clean)
|
|
284
169
|
|
|
285
170
|
## Output format
|
|
286
171
|
|
|
@@ -297,28 +182,6 @@ This is especially useful when the user provides a screenshot or Figma export as
|
|
|
297
182
|
- WCAG
|
|
298
183
|
- responsive
|
|
299
184
|
|
|
300
|
-
## Async-verifier pattern (keep the main context clean)
|
|
301
|
-
|
|
302
|
-
For a review that needs browser probing, use an **async background verifier**
|
|
303
|
-
rather than self-screenshotting inline: fork a verifier subagent with its own
|
|
304
|
-
view — it takes the screenshots, probes viewports, and checks states, then
|
|
305
|
-
**stays silent on pass and surfaces only real, actionable problems** (never
|
|
306
|
-
nitpicks). The main agent does not self-screenshot, so its context stays clean
|
|
307
|
-
for the actual review reasoning. This is an orchestration pattern —
|
|
308
|
-
dispatch it via [`subagent-orchestration`](../subagent-orchestration/SKILL.md)
|
|
309
|
-
and position it against [`verify-repair-loop`](../verify-repair-loop/SKILL.md)
|
|
310
|
-
(the existing verify skill); it complements them, it does not duplicate them.
|
|
311
|
-
|
|
312
|
-
**Why the audit passes stay serial (not a parallel-4 fan-out).** A fan-out of
|
|
313
|
-
a11y + slop + hierarchy + states across four subagents was evaluated and
|
|
314
|
-
deferred: the passes share one live browser/navigation session and later phases
|
|
315
|
-
build on state established by earlier ones, so they are not cleanly independent;
|
|
316
|
-
and the expensive part — browser probing / screenshots — is already offloaded by
|
|
317
|
-
the async verifier above, which captures the fan-out's main win without spinning
|
|
318
|
-
up four separate views. Reconsider only when `design-review` runs as a standalone
|
|
319
|
-
heavy batch over many *independent* surfaces, where per-surface
|
|
320
|
-
`do-in-parallel` genuinely pays.
|
|
321
|
-
|
|
322
185
|
## Gotcha
|
|
323
186
|
|
|
324
187
|
- Don't review design without understanding the user's constraints (time, resources, scope).
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# design-review — review communication
|
|
2
|
+
|
|
3
|
+
> Section-level entry point of the `design-review` skill (progressive
|
|
4
|
+
> disclosure, 2026-08-04). Content moved VERBATIM from SKILL.md —
|
|
5
|
+
> load this file when the section index in SKILL.md routes here.
|
|
6
|
+
|
|
7
|
+
## Before / After / Why output format
|
|
8
|
+
|
|
9
|
+
When reporting a finding with a specific remediation, use this table format:
|
|
10
|
+
|
|
11
|
+
| Field | Content |
|
|
12
|
+
|---|---|
|
|
13
|
+
| **Before** | The current state (quote the code, value, or describe the pattern) |
|
|
14
|
+
| **After** | The corrected state (specific value or alternative) |
|
|
15
|
+
| **Why** | The mechanism: why is Before wrong and After better? (one sentence, states the principle) |
|
|
16
|
+
|
|
17
|
+
**Wrong format** (do not use):
|
|
18
|
+
```
|
|
19
|
+
Before:
|
|
20
|
+
button { transition: all 0.3s ease; }
|
|
21
|
+
After:
|
|
22
|
+
button { transition: transform 0.2s ease-out, opacity 0.2s ease-out; }
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Right format:**
|
|
26
|
+
|
|
27
|
+
| | |
|
|
28
|
+
|---|---|
|
|
29
|
+
| **Before** | `transition: all 0.3s ease` |
|
|
30
|
+
| **After** | `transition: transform 0.2s ease-out, opacity 0.2s ease-out` |
|
|
31
|
+
| **Why** | `transition: all` animates layout properties on every state change, causing browser reflow; enumerate only the properties that move. |
|
|
32
|
+
|
|
33
|
+
The Why column carries the reasoning — it's the part that teaches the developer
|
|
34
|
+
and prevents the same finding from recurring.
|
|
35
|
+
|
|
36
|
+
## Communication principles
|
|
37
|
+
|
|
38
|
+
### Problems over prescriptions
|
|
39
|
+
|
|
40
|
+
Describe **what's wrong and why it matters**, not how to fix it.
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
❌ "Change margin to 16px"
|
|
44
|
+
✅ "Spacing feels inconsistent with adjacent elements, creating visual clutter near the CTA."
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Triage matrix
|
|
48
|
+
|
|
49
|
+
Every issue gets a severity:
|
|
50
|
+
|
|
51
|
+
| Severity | Meaning | Action |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| **Blocker** | Must fix before merge | Blocks PR |
|
|
54
|
+
| **High** | Should fix before merge | Strong recommendation |
|
|
55
|
+
| **Medium** | Consider for follow-up | Suggestion |
|
|
56
|
+
| **Nitpick** | Optional polish | Prefix with "Nit:" |
|
|
57
|
+
|
|
58
|
+
### Evidence-based
|
|
59
|
+
|
|
60
|
+
Screenshots required for all visual issues. Reference specific viewport and state.
|
|
61
|
+
|
|
62
|
+
### Start positive
|
|
63
|
+
|
|
64
|
+
Acknowledge what works well before listing issues.
|
|
65
|
+
|
|
66
|
+
## Report structure
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
## Design Review Summary
|
|
70
|
+
[Positive opening + overall assessment]
|
|
71
|
+
|
|
72
|
+
### 🚫 Blockers
|
|
73
|
+
[Critical issues — must fix]
|
|
74
|
+
|
|
75
|
+
### ⚠️ High Priority
|
|
76
|
+
[Significant issues — should fix]
|
|
77
|
+
|
|
78
|
+
### 💡 Suggestions
|
|
79
|
+
[Improvements for follow-up]
|
|
80
|
+
|
|
81
|
+
### ✨ Nitpicks
|
|
82
|
+
[Minor aesthetic details]
|
|
83
|
+
|
|
84
|
+
### Testing Evidence
|
|
85
|
+
[Screenshots: Desktop, Tablet, Mobile]
|
|
86
|
+
|
|
87
|
+
### Next Steps
|
|
88
|
+
1. [Fix blockers]
|
|
89
|
+
2. [Address high-priority]
|
|
90
|
+
|
|
91
|
+
**Overall: [Ready to merge | Needs revisions]**
|
|
92
|
+
```
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# design-review — verification automation
|
|
2
|
+
|
|
3
|
+
> Section-level entry point of the `design-review` skill (progressive
|
|
4
|
+
> disclosure, 2026-08-04). Content moved VERBATIM from SKILL.md —
|
|
5
|
+
> load this file when the section index in SKILL.md routes here.
|
|
6
|
+
|
|
7
|
+
## Visual QA with browser automation
|
|
8
|
+
|
|
9
|
+
When Playwright MCP or browser tools are available, use them for automated visual verification:
|
|
10
|
+
|
|
11
|
+
### Before/After comparison
|
|
12
|
+
|
|
13
|
+
1. **Capture baseline** — screenshot before changes at all 3 viewports.
|
|
14
|
+
2. **Apply changes** — deploy or hot-reload.
|
|
15
|
+
3. **Capture after** — screenshot at the same viewports and states.
|
|
16
|
+
4. **Compare** — visually diff the screenshots, flag regressions.
|
|
17
|
+
|
|
18
|
+
### State-based verification
|
|
19
|
+
|
|
20
|
+
Don't just screenshot the default state. Capture:
|
|
21
|
+
|
|
22
|
+
| State | How to trigger |
|
|
23
|
+
|---|---|
|
|
24
|
+
| Empty | Remove data, check empty state UI |
|
|
25
|
+
| Loading | Throttle network, capture skeleton/spinner |
|
|
26
|
+
| Error | Force an error response, check error UI |
|
|
27
|
+
| Overflow | Add very long text, many items |
|
|
28
|
+
| Interactive | Hover, focus, open dropdowns |
|
|
29
|
+
|
|
30
|
+
### Mockup-to-code verification
|
|
31
|
+
|
|
32
|
+
When implementing from a design mockup or screenshot:
|
|
33
|
+
|
|
34
|
+
1. **Open the mockup** — use the provided image/screenshot.
|
|
35
|
+
2. **Implement** — build the UI component.
|
|
36
|
+
3. **Side-by-side** — compare mockup vs. implementation at the same viewport.
|
|
37
|
+
4. **Flag deviations** — spacing, colors, typography, alignment differences.
|
|
38
|
+
|
|
39
|
+
This is especially useful when the user provides a screenshot or Figma export as a reference.
|
|
40
|
+
|
|
41
|
+
## Async-verifier pattern (keep the main context clean)
|
|
42
|
+
|
|
43
|
+
For a review that needs browser probing, use an **async background verifier**
|
|
44
|
+
rather than self-screenshotting inline: fork a verifier subagent with its own
|
|
45
|
+
view — it takes the screenshots, probes viewports, and checks states, then
|
|
46
|
+
**stays silent on pass and surfaces only real, actionable problems** (never
|
|
47
|
+
nitpicks). The main agent does not self-screenshot, so its context stays clean
|
|
48
|
+
for the actual review reasoning. This is an orchestration pattern —
|
|
49
|
+
dispatch it via [`subagent-orchestration`](../subagent-orchestration/SKILL.md)
|
|
50
|
+
and position it against [`verify-repair-loop`](../verify-repair-loop/SKILL.md)
|
|
51
|
+
(the existing verify skill); it complements them, it does not duplicate them.
|
|
52
|
+
|
|
53
|
+
**Why the audit passes stay serial (not a parallel-4 fan-out).** A fan-out of
|
|
54
|
+
a11y + slop + hierarchy + states across four subagents was evaluated and
|
|
55
|
+
deferred: the passes share one live browser/navigation session and later phases
|
|
56
|
+
build on state established by earlier ones, so they are not cleanly independent;
|
|
57
|
+
and the expensive part — browser probing / screenshots — is already offloaded by
|
|
58
|
+
the async verifier above, which captures the fan-out's main win without spinning
|
|
59
|
+
up four separate views. Reconsider only when `design-review` runs as a standalone
|
|
60
|
+
heavy batch over many *independent* surfaces, where per-surface
|
|
61
|
+
`do-in-parallel` genuinely pays.
|
|
@@ -234,6 +234,14 @@ violations will surface as new findings on every run.
|
|
|
234
234
|
2. Verify `state.ui_audit.greenfield == true` implies `state.ui_audit.greenfield_decision` is set.
|
|
235
235
|
3. Write the full object back into the state-file. Audit completes with outcome `done` — the dispatcher's audit gate now passes.
|
|
236
236
|
|
|
237
|
+
## Section index — load on demand
|
|
238
|
+
|
|
239
|
+
Load on demand once the audit needs the pitfall catalog:
|
|
240
|
+
|
|
241
|
+
- [`references/anti-slop-cross-reference.md`](references/anti-slop-cross-reference.md) — Anti-slop cross-reference
|
|
242
|
+
|
|
243
|
+
- [`references/output-and-pitfalls.md`](references/output-and-pitfalls.md) — Output format · Gotcha · Anti-slop cross-reference
|
|
244
|
+
|
|
237
245
|
## Output format
|
|
238
246
|
|
|
239
247
|
1. **`state.ui_audit.components`** — array of component/template descriptors (path, name, kind, exports)
|
|
@@ -273,33 +281,6 @@ tool produces, so the import path is uniform.
|
|
|
273
281
|
that run are absent from the inventory the later ones are checked against.
|
|
274
282
|
Adding a second component in the same run → re-read the component directories
|
|
275
283
|
directly rather than trusting `state.ui_audit.components_found`.
|
|
276
|
-
|
|
277
|
-
## Anti-slop cross-reference
|
|
278
|
-
|
|
279
|
-
When the audit inventory reveals an existing aesthetic direction (dominant color
|
|
280
|
-
scheme, border-radius convention, motion patterns), cross-check the findings
|
|
281
|
-
against
|
|
282
|
-
[`docs/guidelines/design-antipatterns.md`](../../../docs/guidelines/design-antipatterns.md).
|
|
283
|
-
If the existing UI already uses a listed anti-pattern, surface it as a design-debt
|
|
284
|
-
finding (separate from the reuse inventory) — flag by entry ID and severity.
|
|
285
|
-
|
|
286
|
-
**What the design step may then do depends on whose aesthetic it is.** These
|
|
287
|
-
are two different situations and the sentence that used to cover both was
|
|
288
|
-
wrong about one of them:
|
|
289
|
-
|
|
290
|
-
| The anti-pattern lives in… | The design step may… |
|
|
291
|
-
|---|---|
|
|
292
|
-
| **The consumer's own legacy UI** (inventoried from the repo) | continue it for consistency, **or** propose a corrective direction change. Both are legitimate; it is their codebase and their debt. |
|
|
293
|
-
| **A supplied spec** (a handed-over artifact, a `design-system.json`, a registered brand token) | **neither.** Build it as given. The finding is recorded as informational, marked `artifact_covered`, and no polish round acts on it. |
|
|
294
|
-
|
|
295
|
-
A corrective direction change against a supplied spec is not a design
|
|
296
|
-
improvement, it is overriding a decision the user already made — the failure
|
|
297
|
-
[`design-fidelity`](../../rules/design-fidelity.md) exists to prevent, arriving
|
|
298
|
-
through the audit's side door. Precedence and its exact scope:
|
|
299
|
-
[`design-fidelity-mechanics`](../../../docs/guidelines/design-fidelity-mechanics.md)
|
|
300
|
-
§ Provided-artifact precedence. Where the two sources disagree, surface the
|
|
301
|
-
conflict rather than picking (fixture `daf-slop-vs-provided`).
|
|
302
|
-
|
|
303
284
|
## Do NOT
|
|
304
285
|
|
|
305
286
|
- Do NOT advance to `directives/ui/design.ts` or `apply.ts` if `state.ui_audit` is empty.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# existing-ui-audit — anti-slop cross-reference
|
|
2
|
+
|
|
3
|
+
> Section-level entry point of the `existing-ui-audit` skill (progressive
|
|
4
|
+
> disclosure, 2026-08-04). Content moved VERBATIM from SKILL.md —
|
|
5
|
+
> load this file when the section index in SKILL.md routes here.
|
|
6
|
+
|
|
7
|
+
## Anti-slop cross-reference
|
|
8
|
+
|
|
9
|
+
When the audit inventory reveals an existing aesthetic direction (dominant color
|
|
10
|
+
scheme, border-radius convention, motion patterns), cross-check the findings
|
|
11
|
+
against
|
|
12
|
+
[`docs/guidelines/design-antipatterns.md`](../../../../docs/guidelines/design-antipatterns.md).
|
|
13
|
+
If the existing UI already uses a listed anti-pattern, surface it as a design-debt
|
|
14
|
+
finding (separate from the reuse inventory) — flag by entry ID and severity.
|
|
15
|
+
|
|
16
|
+
**What the design step may then do depends on whose aesthetic it is.** These
|
|
17
|
+
are two different situations and the sentence that used to cover both was
|
|
18
|
+
wrong about one of them:
|
|
19
|
+
|
|
20
|
+
| The anti-pattern lives in… | The design step may… |
|
|
21
|
+
|---|---|
|
|
22
|
+
| **The consumer's own legacy UI** (inventoried from the repo) | continue it for consistency, **or** propose a corrective direction change. Both are legitimate; it is their codebase and their debt. |
|
|
23
|
+
| **A supplied spec** (a handed-over artifact, a `design-system.json`, a registered brand token) | **neither.** Build it as given. The finding is recorded as informational, marked `artifact_covered`, and no polish round acts on it. |
|
|
24
|
+
|
|
25
|
+
A corrective direction change against a supplied spec is not a design
|
|
26
|
+
improvement, it is overriding a decision the user already made — the failure
|
|
27
|
+
[`design-fidelity`](../../rules/design-fidelity.md) exists to prevent, arriving
|
|
28
|
+
through the audit's side door. Precedence and its exact scope:
|
|
29
|
+
[`design-fidelity-mechanics`](../../../../docs/guidelines/design-fidelity-mechanics.md)
|
|
30
|
+
§ Provided-artifact precedence. Where the two sources disagree, surface the
|
|
31
|
+
conflict rather than picking (fixture `daf-slop-vs-provided`).
|