@oisincoveney/pipeline 1.26.0 → 1.26.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 (60) hide show
  1. package/.agents/skills/add-dark-mode/SKILL.md +79 -0
  2. package/.agents/skills/brand-kit/SKILL.md +61 -0
  3. package/.agents/skills/brand-kit/brand-kit-prompt.md +158 -0
  4. package/.agents/skills/canonicalize-tailwind/SKILL.md +86 -0
  5. package/.agents/skills/componentize/SKILL.md +60 -0
  6. package/.agents/skills/dark-mode-image/SKILL.md +64 -0
  7. package/.agents/skills/design/SKILL.md +58 -0
  8. package/.agents/skills/design/design-guidelines.md +74 -0
  9. package/.agents/skills/design/guidelines/assets-api.md +196 -0
  10. package/.agents/skills/design/guidelines/avatars.md +8 -0
  11. package/.agents/skills/design/guidelines/badges.md +5 -0
  12. package/.agents/skills/design/guidelines/border-radius.md +6 -0
  13. package/.agents/skills/design/guidelines/buttons.md +27 -0
  14. package/.agents/skills/design/guidelines/colors.md +6 -0
  15. package/.agents/skills/design/guidelines/copywriting.md +9 -0
  16. package/.agents/skills/design/guidelines/custom-fonts.md +7 -0
  17. package/.agents/skills/design/guidelines/dark-mode.md +29 -0
  18. package/.agents/skills/design/guidelines/dashboards.md +12 -0
  19. package/.agents/skills/design/guidelines/description-lists.md +5 -0
  20. package/.agents/skills/design/guidelines/feature-lists.md +5 -0
  21. package/.agents/skills/design/guidelines/flexbox-layout.md +6 -0
  22. package/.agents/skills/design/guidelines/font-recommendations.md +175 -0
  23. package/.agents/skills/design/guidelines/footers.md +13 -0
  24. package/.agents/skills/design/guidelines/form-controls.md +139 -0
  25. package/.agents/skills/design/guidelines/general.md +47 -0
  26. package/.agents/skills/design/guidelines/headers.md +8 -0
  27. package/.agents/skills/design/guidelines/heading-groups.md +19 -0
  28. package/.agents/skills/design/guidelines/icons.md +18 -0
  29. package/.agents/skills/design/guidelines/images.md +12 -0
  30. package/.agents/skills/design/guidelines/interactivity.md +6 -0
  31. package/.agents/skills/design/guidelines/landing-pages.md +11 -0
  32. package/.agents/skills/design/guidelines/login-pages.md +5 -0
  33. package/.agents/skills/design/guidelines/logo-clouds.md +6 -0
  34. package/.agents/skills/design/guidelines/navigation.md +10 -0
  35. package/.agents/skills/design/guidelines/pagination.md +5 -0
  36. package/.agents/skills/design/guidelines/placeholder-content.md +23 -0
  37. package/.agents/skills/design/guidelines/pricing-cards.md +42 -0
  38. package/.agents/skills/design/guidelines/prose-content.md +11 -0
  39. package/.agents/skills/design/guidelines/responsive-design.md +15 -0
  40. package/.agents/skills/design/guidelines/section-layout.md +23 -0
  41. package/.agents/skills/design/guidelines/shadows.md +6 -0
  42. package/.agents/skills/design/guidelines/surfaces.md +13 -0
  43. package/.agents/skills/design/guidelines/svg.md +7 -0
  44. package/.agents/skills/design/guidelines/tables.md +27 -0
  45. package/.agents/skills/design/guidelines/team-sections.md +13 -0
  46. package/.agents/skills/design/guidelines/testimonials.md +11 -0
  47. package/.agents/skills/design/guidelines/typography.md +18 -0
  48. package/.agents/skills/ideas/SKILL.md +161 -0
  49. package/.agents/skills/make-responsive/SKILL.md +91 -0
  50. package/.agents/skills/markup-from-image/SKILL.md +88 -0
  51. package/README.md +4 -5
  52. package/dist/config.d.ts +10 -10
  53. package/dist/hooks.d.ts +1 -1
  54. package/dist/moka-submit.d.ts +1 -1
  55. package/dist/pipeline-init.js +12 -17
  56. package/dist/runner-command-contract.d.ts +2 -2
  57. package/docs/operator-guide.md +4 -5
  58. package/package.json +1 -1
  59. package/defaults/install-manifest.json +0 -8
  60. package/dist/mcp/bootstrap.js +0 -27
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: add-dark-mode
3
+ description: Add dark mode with colors, shadows, and surfaces handled the way a designer would.
4
+ ---
5
+
6
+ # Add Dark Mode
7
+
8
+ Use this when the user wants to add dark mode support to an existing UI.
9
+
10
+ ## Activation
11
+
12
+ ### Use For
13
+
14
+ - adding dark mode to a page, section, component, or site
15
+ - improving an existing dark mode treatment
16
+ - converting a light-mode-only UI to support dark mode
17
+
18
+ ### Do Not Use For
19
+
20
+ - brand-new design or layout work
21
+ - standalone image dark-mode conversion
22
+ - responsive behavior, component organization, or general visual polish without dark mode
23
+
24
+ ## Load First
25
+
26
+ - No companion files are required.
27
+ - Dark-mode design guidance is inline below.
28
+
29
+ ## Progress Updates
30
+
31
+ Keep the user informed so longer runs do not look stuck.
32
+
33
+ - One-line status update before each major phase.
34
+ - Concrete and lightweight: what you are doing now, not verbose logs.
35
+
36
+ ## Workflow
37
+
38
+ 1. Inspect the existing UI and project Tailwind conventions.
39
+ 2. Convert markup to include appropriate dark-mode classes.
40
+ 3. Audit rasterized images for dark-mode variants.
41
+ 4. For each rasterized image that needs a dark-mode variant, hand off to `dark-mode-image`, which MUST load and use the `imagegen` skill before creating or editing image assets.
42
+ 5. Save generated dark-mode images alongside the originals and wire them into the dark-mode UI.
43
+
44
+ ## Dark Mode Rules
45
+
46
+ ### Design Rules
47
+
48
+ - Dark mode is about maintaining the same contrast ratios as light mode, not simply inverting colors
49
+ - Dark mode doesn't need to preserve every detail of the light mode design — it just needs to look good
50
+ - Default dark mode to follow the operating system's `prefers-color-scheme` setting (Tailwind's built-in `dark:` behavior); only add a manual toggle when the user explicitly asks for one
51
+ - Remove all shadows in dark mode — use `dark:shadow-none`
52
+ - On dark-mode-only sites, add the `scheme-only-dark` class to `<html>` or the top-level element — ensures native elements like scrollbars, form controls, and `color-scheme` render in dark mode
53
+
54
+ ### Component Rules
55
+
56
+ - Never keep large branded/colored panels in dark mode; instead use the same background color and add a light divider between sections
57
+ - Style cards only slightly lighter than the page background (e.g. `dark:bg-gray-900` on a `dark:bg-gray-950` page); add a `dark:inset-ring dark:inset-ring-white/5` for definition
58
+ - Make decorative quote marks in testimonials very faint (e.g. `dark:text-white/5`)
59
+ - Never use multiple heading text colors in dark mode (e.g. dark gray + brand color); use a single light color like `white` or `gray-100` for all heading text
60
+
61
+ ### Raster Image Rules
62
+
63
+ - When adding or improving dark mode, audit the page for rasterized images that need dark-mode versions: photos, screenshots, product mockups, decorative backgrounds, textures, and rasterized illustrations
64
+ - Never use CSS filters (`invert`, `brightness`, `contrast`, `opacity`) as the final dark-mode treatment for raster images; always create real dark-mode image files
65
+ - Generate dark-mode raster image variants with the `dark-mode-image` skill, which MUST load and use the `imagegen` skill before creating or editing any raster image assets
66
+
67
+ ### SVG Rules
68
+
69
+ - For inline `<svg>` elements, style dark mode with Tailwind `dark:*` classes (e.g. `dark:fill-*`, `dark:stroke-*`, `dark:text-*`)
70
+ - For external SVG files referenced via `<img>`, always create a dark-mode version alongside the original (e.g. `logo.svg` and `logo-dark.svg`); never substitute CSS filters (`invert`, `brightness`) or opacity adjustments for a true dark variant
71
+
72
+ ## Guardrails
73
+
74
+ - Do not generate, edit, or replace raster image assets directly from this skill; `dark-mode-image` owns that work and MUST use the `imagegen` skill.
75
+ - Require the `dark-mode-image` + `imagegen` handoff even when the image change seems simple, decorative, or incidental.
76
+
77
+ ## Verify
78
+
79
+ - Check light and dark modes for contrast, missing variants, and images that still assume a light background.
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: brand-kit
3
+ description: Generate a complete visual identity and marketing-site mockup board from a product idea.
4
+ ---
5
+
6
+ # Brand Kit
7
+
8
+ ## Overview
9
+
10
+ Run the brand kit workflow from concept to one finished 3840 x 2160 image. This skill wraps [Brand Kit Prompt](./brand-kit-prompt.md) and then renders the generated prompt directly through the `imagegen` skill.
11
+
12
+ Use this workflow when the output should emphasize memorable frontend art direction, distinctive website composition, production-grade public-facing marketing pages, and avoidance of generic AI aesthetics. The final image should follow the fixed structure defined by [Brand Kit Prompt](./brand-kit-prompt.md): two large website page mockups plus a narrow design-system rail that documents only typography and hierarchical color values.
13
+
14
+ ## Load First
15
+
16
+ - Read [Brand Kit Prompt](./brand-kit-prompt.md) before generating the intermediate image prompt.
17
+ - Load and follow the `imagegen` skill before rendering the final image.
18
+
19
+ ## Workflow
20
+
21
+ 1. Treat the user's concept, brief, notes, constraints, references, audience, tone, avoid-list items, and attached images as the source input.
22
+ 2. Use [Brand Kit Prompt](./brand-kit-prompt.md) with the source input to generate one production-ready mockup-first image prompt. If images are attached, describe them as visual inspiration only using the rules in `Attached Images`.
23
+ 3. Capture the full prompt text from step 2 as intermediate working content. Do not present it as the final answer unless the user explicitly asks to see it.
24
+ 4. Use `$imagegen` with the full generated prompt from step 2 as its input, including any attached images as visual references when the imagegen interface supports reference images.
25
+ 5. Generate exactly one high-quality 3840 x 2160 px 16:9 landscape image: a fixed three-column marketing-site case-study board with page mockup 1 in the left 40%, page mockup 2 in the middle 40%, and a right-side design-system details rail in the final 20%.
26
+ 6. Return the rendered image. Keep final commentary minimal.
27
+
28
+ ## Attached Images
29
+
30
+ If the user attaches images, use them as design inspiration only:
31
+
32
+ - Use attached images to infer aesthetic direction, composition style, visual density, color atmosphere, type mood, spacing feel, texture, lighting, layout rhythm, and interaction/presentation patterns.
33
+ - Do not copy or recreate attached-image content, logos, wordmarks, brand marks, icons, mascots, characters, product names, readable text, photography subjects, proprietary UI, exact layouts, or distinctive artwork.
34
+ - Do not treat attached images as mandatory content for the generated brand kit unless the user explicitly says the image is their own brand asset and asks to use it.
35
+ - When passing the generated prompt to `$imagegen`, explicitly state that attached images are style references only and must not be replicated.
36
+ - If attached images conflict with the user's written concept, preserve the written concept and use the images only for visual direction.
37
+
38
+ ## Routing Rules
39
+
40
+ - If the user provides only a thin but usable concept, make careful creative inferences in the prompt-generation step.
41
+ - Ask a follow-up only when there is no usable brand, product, company, idea, or concept information.
42
+ - Preserve all user-supplied constraints through both steps, especially names, audience, positioning, tone, visual references, attached-image inspiration, required deliverables, and avoid-list items.
43
+ - If the user asks for the image plus the generated prompt, render the image first, then include the prompt text afterward.
44
+ - If the prompt-generation step produces multiple boards, extra alternatives, a flexible metadata placement, or any output shape other than the fixed structure, normalize the result to match `brand-kit-prompt` before passing it to `imagegen`.
45
+ - Do not route this workflow through `brand-kit-images`.
46
+
47
+ ## Output Discipline
48
+
49
+ - Do not stop after producing the intermediate prompt.
50
+ - Do not summarize or rewrite the intermediate prompt so heavily that brand details are lost.
51
+ - Treat [Brand Kit Prompt](./brand-kit-prompt.md) as the source of truth for image structure and content. If this wrapper conflicts with that file, follow [Brand Kit Prompt](./brand-kit-prompt.md).
52
+ - Do not generate a separate design-system board.
53
+ - Do not generate multiple images, a contact sheet, or a two-board split.
54
+ - Do not copy attached images or import their content, logos, text, brand marks, exact layouts, or proprietary UI into the generated image.
55
+ - Do not generate a 2:1 board, a 4096 x 2048 board, or a flexible metadata strip/sidebar/footer/overlay layout.
56
+ - Make the final image exactly two large public-facing website page mockups plus the right-side design-system rail.
57
+ - Include a consistent logo, wordmark, or brand mark inside the page mockups where a production website would naturally show one.
58
+ - Keep the design-system rail compact but legible at full 4K size, preserving only font names/typeface directions, dominant color values, supporting color values, palette hierarchy, and short color role labels.
59
+ - In the rail, distinguish dominant/load-bearing colors from infrequent supporting accents. Dominant colors should appear larger, grouped as the main palette, and labeled by role; supporting/accent/signal colors should appear as smaller chips.
60
+ - Do not put logo notes, spacing scales, border radius, grid specs, motion notes, component inventories, component state details, icon notes, elevation/shadow specs, or arbitrary brand copy in the design-system rail.
61
+ - Do not create extra files or resource directories for this wrapper skill.
@@ -0,0 +1,158 @@
1
+ ---
2
+ name: brand-kit-prompt
3
+ description: Generate an image prompt for one fixed-structure 4K marketing-site brand case-study board with two large page mockups and a narrow design-system rail documenting typography and hierarchical colors. Use when Codex is asked to write a brand kit prompt, website mockup prompt, marketing site prompt, landing page prompt, product mockup prompt, or image-generation prompt for a visual brand identity.
4
+ ---
5
+
6
+ # Brand Kit Prompt
7
+
8
+ ## Purpose
9
+
10
+ Generate one complete, production-ready image prompt for a fixed-structure 4K marketing-site brand case-study image. Output prompt text only; do not generate images.
11
+
12
+ This skill prioritizes distinctive frontend art direction, production-grade public-facing marketing website mockups, generous whitespace, and consistent side-by-side comparison. Even when the concept is a web app, desktop app, mobile app, SaaS product, or other software interface, the board should show the public marketing site for that product. The final image must feel like two real, spacious website surfaces plus a concise typography/color rail, not a cramped moodboard, component inventory, app UI board, or traditional brand-system sheet.
13
+
14
+ ## Source Handling
15
+
16
+ - Use only the user's concept, brief, notes, constraints, references, attached images, audience, tone, required pages, and avoid-list items.
17
+ - If the input is thin but usable, make careful creative inferences.
18
+ - Ask a question only when there is no usable brand, product, company, idea, or concept.
19
+ - Preserve user-supplied vocabulary, constraints, page requests, examples, references, attached-image inspiration, and avoid-list items.
20
+ - Output only the final prompt, with no preamble, rationale, commentary, follow-up, or setup text.
21
+
22
+ ## Attached Images
23
+
24
+ If the user attaches images, inspect them and translate their visual qualities into prompt language. Use them as design inspiration only:
25
+
26
+ - Extract aesthetic direction, composition style, visual density, color atmosphere, type mood, spacing feel, texture, lighting, layout rhythm, and interaction/presentation patterns.
27
+ - Do not copy or recreate attached-image content, logos, wordmarks, brand marks, icons, mascots, characters, product names, readable text, photography subjects, proprietary UI, exact layouts, or distinctive artwork.
28
+ - Do not treat attached images as mandatory content for the generated brand kit unless the user explicitly says the image is their own brand asset and asks to use it.
29
+ - If attached images conflict with the written concept, preserve the written concept and use the images only for visual direction.
30
+ - In the final prompt, include a short "Reference Image Use" note when images are attached: describe the style inspiration to borrow and explicitly state that attached images are style references only, not content or logo sources.
31
+
32
+ ## Workflow
33
+
34
+ 1. Infer the purpose, audience, positioning, product context, and brand personality.
35
+ 2. Choose one clear, memorable aesthetic direction that fits the concept.
36
+ 3. Choose the two public marketing-site page examples:
37
+ - Page mockup 1 defaults to the homepage.
38
+ - Page mockup 2 defaults to a concept-appropriate supporting page with a different content pattern from the homepage.
39
+ - If the user asks for specific pages, use those instead.
40
+ - If the concept is an app or software product, choose pages that can naturally show product screenshots inside the marketing site.
41
+ 4. If images are attached, summarize their reusable visual qualities using `Attached Images`.
42
+ 5. Assemble one internally consistent image-generation prompt using the structure in `Final Prompt Structure`.
43
+
44
+ ## Canonical Board Spec
45
+
46
+ The generated prompt must request this exact image structure unless the user explicitly asks for a different structure:
47
+
48
+ - Canvas: one single 3840 x 2160 px, 16:9 landscape, high-quality 4K image.
49
+ - Layout: three full-height vertical columns with clean gutters.
50
+ - Widths: page mockup 1 = 40%, page mockup 2 = 40%, design-system rail = 20%; equivalent ratio 2 : 2 : 1.
51
+ - Left column: page mockup 1.
52
+ - Middle column: page mockup 2.
53
+ - Right column: design-system details rail.
54
+ - The two page mockups must dominate and read as large, inspectable website pages.
55
+ - The rail must be quieter than the mockups but legible at full 4K size.
56
+ - Keep the page mockups spacious and breathable, with clear margins, open section rhythm, and enough negative space that the design does not feel busy.
57
+ - Do not add extra panels, page thumbnails, floating device mockups, moodboard imagery, standalone logo explorations, component inventories, callout overlays, or decorative filler.
58
+ - Do not generate a separate design-system board, a two-board split, multiple images, unreadably tiny UI fragments, or a dashboard/workspace/app UI board unless the user explicitly requests an interface-only board instead of a marketing site.
59
+
60
+ ## Page Mockups
61
+
62
+ The two mockups should be substantial public-facing marketing website pages with generous spacing, strong breathing room, and restrained content density. Treat an app concept as a product that needs a marketing site, not as permission to make the board an app UI study. Product/app UI may appear only as supporting content embedded inside a page mockup.
63
+
64
+ If the concept is a web app, desktop app, mobile app, SaaS product, marketplace, creator tool, productivity tool, or other software product, include at least one realistic screenshot or framed view of the app inside the marketing pages. These screenshots should help explain the product and provide brand inspiration, while the surrounding page remains the main subject.
65
+
66
+ Page mockup 1:
67
+
68
+ - Default to the homepage.
69
+ - Make it the clearest expression of the marketing promise.
70
+ - Include primary navigation with an appropriate logo, wordmark, or brand mark; a strong hero system; primary CTA; and enough below-the-fold content to show section pacing.
71
+ - For app/software concepts, include a prominent but embedded product screenshot, device frame, desktop/webapp frame, mobile screen, or interface crop.
72
+
73
+ Page mockup 2:
74
+
75
+ - Default to a supporting page that reveals a different side of the system.
76
+ - Prefer pages that add new content patterns: pricing, booking, signup, product/service detail, collection/category, editorial/content, comparison, case study, lead-capture, checkout, account creation, search/results, commerce, structured data, forms, tables, cards, proof blocks, dense typography, or screenshot-led feature explanation.
77
+ - Reuse the same logo, wordmark, or mark from the homepage in realistic page chrome when appropriate.
78
+
79
+ For each page, define:
80
+
81
+ - Page type and purpose.
82
+ - Layout structure, hierarchy, key components, and copy tone.
83
+ - Logo/wordmark/mark placement when a real site would include one.
84
+ - Product screenshot placement when the concept is an app/software product.
85
+ - Visible design behavior: grid/composition, generous spacing feel, low-to-moderate density, type scale, navigation, CTAs, forms, cards, pricing tables, proof blocks, product tiles, filters, commerce modules, editorial modules, or other relevant components.
86
+ - Whitespace strategy: wide margins, clear gutters, open hero composition, fewer simultaneous content blocks, and section pacing that feels calm rather than crowded.
87
+ - Distinctive frontend composition: asymmetry, overlap, strict grid, dense utility, editorial pacing, diagonal flow, immersive media, tactile states, active/hover states, scroll moments, or another concept-appropriate idea.
88
+
89
+ ## Design-System Rail
90
+
91
+ The right rail documents only values that are hard to recover from the mockups without OCR.
92
+
93
+ Include:
94
+
95
+ - Typography: display/headline, body, and UI/label/numeric/mono typeface names or typeface directions; include brief hierarchy, casing, weight, tracking, or pairing notes only when useful.
96
+ - Color: dominant/core colors separated from supporting/accent colors; approximate hex-style values; short role labels such as background, foreground, primary, surface, border, signal, accent, semantic, or category.
97
+ - Color hierarchy: dominant/load-bearing colors shown as larger swatches or bars; supporting/accent/signal colors shown as smaller grouped chips.
98
+ - Rail text optimized for full-4K readability: short labels, large enough type, clear spacing, no dense captions.
99
+
100
+ Do not include in the rail:
101
+
102
+ - Logo, wordmark, mark construction, lockups, logo notes, logo variations, or logo-spec content.
103
+ - Spacing scales, border radius, grid specs, motion notes, component inventories, component states, icon notes, elevation/shadow specs, or arbitrary brand copy.
104
+ - Slogans, positioning paragraphs, mood words, or any text that does not directly document typography or color values used in the page mockups.
105
+
106
+ ## Creative Direction
107
+
108
+ Choose a bold but concept-appropriate aesthetic direction, such as brutally minimal, maximalist, retro-futuristic, organic, luxury, playful, editorial, brutalist, art deco, soft, industrial, utilitarian, or another direction inferred from the brief.
109
+
110
+ Define:
111
+
112
+ - Purpose: what visitors should understand, trust, and do.
113
+ - Marketing focus: how the site introduces, explains, proves, and sells the brand.
114
+ - Tone: 3-5 strong adjectives, not a neutral default.
115
+ - Differentiation: the one visual, typographic, interaction, material, motif, or page-structure idea someone would remember.
116
+ - Constraints: production-grade, functional, accessible, plausible for a real frontend.
117
+ - Intensity: maximalist systems may be rich; refined systems should rely on restraint, proportion, and precision.
118
+ - Spacing: preserve generous whitespace even for expressive or maximalist concepts; use scale, contrast, and composition for impact instead of cramming in more modules.
119
+
120
+ Avoid:
121
+
122
+ - Defaulting to Inter, Roboto, Arial, system fonts, or overused neutral typography unless requested.
123
+ - Cliche purple-blue gradients on white, generic glassmorphism, bland SaaS dashboards, default rounded cards, cookie-cutter component layouts, unrelated gradient blobs, or decorative effects unrelated to the brand.
124
+ - Cramped layouts, busy collages, overfilled sections, dense rows of tiny cards, excessive annotations, or too many simultaneous UI fragments.
125
+ - Reusing the same trendy typefaces or color systems across concepts.
126
+
127
+ ## Final Prompt Structure
128
+
129
+ Assemble the final answer as the image prompt itself, using these sections:
130
+
131
+ 1. Brand Positioning
132
+ - Target audience, market positioning, 3-5 tone adjectives, brand personality, relevant comparables/references, and avoid list.
133
+ 2. Aesthetic Concept
134
+ - Core frontend art direction in one vivid phrase, why it fits, memorable design idea, intensity/restraint, and what makes it specific to this brand.
135
+ 3. Reference Image Use
136
+ - Include only when images are attached. Summarize reusable visual qualities and state that references are for style inspiration only, not for copied content, logos, text, exact layouts, or proprietary UI.
137
+ 4. Board Layout
138
+ - Restate the canonical 3840 x 2160, 40% / 40% / 20%, three-column layout and the prohibition on extra panels or alternate layouts.
139
+ 5. Page Mockups
140
+ - Define the homepage and supporting page using the `Page Mockups` requirements, or use the user's requested pages.
141
+ 6. Design-System Rail
142
+ - Define only the typography block and hierarchical color block using the `Design-System Rail` requirements.
143
+ 7. Visual Style Constraints
144
+ - State what to avoid, what to emphasize, anti-generic constraints, generous whitespace requirements, and that the fixed layout still applies even when the aesthetic is expressive.
145
+ 8. Rendering / Style Hints
146
+ - End with one concise rendering line: one 3840 x 2160 px 16:9 high-quality 4K presentation image; fixed 40% page mockup 1 / 40% page mockup 2 / 20% typography-and-color rail; crisp readable UI and rail text; production-grade marketing website mockups; bold concept-specific art direction; generous margins, open section rhythm, and calm whitespace; realistic polished visual design.
147
+
148
+ ## Rules
149
+
150
+ - Be specific and concrete; maintain internal consistency across all sections.
151
+ - Make the aesthetic direction memorable and concept-specific.
152
+ - Keep the website mockups spacious; do not trade readability and whitespace for extra content.
153
+ - Use specific typeface names or precise typeface directions and approximate color values.
154
+ - Specify which colors are dominant/load-bearing and which are supporting/rare accents, and require that hierarchy to be visible.
155
+ - Keep all visible rail text short enough for image generation to render legibly.
156
+ - Do not hardcode examples from one concept into another concept.
157
+ - Do not ask for a separate design-system board or two images.
158
+ - Do not explain your reasoning.
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: canonicalize-tailwind
3
+ description: Sort, normalize, deduplicate, and resolve conflicting Tailwind utility classes.
4
+ ---
5
+
6
+ # Canonicalize Tailwind
7
+
8
+ Use this when the user wants to clean up, canonicalize, or normalize Tailwind class lists.
9
+
10
+ ## Activation
11
+
12
+ ### Use For
13
+
14
+ - cleaning up Tailwind classes
15
+ - canonicalizing Tailwind utility lists
16
+ - sorting, normalizing, or deduplicating Tailwind classes
17
+ - resolving conflicting Tailwind utilities in class strings
18
+
19
+ ### Do Not Use For
20
+
21
+ - new design or layout work
22
+ - component extraction or code organization
23
+ - visual changes rather than class-list cleanup
24
+
25
+ ## Load First
26
+
27
+ - No companion modules are required.
28
+
29
+ ## Progress Updates
30
+
31
+ Keep the user informed so longer runs do not look stuck.
32
+
33
+ - One-line status update before each major phase.
34
+ - Concrete and lightweight: what you are doing now, not verbose logs.
35
+
36
+ ## Workflow
37
+
38
+ 1. Identify Tailwind class strings in the requested files or components.
39
+ 2. Canonicalize class strings with `npx @tailwindcss/cli canonicalize`.
40
+ 3. Apply changed class strings back to the source.
41
+ 4. Run the project's formatter or relevant checks when available.
42
+
43
+ ## Commands
44
+
45
+ - Use `npx @tailwindcss/cli canonicalize` to clean up Tailwind class lists — collapses shorthands (`mt-2 mr-2 mb-2 ml-2` → `m-2`), resolves overrides (`py-3 p-1 px-3` → `p-3`), canonicalizes arbitrary values to named utilities, and sorts classes; pass `--css path/to/input.css` if the project uses a custom CSS entry file
46
+
47
+ Single class string:
48
+
49
+ ```sh
50
+ npx @tailwindcss/cli canonicalize "mt-2 mr-2 mb-2 ml-2"
51
+ # m-2
52
+ ```
53
+
54
+ Multiple class strings as positional args (each returned on its own line):
55
+
56
+ ```sh
57
+ npx @tailwindcss/cli canonicalize "py-3 p-1 px-3" "mt-2 mr-2 mb-2 ml-2"
58
+ # p-3
59
+ # m-2
60
+ ```
61
+
62
+ Pipe class strings via stdin (one per line):
63
+
64
+ ```sh
65
+ echo "py-3 p-1 px-3\nmt-2 mr-2 mb-2 ml-2" | npx @tailwindcss/cli canonicalize
66
+ # p-3
67
+ # m-2
68
+ ```
69
+
70
+ Use `--format json` or `--format jsonl` for structured output with `input`/`output`/`changed` fields:
71
+
72
+ ```sh
73
+ npx @tailwindcss/cli canonicalize --format json "py-3 p-1 px-3"
74
+ # [{ "input": "py-3 p-1 px-3", "output": "p-3", "changed": true }]
75
+ ```
76
+
77
+ Use `--stream` to process stdin line-by-line without buffering:
78
+
79
+ ```sh
80
+ npx @tailwindcss/cli canonicalize --stream
81
+ ```
82
+
83
+ ## Verify
84
+
85
+ - Confirm class strings still express the same visual intent after canonicalization.
86
+ - Run relevant lint, typecheck, or formatting commands when available.
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: componentize
3
+ description: Extract and organize existing UI into reusable components with thoughtful APIs.
4
+ ---
5
+
6
+ # Componentize
7
+
8
+ Use this when the user wants to componentize, extract, or organize UI code into reusable components.
9
+
10
+ ## Activation
11
+
12
+ ### Use For
13
+
14
+ - componentizing an existing page, section, or prototype
15
+ - extracting a page or section into components
16
+ - extracting repeated UI into reusable components
17
+ - reducing duplication in UI code
18
+ - turning a draft implementation into production-ready code structure
19
+ - splitting a large UI file into smaller, focused modules
20
+
21
+ ### Do Not Use For
22
+
23
+ - brand-new design or layout work
24
+ - visual polish without code structure changes
25
+ - Tailwind class cleanup without component extraction
26
+ - responsive behavior, dark mode, or image adaptation only
27
+
28
+ ## Load First
29
+
30
+ - No companion modules are required.
31
+
32
+ ## Progress Updates
33
+
34
+ Keep the user informed so longer runs do not look stuck.
35
+
36
+ - One-line status update before each major phase.
37
+ - Concrete and lightweight: what you are doing now, not verbose logs.
38
+
39
+ ## Workflow
40
+
41
+ 1. Inspect existing project component patterns before creating new components.
42
+ 2. Identify repeated patterns, logical sections, and self-contained UI blocks.
43
+ 3. Extract components with call-site spacing and configurable class merging.
44
+ 4. Reuse or extend existing project components where available.
45
+ 5. Re-scan extracted components for remaining duplication.
46
+
47
+ ## Rules
48
+
49
+ - Break designs into small, focused components instead of rendering everything in a single large component — extract repeated patterns, logical sections, and self-contained UI blocks into their own components
50
+ - Never bake margins into components — apply margins at the call site instead; every component must accept a `class` attribute and merge it with the classes on the component's top-level element
51
+ - Use `clsx` or similar to merge classes together in client-side components
52
+ - Always extract form controls into reusable components organized by HTML element — one `Input` component for all `<input>` types (text, email, password, etc.), one `Select` for `<select>`, one `Textarea` for `<textarea>`; never create type-specific components like `EmailInput` or `PasswordInput`; check the project for existing ones before creating new ones
53
+ - When two or more elements share the same structure and styling but differ only in props like labels, placeholders, or types — extract them into a single reusable component parameterized by those differences
54
+ - After extracting components, scan them for duplicated patterns and extract shared elements into reusable components — e.g. repeated section container/max-width/padding wrappers, repeated heading group structures (eyebrow + heading + subheading), repeated card shells, repeated button styles
55
+ - Always use existing project components when they are available — reuse or extend them instead of creating new ones; buttons and form elements are especially common candidates
56
+
57
+ ## Verify
58
+
59
+ - Run relevant formatting, lint, typecheck, or tests when available.
60
+ - Confirm extracted components preserve the original UI and behavior.
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: dark-mode-image
3
+ description: Create dark-mode variants of raster images for dark UI contexts.
4
+ ---
5
+
6
+ # Dark Mode Image
7
+
8
+ Use this when the user wants to adapt a standalone source image into a dark-mode-suitable version.
9
+
10
+ ## Activation
11
+
12
+ ### Use For
13
+
14
+ - creating a dark-mode version of an image, illustration, screenshot, photo, product mockup, decorative background, or texture
15
+ - adapting an existing raster image so it presents correctly on a dark background
16
+ - generating a dark-mode image variant for use in a dark-mode UI
17
+
18
+ ### Do Not Use For
19
+
20
+ - adding dark mode to a page, section, component, or site
21
+ - SVG-only assets
22
+ - general image styling in a UI without dark-mode conversion
23
+
24
+ When the `add-dark-mode` skill identifies raster images that need dark-mode variants, use this skill for that image-generation work. This skill is the required handoff point between dark-mode UI work and raster image generation.
25
+
26
+ ## Load First
27
+
28
+ - Before image generation or editing, load and follow the `imagegen` skill.
29
+
30
+ ## Progress Updates
31
+
32
+ Keep the user informed so longer runs do not look stuck.
33
+
34
+ - One-line status update before each major phase.
35
+ - Concrete and lightweight: what you are doing now, not verbose logs.
36
+
37
+ ## Workflow
38
+
39
+ 1. Load `imagegen`.
40
+ 2. Inspect the source image and the dark-mode UI context.
41
+ 3. Generate or edit a dark-mode version with the same dimensions as the original.
42
+ 4. Save the dark-mode image with a `-dark` suffix alongside the original.
43
+ 5. Return the saved project path for the caller to wire into the UI.
44
+
45
+ ## Rules
46
+
47
+ - Before doing any image generation or editing, you MUST load and follow the `imagegen` skill
48
+ - The `imagegen` skill invocation is not optional: do not skip it, do not replace it with an ad hoc image-generation workflow, and do not call image tooling directly without first applying `imagegen`
49
+ - Let `imagegen` choose and run the correct image workflow; for normal dark-mode image variants, that will usually mean its default built-in `image_gen` tool mode
50
+ - If the source image is a local file, follow `imagegen`'s local-image guidance before editing so the image is visible in the conversation context
51
+ - Follow `imagegen`'s save-path policy: move or copy project-bound generated outputs into the workspace, and never leave a project-referenced dark-mode asset only under `$CODEX_HOME/*`
52
+ - When generating a dark-mode image, choose a background color that feels like an appropriate inversion of the original background color: black or dark gray for white, dark gray for off-white, or the specific dark color provided by the user; if the original image's background matched the site background, match the dark-mode site background instead
53
+ - Preserve the same contrast characteristics as the original image; light sections should become darker while relative separation and readability stay intact
54
+ - Preserve blurs and softness; never sharpen anything that was blurry in the original image
55
+ - Preserve the foreground color palette hues, adjusting saturation and lightness only as needed so the image presents correctly on a dark background
56
+ - Preserve the original vibe as much as possible: bright and intense images should stay bright and intense, while subtle and muted images should stay subtle and muted
57
+ - Pay attention to areas that fade out and preserve those fades in the dark-mode version
58
+ - The generated dark-mode image must be exactly the same dimensions as the original image
59
+ - Save dark-mode images with a `-dark` suffix, for example `bg.jpg` and `bg-dark.jpg`
60
+
61
+ ## Verify
62
+
63
+ - Confirm the generated image dimensions match the original exactly.
64
+ - Confirm the dark-mode image preserves the original composition, softness, fades, and foreground palette.
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: design
3
+ description: Design and build new UI with the complete ui.sh design guideline system.
4
+ ---
5
+
6
+ # Design
7
+
8
+ Use this when the user wants to create new UI that follows the full ui.sh design guideline system.
9
+
10
+ ## Activation
11
+
12
+ ### Use For
13
+
14
+ - designing new UI, layouts, sections, components, or pages from scratch
15
+ - implementing visually polished Tailwind CSS UI
16
+ - adding a new section or page to an existing UI
17
+ - applying reusable design, markup, and Tailwind authoring rules while building UI
18
+
19
+ ### Do Not Use For
20
+
21
+ - UI picker scaffolding only
22
+ - semantic unstyled markup from screenshots, Figma exports, mockups, wireframes, or UI images
23
+ - component extraction or code organization only
24
+ - Tailwind class cleanup only
25
+ - adding dark mode to an existing UI only
26
+ - making an existing desktop-oriented UI responsive only
27
+
28
+ ## Load First
29
+
30
+ - Read [UI Design Guidelines](./design-guidelines.md) before writing UI code.
31
+ - Scan the rule-file index and load every guideline file that could apply.
32
+ - Load reference modules only when the request needs that reference material.
33
+
34
+ ## Progress Updates
35
+
36
+ Keep the user informed so longer runs do not look stuck.
37
+
38
+ - One-line status update before each major phase.
39
+ - Concrete and lightweight: what you are doing now, not verbose logs.
40
+
41
+ ## Workflow
42
+
43
+ 1. Inspect the user's request, target files, existing design conventions, and available components.
44
+ 2. Load [UI Design Guidelines](./design-guidelines.md) plus every applicable rule file.
45
+ 3. Implement the UI using the project's existing framework, component patterns, assets, and Tailwind conventions.
46
+ 4. Check the result across responsive breakpoints and interaction states.
47
+
48
+ ## Rules
49
+
50
+ - Treat the guideline files in this skill as the source of truth for new UI design work.
51
+ - Err on the side of loading too many applicable guideline files rather than too few.
52
+ - Preserve user constraints unless a guideline explicitly requires asking about a design conflict.
53
+
54
+ ## Verify
55
+
56
+ - Check desktop and mobile layouts.
57
+ - Confirm every applicable guideline file was loaded and followed.
58
+ - Run relevant formatting, lint, typecheck, or tests when available.
@@ -0,0 +1,74 @@
1
+ # UI Design Guidelines
2
+
3
+ Use this when designing or building new UI with the top-level `design` skill, or when a workflow tells you to load design guidance before editing UI code.
4
+
5
+ ## Load Contract
6
+
7
+ - Before writing UI code, scan the rule-file index below and load every rule file that could apply.
8
+ - Err on the side of loading too many rule files rather than too few.
9
+ - Treat rules as applicable even when they are indirect: heading group rules apply to hero sections; landing page rules apply to individual page sections; surface rules apply to dashboard cards and list items.
10
+ - Load reference modules only when the user's request needs that reference material.
11
+
12
+ ## General Design Principles
13
+
14
+ - Every layout must adapt from mobile to desktop — use responsive breakpoint classes to adjust the design at different screen sizes; see [Responsive Design](./guidelines/responsive-design.md) for detailed rules
15
+
16
+ ## Rule Files
17
+
18
+ Follow these rules when designing or building UI. Each rule file covers a specific topic:
19
+
20
+ - [Avatars](./guidelines/avatars.md) — profile photos, user thumbnails, and people images used in testimonials, team sections, comments, and anywhere a person's face appears
21
+ - [Badges](./guidelines/badges.md) — badges, tags, pills, status indicators, labels, and chips with or without icons
22
+ - [Border Radius](./guidelines/border-radius.md) — rounding corners on cards, containers, buttons, images, screenshots, and nested elements with concentric radii
23
+ - [Buttons](./guidelines/buttons.md) — primary and secondary buttons, CTAs, icon buttons, destructive/danger actions, and touch targets
24
+ - [Colors](./guidelines/colors.md) — brand colors, accent colors, color palette selection, and default color choices
25
+ - [Copywriting](./guidelines/copywriting.md) — punctuation, periods, headings, taglines, subtitles, descriptions, and list items
26
+ - [Custom Fonts](./guidelines/custom-fonts.md) — loading custom fonts via `<link>` tags or `@import url()`, registering fonts in `@theme` with `--font-*`, font-feature-settings, and font-variation-settings
27
+ - [Dark Mode](./guidelines/dark-mode.md) — dark theme styling, contrast ratios, colored panels, card backgrounds, shadow removal, decorative elements, heading colors, dark-mode image handoff, and inline/external SVG dark-mode handling
28
+ - [Description Lists](./guidelines/description-lists.md) — `<dl>`, `<dt>`, and `<dd>` styling, term/detail contrast and font weight hierarchy
29
+ - [Dashboards](./guidelines/dashboards.md) — dashboard layouts, stat grids, KPI cards, metric cards, admin panels, analytics views, and any section displaying key statistics, charts, or summary data
30
+ - [Feature Lists](./guidelines/feature-lists.md) — feature grids, feature sections, benefit lists, and any section that lists multiple features with titles and descriptions
31
+ - [Flexbox Layout](./guidelines/flexbox-layout.md) — flex containers, flex children, `min-w-0` shrinking behavior, `shrink-0` on icons/images/SVGs, fluid vs fixed layouts, sidebar + content patterns, and any layout using `flex-1` or flexible sizing
32
+ - [Footers](./guidelines/footers.md) — page footers, footer logos, footer links, social media icons, and site-wide bottom navigation
33
+ - [Form Controls](./guidelines/form-controls.md) — inputs, selects, checkboxes, radio buttons, login forms, sign-up forms, checkout forms, search bars, newsletter sign-up fields, and input + button combos
34
+ - [General](./guidelines/general.md) — general markup rules (class placement on block vs inline elements, redundant display classes, `role="list"`) and Tailwind CSS authoring rules (utility preferences, spacing conventions, arbitrary value syntax, variant patterns, deprecated utilities) that apply across all components
35
+ - [Headers](./guidelines/headers.md) — site headers, navigation bars, navbars, top bars, logos, mobile menus, and hamburger menus
36
+ - [Heading Groups](./guidelines/heading-groups.md) — the headline, subheadline, and optional eyebrow at the top of marketing and landing page sections (hero, features, team, pricing, CTA, etc.); does not apply to blog posts, articles, or editorial content
37
+ - [Icons](./guidelines/icons.md) — SVG icons, icon sizing, icon alignment with text, Heroicons, filled vs stroked icons, and inline list icons like checkmarks
38
+ - [Images](./guidelines/images.md) — photos, thumbnails, screenshots, app UI mockups, and image borders/outlines
39
+ - [Interactivity](./guidelines/interactivity.md) — hover states, transitions, animations, and interactive behavior on clickable vs non-clickable elements
40
+ - [Landing Pages](./guidelines/landing-pages.md) — full page consistency rules for buttons, fonts, containers, border radius, column gaps, layout alignment, and responsive constraints across all sections on a page
41
+ - [Login Pages](./guidelines/login-pages.md) — login, sign-in, sign-up, and authentication page backgrounds and layout rules
42
+ - [Logo Clouds](./guidelines/logo-clouds.md) — logo grids, client logo rows, partner logos, trust bars, and any section displaying a collection of brand logos
43
+ - [Navigation](./guidelines/navigation.md) — sidebar nav, header nav, mobile nav menus, tabs, tab bars, vertical menus, active/selected states, and current page indicators in any navigation pattern
44
+ - [Pagination](./guidelines/pagination.md) — page number links, previous/next buttons, and paged navigation controls
45
+ - [Placeholder Content](./guidelines/placeholder-content.md) — dummy logos, placeholder avatars, app screenshots, wallpapers, and the assets API for generating realistic placeholder content
46
+ - [Prose Content](./guidelines/prose-content.md) — styling raw HTML from markdown, CMS, or database content where Tailwind classes can't be applied to individual elements; replaces the `@tailwindcss/typography` plugin with a custom `.prose` class
47
+ - [Pricing Cards](./guidelines/pricing-cards.md) — pricing tiers, pricing tables, plan cards, emphasized/popular plan styling, and button alignment across pricing columns
48
+ - [Responsive Design](./guidelines/responsive-design.md) — responsive breakpoints, container queries, `@container` placement, and mobile-to-desktop layout adaptation
49
+ - [SVG](./guidelines/svg.md) — inline SVG elements, `xmlns` attributes, SVG color styling (`fill`, `stroke`, `currentColor`), and SVG markup conventions used anywhere in HTML/JSX
50
+ - [Section Layout](./guidelines/section-layout.md) — left-aligned vs centered section layouts, content width constraints, and aligning containers across stacked page sections
51
+ - [Shadows](./guidelines/shadows.md) — box shadows on cards, modals, popovers, dropdowns, and elevated elements, including border pairing rules
52
+ - [Surfaces](./guidelines/surfaces.md) — cards, wells, borders, dividers, and white space as surface treatments; when to use cards vs subtle dividers vs recessed backgrounds vs no separation at all; applies to stat grids, dashboard metrics, list items, sidebars, and any content grouping decision
53
+ - [Tables](./guidelines/tables.md) — data tables, comparison tables, table headings, row dividers, and table containers
54
+ - [Team Sections](./guidelines/team-sections.md) — team grids, team member cards, staff listings, about-us sections, and people galleries with photos and bios
55
+ - [Testimonials](./guidelines/testimonials.md) — customer quotes, reviews, social proof sections, testimonial cards, hanging punctuation, and attribution layout
56
+ - [Typography](./guidelines/typography.md) — font weights, line heights, text sizes, heading styles, max-width constraints, text-pretty/text-balance, tracking, and eyebrow text
57
+
58
+ ## Reference Modules
59
+
60
+ Load these only when the request needs the reference:
61
+
62
+ - [Assets API](./guidelines/assets-api.md) — placeholder asset URLs, query parameters, and examples for marks, avatars, logos, screenshots, and wallpapers
63
+ - [Font Recommendations](./guidelines/font-recommendations.md) — optional font suggestions for when the user asks for help choosing a font or wants to try different fonts across design variations; includes sourcing notes, feature settings, and tips for each font
64
+
65
+ ## Design Conflicts
66
+
67
+ When a rule says **⚠️ ask-user**, the user's input conflicts with a design guideline. Do not silently override the user or silently follow their request. Instead:
68
+
69
+ 1. Use the `AskUserQuestion` tool to flag the conflict
70
+ 2. Explain what the guideline recommends and why the input doesn't fit
71
+ 3. Offer a concrete alternative (e.g. a rewritten version of their copy, a different layout)
72
+ 4. Wait for the user to choose before proceeding
73
+
74
+ Never skip this — even if it feels minor. The user should always be aware when their input bumps up against a design rule.