get-shit-pretty 0.6.3 → 0.7.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.
Files changed (95) hide show
  1. package/bin/install.js +36 -20
  2. package/gsp/agents/gsp-accessibility-auditor.md +1 -1
  3. package/gsp/agents/gsp-ascii-artist.md +1 -1
  4. package/gsp/agents/gsp-brand-auditor.md +1 -1
  5. package/gsp/agents/gsp-brand-strategist.md +1 -1
  6. package/gsp/agents/gsp-builder.md +1 -1
  7. package/gsp/agents/gsp-campaign-director.md +1 -1
  8. package/gsp/agents/gsp-creative-director.md +4 -4
  9. package/gsp/agents/gsp-critic.md +3 -3
  10. package/gsp/agents/gsp-designer.md +2 -2
  11. package/gsp/agents/gsp-project-researcher.md +1 -1
  12. package/gsp/agents/gsp-researcher.md +1 -1
  13. package/gsp/agents/gsp-reviewer.md +1 -1
  14. package/gsp/agents/gsp-scoper.md +1 -1
  15. package/gsp/skills/get-shit-pretty/SKILL.md +10 -9
  16. package/gsp/skills/gsp-accessibility/SKILL.md +1 -1
  17. package/gsp/skills/gsp-accessibility-audit/SKILL.md +2 -2
  18. package/gsp/skills/gsp-add-reference/SKILL.md +5 -0
  19. package/gsp/skills/gsp-art/SKILL.md +5 -0
  20. package/gsp/skills/gsp-brand-audit/SKILL.md +2 -2
  21. package/gsp/skills/gsp-brand-guidelines/SKILL.md +2 -2
  22. package/gsp/skills/gsp-brand-identity/SKILL.md +3 -3
  23. package/gsp/skills/gsp-brand-refine/SKILL.md +1 -1
  24. package/gsp/skills/gsp-brand-research/SKILL.md +2 -2
  25. package/gsp/skills/gsp-brand-strategy/SKILL.md +4 -4
  26. package/gsp/skills/gsp-brand-sync/SKILL.md +3 -3
  27. package/gsp/skills/gsp-brand-sync/chunk-format.md +79 -0
  28. package/gsp/skills/gsp-color/SKILL.md +24 -56
  29. package/gsp/skills/gsp-color/chunk-format.md +79 -0
  30. package/gsp/skills/{gsp-palette/SKILL.md → gsp-color/domains/palette.md} +31 -101
  31. package/gsp/skills/gsp-color/domains/system.md +123 -0
  32. package/gsp/skills/gsp-design-system/SKILL.md +5 -0
  33. package/gsp/skills/gsp-help/SKILL.md +4 -3
  34. package/gsp/skills/gsp-icons/SKILL.md +1 -1
  35. package/gsp/skills/gsp-icons/chunk-format.md +79 -0
  36. package/gsp/skills/gsp-launch/SKILL.md +1 -1
  37. package/gsp/skills/gsp-logo/SKILL.md +2 -2
  38. package/gsp/skills/gsp-logo/chunk-format.md +79 -0
  39. package/gsp/skills/gsp-phase-transition/SKILL.md +124 -0
  40. package/gsp/skills/gsp-project-brief/SKILL.md +1 -1
  41. package/gsp/skills/gsp-project-build/SKILL.md +10 -5
  42. package/gsp/skills/gsp-project-critique/SKILL.md +5 -5
  43. package/gsp/{references → skills/gsp-project-critique}/visual-taste.md +1 -1
  44. package/gsp/skills/gsp-project-design/SKILL.md +1 -1
  45. package/gsp/skills/gsp-project-research/SKILL.md +1 -1
  46. package/gsp/skills/gsp-project-review/SKILL.md +1 -1
  47. package/gsp/skills/gsp-start/SKILL.md +1 -1
  48. package/gsp/skills/gsp-style/SKILL.md +4 -4
  49. package/gsp/skills/gsp-style/chunk-format.md +79 -0
  50. package/gsp/skills/gsp-style/style-preset-schema.md +124 -0
  51. package/gsp/skills/gsp-typography/SKILL.md +28 -66
  52. package/gsp/skills/gsp-typography/chunk-format.md +79 -0
  53. package/gsp/skills/gsp-typography/domains/pairing.md +109 -0
  54. package/gsp/skills/gsp-typography/domains/scale.md +227 -0
  55. package/gsp/skills/gsp-typography/domains/system.md +108 -0
  56. package/gsp/skills/gsp-visuals/SKILL.md +82 -0
  57. package/gsp/skills/gsp-visuals/chunk-format.md +79 -0
  58. package/gsp/skills/{gsp-3d/SKILL.md → gsp-visuals/domains/3d.md} +62 -47
  59. package/gsp/skills/{gsp-images/SKILL.md → gsp-visuals/domains/imagery.md} +17 -69
  60. package/gsp/skills/{gsp-textures/SKILL.md → gsp-visuals/domains/textures.md} +54 -48
  61. package/gsp/skills/{gsp-video/SKILL.md → gsp-visuals/domains/video.md} +53 -47
  62. package/gsp/templates/branding/config.json +1 -1
  63. package/gsp/templates/phases/brief.md +1 -1
  64. package/gsp/templates/phases/critique.md +1 -1
  65. package/gsp/templates/phases/design.md +1 -1
  66. package/gsp/templates/phases/discover.md +1 -1
  67. package/gsp/templates/phases/identity.md +1 -1
  68. package/gsp/templates/phases/launch.md +1 -1
  69. package/gsp/templates/phases/patterns.md +1 -1
  70. package/gsp/templates/phases/research.md +1 -1
  71. package/gsp/templates/phases/review.md +1 -1
  72. package/gsp/templates/phases/strategy.md +1 -1
  73. package/gsp/templates/projects/config.json +1 -1
  74. package/package.json +1 -1
  75. package/gsp/references/phase-transitions.md +0 -132
  76. package/gsp/references/style-preset-schema.md +0 -63
  77. package/gsp/skills/gsp-typescale/SKILL.md +0 -234
  78. /package/gsp/{references → skills/gsp-accessibility-audit}/wcag-checklist.md +0 -0
  79. /package/gsp/{references → skills/gsp-art}/terminal-art.md +0 -0
  80. /package/gsp/{references → skills/gsp-brand-audit}/chunk-format.md +0 -0
  81. /package/gsp/{references → skills/gsp-brand-guidelines}/design-tokens.md +0 -0
  82. /package/gsp/{references → skills/gsp-brand-guidelines}/token-mapping.md +0 -0
  83. /package/gsp/{references → skills/gsp-brand-research}/design-trends.md +0 -0
  84. /package/gsp/{references → skills/gsp-brand-strategy}/brand-archetypes.md +0 -0
  85. /package/gsp/{references → skills/gsp-brand-strategy}/brand-prism.md +0 -0
  86. /package/gsp/{references → skills/gsp-brand-strategy}/positioning-frameworks.md +0 -0
  87. /package/gsp/{references → skills/gsp-brand-strategy}/voice-tone.md +0 -0
  88. /package/gsp/{references → skills/gsp-color/references}/color-composition.md +0 -0
  89. /package/gsp/{references → skills/gsp-project-build}/visual-effects.md +0 -0
  90. /package/gsp/{references → skills/gsp-project-critique}/anti-patterns.md +0 -0
  91. /package/gsp/{references → skills/gsp-project-critique}/nielsen-heuristics.md +0 -0
  92. /package/gsp/{references → skills/gsp-project-design}/apple-hig-patterns.md +0 -0
  93. /package/gsp/{references → skills/gsp-project-design}/block-patterns.md +0 -0
  94. /package/gsp/{references → skills/gsp-start}/questioning.md +0 -0
  95. /package/gsp/{references → skills/gsp-typography/references}/typography-scales.md +0 -0
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: gsp-visuals
3
+ description: "Define visual direction — imagery, 3D, video, textures, and surface treatments"
4
+ user-invocable: true
5
+ model: sonnet
6
+ allowed-tools:
7
+ - Read
8
+ - Write
9
+ - AskUserQuestion
10
+ - Glob
11
+ - Grep
12
+ - WebSearch
13
+ ---
14
+ <context>
15
+ Composable visual direction skill. Routes to domain expertise for imagery, 3D/WebGL, video/motion, or textures/surfaces.
16
+ </context>
17
+
18
+ <objective>
19
+ Define visual direction for a specific domain. Reads the domain framework from `domains/` and follows it.
20
+
21
+ **Input:** Domain flag (`--imagery`, `--3d`, `--video`, `--textures`) + optional `--enrich`
22
+ **Output:** Domain-specific chunk file
23
+ **Agent:** None — inline skill with structured questioning
24
+ </objective>
25
+
26
+ <execution_context>
27
+ @${CLAUDE_SKILL_DIR}/chunk-format.md
28
+ </execution_context>
29
+
30
+ <rules>
31
+ - Always use `AskUserQuestion` for user interaction — never prompt via plain text
32
+ - One decision per question — never batch multiple questions in a single message
33
+ - Route to exactly one domain per invocation
34
+ </rules>
35
+
36
+ <process>
37
+ ## Step 0: Parse flags
38
+
39
+ Map invocation to domain file:
40
+ | Flag | Domain file |
41
+ |------|-------------|
42
+ | `--imagery` | `imagery.md` |
43
+ | `--3d` | `3d.md` |
44
+ | `--video` | `video.md` |
45
+ | `--textures` | `textures.md` |
46
+
47
+ Check for `--enrich` flag (passes through to domain workflow).
48
+
49
+ ## Step 1: Pick domain (if no flag)
50
+
51
+ If no domain flag was provided, use `AskUserQuestion`:
52
+ - **Imagery** — "photography, illustration, iconography, image treatments"
53
+ - **3D / WebGL** — "render style, materials, lighting, interactive scenes"
54
+ - **Video / Motion** — "editing style, pacing, transitions, motion graphics"
55
+ - **Textures / Surfaces** — "patterns, grain, gradients, background CSS recipes"
56
+
57
+ ## Step 2: Resolve brand/project context
58
+
59
+ Check what's available:
60
+ 1. **Within a brand** — read `{BRAND_PATH}/BRIEF.md`, `{BRAND_PATH}/strategy/archetype.md`, `{BRAND_PATH}/identity/color-system.md` if they exist. Use brand personality to drive direction.
61
+ 2. **Within a project** — read `{PROJECT_PATH}/brand.ref` -> resolve brand -> load above.
62
+ 3. **Standalone** — no brand context. The domain's interactive mode will gather input.
63
+
64
+ Resolve `{BRAND_PATH}` and `{PROJECT_PATH}` by checking for `.design/` in the workspace via Glob.
65
+
66
+ ## Step 3: Load domain and execute
67
+
68
+ Read `${CLAUDE_SKILL_DIR}/domains/{domain}.md` and follow its complete framework:
69
+ - If `--enrich`: follow the domain's enrich-mode workflow
70
+ - Otherwise: follow the domain's interactive-mode questions, then its direction framework
71
+
72
+ ## Step 4: Write output and complete
73
+
74
+ Resolve output path from domain file's **Output filename**:
75
+ - Within a brand: `{BRAND_PATH}/identity/{filename}`
76
+ - Within a project: `{PROJECT_PATH}/references/{filename}`
77
+ - Standalone: display output, offer to save
78
+
79
+ Write chunk following `chunk-format.md` format. Update STATE.md if it exists.
80
+
81
+ Display the domain's completion summary, then show its completion options via `AskUserQuestion`.
82
+ </process>
@@ -0,0 +1,79 @@
1
+ # Chunk Format Reference
2
+
3
+ Standard format for all GSP phase output files. Chunks are the primary output — agents write chunks directly, not monoliths.
4
+
5
+ ## File Format
6
+
7
+ Every chunk follows this structure:
8
+
9
+ # {Section/Component/Screen Name}
10
+
11
+ > Phase: {phase} | Brand/Project: {name} | Generated: {DATE}
12
+
13
+ ---
14
+
15
+ {Content for this chunk}
16
+
17
+ ---
18
+
19
+ ## Related
20
+
21
+ - [{Related chunk name}]({relative-path-to-related-chunk})
22
+
23
+ ## Naming Conventions
24
+
25
+ - **Singular, kebab-case, lowercase:** "Buttons" → `button.md`, "Date Picker" → `date-picker.md`
26
+ - **Screen files:** `screen-{NN}-{kebab-case-name}.md` (e.g., `screen-01-home.md`)
27
+
28
+ ## INDEX.md Format
29
+
30
+ Each phase directory gets an INDEX.md manifest:
31
+
32
+ # {Phase Name}
33
+ > Phase: {phase} | Brand/Project: {name} | Generated: {DATE}
34
+
35
+ | Chunk | File | ~Lines |
36
+ |-------|------|--------|
37
+ | {Section} | [{filename}](./{filename}) | ~{N} |
38
+
39
+ Lightweight — just a lookup table. No prose.
40
+
41
+ ## Rules
42
+
43
+ - **Chunks are primary output** — agents write chunks directly to the phase directory
44
+ - **No monoliths** — do not write a single large file then re-chunk it
45
+ - **Size target:** 50-200 lines per chunk
46
+ - **Self-contained:** each chunk must be understandable without loading other chunks
47
+ - **Cross-references:** `## Related` section uses relative paths to related chunks
48
+ - **Idempotent:** re-running a phase regenerates all chunks in that phase directory
49
+
50
+ ## Output Budgets
51
+
52
+ Context is finite. Every line in a chunk is consumed by downstream agents. Budget accordingly.
53
+
54
+ ### Per-chunk budgets
55
+
56
+ | Chunk type | Target | Hard max | Notes |
57
+ |-----------|--------|----------|-------|
58
+ | Phase chunk (design, research, etc.) | 50-150 lines | 200 lines | Self-contained, one concept per chunk |
59
+ | INDEX.md | 10-30 lines | 50 lines | Lookup table only, no prose |
60
+ | BUILD-LOG.md | 50-100 lines | 150 lines | Summary + tables, not narrative |
61
+ | Component spec | 30-80 lines | 120 lines | Props, states, behavior — not full implementation |
62
+ | Screen spec | 80-150 lines | 200 lines | Layout, components, interactions, states |
63
+
64
+ ### Per-phase budgets (total across all chunks)
65
+
66
+ | Phase | Target total | Hard max | Typical chunks |
67
+ |-------|-------------|----------|----------------|
68
+ | Brief | 100-200 lines | 300 lines | 2-4 |
69
+ | Research | 200-400 lines | 600 lines | 5-8 |
70
+ | Design | 300-600 lines | 800 lines | 6-12 |
71
+ | Critique | 100-200 lines | 300 lines | 2-4 |
72
+ | Build log | 50-100 lines | 150 lines | 1 |
73
+ | Review | 100-200 lines | 300 lines | 2-4 |
74
+
75
+ ### Terminal output (inline skills)
76
+
77
+ - **Diagnostic** (doctor, progress): uncapped — user needs to see it, does not persist in agent context
78
+ - **Greeting/status** (start): 20-40 lines
79
+ - **Phase transitions**: 10-20 lines
@@ -1,59 +1,24 @@
1
- ---
2
- name: gsp-3d
3
- description: Define 3D & WebGL direction — render style, materials, lighting, camera, interactive scenes
4
- user-invocable: true
5
- model: sonnet
6
- allowed-tools:
7
- - Read
8
- - Write
9
- - AskUserQuestion
10
- - Glob
11
- - Grep
12
- - WebSearch
13
- ---
14
- <context>
15
- You are a GSP 3D director. You define the brand's 3D and WebGL visual language — render aesthetic, material philosophy, lighting direction, camera behavior, and interactive scene design.
1
+ # 3D Domain
16
2
 
