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.
- package/bin/install.js +36 -20
- package/gsp/agents/gsp-accessibility-auditor.md +1 -1
- package/gsp/agents/gsp-ascii-artist.md +1 -1
- package/gsp/agents/gsp-brand-auditor.md +1 -1
- package/gsp/agents/gsp-brand-strategist.md +1 -1
- package/gsp/agents/gsp-builder.md +1 -1
- package/gsp/agents/gsp-campaign-director.md +1 -1
- package/gsp/agents/gsp-creative-director.md +4 -4
- package/gsp/agents/gsp-critic.md +3 -3
- package/gsp/agents/gsp-designer.md +2 -2
- package/gsp/agents/gsp-project-researcher.md +1 -1
- package/gsp/agents/gsp-researcher.md +1 -1
- package/gsp/agents/gsp-reviewer.md +1 -1
- package/gsp/agents/gsp-scoper.md +1 -1
- package/gsp/skills/get-shit-pretty/SKILL.md +10 -9
- package/gsp/skills/gsp-accessibility/SKILL.md +1 -1
- package/gsp/skills/gsp-accessibility-audit/SKILL.md +2 -2
- package/gsp/skills/gsp-add-reference/SKILL.md +5 -0
- package/gsp/skills/gsp-art/SKILL.md +5 -0
- package/gsp/skills/gsp-brand-audit/SKILL.md +2 -2
- package/gsp/skills/gsp-brand-guidelines/SKILL.md +2 -2
- package/gsp/skills/gsp-brand-identity/SKILL.md +3 -3
- package/gsp/skills/gsp-brand-refine/SKILL.md +1 -1
- package/gsp/skills/gsp-brand-research/SKILL.md +2 -2
- package/gsp/skills/gsp-brand-strategy/SKILL.md +4 -4
- package/gsp/skills/gsp-brand-sync/SKILL.md +3 -3
- package/gsp/skills/gsp-brand-sync/chunk-format.md +79 -0
- package/gsp/skills/gsp-color/SKILL.md +24 -56
- package/gsp/skills/gsp-color/chunk-format.md +79 -0
- package/gsp/skills/{gsp-palette/SKILL.md → gsp-color/domains/palette.md} +31 -101
- package/gsp/skills/gsp-color/domains/system.md +123 -0
- package/gsp/skills/gsp-design-system/SKILL.md +5 -0
- package/gsp/skills/gsp-help/SKILL.md +4 -3
- package/gsp/skills/gsp-icons/SKILL.md +1 -1
- package/gsp/skills/gsp-icons/chunk-format.md +79 -0
- package/gsp/skills/gsp-launch/SKILL.md +1 -1
- package/gsp/skills/gsp-logo/SKILL.md +2 -2
- package/gsp/skills/gsp-logo/chunk-format.md +79 -0
- package/gsp/skills/gsp-phase-transition/SKILL.md +124 -0
- package/gsp/skills/gsp-project-brief/SKILL.md +1 -1
- package/gsp/skills/gsp-project-build/SKILL.md +10 -5
- package/gsp/skills/gsp-project-critique/SKILL.md +5 -5
- package/gsp/{references → skills/gsp-project-critique}/visual-taste.md +1 -1
- package/gsp/skills/gsp-project-design/SKILL.md +1 -1
- package/gsp/skills/gsp-project-research/SKILL.md +1 -1
- package/gsp/skills/gsp-project-review/SKILL.md +1 -1
- package/gsp/skills/gsp-start/SKILL.md +1 -1
- package/gsp/skills/gsp-style/SKILL.md +4 -4
- package/gsp/skills/gsp-style/chunk-format.md +79 -0
- package/gsp/skills/gsp-style/style-preset-schema.md +124 -0
- package/gsp/skills/gsp-typography/SKILL.md +28 -66
- package/gsp/skills/gsp-typography/chunk-format.md +79 -0
- package/gsp/skills/gsp-typography/domains/pairing.md +109 -0
- package/gsp/skills/gsp-typography/domains/scale.md +227 -0
- package/gsp/skills/gsp-typography/domains/system.md +108 -0
- package/gsp/skills/gsp-visuals/SKILL.md +82 -0
- package/gsp/skills/gsp-visuals/chunk-format.md +79 -0
- package/gsp/skills/{gsp-3d/SKILL.md → gsp-visuals/domains/3d.md} +62 -47
- package/gsp/skills/{gsp-images/SKILL.md → gsp-visuals/domains/imagery.md} +17 -69
- package/gsp/skills/{gsp-textures/SKILL.md → gsp-visuals/domains/textures.md} +54 -48
- package/gsp/skills/{gsp-video/SKILL.md → gsp-visuals/domains/video.md} +53 -47
- package/gsp/templates/branding/config.json +1 -1
- package/gsp/templates/phases/brief.md +1 -1
- package/gsp/templates/phases/critique.md +1 -1
- package/gsp/templates/phases/design.md +1 -1
- package/gsp/templates/phases/discover.md +1 -1
- package/gsp/templates/phases/identity.md +1 -1
- package/gsp/templates/phases/launch.md +1 -1
- package/gsp/templates/phases/patterns.md +1 -1
- package/gsp/templates/phases/research.md +1 -1
- package/gsp/templates/phases/review.md +1 -1
- package/gsp/templates/phases/strategy.md +1 -1
- package/gsp/templates/projects/config.json +1 -1
- package/package.json +1 -1
- package/gsp/references/phase-transitions.md +0 -132
- package/gsp/references/style-preset-schema.md +0 -63
- package/gsp/skills/gsp-typescale/SKILL.md +0 -234
- /package/gsp/{references → skills/gsp-accessibility-audit}/wcag-checklist.md +0 -0
- /package/gsp/{references → skills/gsp-art}/terminal-art.md +0 -0
- /package/gsp/{references → skills/gsp-brand-audit}/chunk-format.md +0 -0
- /package/gsp/{references → skills/gsp-brand-guidelines}/design-tokens.md +0 -0
- /package/gsp/{references → skills/gsp-brand-guidelines}/token-mapping.md +0 -0
- /package/gsp/{references → skills/gsp-brand-research}/design-trends.md +0 -0
- /package/gsp/{references → skills/gsp-brand-strategy}/brand-archetypes.md +0 -0
- /package/gsp/{references → skills/gsp-brand-strategy}/brand-prism.md +0 -0
- /package/gsp/{references → skills/gsp-brand-strategy}/positioning-frameworks.md +0 -0
- /package/gsp/{references → skills/gsp-brand-strategy}/voice-tone.md +0 -0
- /package/gsp/{references → skills/gsp-color/references}/color-composition.md +0 -0
- /package/gsp/{references → skills/gsp-project-build}/visual-effects.md +0 -0
- /package/gsp/{references → skills/gsp-project-critique}/anti-patterns.md +0 -0
- /package/gsp/{references → skills/gsp-project-critique}/nielsen-heuristics.md +0 -0
- /package/gsp/{references → skills/gsp-project-design}/apple-hig-patterns.md +0 -0
- /package/gsp/{references → skills/gsp-project-design}/block-patterns.md +0 -0
- /package/gsp/{references → skills/gsp-start}/questioning.md +0 -0
- /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
|
-
|
|
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
|
-
|
|
22
|
-
</context>
|
|
5
|
+
## Role
|
|
23
6
|
|
|
24
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
|
|
112
|
-
|
|
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
|
-
|
|
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
|
-
|
|
22
|
-
</context>
|
|
5
|
+
## Role
|
|
23
6
|
|
|
24
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
48
|
+
## Direction framework
|
|
93
49
|
|
|
94
|
-
|
|
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 (thin
|
|
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
|
-
##
|
|
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
|
-
##
|
|
129
|
+
## Completion display
|
|
182
130
|
|
|
183
|
-
Display summary:
|
|
184
131
|
```
|
|
185
|
-
/gsp-
|
|
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
|
-
|
|
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
|
-
|
|
21
|
-
</context>
|
|
5
|
+
## Role
|
|
22
6
|
|
|
23
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
133
|
+
## Completion options
|
|
130
134
|
|
|
131
|
-
|
|
132
|
-
|
|
135
|
+
Use `AskUserQuestion`:
|
|
136
|
+
- **Continue to identity** — proceed with `/gsp-brand-identity`
|
|
137
|
+
- **Refine** — adjust a texture
|
|
138
|
+
- **Done** — that's all
|