@bastani/atomic 0.6.5 → 0.6.6-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.
Files changed (148) hide show
  1. package/.agents/skills/ado-commit/SKILL.md +2 -0
  2. package/.agents/skills/ado-create-pr/SKILL.md +2 -0
  3. package/.agents/skills/advanced-evaluation/SKILL.md +2 -0
  4. package/.agents/skills/ast-grep/SKILL.md +2 -0
  5. package/.agents/skills/bdi-mental-states/SKILL.md +2 -0
  6. package/.agents/skills/bun/SKILL.md +156 -122
  7. package/.agents/skills/context-compression/SKILL.md +2 -0
  8. package/.agents/skills/context-degradation/SKILL.md +2 -0
  9. package/.agents/skills/context-fundamentals/SKILL.md +2 -0
  10. package/.agents/skills/context-optimization/SKILL.md +2 -0
  11. package/.agents/skills/create-spec/SKILL.md +2 -0
  12. package/.agents/skills/docx/SKILL.md +2 -0
  13. package/.agents/skills/evaluation/SKILL.md +2 -0
  14. package/.agents/skills/explain-code/SKILL.md +2 -0
  15. package/.agents/skills/filesystem-context/SKILL.md +2 -0
  16. package/.agents/skills/find-skills/SKILL.md +2 -0
  17. package/.agents/skills/gh-commit/SKILL.md +2 -0
  18. package/.agents/skills/gh-create-pr/SKILL.md +2 -0
  19. package/.agents/skills/hosted-agents/SKILL.md +2 -0
  20. package/.agents/skills/impeccable/SKILL.md +117 -304
  21. package/.agents/skills/impeccable/agents/openai.yaml +4 -0
  22. package/.agents/skills/{adapt/SKILL.md → impeccable/reference/adapt.md} +2 -11
  23. package/.agents/skills/{animate/SKILL.md → impeccable/reference/animate.md} +15 -15
  24. package/.agents/skills/{audit/SKILL.md → impeccable/reference/audit.md} +8 -22
  25. package/.agents/skills/{bolder/SKILL.md → impeccable/reference/bolder.md} +9 -13
  26. package/.agents/skills/impeccable/reference/brand.md +114 -0
  27. package/.agents/skills/{clarify/SKILL.md → impeccable/reference/clarify.md} +2 -11
  28. package/.agents/skills/{colorize/SKILL.md → impeccable/reference/colorize.md} +23 -12
  29. package/.agents/skills/impeccable/reference/craft.md +152 -29
  30. package/.agents/skills/{critique/SKILL.md → impeccable/reference/critique.md} +25 -37
  31. package/.agents/skills/{delight/SKILL.md → impeccable/reference/delight.md} +9 -11
  32. package/.agents/skills/{distill/SKILL.md → impeccable/reference/distill.md} +2 -13
  33. package/.agents/skills/impeccable/reference/document.md +427 -0
  34. package/.agents/skills/impeccable/reference/extract.md +1 -1
  35. package/.agents/skills/{harden/SKILL.md → impeccable/reference/harden.md} +1 -43
  36. package/.agents/skills/{layout/SKILL.md → impeccable/reference/layout.md} +27 -11
  37. package/.agents/skills/impeccable/reference/live.md +594 -0
  38. package/.agents/skills/impeccable/reference/motion-design.md +12 -2
  39. package/.agents/skills/impeccable/reference/onboard.md +234 -0
  40. package/.agents/skills/{optimize/SKILL.md → impeccable/reference/optimize.md} +4 -12
  41. package/.agents/skills/{overdrive/SKILL.md → impeccable/reference/overdrive.md} +9 -21
  42. package/.agents/skills/{critique → impeccable}/reference/personas.md +1 -1
  43. package/.agents/skills/{polish/SKILL.md → impeccable/reference/polish.md} +31 -23
  44. package/.agents/skills/impeccable/reference/product.md +62 -0
  45. package/.agents/skills/{quieter/SKILL.md → impeccable/reference/quieter.md} +7 -11
  46. package/.agents/skills/impeccable/reference/shape.md +151 -0
  47. package/.agents/skills/impeccable/reference/teach.md +156 -0
  48. package/.agents/skills/{typeset/SKILL.md → impeccable/reference/typeset.md} +19 -11
  49. package/.agents/skills/impeccable/reference/typography.md +31 -14
  50. package/.agents/skills/impeccable/scripts/cleanup-deprecated.mjs +87 -17
  51. package/.agents/skills/impeccable/scripts/command-metadata.json +94 -0
  52. package/.agents/skills/impeccable/scripts/design-parser.mjs +820 -0
  53. package/.agents/skills/impeccable/scripts/detect-csp.mjs +198 -0
  54. package/.agents/skills/impeccable/scripts/is-generated.mjs +69 -0
  55. package/.agents/skills/impeccable/scripts/live-accept.mjs +595 -0
  56. package/.agents/skills/impeccable/scripts/live-browser.js +4781 -0
  57. package/.agents/skills/impeccable/scripts/live-inject.mjs +445 -0
  58. package/.agents/skills/impeccable/scripts/live-poll.mjs +186 -0
  59. package/.agents/skills/impeccable/scripts/live-server.mjs +694 -0
  60. package/.agents/skills/impeccable/scripts/live-wrap.mjs +571 -0
  61. package/.agents/skills/impeccable/scripts/live.mjs +247 -0
  62. package/.agents/skills/impeccable/scripts/load-context.mjs +141 -0
  63. package/.agents/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  64. package/.agents/skills/impeccable/scripts/pin.mjs +214 -0
  65. package/.agents/skills/init/SKILL.md +2 -0
  66. package/.agents/skills/liteparse/SKILL.md +1 -0
  67. package/.agents/skills/memory-systems/SKILL.md +2 -0
  68. package/.agents/skills/multi-agent-patterns/SKILL.md +2 -0
  69. package/.agents/skills/opentui/SKILL.md +1 -0
  70. package/.agents/skills/pdf/SKILL.md +2 -0
  71. package/.agents/skills/playwright-cli/SKILL.md +51 -5
  72. package/.agents/skills/playwright-cli/references/playwright-tests.md +1 -1
  73. package/.agents/skills/playwright-cli/references/running-code.md +10 -0
  74. package/.agents/skills/playwright-cli/references/session-management.md +56 -0
  75. package/.agents/skills/playwright-cli/references/spec-driven-testing.md +305 -0
  76. package/.agents/skills/playwright-cli/references/test-generation.md +49 -3
  77. package/.agents/skills/pptx/SKILL.md +2 -0
  78. package/.agents/skills/project-development/SKILL.md +2 -0
  79. package/.agents/skills/prompt-engineer/SKILL.md +2 -0
  80. package/.agents/skills/research-codebase/SKILL.md +2 -0
  81. package/.agents/skills/ripgrep/SKILL.md +2 -0
  82. package/.agents/skills/skill-creator/LICENSE.txt +1 -1
  83. package/.agents/skills/skill-creator/SKILL.md +2 -0
  84. package/.agents/skills/sl-commit/SKILL.md +2 -0
  85. package/.agents/skills/sl-submit-diff/SKILL.md +2 -0
  86. package/.agents/skills/tdd/SKILL.md +4 -0
  87. package/.agents/skills/tool-design/SKILL.md +2 -0
  88. package/.agents/skills/typescript-advanced-types/SKILL.md +2 -1
  89. package/.agents/skills/typescript-expert/SKILL.md +7 -1
  90. package/.agents/skills/typescript-react-reviewer/SKILL.md +2 -1
  91. package/.agents/skills/workflow-creator/SKILL.md +75 -72
  92. package/.agents/skills/workflow-creator/references/session-config.md +48 -1
  93. package/.agents/skills/xlsx/SKILL.md +2 -0
  94. package/.opencode/opencode.json +6 -2
  95. package/README.md +39 -38
  96. package/dist/lib/atomic-temp.d.ts +8 -0
  97. package/dist/lib/atomic-temp.d.ts.map +1 -0
  98. package/dist/lib/terminal-env.d.ts +9 -0
  99. package/dist/lib/terminal-env.d.ts.map +1 -0
  100. package/dist/sdk/providers/claude.d.ts.map +1 -1
  101. package/dist/sdk/providers/copilot.d.ts +24 -14
  102. package/dist/sdk/providers/copilot.d.ts.map +1 -1
  103. package/dist/sdk/runtime/executor.d.ts +8 -0
  104. package/dist/sdk/runtime/executor.d.ts.map +1 -1
  105. package/dist/sdk/runtime/port-discovery.d.ts +71 -0
  106. package/dist/sdk/runtime/port-discovery.d.ts.map +1 -0
  107. package/dist/sdk/runtime/tmux.d.ts +10 -0
  108. package/dist/sdk/runtime/tmux.d.ts.map +1 -1
  109. package/dist/sdk/types.d.ts +1 -0
  110. package/dist/sdk/types.d.ts.map +1 -1
  111. package/dist/sdk/workflows/builtin/deep-research-codebase/opencode/index.d.ts.map +1 -1
  112. package/dist/sdk/workflows/builtin/open-claude-design/opencode/index.d.ts.map +1 -1
  113. package/dist/sdk/workflows/builtin/ralph/claude/index.d.ts.map +1 -1
  114. package/dist/sdk/workflows/builtin/ralph/copilot/index.d.ts.map +1 -1
  115. package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts +15 -0
  116. package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts.map +1 -1
  117. package/dist/sdk/workflows/builtin/ralph/opencode/index.d.ts.map +1 -1
  118. package/package.json +10 -10
  119. package/src/commands/cli/chat/index.test.ts +194 -2
  120. package/src/commands/cli/chat/index.ts +83 -28
  121. package/src/lib/atomic-temp.test.ts +86 -0
  122. package/src/lib/atomic-temp.ts +62 -0
  123. package/src/lib/terminal-env.test.ts +343 -0
  124. package/src/lib/terminal-env.ts +100 -0
  125. package/src/scripts/clean-dist.test.ts +53 -0
  126. package/src/scripts/clean-dist.ts +37 -0
  127. package/src/sdk/providers/claude.ts +42 -20
  128. package/src/sdk/providers/copilot.test.ts +365 -0
  129. package/src/sdk/providers/copilot.ts +117 -15
  130. package/src/sdk/runtime/cc-debounce.ts +2 -2
  131. package/src/sdk/runtime/executor.test.ts +322 -1
  132. package/src/sdk/runtime/executor.ts +159 -96
  133. package/src/sdk/runtime/port-discovery.test.ts +573 -0
  134. package/src/sdk/runtime/port-discovery.ts +496 -0
  135. package/src/sdk/runtime/tmux.ts +22 -2
  136. package/src/sdk/types.ts +1 -0
  137. package/src/sdk/workflows/builtin/deep-research-codebase/opencode/index.ts +24 -6
  138. package/src/sdk/workflows/builtin/open-claude-design/opencode/index.ts +52 -13
  139. package/src/sdk/workflows/builtin/ralph/claude/index.ts +31 -3
  140. package/src/sdk/workflows/builtin/ralph/copilot/index.ts +16 -0
  141. package/src/sdk/workflows/builtin/ralph/helpers/prompts.ts +70 -3
  142. package/src/sdk/workflows/builtin/ralph/opencode/index.ts +50 -6
  143. package/src/services/system/auth.test.ts +53 -0
  144. package/src/services/system/auth.ts +31 -28
  145. package/src/services/system/detect.ts +1 -1
  146. package/.agents/skills/shape/SKILL.md +0 -96
  147. /package/.agents/skills/{critique → impeccable}/reference/cognitive-load.md +0 -0
  148. /package/.agents/skills/{critique → impeccable}/reference/heuristics-scoring.md +0 -0