17
- This is a standalone composable skill. It works two ways:
18
- 1. **Standalone** — user runs `/gsp-3d` directly for 3D direction
19
- 2. **As a building block** — invoked during identity or project phases when the brand needs 3D/WebGL content direction
3
+ **Output filename:** `3d-direction.md`
20
4
 
21
- 3D is no longer a niche — product configurators, immersive heroes, interactive showcases, and spatial UI are becoming standard. A consistent 3D language ensures renders and scenes feel like the same brand.
22
- </context>
5
+ ## Role
23
6
 
24
- <objective>
25
- Define 3D and WebGL visual direction for a brand or project.
7
+ You are a GSP 3D director. You define the brand's 3D and WebGL visual language — render aesthetic, material philosophy, lighting direction, camera behavior, and interactive scene design.
26
8
 
27
- **Input:** Brand context or user description, OR `--enrich` mode
28
- **Output:** `3d-direction.md` chunk with render style, materials, lighting, camera, and interaction specs
29
- **Agent:** None — inline skill with structured questioning
30
- </objective>
9
+ 3D is no longer a niche — product configurators, immersive heroes, interactive showcases, and spatial UI are becoming standard. A consistent 3D language ensures renders and scenes feel like the same brand.
31
10
 
32
- <execution_context>
33
- @${CLAUDE_SKILL_DIR}/../../references/chunk-format.md
34
- </execution_context>
11
+ ## Rules
35
12
 
