@bastani/atomic 0.6.5-0 → 0.6.6-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.
- package/.agents/skills/ado-commit/SKILL.md +2 -0
- package/.agents/skills/ado-create-pr/SKILL.md +2 -0
- package/.agents/skills/advanced-evaluation/SKILL.md +2 -0
- package/.agents/skills/ast-grep/SKILL.md +2 -0
- package/.agents/skills/bdi-mental-states/SKILL.md +2 -0
- package/.agents/skills/bun/SKILL.md +156 -122
- package/.agents/skills/context-compression/SKILL.md +2 -0
- package/.agents/skills/context-degradation/SKILL.md +2 -0
- package/.agents/skills/context-fundamentals/SKILL.md +2 -0
- package/.agents/skills/context-optimization/SKILL.md +2 -0
- package/.agents/skills/create-spec/SKILL.md +2 -0
- package/.agents/skills/docx/SKILL.md +2 -0
- package/.agents/skills/evaluation/SKILL.md +2 -0
- package/.agents/skills/explain-code/SKILL.md +2 -0
- package/.agents/skills/filesystem-context/SKILL.md +2 -0
- package/.agents/skills/find-skills/SKILL.md +2 -0
- package/.agents/skills/gh-commit/SKILL.md +2 -0
- package/.agents/skills/gh-create-pr/SKILL.md +2 -0
- package/.agents/skills/hosted-agents/SKILL.md +2 -0
- package/.agents/skills/impeccable/SKILL.md +117 -304
- package/.agents/skills/impeccable/agents/openai.yaml +4 -0
- package/.agents/skills/{adapt/SKILL.md → impeccable/reference/adapt.md} +2 -11
- package/.agents/skills/{animate/SKILL.md → impeccable/reference/animate.md} +15 -15
- package/.agents/skills/{audit/SKILL.md → impeccable/reference/audit.md} +8 -22
- package/.agents/skills/{bolder/SKILL.md → impeccable/reference/bolder.md} +9 -13
- package/.agents/skills/impeccable/reference/brand.md +114 -0
- package/.agents/skills/{clarify/SKILL.md → impeccable/reference/clarify.md} +2 -11
- package/.agents/skills/{colorize/SKILL.md → impeccable/reference/colorize.md} +23 -12
- package/.agents/skills/impeccable/reference/craft.md +152 -29
- package/.agents/skills/{critique/SKILL.md → impeccable/reference/critique.md} +25 -37
- package/.agents/skills/{delight/SKILL.md → impeccable/reference/delight.md} +9 -11
- package/.agents/skills/{distill/SKILL.md → impeccable/reference/distill.md} +2 -13
- package/.agents/skills/impeccable/reference/document.md +427 -0
- package/.agents/skills/impeccable/reference/extract.md +1 -1
- package/.agents/skills/{harden/SKILL.md → impeccable/reference/harden.md} +1 -43
- package/.agents/skills/{layout/SKILL.md → impeccable/reference/layout.md} +27 -11
- package/.agents/skills/impeccable/reference/live.md +594 -0
- package/.agents/skills/impeccable/reference/motion-design.md +12 -2
- package/.agents/skills/impeccable/reference/onboard.md +234 -0
- package/.agents/skills/{optimize/SKILL.md → impeccable/reference/optimize.md} +4 -12
- package/.agents/skills/{overdrive/SKILL.md → impeccable/reference/overdrive.md} +9 -21
- package/.agents/skills/{critique → impeccable}/reference/personas.md +1 -1
- package/.agents/skills/{polish/SKILL.md → impeccable/reference/polish.md} +31 -23
- package/.agents/skills/impeccable/reference/product.md +62 -0
- package/.agents/skills/{quieter/SKILL.md → impeccable/reference/quieter.md} +7 -11
- package/.agents/skills/impeccable/reference/shape.md +151 -0
- package/.agents/skills/impeccable/reference/teach.md +156 -0
- package/.agents/skills/{typeset/SKILL.md → impeccable/reference/typeset.md} +19 -11
- package/.agents/skills/impeccable/reference/typography.md +31 -14
- package/.agents/skills/impeccable/scripts/cleanup-deprecated.mjs +87 -17
- package/.agents/skills/impeccable/scripts/command-metadata.json +94 -0
- package/.agents/skills/impeccable/scripts/design-parser.mjs +820 -0
- package/.agents/skills/impeccable/scripts/detect-csp.mjs +198 -0
- package/.agents/skills/impeccable/scripts/is-generated.mjs +69 -0
- package/.agents/skills/impeccable/scripts/live-accept.mjs +595 -0
- package/.agents/skills/impeccable/scripts/live-browser.js +4781 -0
- package/.agents/skills/impeccable/scripts/live-inject.mjs +445 -0
- package/.agents/skills/impeccable/scripts/live-poll.mjs +186 -0
- package/.agents/skills/impeccable/scripts/live-server.mjs +694 -0
- package/.agents/skills/impeccable/scripts/live-wrap.mjs +571 -0
- package/.agents/skills/impeccable/scripts/live.mjs +247 -0
- package/.agents/skills/impeccable/scripts/load-context.mjs +141 -0
- package/.agents/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/.agents/skills/impeccable/scripts/pin.mjs +214 -0
- package/.agents/skills/init/SKILL.md +2 -0
- package/.agents/skills/liteparse/SKILL.md +1 -0
- package/.agents/skills/memory-systems/SKILL.md +2 -0
- package/.agents/skills/multi-agent-patterns/SKILL.md +2 -0
- package/.agents/skills/opentui/SKILL.md +1 -0
- package/.agents/skills/pdf/SKILL.md +2 -0
- package/.agents/skills/playwright-cli/SKILL.md +51 -5
- package/.agents/skills/playwright-cli/references/playwright-tests.md +1 -1
- package/.agents/skills/playwright-cli/references/running-code.md +10 -0
- package/.agents/skills/playwright-cli/references/session-management.md +56 -0
- package/.agents/skills/playwright-cli/references/spec-driven-testing.md +305 -0
- package/.agents/skills/playwright-cli/references/test-generation.md +49 -3
- package/.agents/skills/pptx/SKILL.md +2 -0
- package/.agents/skills/project-development/SKILL.md +2 -0
- package/.agents/skills/prompt-engineer/SKILL.md +2 -0
- package/.agents/skills/research-codebase/SKILL.md +2 -0
- package/.agents/skills/ripgrep/SKILL.md +2 -0
- package/.agents/skills/skill-creator/LICENSE.txt +1 -1
- package/.agents/skills/skill-creator/SKILL.md +2 -0
- package/.agents/skills/sl-commit/SKILL.md +2 -0
- package/.agents/skills/sl-submit-diff/SKILL.md +2 -0
- package/.agents/skills/tdd/SKILL.md +4 -0
- package/.agents/skills/tool-design/SKILL.md +2 -0
- package/.agents/skills/typescript-advanced-types/SKILL.md +2 -1
- package/.agents/skills/typescript-expert/SKILL.md +7 -1
- package/.agents/skills/typescript-react-reviewer/SKILL.md +2 -1
- package/.agents/skills/workflow-creator/SKILL.md +75 -72
- package/.agents/skills/workflow-creator/references/session-config.md +48 -1
- package/.agents/skills/xlsx/SKILL.md +2 -0
- package/.opencode/opencode.json +4 -2
- package/dist/sdk/runtime/executor.d.ts +8 -0
- package/dist/sdk/runtime/executor.d.ts.map +1 -1
- package/dist/sdk/runtime/port-discovery.d.ts +71 -0
- package/dist/sdk/runtime/port-discovery.d.ts.map +1 -0
- package/dist/sdk/runtime/tmux.d.ts +10 -0
- package/dist/sdk/runtime/tmux.d.ts.map +1 -1
- package/dist/sdk/types.d.ts +1 -0
- package/dist/sdk/types.d.ts.map +1 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/opencode/index.d.ts.map +1 -1
- package/dist/sdk/workflows/builtin/open-claude-design/opencode/index.d.ts.map +1 -1
- package/dist/sdk/workflows/builtin/ralph/claude/index.d.ts.map +1 -1
- package/dist/sdk/workflows/builtin/ralph/copilot/index.d.ts.map +1 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts +15 -0
- package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts.map +1 -1
- package/dist/sdk/workflows/builtin/ralph/opencode/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/sdk/runtime/executor.test.ts +254 -1
- package/src/sdk/runtime/executor.ts +135 -89
- package/src/sdk/runtime/port-discovery.test.ts +573 -0
- package/src/sdk/runtime/port-discovery.ts +496 -0
- package/src/sdk/runtime/tmux.ts +16 -0
- package/src/sdk/types.ts +1 -0
- package/src/sdk/workflows/builtin/deep-research-codebase/opencode/index.ts +24 -6
- package/src/sdk/workflows/builtin/open-claude-design/opencode/index.ts +52 -13
- package/src/sdk/workflows/builtin/ralph/claude/index.ts +31 -3
- package/src/sdk/workflows/builtin/ralph/copilot/index.ts +16 -0
- package/src/sdk/workflows/builtin/ralph/helpers/prompts.ts +70 -3
- package/src/sdk/workflows/builtin/ralph/opencode/index.ts +50 -6
- package/.agents/skills/shape/SKILL.md +0 -96
- /package/.agents/skills/{critique → impeccable}/reference/cognitive-load.md +0 -0
- /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**:
|
|
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
|
|
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:
|
|
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?]
|
|
129
|
-
2. **[P?]
|
|
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:
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
5
|
+
## Register
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
Brand: "bolder" means distinctive. Extreme scale, unexpected color, typographic risk, committed POV.
|
|
12
8
|
|
|
13
|
-
|
|
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,
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
- **
|
|
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,
|
|
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
|
|
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
|
|
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:
|
|
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
|
-
|
|
86
|
+
If the user delegates, pick the strongest direction and explain the decision using the brief, not personal taste.
|
|
30
87
|
|
|
31
|
-
|
|
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
|
-
|
|
40
|
-
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
55
|
-
3. **
|
|
56
|
-
4. **Check
|
|
57
|
-
5. **Check
|
|
58
|
-
6. **Check
|
|
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
|
-
|
|
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
|
|
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.
|