@@ -1,17 +1,3 @@
1
- ---
2
- name: audit
3
- description: Run technical quality checks across accessibility, performance, theming, responsive design, and anti-patterns. Generates a scored report with P0-P3 severity ratings and actionable plan. Use when the user wants an accessibility check, performance audit, or technical quality review.
4
- version: 2.1.1
5
- user-invocable: true
6
- argument-hint: "[area (feature, page, component...)]"
7
- ---
8
-
9
- ## MANDATORY PREPARATION
10
-
11
- Invoke /impeccable — it contains design principles, anti-patterns, and the **Context Gathering Protocol**. Follow the protocol before proceeding — if no design context exists yet, you MUST run /impeccable teach first.
12
-
13
- ---
14
-
15
1
  Run systematic **technical** quality checks and generate a comprehensive report. Don't fix issues — document them for other commands to address.
16
2
 
17
3
  This is a code-level audit, not a design critique. Check what's measurable and verifiable in the implementation.
@@ -36,7 +22,7 @@ Run comprehensive checks across 5 dimensions. Score each dimension 0-4 using the
36
22
 
37
23
  **Check for**:
38
24
  - **Layout thrashing**: Reading/writing layout properties in loops
39
- - **Expensive animations**: Animating layout properties (width, height, top, left) instead of transform/opacity
25
+ - **Expensive animations**: Casual layout-property animation, unbounded blur/filter/shadow effects, or effects that visibly drop frames
40
26
  - **Missing optimization**: Images without lazy loading, unoptimized assets, missing will-change
41
27
  - **Bundle size**: Unnecessary imports, unused dependencies
42
28
  - **Render performance**: Unnecessary re-renders, missing memoization
@@ -66,7 +52,7 @@ Run comprehensive checks across 5 dimensions. Score each dimension 0-4 using the
66
52
 