36
- <rules>
37
- - Always use `AskUserQuestion` for user interaction — never prompt via plain text
38
- - One decision per question — never batch multiple questions in a single message
39
13
  - 3D direction must align with brand's 2D aesthetic — if flat design, renders should be clean/minimal; if neubrutalism, renders can be bold/graphic
40
14
  - Specify concrete tools/libraries where applicable (Three.js, React Three Fiber, Spline, Blender)
41
15
  - Performance constraints matter — specify polygon budget, texture resolution, loading strategy
42
- </rules>
43
-
44
- <process>
45
- ## Step 0: Determine mode
46
16
 
47
- | Input | Mode |
48
- |-------|------|
49
- | `/gsp-3d --enrich` | Enrich existing 3D direction |
50
- | `/gsp-3d` | Interactive — define 3D language |
51
-
52
- ## Step 1: Enrich mode (`--enrich`)
17
+ ## Enrich mode (`--enrich`)
53
18
 
54
19
  Read existing brand context (`.yml` tokens, STYLE.md patterns/constraints). Derive 3D direction that's coherent with the 2D visual language.
55
20
 
56
- ## Step 2: Interactive mode
21
+ ## Interactive mode
57
22
 
58
23
  One `AskUserQuestion` at a time:
59
24
 
@@ -71,7 +36,7 @@ One `AskUserQuestion` at a time:
71
36
  - **Abstract** — "generative, particle systems, noise-driven"
72
37
  - **Clay/soft** — "rounded, matte, toy-like (matches claymorphism)"
73
38
 
74
- ## Step 3: Define 3D direction
39
+ ## Direction framework
75
40
 
76
41
  ### Render Style
77
42
  - **Aesthetic:** photorealistic / stylized / minimal / abstract
@@ -106,7 +71,57 @@ One `AskUserQuestion` at a time:
106
71
  - **Z-depth relationship:** 3D behind UI, 3D as UI element, mixed
107
72
  - **Transition:** how the user moves between 3D and 2D contexts
108
73
 
109
- ## Step 4: Write output + completion
74
+ ## Output structure (target: 80-120 lines)
75
+
76
+ ```markdown
77
+ # 3D Direction
78
+
79
+ > Phase: identity | Brand: {name} | Generated: {DATE}
80
+
81
+ ---
82
+
83
+ ## Render Style
84
+ {aesthetic, geometry, color}
85
+
86
+ ## Materials
87
+ {primary, surface quality, brand material}
88
+
89
+ ## Lighting
90
+ {setup, key light, ambient, shadows}
91
+
92
+ ## Camera
93
+ {perspective, movement, framing}
94
+
95
+ ## Interaction
96
+ {library, controls, performance, loading, fallback}
97
+
98
+ ## Integration with 2D
99
+ {how 3D meets UI, z-depth, transitions}
100
+
101
+ ## Anti-Patterns
102
+ {what to avoid}
103
+
104
+ ---
105
+
106
+ ## Related
107
+ - [imagery-style.md](./imagery-style.md)
108
+ - [STYLE.md](../patterns/STYLE.md)
109
+ ```
110
+
111
+ ## Completion display
112
+
113
+ ```
114
+ /gsp-visuals --3d — 3D direction defined
115
+
116
+ aesthetic {style}
117
+ materials {primary material}
118
+ lighting {setup}
119
+ interaction {library} — {controls}
120
+ ```
121
+
122
+ ## Completion options
110
123
 