67
53
  ### 5. Anti-Patterns (CRITICAL)
68
54
 
69
- Check against ALL the **DON'T** guidelines in the impeccable skill. Look for AI slop tells (AI color palette, gradient text, glassmorphism, hero metrics, card grids, generic fonts) and general design anti-patterns (gray on color, nested cards, bounce easing, redundant copy).
55
+ Check against ALL the **DON'T** guidelines from the parent impeccable skill (already loaded in this context). Look for AI slop tells (AI color palette, gradient text, glassmorphism, hero metrics, card grids, generic fonts) and general design anti-patterns (gray on color, nested cards, bounce easing, redundant copy).
70
56
 
71
57
  **Score 0-4**: 0=AI slop gallery (5+ tells), 1=Heavy AI aesthetic (3-4 tells), 2=Some tells (1-2 noticeable), 3=Mostly clean (subtle issues only), 4=No AI tells (distinctive, intentional design)
72
58
 
@@ -109,7 +95,7 @@ For each issue, document:
109
95
  - **Impact**: How it affects users
110
96
  - **WCAG/Standard**: Which standard it violates (if applicable)
111
97
  - **Recommendation**: How to fix it
112
- - **Suggested command**: Which command to use (prefer: /animate, /quieter, /shape, /optimize, /adapt, /clarify, /layout, /distill, /delight, /audit, /harden, /polish, /bolder, /typeset, /critique, /colorize, /overdrive)
98
+ - **Suggested command**: Which command to use (prefer: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset)
113
99
 
114
100
  ### Patterns & Systemic Issues
115
101
 
@@ -125,16 +111,16 @@ Note what's working well — good practices to maintain and replicate.
125
111
 
126
112
  List recommended commands in priority order (P0 first, then P1, then P2):
127
113
 
128
- 1. **[P?] `/command-name`** — Brief description (specific context from audit findings)
129
- 2. **[P?] `/command-name`** — Brief description (specific context)
114
+ 1. **[P?] `$command-name`** — Brief description (specific context from audit findings)
115
+ 2. **[P?] `$command-name`** — Brief description (specific context)
130
116
 
131
- **Rules**: Only recommend commands from: /animate, /quieter, /shape, /optimize, /adapt, /clarify, /layout, /distill, /delight, /audit, /harden, /polish, /bolder, /typeset, /critique, /colorize, /overdrive. Map findings to the most appropriate command. End with `/polish` as the final step if any fixes were recommended.
117
+ **Rules**: Only recommend commands from: $impeccable adapt, $impeccable animate, $impeccable audit, $impeccable bolder, $impeccable clarify, $impeccable colorize, $impeccable critique, $impeccable delight, $impeccable distill, $impeccable document, $impeccable harden, $impeccable layout, $impeccable onboard, $impeccable optimize, $impeccable overdrive, $impeccable polish, $impeccable quieter, $impeccable shape, $impeccable typeset. Map findings to the most appropriate command. End with `$impeccable polish` as the final step if any fixes were recommended.
132
118
 
133
119
  After presenting the summary, tell the user:
134
120
 
135
121
  > You can ask me to run these one at a time, all at once, or in any order you prefer.
136
122
  >
137
- > Re-run `/audit` after fixes to see your score improve.
123
+ > Re-run `$impeccable audit` after fixes to see your score improve.
138
124
 
139
125
  **IMPORTANT**: Be thorough but actionable. Too many P3 issues creates noise. Focus on what actually matters.
140
126
 