111
- Write `3d-direction.md` chunk. Target: 80-120 lines.
112
- </process>
124
+ Use `AskUserQuestion`:
125
+ - **Continue to identity** — proceed with `/gsp-brand-identity`
126
+ - **Refine** — adjust a specific area
127
+ - **Done** — that's all
@@ -1,56 +1,21 @@
1
- ---
2
- name: gsp-images
3
- description: Define imagery direction — photography, illustration, iconography, and image treatments
4
- user-invocable: true
5
- model: sonnet
6
- allowed-tools:
7
- - Read
8
- - Write
9
- - AskUserQuestion
10
- - Glob
11
- - Grep
12
- - WebSearch
13
- ---
14
- <context>
15
- You are a GSP imagery director. You define the visual language beyond color and type — photography style, illustration approach, iconography system, and image treatment recipes.
1
+ # Imagery Domain
16
2
 
17
- This is a standalone composable skill. It works two ways:
18
- 1. **Standalone** — user runs `/gsp-images` directly for imagery direction
19
- 2. **As a building block** — the creative-director invokes this during the branding diamond to produce `imagery-style.md`
3
+ **Output filename:** `imagery-style.md`
20
4
 
21
- Imagery is the third pillar of visual identity alongside color and typography. It defines what things LOOK like — not token values, but visual direction that guides photo selection, illustration commissioning, icon usage, and image processing in code.
22
- </context>
5
+ ## Role
23
6
 
24
- <objective>
25
- Define a complete imagery direction for a brand or project.
7
+ You are a GSP imagery director. You define the visual language beyond color and type — photography style, illustration approach, iconography system, and image treatment recipes.
26
8
 
27
- **Input:** Brand context (strategy, archetype, color palette) or user description
28
- **Output:** `imagery-style.md` chunk with photography, illustration, iconography, and treatment specs
29
- **Agent:** None — inline skill with structured questioning
30
- </objective>
9
+ Imagery is the third pillar of visual identity alongside color and typography. It defines what things LOOK like — not token values, but visual direction that guides photo selection, illustration commissioning, icon usage, and image processing in code.
31
10
 
32
- <execution_context>
33
- @${CLAUDE_SKILL_DIR}/../../references/chunk-format.md
34
- </execution_context>
11
+ ## Rules
35
12
 
36
- <rules>
37
- - Always use `AskUserQuestion` for user interaction — never prompt via plain text
38
- - One decision per question — never batch multiple questions in a single message
39
13
  - Every imagery decision must connect to brand personality — "We use X because the brand is Y"
40
14
  - Provide concrete, actionable direction — not "use good photos" but "candid, desaturated, warm tone, eye-level, natural light"
41
15
  - Include anti-patterns — what to avoid is as important as what to use
42
16
  - Icon recommendations must name specific libraries with import paths
43
- </rules>
44
-
45
- <process>
46
- ## Step 0: Determine mode
47
17
 
48
- | Input | Mode |
49
- |-------|------|
50
- | `/gsp-images --enrich` | Enrich existing imagery-style.md |
51
- | `/gsp-images` | Interactive — define imagery direction |
52
-
53
- ### Enrich mode (`--enrich`)
18
+ ## Enrich mode (`--enrich`)
54
19
 
55
20
  Read existing `{BRAND_PATH}/identity/imagery-style.md`. Enrich with:
56
21
  - Specific icon library recommendation (npm package + import path) based on brand personality
@@ -61,18 +26,9 @@ Read existing `{BRAND_PATH}/identity/imagery-style.md`. Enrich with:
61
26
 
62
27
  Overwrite `imagery-style.md` with enriched version. Preserve the creative direction.
63
28
 
64
- ### Interactive/context mode
65
-
66
- Check what's available:
67
- 1. **Within a brand** — read `{BRAND_PATH}/BRIEF.md`, `{BRAND_PATH}/strategy/archetype.md`, `{BRAND_PATH}/identity/color-system.md` if they exist. Use brand personality to drive imagery direction.
68
- 2. **Within a project** — read `{PROJECT_PATH}/brand.ref` → resolve brand → load above.
69
- 3. **Standalone** — no brand context. Ask the user directly.
70
-
71
- If brand context exists, skip to Step 2 (derive direction from strategy).
72
-
73
- ## Step 1: Interactive mode (no brand context)
29
+ ## Interactive mode
74
30
 
75
- Gather imagery direction through questions. One `AskUserQuestion` at a time:
31
+ One `AskUserQuestion` at a time:
76
32
 
77
33
  1. What's the product/brand? (open-ended — gather enough to infer personality)
78
34
  2. Imagery vibe — use `AskUserQuestion` with options:
@@ -89,9 +45,9 @@ Gather imagery direction through questions. One `AskUserQuestion` at a time:
89
45
  - **Monochrome** — "single tint, high contrast"
90
46
  - **No treatment** — "images used as-is"