@@ -145,4 +131,4 @@ After presenting the summary, tell the user:
145
131
  - Forget to prioritize (everything can't be P0)
146
132
  - Report false positives without verification
147
133
 
148
- Remember: You're a technical quality auditor. Document systematically, prioritize ruthlessly, cite specific code locations, and provide clear paths to improvement.
134
+ Remember: You're a technical quality auditor. Document systematically, prioritize ruthlessly, cite specific code locations, and provide clear paths to improvement.
@@ -1,16 +1,12 @@
1
- ---
2
- name: bolder
3
- description: Amplify safe or boring designs to make them more visually interesting and stimulating. Increases impact while maintaining usability. Use when the user says the design looks bland, generic, too safe, lacks personality, or wants more visual impact and character.
4
- version: 2.1.1
5
- user-invocable: true
6
- argument-hint: "[target]"
1
+ Increase visual impact and personality in designs that are too safe, generic, or visually underwhelming, creating more engaging and memorable experiences.
2
+
7
3
  ---
8
4
 
9
- Increase visual impact and personality in designs that are too safe, generic, or visually underwhelming, creating more engaging and memorable experiences.
5
+ ## Register
10
6
 
11
- ## MANDATORY PREPARATION
7
+ Brand: "bolder" means distinctive. Extreme scale, unexpected color, typographic risk, committed POV.
12
8
 
13
- Invoke /impeccable it contains design principles, anti-patterns, and the **Context Gathering Protocol**. Follow the protocol before proceeding if no design context exists yet, you MUST run /impeccable teach first.
9
+ Product: "bolder" rarely means theatrics those undermine trust. It means stronger hierarchy, clearer weight contrast, one sharper accent, more committed density. The amplification is in clarity, not drama.
14
10
 
15
11
  ---
16
12
 
@@ -32,11 +28,11 @@ Analyze what makes the design feel too safe or boring:
32
28
  - Who's the audience? (What will resonate?)
33
29
  - What are the constraints? (Brand guidelines, accessibility, performance)
34
30
 
35
- If any of these are unclear from the codebase, ask the user directly to clarify what you cannot infer.
31
+ If any of these are unclear from the codebase, STOP and use Codex's structured user-input/question tool when available; if unavailable, ask directly in chat to clarify what you cannot infer.
36
32
 
37
33
  **CRITICAL**: "Bolder" doesn't mean chaotic or garish. It means distinctive, memorable, and confident. Think intentional drama, not random chaos.
38
34
 
39
- **WARNING - AI SLOP TRAP**: When making things "bolder," AI defaults to the same tired tricks: cyan/purple gradients, glassmorphism, neon accents on dark backgrounds, gradient text on metrics. These are the OPPOSITE of bold—they're generic. Review ALL the DON'T guidelines in the impeccable skill before proceeding. Bold means distinctive, not "more effects."
35
+ **WARNING - AI SLOP TRAP**: When making things "bolder," AI defaults to the same tired tricks: cyan/purple gradients, glassmorphism, neon accents on dark backgrounds, gradient text on metrics. These are the OPPOSITE of bold. They're generic. Review ALL the DON'T guidelines from the parent impeccable skill (already loaded in this context) before proceeding. Bold means distinctive, not "more effects."
40
36
 
41
37
  ## Plan Amplification
42
38
 
@@ -54,7 +50,7 @@ Create a strategy to increase impact while maintaining coherence:
54
50
  Systematically increase impact across these dimensions:
55
51
 
56
52
  ### Typography Amplification
57
- - **Replace generic fonts**: Swap system fonts for distinctive choices (see impeccable skill for inspiration)
53
+ - **Replace generic fonts**: Swap system fonts for distinctive choices (see the parent skill's typography guidelines and [typography.md](typography.md) for inspiration)
58
54
  - **Extreme scale**: Create dramatic size jumps (3x-5x differences, not 1.5x)
59
55
  - **Weight contrast**: Pair 900 weights with 200 weights, not 600 with 400
60
56
  - **Unexpected choices**: Variable fonts, display fonts for headlines, condensed/extended widths, monospace as intentional accent (not as lazy "dev tool" default)
@@ -114,4 +110,4 @@ Ensure amplification maintains usability and coherence:
114
110
 
115
111
  **The test**: If you showed this to someone and said "AI made this bolder," would they believe you immediately? If yes, you've failed. Bold means distinctive, not "more AI effects."
116
112
 
117
- Remember: Bold design is confident design. It takes risks, makes statements, and creates memorable experiences. But bold without strategy is just loud. Be intentional, be dramatic, be unforgettable.
113
+ Remember: Bold design is confident design. It takes risks, makes statements, and creates memorable experiences. But bold without strategy is just loud. Be intentional, be dramatic, be unforgettable.
@@ -0,0 +1,114 @@
1
+ # Brand register
2
+
3
+ When design IS the product: brand sites, landing pages, marketing surfaces, campaign pages, portfolios, long-form content, about pages. The deliverable is the design itself — a visitor's impression is the thing being made.
4
+
5
+ The register spans every genre. A tech brand (Stripe, Linear, Vercel). A luxury brand (a hotel, a fashion house). A consumer product (a restaurant, a travel site, a CPG packaging page). A creative studio, an agency portfolio, a band's album page. They all share the stance — *communicate, not transact* — and diverge wildly in aesthetic. Don't collapse them into a single look.
6
+
7
+ ## The brand slop test
8
+
9
+ If someone could look at this and say "AI made that" without hesitation, it's failed. The bar is distinctiveness — a visitor should ask "how was this made?", not "which AI made this?"
10
+
11
+ Brand isn't a neutral register. AI-generated landing pages have flooded the internet, and average is no longer findable. Restraint without intent now reads as mediocre, not refined. Brand surfaces need a POV, a specific audience, a willingness to risk strangeness. Go big or go home.
12
+
13
+ **The second slop test: aesthetic lane.** Before committing to moves, name the reference. A Klim-style specimen page is one lane; Stripe-minimal is another; Liquid-Death-acid-maximalism is another. Don't drift into editorial-magazine aesthetics on a brief that isn't editorial. A hiking brand with Cormorant italic drop caps has the wrong register within the register.
14
+
15
+ ## Typography
16
+
17
+ ### Font selection procedure
18
+
19
+ Every project. Never skip.
20
+
21
+ 1. Read the brief. Write three concrete brand-voice words — not "modern" or "elegant," but "warm and mechanical and opinionated" or "calm and clinical and careful." Physical-object words.
22
+ 2. List the three fonts you'd reach for by reflex. If any appear in the reflex-reject list below, reject them — they are training-data defaults and they create monoculture.
23
+ 3. Browse a real catalog (Google Fonts, Pangram Pangram, Future Fonts, Adobe Fonts, ABC Dinamo, Klim, Velvetyne) with the three words in mind. Find the font for the brand as a *physical object* — a museum caption, a 1970s terminal manual, a fabric label, a cheap-newsprint children's book, a concert poster, a receipt from a mid-century diner. Reject the first thing that "looks designy."
24
+ 4. Cross-check. "Elegant" is not necessarily serif. "Technical" is not necessarily sans. "Warm" is not Fraunces. If the final pick lines up with the original reflex, start over.
25
+
26
+ ### Reflex-reject list
27
+
28
+ Training-data defaults. Ban list — look further:
29
+
30
+ Fraunces · Newsreader · Lora · Crimson · Crimson Pro · Crimson Text · Playfair Display · Cormorant · Cormorant Garamond · Syne · IBM Plex Mono · IBM Plex Sans · IBM Plex Serif · Space Mono · Space Grotesk · Inter · DM Sans · DM Serif Display · DM Serif Text · Outfit · Plus Jakarta Sans · Instrument Sans · Instrument Serif
31
+
32
+ ### Reflex-reject aesthetic lanes
33
+
34
+ Parallel to the font list. Currently saturated aesthetic families that have flooded brand surfaces. If a brief lands in one of these lanes without a register reason that *requires* it (a literal magazine, a literal terminal, a literal industrial signage system), it's the second-order training reflex — the trap one tier deeper than picking a Fraunces font. Look further.
35
+
36
+ - **Editorial-typographic.** Display serif (often italic) + small mono labels + ruled separators + monochromatic restraint. Klim-influenced, magazine-cover affectation. By 2026, every Stripe-adjacent and Notion-adjacent brand has landed here. The fingerprint: three rule-separated columns, an italic Fraunces / Recoleta / Newsreader headline, lowercase track-spaced metadata, no imagery.
37
+
38
+ (More entries land here on the same cadence the font list updates. Brutalist-utility and acid-maximalism may join when they saturate. Removing entries when they fall back below saturation is also fine.)
39
+
40
+ The reflex-reject lists apply to **new design choices**. When the existing brand has already committed to a font or a lane as part of its identity, identity-preservation wins — variants on an existing surface don't second-guess what's already shipping. The reflex-reject lists are for greenfield decisions and for departure-mode variants in [live.md](live.md).
41
+
42
+ ### Pairing and voice
43
+
44
+ Distinctive + refined is the goal — the specific shape depends on the brand:
45
+
46
+ - **Editorial / long-form / luxury**: display serif + sans body (a magazine shape).
47
+ - **Tech / dev tools / fintech**: one committed sans, usually; custom-tight tracking, strong weight contrast inside a single family.
48
+ - **Consumer / food / travel**: warmer pairings, often a humanist sans plus a script or display serif.
49
+ - **Creative studios / agencies**: rule-breaking welcome — mono-only, or display-only, or custom-drawn type as voice.
50
+
51
+ Two families minimum is the rule *only* when the voice needs it. A single well-chosen family with committed weight/size contrast is stronger than a timid display+body pair.
52
+
53
+ Vary across projects. If the last brief was a serif-display landing page, this one isn't.
54
+
55
+ ### Scale
56
+
57
+ Modular scale, fluid `clamp()` for headings, ≥1.25 ratio between steps. Flat scales (1.1× apart) read as uncommitted.
58
+
59
+ Light text on dark backgrounds: add 0.05–0.1 to line-height. Light type reads as lighter weight and needs more breathing room.
60
+
61
+ ## Color
62
+
63
+ Brand surfaces have permission for Committed, Full palette, and Drenched strategies. Use them. A single saturated color spread across a hero is not excess — it's voice. A beige-and-muted-slate landing page ignores the register.
64
+
65
+ - Name a real reference before picking a strategy. "Klim Type Foundry #ff4500 orange drench", "Stripe purple-on-white restraint", "Liquid Death acid-green full palette", "Mailchimp yellow full palette", "Condé Nast Traveler muted navy restraint", "Vercel pure black monochrome". Unnamed ambition becomes beige.
66
+ - Palette IS voice. A calm brand and a restless brand should not share palette mechanics.
67
+ - When the strategy is Committed or Drenched, the color is load-bearing. Don't hedge with neutrals around the edges — commit.
68
+ - Don't converge across projects. If the last brand surface was restrained-on-cream, this one is not.
69
+
70
+ ## Layout
71
+
72
+ - Asymmetric compositions are one option. Break the grid intentionally for emphasis.
73
+ - Fluid spacing with `clamp()` that breathes on larger viewports. Vary for rhythm — generous separations, tight groupings.
74
+ - Alternative: a strict, visible grid as the voice (brutalist / Swiss / tech-spec aesthetics). Either asymmetric or rigorously-gridded can be "designed" — the failure mode is splitting the difference into a generic centered stack.
75
+ - Don't default to centering everything. Left-aligned with asymmetric layouts feels more designed; a strict grid reads as confident structure. A centered-stack hero with icon-title-subtitle cards reads as template.
76
+ - When cards ARE the right affordance, use `grid-template-columns: repeat(auto-fit, minmax(280px, 1fr))` — breakpoint-free responsiveness.
77
+
78
+ ## Imagery
79
+
80
+ Brand surfaces lean on imagery. A restaurant, hotel, magazine, or product landing page without any imagery reads as incomplete, not as restrained. A solid-color rectangle where a hero image should go is worse than a representative stock photo.
81
+
82
+ **When the brief implies imagery (restaurants, hotels, magazines, photography, hobbyist communities, food, travel, fashion, product), you must ship imagery.** Zero images is a bug, not a design choice. "Restraint" is not an excuse.
83
+
84
+ - **For greenfield work without local assets, use stock imagery** — Unsplash is the default. The URL shape is `https://images.unsplash.com/photo-{id}?auto=format&fit=crop&w=1600&q=80`. Pick real Unsplash photo IDs you're confident exist (`photo-1559339352-11d035aa65de`, `photo-1590490360182-c33d57733427`, etc.); if unsure, pick fewer photos but don't substitute colored `<div>` placeholders.
85
+ - **Search for the brand's physical object**, not the generic category: "handmade pasta on a scratched wooden table" beats "Italian food"; "cypress trees above a limestone hotel facade at dusk" beats "luxury hotel".
86
+ - **One decisive photo beats five mediocre ones.** Hero imagery should commit to a mood; padding with more stock doesn't rescue an indecisive one.
87
+ - **Alt text is part of the voice.** "Coastal fettuccine, hand-cut, served on the terrace" beats "pasta dish".
88
+
89
+ Tech / dev-tool brands are the exception where zero imagery can be correct — a developer landing page often carries its voice through typography, code samples, diagrams. Know which kind of brand you're working on.
90
+
91
+ ## Motion
92
+
93
+ - One well-orchestrated page-load with staggered reveals beats scattered micro-interactions — when the brand invites it. Tech-minimal brands often skip entrance motion entirely; the restraint is the voice.
94
+ - For collapsing/expanding sections, transition `grid-template-rows` rather than `height`.
95
+
96
+ ## Brand bans (on top of the shared absolute bans)
97
+
98
+ - Monospace as lazy shorthand for "technical / developer." If the brand isn't technical, mono reads as costume.
99
+ - Large rounded-corner icons above every heading. Screams template.
100
+ - Single-family pages that picked the family by reflex, not voice. (A single family chosen deliberately is fine.)
101
+ - All-caps body copy. Reserve caps for short labels and headings.
102
+ - Timid palettes and average layouts. Safe = invisible.
103
+ - Zero imagery on a brief that implies imagery (restaurant, hotel, food, travel, fashion, photography, hobbyist). Colored blocks where a hero photo belongs.
104
+ - Defaulting to editorial-magazine aesthetics (display serif + italic + drop caps + broadsheet grid) on briefs that aren't magazine-shaped. Editorial is ONE aesthetic lane, not the default brand aesthetic.
105
+
106
+ ## Brand permissions
107
+
108
+ Brand can afford things product can't. Take them.
109
+
110
+ - Ambitious first-load motion. Reveals, scroll-triggered transitions, typographic choreography.
111
+ - Single-purpose viewports. One dominant idea per fold, long scroll, deliberate pacing.
112
+ - Typographic risk. Enormous display type, unexpected italic cuts, mixed cases, hand-drawn headlines, a single oversize word as a hero.
113
+ - Unexpected color strategies. Palette IS voice — a calm brand and a restless brand should not share palette mechanics.
114
+ - Art direction per section. Different sections can have different visual worlds if the narrative demands it. Consistency of voice beats consistency of treatment.
@@ -1,16 +1,7 @@
1
- ---
2
- name: clarify
3
- description: Improve unclear UX copy, error messages, microcopy, labels, and instructions to make interfaces easier to understand. Use when the user mentions confusing text, unclear labels, bad error messages, hard-to-follow instructions, or wanting better UX writing.
4
- version: 2.1.1
5
- user-invocable: true
6
- argument-hint: "[target]"
7
- ---
1
+ > **Additional context needed**: audience technical level and users' mental state in context.
8
2
 
9
3
  Identify and improve unclear, confusing, or poorly written interface text to make the product easier to understand and use.
10
4
 
11
- ## MANDATORY PREPARATION
12
-
13
- Invoke /impeccable — it contains design principles, anti-patterns, and the **Context Gathering Protocol**. Follow the protocol before proceeding — if no design context exists yet, you MUST run /impeccable teach first. Additionally gather: audience technical level and users' mental state in context.
14
5
 
15
6
  ---
16
7
 
@@ -180,4 +171,4 @@ Test that copy improvements work:
180
171
  - **Consistency**: Does it match terminology elsewhere?
181
172
  - **Tone**: Is it appropriate for the situation?
182
173
 
183
- Remember: You're a clarity expert with excellent communication skills. Write like you're explaining to a smart friend who's unfamiliar with the product. Be clear, be helpful, be human.
174
+ Remember: You're a clarity expert with excellent communication skills. Write like you're explaining to a smart friend who's unfamiliar with the product. Be clear, be helpful, be human.
@@ -1,16 +1,14 @@
1
- ---
2
- name: colorize
3
- description: Add strategic color to features that are too monochromatic or lack visual interest, making interfaces more engaging and expressive. Use when the user mentions the design looking gray, dull, lacking warmth, needing more color, or wanting a more vibrant or expressive palette.
4
- version: 2.1.1
5
- user-invocable: true
6
- argument-hint: "[target]"
7
- ---
1
+ > **Additional context needed**: existing brand colors.
8
2
 
9
3
  Strategically introduce color to designs that are too monochromatic, gray, or lacking in visual warmth and personality.
10
4
 
11
- ## MANDATORY PREPARATION
5
+ ---
6
+
7
+ ## Register
8
+
9
+ Brand: palette IS voice. Pick a color strategy first per SKILL.md (Restrained / Committed / Full palette / Drenched) and follow its dosage. Committed, Full palette, and Drenched deliberately exceed the ≤10% rule — that rule is Restrained only. Unexpected combinations are allowed; a dominant color can own the page when the chosen strategy calls for it.
12
10
 
13
- Invoke /impeccable — it contains design principles, anti-patterns, and the **Context Gathering Protocol**. Follow the protocol before proceeding if no design context exists yet, you MUST run /impeccable teach first. Additionally gather: existing brand colors.
11
+ Product: semantic-first and almost always Restrained. Accent color is reserved for primary action, current selection, and state indicators not decoration. Every color has a consistent meaning across every screen.
14
12
 
15
13
  ---
16
14
 
@@ -32,7 +30,7 @@ Analyze the current state and identify opportunities:
32
30
  - **Wayfinding**: Helping users navigate and understand structure
33
31
  - **Delight**: Moments of visual interest and personality
34
32
 
35
- If any of these are unclear from the codebase, ask the user directly to clarify what you cannot infer.
33
+ If any of these are unclear from the codebase, STOP and use Codex's structured user-input/question tool when available; if unavailable, ask directly in chat to clarify what you cannot infer.
36
34
 
37
35
  **CRITICAL**: More color ≠ better. Strategic color beats rainbow vomit every time. Every color should have a purpose.
38
36
 
@@ -83,10 +81,13 @@ Add color systematically across these dimensions:
83
81
  - **Comparison**: Color coding for different datasets or timeframes
84
82
 
85
83
  ### Borders & Accents
86
- - **Accent borders**: Add colored left/top borders to cards or sections
84
+ - **Hairline borders**: 1px colored borders on full perimeter (not side-stripes — see the absolute ban on `border-left/right > 1px`)
87
85
  - **Underlines**: Color underlines for emphasis or active states
88
86
  - **Dividers**: Subtle colored dividers instead of gray lines
89
87
  - **Focus rings**: Colored focus indicators matching brand
88
+ - **Surface tints**: A 4-8% background wash of the accent color instead of a stripe
89
+
90
+ **NEVER**: `border-left` or `border-right` greater than 1px as a colored accent stripe. This is one of the three absolute bans in the parent skill. If you want to mark a card as "active" or "warning", use a full hairline border, a background tint, a leading glyph, or a numbered prefix — not a side stripe.
90
91
 
91
92
  ### Typography Color
92
93
  - **Colored headings**: Use brand colors for section headings (maintain contrast)
@@ -140,4 +141,14 @@ Test that colorization improves the experience:
140
141
  - **Still accessible**: Do all color combinations meet WCAG standards?
141
142
  - **Not overwhelming**: Is color balanced and purposeful?
142
143
 
143
- Remember: Color is emotional and powerful. Use it to create warmth, guide attention, communicate meaning, and express personality. But restraint and strategy matter more than saturation and variety. Be colorful, but be intentional.
144
+ Remember: Color is emotional and powerful. Use it to create warmth, guide attention, communicate meaning, and express personality. But restraint and strategy matter more than saturation and variety. Be colorful, but be intentional.
145
+
146
+ ## Live-mode signature params
147
+
148
+ When invoked from live mode, each variant MUST declare a `color-amount` param so the user can dial between a restrained accent and a drenched surface without regeneration. Author the variant's CSS against `var(--p-color-amount, 0.5)` — typically as the alpha multiplier on backgrounds, or as a scaling factor on the chroma axis in an OKLCH expression. 0 = neutral/monochrome, 1 = full saturation / dominant coverage.
149
+
150
+ ```json
151
+ {"id":"color-amount","kind":"range","min":0,"max":1,"step":0.05,"default":0.5,"label":"Color amount"}
152
+ ```
153
+
154
+ Layer 1-2 variant-specific params on top: palette selection (`steps` with named options), temperature warmth, or tint vs. true color. See `reference/live.md` for the full params contract.
@@ -1,14 +1,43 @@
1
1
  # Craft Flow
2
2
 
3
- Build a feature with impeccable UX and UI quality through a structured process: shape the design, load the right references, then build and iterate visually until the result is delightful.
3
+ Build a feature with impeccable UX and UI quality through a structured process: shape the design, land the visual direction, build real production code, then inspect and improve in-browser until the result meets a high-end studio bar.
4
+
5
+ ## Build Gate
6
+
7
+ Craft cannot build until all of these are true:
8
+
9
+ 1. PRODUCT context is valid and current.
10
+ 2. The shape design brief is explicitly confirmed by the user for this task, unless the user already provided a confirmed brief.
11
+ 3. Implementation references from the brief are loaded.
12
+ 4. The shape visual probe decision is recorded: generated, skipped with reason, or already resolved.
13
+ 5. The north-star mock decision is recorded: generated, skipped with reason, or not applicable.
14
+
15
+ PRODUCT.md and `teach` answers do **not** satisfy the shape gate. They are project context only. A compact self-authored brief does not satisfy the shape gate either. `shape=pass` requires a separate user response approving the shape brief or an already-confirmed brief supplied by the user.
16
+
17
+ Invalid image-skip reasons include: "the final implementation will be semantic HTML/CSS/SVG", "the diagram should stay editable", "a raster mock would not be used directly", or "the product is fictional." Generated probes and mocks are direction artifacts; they are not implementation assets.
18
+
19
+ ## Craft Contract
20
+
21
+ Craft is not a first pass. It is a loop with these required artifacts:
22
+
23
+ 1. Confirmed design brief from `shape`.
24
+ 2. Approved visual direction, from generated probes / mocks when image generation is available.
25
+ 3. Mock fidelity inventory: the visible ingredients from the approved direction that must survive into code.
26
+ 4. Semantic, functional implementation using the project's real stack and conventions.
27
+ 5. Browser evidence across relevant viewports.
28
+ 6. At least one critique-and-fix pass after the first browser inspection, unless the first pass has no material defects.
29
+
30
+ Do not let generated mockups replace interface structure, copy, accessibility, responsive behavior, or state design. But do treat the approved mock as a concrete visual contract for composition, hierarchy, density, atmosphere, signature motifs, image needs, and distinctive visual moves. "North star" means "preserve the important visible ingredients in semantic code," not "use it as loose mood."
4
31
 
5
32
  ## Step 1: Shape the Design
6
33
 
7
- Run /shape, passing along whatever feature description the user provided.
34
+ Run $impeccable shape, passing along whatever feature description the user provided.
8
35
 
9
- Wait for the design brief to be fully confirmed before proceeding. The brief is your blueprint, and every implementation decision should trace back to it.
36
+ Wait for the design brief to be fully confirmed by the user before proceeding. The brief is your blueprint, and every implementation decision should trace back to it.
10
37
 
11
- If the user has already run /shape and has a confirmed design brief, skip this step and use the existing brief.
38
+ If this craft run resumed after `teach` created PRODUCT.md, run shape now. Do not treat the teach interview, PRODUCT.md, or a summary of project context as a substitute for shape. Shape is task-specific and must cover scope, content/states, visual direction, constraints, anti-goals, probes when applicable, and explicit brief confirmation.
39
+
40
+ If the user has already run $impeccable shape and has a confirmed design brief, skip this step and use the existing brief.
12
41
 
13
42
  ## Step 2: Load References
14
43
 
@@ -24,47 +53,141 @@ Then add references based on the brief's needs:
24
53
  - Responsive requirements? Consult [responsive-design.md](responsive-design.md)
25
54
  - Heavy on copy, labels, or errors? Consult [ux-writing.md](ux-writing.md)
26
55
 
27
- ## Step 3: Build
56
+ ## Step 3: Land the Visual Direction (Capability-Gated)
57
+
58
+ Before implementation, generate high-fidelity visual comps when all of these are true:
59
+
60
+ - The work is **net-new** or visually open-ended enough that composition exploration will improve the build.
61
+ - The brief's scope is **mid-fi, high-fi, or production-ready**.
62
+ - The current harness has **built-in image generation capability** (for example, Codex with a native image tool). Do **not** ask the user to set up external APIs, shell scripts, or one-off tooling just to do this.
63
+
64
+ When those conditions are met, this step is mandatory for **both brand and product work** in Codex and any harness with built-in image generation. Use native image generation; in Codex, use the built-in `image_gen` tool via the imagegen skill. If image generation is unavailable, do not ask the user to install APIs or tooling. State in one line that the image step is skipped because the harness lacks native image generation, then proceed.
65
+
66
+ Do not skip this step because the eventual UI should be semantic, editable, code-native, responsive, or accessible. Those are implementation requirements, not reasons to avoid visual exploration.
67
+
68
+ ### Purpose
69
+
70
+ Use the mock step to find a stronger visual lane than code-first generation would reliably discover on its own. The brief remains authoritative on user, purpose, content, constraints, states, and anti-goals. The mock clarifies composition, hierarchy, density, typography, and visual tone.
71
+
72
+ ### What to generate
73
+
74
+ Generate **1 to 3** high-fidelity north-star comps based on the confirmed brief. If shape already produced direction probes, use those results as input and generate a more resolved mock from the winning lane, not another unrelated exploration.
75
+
76
+ - For brand work, push visual identity, composition, and mood aggressively.
77
+ - For product work, still push hierarchy, topology, density, and tone, but keep the comps grounded in realistic product structure and states.
78
+ - For landing pages and long-form brand surfaces, show enough of the next section or second fold to establish the system beyond the hero.
79
+
80
+ The comps must be genuinely different in primary visual direction, not just color variants.
81
+
82
+ ### Approval loop
83
+
84
+ Show the comps and ask what should carry forward. If the user asks for changes or the best direction is still weak, generate a focused revision before implementation. Continue until one direction is approved, or until the user explicitly delegates the choice.
28
85
 
29
- Implement the feature following the design brief. Work in this order:
86
+ If the user delegates, pick the strongest direction and explain the decision using the brief, not personal taste.
30
87
 
31
- 1. **Structure first**: HTML/semantic structure for the primary state. No styling yet.
32
- 2. **Layout and spacing**: Establish the spatial rhythm and visual hierarchy.
33
- 3. **Typography and color**: Apply the type scale and color system.
34
- 4. **Interactive states**: Hover, focus, active, disabled.
35
- 5. **Edge case states**: Empty, loading, error, overflow, first-run.
36
- 6. **Motion**: Purposeful transitions and animations (if appropriate).
37
- 7. **Responsive**: Adapt for different viewports. Don't just shrink; redesign for the context.
88
+ Before moving to implementation, summarize:
38
89
 
39
- ### During Build
40
- - Test with real (or realistic) data at every step, not placeholder text
41
- - Check each state as you build it, not all at the end
42
- - If you discover a design question, stop and ask rather than guessing
43
- - Every visual choice should trace back to something in the design brief
90
+ - What to carry into code
91
+ - What **not** to literalize from the mock
44
92
 
45
- ## Step 4: Visual Iteration
93
+ This summary is required before Step 4. It is the handoff between visual exploration and semantic implementation.
94
+
95
+ ### Mock fidelity inventory
96
+
97
+ Before building, inventory the approved mock's major visible ingredients:
98
+
99
+ - Hero silhouette and dominant composition.
100
+ - Signature motifs: planets, devices, portraits, charts, route lines, insets, badges, or other memorable objects.
101
+ - Nav and primary CTA treatment.
102
+ - Section sequence visible in the mock, especially the second fold.
103
+ - Image-native content the concept depends on.
104
+ - Typography, density, color/material treatment, and motion cues.
105
+
106
+ For each ingredient, decide how it will be implemented: semantic HTML/CSS/SVG, generated asset, sourced project asset, icon library, canvas/WebGL, or an explicitly accepted omission. Do not substitute a different hero composition or new visual driver after approval unless the user approves the change.
107
+
108
+ Treat the mock as a **north star**, not a screenshot to trace. Do **not** rasterize core UI text or let the mock override the confirmed brief. But if the live result lacks the mock's major visible ingredients, the implementation is wrong.
109
+
110
+ ## Step 4: Asset Extraction (Need-Gated)
111
+
112
+ If the chosen direction includes image-native visual ingredients that would materially improve the implementation, generate them as separate assets before building.
113
+
114
+ Good candidates:
115
+
116
+ - stickers
117
+ - badges
118
+ - seals
119
+ - tickets
120
+ - graphic labels
121
+ - textures
122
+ - abstract objects
123
+ - decorative marks
124
+ - non-semantic scene elements
125
+
126
+ For travel, editorial, portfolio, venue, product showcase, entertainment, education, or any other image-led brand surface, visual assets are usually core content, not decoration. Do not ship abstract CSS panels where the approved mock or subject matter calls for real imagery, generated plates, illustrations, maps, product/object renders, or destination scenes.
127
+
128
+ Do **not** export assets for core UI text, navigation, body copy, or any structure that should stay semantic and editable in code.
129
+
130
+ Usually **1 to 5** extracted assets is enough. If the design can be built cleanly in HTML/CSS/SVG, prefer that over raster assets. If the mock contains major visual content that cannot be built credibly in code, asset extraction is not optional.
131
+
132
+ ## Step 5: Build to Production Quality
133
+
134
+ Implement the feature following the design brief. Build in passes so structure, visual system, states, motion/media, and responsive behavior each get deliberate attention. The list below is the definition of done, not inspiration.
135
+
136
+ ### Production bar
137
+
138
+ - Use real or realistic content. Remove placeholder copy, placeholder images, dead links, fake controls, and unused scaffold before presenting.
139
+ - Preserve the approved mock's major ingredients. Missing hero objects, missing world/product imagery, different section structure, downgraded CTA/nav treatment, or generic replacements for distinctive motifs are blocking defects unless the user accepted the change.
140
+ - Build semantically first: real headings, landmarks, labels, form associations, button/link semantics, accessible names, and state announcements where needed.
141
+ - Calibrate spacing, alignment, grid placement, and vertical rhythm deliberately. Do not accept default gaps, arbitrary margins, unbalanced whitespace, or accidental optical misalignment.
142
+ - Make typography intentional: chosen font loading strategy, clear hierarchy, readable measure, stable line breaks, tuned wrapping, and no overflow at mobile or large desktop sizes.
143
+ - Design realistic state coverage: default, hover where supported, focus-visible, active, disabled, loading, error, success, empty, overflow, long text, short text, and first-run states where relevant.
144
+ - Make interaction quality feel finished: keyboard paths, touch targets, feedback timing, scroll behavior, transitions between states, and no hover-only functionality.
145
+ - Use icons from the project's established icon set when available. If no set exists, choose a coherent library or use accessible text controls; do not mix unrelated icon styles.
146
+ - Optimize imagery and media: correct dimensions, useful alt text, lazy loading below the fold, modern formats when practical, responsive `srcset` / `picture` for raster assets, and no project-referenced asset left outside the workspace.
147
+ - Make motion feel premium: use atmospheric blur, filter, mask, shadow, or reveal effects when they improve the experience; avoid casual layout-property animation, bound expensive effects, verify smoothness in-browser, respect reduced motion, and avoid choreography that blocks task completion.
148
+ - Preserve maintainability: reusable local patterns, clear component boundaries, project conventions, no rasterized UI text, and no hard-coded one-off hacks when a better local pattern exists.
149
+ - Fit the technical context: production build passes, no obvious console errors, no avoidable layout shift, no needless dependency, and no broken asset path.
150
+ - If you discover a design question that materially changes the brief or approved direction, stop and ask rather than guessing.
151
+
152
+ ## Step 6: Browser-Based Iteration
46
153
 
47
154
  **This step is critical.** Do not stop after the first implementation pass.
48
155
 
49
- Open the result in a browser window. If browser automation tools are available, use them to navigate to the page and visually inspect the result. If not, ask the user to open it and provide feedback.
156
+ Open the result in a browser. In Codex, use browser-use or equivalent browser automation when available; otherwise use Playwright or ask the user for screenshots. Inspect screenshots, not just DOM or terminal output.
157
+
158
+ ### Required viewport pass
159
+
160
+ Check the experience at the viewports that matter for the brief. Default minimum:
161
+
162
+ - Mobile narrow
163
+ - Tablet or small laptop
164
+ - Desktop wide
165
+
166
+ For each viewport, capture or inspect the rendered state and look for visual defects: overlap, clipping, weak hierarchy, off-grid alignment, awkward whitespace, cramped controls, unreadable type, broken imagery, hover-only functionality, layout shift, and text overflow.
167
+
168
+ ### Critique and fix loop
50
169
 
51
- Iterate through these checks visually:
170
+ After the first browser pass, write a short critique for yourself and patch the implementation. Repeat browser inspection after fixes. Continue until no material issues remain against this checklist:
52
171
 
53
172
  1. **Does it match the brief?** Compare the live result against every section of the design brief. Fix discrepancies.
54
- 2. **Does it pass the AI slop test?** If someone saw this and said "AI made this," would they believe it immediately? If yes, it needs more design intention.
55
- 3. **Check against impeccable's DON'T guidelines.** Fix any anti-pattern violations.
56
- 4. **Check every state.** Navigate through empty, error, loading, and edge case states. Each one should feel intentional, not like an afterthought.
57
- 5. **Check responsive.** Resize the viewport. Does it adapt well or just shrink?
58
- 6. **Check the details.** Spacing consistency, type hierarchy clarity, color contrast, interactive feedback, motion timing.
173
+ 2. **Does it match the approved mock?** Compare screenshots against the mock fidelity inventory: hero silhouette, major motifs, imagery, nav/CTA, section sequence, density, color/materials, and second-fold substance. Missing major ingredients are P0 defects.
174
+ 3. **Does it pass the AI slop test?** If someone saw this and said "AI made this," would they believe it immediately? If yes, it needs more design intention.
175
+ 4. **Check against impeccable's DON'T guidelines.** Fix any anti-pattern violations.
176
+ 5. **Check every state.** Navigate through empty, error, loading, and edge case states. Each one should feel intentional, not like an afterthought.
177
+ 6. **Check responsive behavior.** The design should adapt compositionally, not merely shrink.
178
+ 7. **Check craft details.** Spacing consistency, optical alignment, type hierarchy, color contrast, image quality, icon coherence, interactive feedback, motion timing, and focus treatment.
179
+ 8. **Check performance basics.** No obviously oversized images, avoidable layout thrash, blocking animations, or heavy assets without a reason.
59
180
 
60
- After each round of fixes, visually verify again. **Repeat until you would be proud to show this to the user.** The bar is not "it works"; the bar is "this delights."
181
+ The exit bar is not "it works." It is: the rendered result looks intentional at all checked viewports, all expected states are handled, no placeholders remain unless explicitly accepted, and the implementation quality would be defensible in a high-end studio review.
61
182
 
62
- ## Step 5: Present
183
+ ## Step 7: Present
63
184
 
64
185
  Present the result to the user:
65
186
  - Show the feature in its primary state
187
+ - Summarize the browser/viewports checked and the most important fixes made after inspection
66
188
  - Walk through the key states (empty, error, responsive)
67
- - Explain design decisions that connect back to the design brief
189
+ - Explain design decisions that connect back to the design brief and, when used, the chosen north-star mock. Include any accepted deviations from the mock; do not hide unimplemented mock ingredients.
190
+ - Note any remaining limitations or follow-up risks honestly
68
191
  - Ask: "What's working? What isn't?"
69
192
 
70
193
  Iterate based on feedback. Good design is rarely right on the first pass.