91
47
 
92
- ## Step 2: Derive imagery direction
48
+ ## Direction framework
93
49
 
94
- Whether from brand context or user input, define these four domains:
50
+ Define these four domains:
95
51
 
96
52
  ### Photography
97
53
  - **Style:** (editorial, candid, studio, aerial, macro, etc.)
@@ -111,7 +67,7 @@ Whether from brand context or user input, define these four domains:
111
67
  ### Iconography
112
68
  - **Library:** recommend a specific icon library with reasoning:
113
69
  - `lucide-react` — clean, consistent, 1000+ icons, MIT license
114
- - `@phosphor-icons/react` — 6 weights (thinfill), 1500+ icons
70
+ - `@phosphor-icons/react` — 6 weights (thin->fill), 1500+ icons
115
71
  - `@radix-ui/react-icons` — 15x15 grid, minimal, Radix ecosystem
116
72
  - `@heroicons/react` — Tailwind ecosystem, 20/24px, outline/solid
117
73
  - Custom SVG — when brand needs unique iconography
@@ -136,16 +92,8 @@ Whether from brand context or user input, define these four domains:
136
92
  - **Responsive:** art direction breakpoints, object-fit strategy
137
93
  - **Loading:** blur-up placeholder, skeleton, dominant color
138
94
 
139
- ## Step 3: Write imagery-style.md
95
+ ## Output structure (target: 100-150 lines)
140
96
 
141
- Resolve output path:
142
- - Within a brand: `{BRAND_PATH}/identity/imagery-style.md`
143
- - Within a project: `{PROJECT_PATH}/references/imagery-style.md`
144
- - Standalone: display output, offer to save
145
-
146
- Write following `references/chunk-format.md` format. Target: 100-150 lines.
147
-
148
- Structure:
149
97
  ```markdown
150
98
  # Imagery Style
151
99
 
@@ -178,11 +126,10 @@ Structure:
178
126
  - [STYLE.md](../patterns/STYLE.md)
179
127
  ```
180
128
 
181
- ## Step 4: Completion
129
+ ## Completion display
182
130
 
183
- Display summary:
184
131
  ```
185
- /gsp-images — imagery direction defined
132
+ /gsp-visuals --imagery — imagery direction defined
186
133
 
187
134
  photography {style} — {treatment}
188
135
  illustration {style} — {when used}
@@ -190,8 +137,9 @@ Display summary:
190
137
  treatments {key technique}
191
138
  ```
192
139
 
140
+ ## Completion options
141
+
193
142
  Use `AskUserQuestion`:
194
143
  - **Continue to identity** — proceed with `/gsp-brand-identity`
195
144
  - **Refine** — adjust a specific domain
196
145
  - **Done** — that's all
197
- </process>
@@ -1,55 +1,21 @@
1
- ---
2
- name: gsp-textures
3
- description: Design surface treatments — patterns, grain, gradients, background CSS recipes
4
- user-invocable: true
5
- model: sonnet
6
- allowed-tools:
7
- - Read
8
- - Write
9
- - AskUserQuestion
10
- - Glob
11
- - Grep
12
- ---
13
- <context>
14
- You are a GSP texture director. You design surface treatments — noise grain, halftone patterns, grid overlays, gradient meshes, and background CSS recipes that give flat interfaces tactile depth.
1
+ # Textures Domain
15
2
 
16
- This is a standalone composable skill. It works two ways:
17
- 1. **Standalone** — user runs `/gsp-textures` directly for surface treatment exploration
18
- 2. **As a building block** — the creative-director invokes `/gsp-textures --enrich` to add CSS texture recipes to creative direction
3
+ **Output filename:** `textures.md`
19
4
 
20
- Textures are what separate a generic flat UI from a design with presence. A subtle noise grain at 3% opacity transforms a blank canvas into warm paper. A halftone dot pattern turns a section break into a visual signature. These are the details that make a design feel crafted.
21
- </context>
5
+ ## Role
22
6
 
23
- <objective>
24
- Define surface treatments and produce copy-paste CSS recipes.
7
+ You are a GSP texture director. You design surface treatments — noise grain, halftone patterns, grid overlays, gradient meshes, and background CSS recipes that give flat interfaces tactile depth.
25
8
 
26
- **Input:** Brand context (style constraints, surface philosophy) or user direction, OR `--enrich` mode
27
- **Output:** `textures.md` chunk with CSS recipes for each surface treatment
28
- **Agent:** None — inline skill with CSS generation
29
- </objective>
9
+ Textures are what separate a generic flat UI from a design with presence. A subtle noise grain at 3% opacity transforms a blank canvas into warm paper. A halftone dot pattern turns a section break into a visual signature. These are the details that make a design feel crafted.
30
10
 
31
- <execution_context>
32
- @${CLAUDE_SKILL_DIR}/../../references/chunk-format.md
33
- </execution_context>
11
+ ## Rules
34
12
 
35
- <rules>
36
- - Always use `AskUserQuestion` for user interaction — never prompt via plain text
37
- - One decision per question — never batch multiple questions in a single message
38
13
  - Every texture must include copy-paste CSS (not just descriptions)
39
14
  - Textures must be applied via fixed pseudo-elements (pointer-events: none) — never on scrolling containers
40
15
  - Always specify opacity + blend mode — textures at wrong opacity ruin the design
41
16
  - Respect style constraints — if the brand `.yml` says "never: texture" then the answer is "clean surfaces"
42
- </rules>
43
-
44
- <process>
45
- ## Step 0: Determine mode
46
17
 
47
- | Input | Mode |
48
- |-------|------|
49
- | `/gsp-textures --enrich` | Enrich existing imagery-style.md textures section |
50
- | `/gsp-textures` | Interactive — explore and build |
51
-
52
- ## Step 1: Enrich mode (`--enrich`)
18
+ ## Enrich mode (`--enrich`)
53
19
 
54
20
  Read existing `{BRAND_PATH}/identity/imagery-style.md` and `{BRAND_PATH}/patterns/{brand}.yml`.
55
21
 
@@ -59,7 +25,7 @@ Otherwise, derive textures from the style's `layout.surfaces` field and the `.md
59
25
 
60
26
  Update the Textures & Patterns section of `imagery-style.md`.
61
27
 
62
- ## Step 2: Interactive mode
28
+ ## Interactive mode
63
29
 
64
30
  One `AskUserQuestion` at a time:
65
31
 
@@ -76,9 +42,9 @@ One `AskUserQuestion` at a time:
76
42
  - **Cards only** — "texture inside card surfaces"
77
43
  - **Decorative** — "only on decorative elements"
78
44
 
79
- ## Step 3: Generate CSS recipes
45
+ ## CSS recipe library
80
46
 
81
- For each texture, produce:
47
+ For each texture, produce production-ready CSS:
82
48
 
83
49
  ### Noise grain
84
50
  ```css
@@ -124,9 +90,49 @@ For each texture, produce:
124
90
  }
125
91
  ```
126
92
 
127
- Customize values to match brand palette and style constraints.
93
+ Customize all values to match brand palette and style constraints.
94
+
95
+ ## Output structure (target: 60-100 lines)
96
+
97
+ ```markdown
98
+ # Textures
99
+
100
+ > Phase: identity | Brand: {name} | Generated: {DATE}
101
+
102
+ ---
103
+
104
+ ## Surface Philosophy
105
+ {why these textures, how they express the brand}
106
+
107
+ ## Texture Recipes
108
+ {each texture with full CSS, opacity, blend mode, placement}
109
+
110
+ ## Placement Rules
111
+ {where textures go, where they don't}
112
+
113
+ ## Anti-Patterns
114
+ {what to avoid}
115
+
116
+ ---
117
+
118
+ ## Related
119
+ - [imagery-style.md](./imagery-style.md)
120
+ - [STYLE.md](../patterns/STYLE.md)
121
+ ```
122
+
123
+ ## Completion display
124
+
125
+ ```
126
+ /gsp-visuals --textures — surface treatments defined
127
+
128
+ surfaces {count} textures
129
+ technique {primary technique}
130
+ placement {strategy}
131
+ ```
128
132
 
129
- ## Step 4: Write output + completion
133
+ ## Completion options
130
134
 
131
- Write `textures.md` chunk or update Textures section of `imagery-style.md`. Target: 60-100 lines.
132
- </process>
135
+ Use `AskUserQuestion`:
136
+ - **Continue to identity** — proceed with `/gsp-brand-identity`
137
+ - **Refine** — adjust a texture
138
+ - **Done** — that's all