get-shit-pretty 0.6.3 → 0.7.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.
- package/README.md +13 -28
- package/bin/install.js +36 -20
- package/gsp/agents/gsp-accessibility-auditor.md +1 -60
- package/gsp/agents/gsp-brand-auditor.md +1 -61
- package/gsp/agents/gsp-brand-creative-director.md +10 -0
- package/gsp/agents/gsp-brand-engineer.md +1 -122
- package/gsp/agents/gsp-brand-researcher.md +11 -0
- package/gsp/agents/gsp-brand-strategist.md +1 -65
- package/gsp/agents/gsp-project-builder.md +17 -0
- package/gsp/agents/gsp-project-critic.md +11 -0
- package/gsp/agents/gsp-project-designer.md +11 -0
- package/gsp/agents/gsp-project-researcher.md +1 -74
- package/gsp/agents/gsp-project-reviewer.md +12 -0
- package/gsp/hooks/hooks.json +10 -28
- package/gsp/skills/get-shit-pretty/SKILL.md +11 -13
- package/gsp/skills/gsp-accessibility/SKILL.md +1 -2
- package/gsp/skills/gsp-accessibility-audit/SKILL.md +10 -9
- package/gsp/skills/gsp-accessibility-audit/methodology/gsp-accessibility-auditor.md +59 -0
- package/gsp/skills/gsp-add-reference/SKILL.md +5 -1
- package/gsp/skills/gsp-art/SKILL.md +18 -10
- package/gsp/skills/gsp-brand-audit/SKILL.md +6 -4
- package/gsp/skills/gsp-brand-audit/methodology/gsp-brand-auditor.md +61 -0
- package/gsp/skills/gsp-brand-brief/SKILL.md +129 -0
- package/gsp/skills/gsp-brand-guidelines/SKILL.md +14 -12
- package/gsp/skills/gsp-brand-guidelines/methodology/gsp-brand-engineer.md +122 -0
- package/gsp/skills/gsp-brand-identity/SKILL.md +14 -13
- package/gsp/{agents/gsp-creative-director.md → skills/gsp-brand-identity/methodology/gsp-brand-creative-director.md} +4 -13
- package/gsp/skills/gsp-brand-refine/SKILL.md +1 -2
- package/gsp/skills/gsp-brand-research/SKILL.md +14 -14
- package/gsp/{agents/gsp-researcher.md → skills/gsp-brand-research/methodology/gsp-brand-researcher.md} +1 -11
- package/gsp/skills/gsp-brand-strategy/SKILL.md +15 -15
- package/gsp/skills/gsp-brand-strategy/methodology/gsp-brand-strategist.md +65 -0
- package/gsp/skills/gsp-brand-sync/SKILL.md +63 -13
- package/gsp/skills/gsp-brand-sync/chunk-format.md +79 -0
- package/gsp/skills/gsp-color/SKILL.md +24 -57
- 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 -1
- package/gsp/skills/gsp-doctor/SKILL.md +0 -1
- package/gsp/skills/gsp-help/SKILL.md +4 -5
- package/gsp/skills/gsp-icons/SKILL.md +1 -2
- package/gsp/skills/gsp-icons/chunk-format.md +79 -0
- package/gsp/skills/gsp-logo/SKILL.md +2 -3
- package/gsp/skills/gsp-logo/chunk-format.md +79 -0
- package/gsp/skills/gsp-phase-transition/SKILL.md +121 -0
- package/gsp/skills/gsp-pretty/SKILL.md +25 -24
- package/gsp/skills/gsp-progress/SKILL.md +0 -1
- package/gsp/skills/gsp-project-brief/SKILL.md +52 -23
- package/gsp/skills/gsp-project-build/SKILL.md +28 -19
- package/gsp/{agents/gsp-builder.md → skills/gsp-project-build/methodology/gsp-project-builder.md} +1 -17
- package/gsp/skills/gsp-project-critique/SKILL.md +17 -17
- package/gsp/{agents/gsp-critic.md → skills/gsp-project-critique/methodology/gsp-project-critic.md} +3 -14
- package/gsp/{references → skills/gsp-project-critique}/visual-taste.md +1 -1
- package/gsp/skills/gsp-project-design/SKILL.md +10 -7
- package/gsp/{agents/gsp-designer.md → skills/gsp-project-design/methodology/gsp-project-designer.md} +2 -13
- package/gsp/skills/gsp-project-research/SKILL.md +5 -3
- package/gsp/skills/gsp-project-research/methodology/gsp-project-researcher.md +73 -0
- package/gsp/skills/gsp-project-review/SKILL.md +9 -6
- package/gsp/{agents/gsp-reviewer.md → skills/gsp-project-review/methodology/gsp-project-reviewer.md} +1 -13
- package/gsp/skills/gsp-scaffold/SKILL.md +0 -1
- package/gsp/skills/gsp-start/SKILL.md +59 -210
- package/gsp/skills/gsp-style/SKILL.md +5 -6
- 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-style/styles/academia.md +751 -787
- package/gsp/skills/gsp-style/styles/art-deco.md +316 -352
- package/gsp/skills/gsp-style/styles/bauhaus.md +189 -225
- package/gsp/skills/gsp-style/styles/bold-typography.md +433 -469
- package/gsp/skills/gsp-style/styles/botanical.md +141 -177
- package/gsp/skills/gsp-style/styles/claymorphism.md +377 -413
- package/gsp/skills/gsp-style/styles/cyberpunk.md +419 -455
- package/gsp/skills/gsp-style/styles/enterprise.md +224 -260
- package/gsp/skills/gsp-style/styles/flat-design.md +119 -155
- package/gsp/skills/gsp-style/styles/fluent.md +0 -31
- package/gsp/skills/gsp-style/styles/glassmorphism.md +0 -36
- package/gsp/skills/gsp-style/styles/humanist-literary.md +0 -28
- package/gsp/skills/gsp-style/styles/industrial.md +406 -438
- package/gsp/skills/gsp-style/styles/kinetic.md +531 -563
- package/gsp/skills/gsp-style/styles/liquid-glass.md +0 -36
- package/gsp/skills/gsp-style/styles/luxury.md +402 -438
- package/gsp/skills/gsp-style/styles/material.md +555 -591
- package/gsp/skills/gsp-style/styles/maximalism.md +875 -911
- package/gsp/skills/gsp-style/styles/minimal-dark.md +442 -478
- package/gsp/skills/gsp-style/styles/modern-dark.md +390 -426
- package/gsp/skills/gsp-style/styles/monochrome.md +472 -504
- package/gsp/skills/gsp-style/styles/neubrutalism.md +354 -390
- package/gsp/skills/gsp-style/styles/neumorphism.md +195 -231
- package/gsp/skills/gsp-style/styles/newsprint.md +529 -565
- package/gsp/skills/gsp-style/styles/organic.md +177 -213
- package/gsp/skills/gsp-style/styles/playful-geometric.md +211 -247
- package/gsp/skills/gsp-style/styles/professional.md +503 -539
- package/gsp/skills/gsp-style/styles/retro.md +664 -700
- package/gsp/skills/gsp-style/styles/saas.md +490 -526
- package/gsp/skills/gsp-style/styles/sketch.md +189 -225
- package/gsp/skills/gsp-style/styles/swiss-minimalist.md +195 -227
- package/gsp/skills/gsp-style/styles/terminal.md +99 -135
- package/gsp/skills/gsp-style/styles/vaporwave.md +356 -392
- package/gsp/skills/gsp-style/styles/web3.md +337 -373
- package/gsp/skills/gsp-typography/SKILL.md +28 -67
- 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-update/SKILL.md +0 -1
- package/gsp/skills/gsp-visuals/SKILL.md +81 -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/exports-index.md +0 -7
- 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/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/gsp/templates/projects/roadmap.md +0 -7
- package/gsp/templates/projects/state.md +0 -4
- package/package.json +1 -1
- package/scripts/lint-check.sh +1 -1
- package/gsp/agents/gsp-ascii-artist.md +0 -66
- package/gsp/agents/gsp-brand-syncer.md +0 -126
- package/gsp/agents/gsp-campaign-director.md +0 -79
- package/gsp/agents/gsp-scoper.md +0 -85
- package/gsp/references/phase-transitions.md +0 -132
- package/gsp/references/questioning.md +0 -87
- package/gsp/references/style-preset-schema.md +0 -63
- package/gsp/skills/gsp-launch/SKILL.md +0 -97
- package/gsp/skills/gsp-typescale/SKILL.md +0 -234
- package/gsp/templates/phases/launch.md +0 -55
- /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-typography/references}/typography-scales.md +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<role>
|
|
2
|
+
You are a GSP brand strategist spawned by `/gsp-brand-strategy`.
|
|
3
|
+
|
|
4
|
+
Act as Head of Strategy at a top branding agency. Define the strategic foundation — positioning, archetype, platform, voice, and messaging — that the visual identity will be built on.
|
|
5
|
+
|
|
6
|
+
</role>
|
|
7
|
+
|
|
8
|
+
<inputs>
|
|
9
|
+
- BRIEF.md content (business, personas, brand essence, competitive landscape)
|
|
10
|
+
- All 4 discover chunks
|
|
11
|
+
- Audit chunks (if exist): evolution-map.md, equity-analysis.md
|
|
12
|
+
- User-confirmed archetype, positioning, and voice direction
|
|
13
|
+
- brand_mode from config.json
|
|
14
|
+
- style_base from config.json (array of preset slugs, may be empty)
|
|
15
|
+
- Output path
|
|
16
|
+
</inputs>
|
|
17
|
+
|
|
18
|
+
<methodology>
|
|
19
|
+
1. **Absorb context** — BRIEF.md for business/personas/essence, discover chunks for market/competition
|
|
20
|
+
2. **Define positioning** — 2-axis map, plot competitors, claim white space. Statement formula: "For {audience} who {need}, {brand} is the {category} that {benefit} because {reason}"
|
|
21
|
+
3. **Lock archetype** — primary + secondary from 12 Jungian archetypes. Justify with persona alignment and competitive gaps. Note shadow traits. If `style_base` is set, note the style direction in the visual tendencies section — connect the preset's character to the archetype (e.g. "The Sage archetype's clarity aligns with swiss-minimalist's structured restraint").
|
|
22
|
+
4. **Build platform** — Purpose (Why), Vision, Mission, Values, Promise. Each must be specific and ownable.
|
|
23
|
+
5. **Define voice** — 3-5 attributes with means/doesn't mean/examples. Map tone spectrum with context shifts. Include style rules.
|
|
24
|
+
6. **Build messaging** — core message → 3 supporting messages with proof points → elevator pitch → tagline directions → audience-segment mapping
|
|
25
|
+
|
|
26
|
+
## Quality Standards
|
|
27
|
+
- Archetype must align with persona needs and competitive gaps
|
|
28
|
+
- Positioning axes must matter to the target audience
|
|
29
|
+
- Values must be behavioral (actionable), not aspirational platitudes
|
|
30
|
+
- Voice attributes must be specific enough that two writers produce similar-sounding content
|
|
31
|
+
- Messaging must trace back to persona frustrations and aspirations from BRIEF.md
|
|
32
|
+
</methodology>
|
|
33
|
+
|
|
34
|
+
<references>
|
|
35
|
+
- `references/brand-archetypes.md` — 12 archetypes with traits, shadows, visual tendencies
|
|
36
|
+
- `references/positioning-frameworks.md` — positioning maps, brand pyramid
|
|
37
|
+
- `references/voice-tone.md` — voice attribute framework, tone spectrum, messaging matrix
|
|
38
|
+
</references>
|
|
39
|
+
|
|
40
|
+
<output>
|
|
41
|
+
Write 5 chunks + INDEX.md to the strategy directory (path provided by the skill that spawned you).
|
|
42
|
+
|
|
43
|
+
Each chunk follows the standard chunk format.
|
|
44
|
+
|
|
45
|
+
1. **`positioning.md`** — positioning statement + 2-axis map with competitors plotted + white space analysis
|
|
46
|
+
2. **`archetype.md`** — primary + secondary archetype, rationale, shadow traits, communication style, visual tendencies
|
|
47
|
+
3. **`brand-platform.md`** — Purpose (Why), Vision, Mission, Values, Promise
|
|
48
|
+
4. **`voice-and-tone.md`** — voice attributes (means/doesn't mean/examples), tone spectrum (scales + context shifts), do/don't chart, style rules, nomenclature
|
|
49
|
+
5. **`messaging.md`** — core message, 3 supporting messages with proof points, elevator pitch, 2-3 tagline directions, audience-segment mapping per persona
|
|
50
|
+
|
|
51
|
+
### INDEX.md
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
# Strategy
|
|
55
|
+
> Phase: strategy | Brand: {name} | Generated: {DATE}
|
|
56
|
+
|
|
57
|
+
| Chunk | File | ~Lines |
|
|
58
|
+
|-------|------|--------|
|
|
59
|
+
| Positioning | [positioning.md](./positioning.md) | ~{N} |
|
|
60
|
+
| Archetype | [archetype.md](./archetype.md) | ~{N} |
|
|
61
|
+
| Brand Platform | [brand-platform.md](./brand-platform.md) | ~{N} |
|
|
62
|
+
| Voice & Tone | [voice-and-tone.md](./voice-and-tone.md) | ~{N} |
|
|
63
|
+
| Messaging | [messaging.md](./messaging.md) | ~{N} |
|
|
64
|
+
```
|
|
65
|
+
</output>
|
|
@@ -2,14 +2,11 @@
|
|
|
2
2
|
name: gsp-brand-sync
|
|
3
3
|
description: Sync brand to match a project's shipped state — tokens, voice, visual patterns, personality
|
|
4
4
|
user-invocable: true
|
|
5
|
-
model: opus
|
|
6
|
-
effort: high
|
|
7
5
|
allowed-tools:
|
|
8
6
|
- Read
|
|
9
7
|
- Write
|
|
10
8
|
- Edit
|
|
11
9
|
- Bash
|
|
12
|
-
- Agent
|
|
13
10
|
- Glob
|
|
14
11
|
- Grep
|
|
15
12
|
- AskUserQuestion
|
|
@@ -29,12 +26,11 @@ Compare a project's shipped state against its source brand across all dimensions
|
|
|
29
26
|
|
|
30
27
|
**Input:** A project with a linked brand (via project config or `.design/branding/`)
|
|
31
28
|
**Output:** Updated brand tokens, strategy chunks, identity chunks, and style preset (as applicable)
|
|
32
|
-
**Agent:** `gsp-brand-syncer`
|
|
33
29
|
</objective>
|
|
34
30
|
|
|
35
31
|
<execution_context>
|
|
36
|
-
@${CLAUDE_SKILL_DIR}
|
|
37
|
-
@${CLAUDE_SKILL_DIR}
|
|
32
|
+
@${CLAUDE_SKILL_DIR}/../gsp-brand-guidelines/design-tokens.md
|
|
33
|
+
@${CLAUDE_SKILL_DIR}/chunk-format.md
|
|
38
34
|
</execution_context>
|
|
39
35
|
|
|
40
36
|
<rules>
|
|
@@ -53,18 +49,72 @@ Check that the brand has at least one of: `patterns/{brand-name}.yml`, `strategy
|
|
|
53
49
|
|
|
54
50
|
Verify the project codebase has shipped output — source files with components, copy, or styles.
|
|
55
51
|
|
|
56
|
-
## Step 1:
|
|
52
|
+
## Step 1: Analyze divergences
|
|
57
53
|
|
|
58
54
|
```bash
|
|
59
55
|
mkdir -p {BRAND_PATH}/sync
|
|
60
56
|
```
|
|
61
57
|
|
|
62
|
-
|
|
63
|
-
- `BRAND_PATH` and all available brand files ({brand-name}.yml, strategy chunks, identity chunks, foundation chunks)
|
|
64
|
-
- Project codebase location (working directory)
|
|
65
|
-
- **Output path:** `{BRAND_PATH}/sync/`
|
|
58
|
+
Run 4-dimension analysis directly. Read brand files first: `{BRAND_PATH}/patterns/{brand-name}.yml`, strategy chunks, identity chunks.
|
|
66
59
|
|
|
67
|
-
|
|
60
|
+
### Dimension 1: Token diff (quantitative)
|
|
61
|
+
|
|
62
|
+
Grep for token values in: `tailwind.config.*` (`theme.extend`), CSS custom properties in globals/variables/theme CSS, theme/token JS/TS files, hardcoded values in components. Compare each against brand `.yml`. Classify: **Changed** (value differs), **Added** (in project, not brand), **Removed** (in brand, not project). Skip equivalents and framework defaults.
|
|
63
|
+
|
|
64
|
+
### Dimension 2: Voice & tone (qualitative)
|
|
65
|
+
|
|
66
|
+
Read `{BRAND_PATH}/strategy/voice-and-tone.md` for attributes and tone spectrum. Grep project for user-facing strings — headings, button labels, error states, tooltips, onboarding, meta content. Sample 10-15 representative strings. Assess each voice attribute: does copy match? Note drift direction ("more casual", "more technical"). Flag new patterns not in spec.
|
|
67
|
+
|
|
68
|
+
### Dimension 3: Visual patterns (qualitative)
|
|
69
|
+
|
|
70
|
+
Read brand foundations and identity chunks. Glob/Grep components for layout patterns, component styling (radius, shadow, states), color application, typography hierarchy, imagery, motion. Classify each: **Aligned**, **Evolved** (refined), **Drifted** (diverged), **New** (not in brand).
|
|
71
|
+
|
|
72
|
+
### Dimension 4: Personality (qualitative)
|
|
73
|
+
|
|
74
|
+
Read `{BRAND_PATH}/strategy/archetype.md` and `positioning.md`. Assess holistically: does the product feel like the archetype? Has positioning shifted? Are shadow traits showing? Classify: **On-brand**, **Shifted** (name direction), **Stronger**. Connect evidence from dimensions 1-3.
|
|
75
|
+
|
|
76
|
+
### Quality standards
|
|
77
|
+
|
|
78
|
+
- Token divergences: exact values (brand vs project)
|
|
79
|
+
- Voice/visual assessments: cite file:line evidence
|
|
80
|
+
- Personality: connect to specific patterns from other dimensions
|
|
81
|
+
- Only flag genuine divergences, not noise
|
|
82
|
+
|
|
83
|
+
### Write report
|
|
84
|
+
|
|
85
|
+
Write `SYNC-REPORT.md` to `{BRAND_PATH}/sync/` with this structure:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
# Brand Sync Report
|
|
89
|
+
> Brand: {name} | Project: {directory} | Generated: {DATE}
|
|
90
|
+
|
|
91
|
+
## Tokens
|
|
92
|
+
| Token | Brand Value | Project Value | Status |
|
|
93
|
+
|-------|------------|---------------|--------|
|
|
94
|
+
|
|
95
|
+
**Summary:** {N} changed · {N} added · {N} removed
|
|
96
|
+
|
|
97
|
+
## Voice & Tone
|
|
98
|
+
### Divergences
|
|
99
|
+
- **{attribute}** — {aligned|drifted|new}
|
|
100
|
+
- Brand: "{spec}" | Project: "{reality}" | Direction: {drift}
|
|
101
|
+
- Evidence: {file:line}
|
|
102
|
+
### Overall: {N}/{N} attributes aligned
|
|
103
|
+
|
|
104
|
+
## Visual Patterns
|
|
105
|
+
### Divergences
|
|
106
|
+
- **{pattern}** — {aligned|evolved|drifted|new}
|
|
107
|
+
- Brand: "{spec}" | Project: "{reality}"
|
|
108
|
+
- Evidence: {file:line}
|
|
109
|
+
|
|
110
|
+
## Personality
|
|
111
|
+
- **Archetype:** {on-brand|shifted|stronger} — {assessment + evidence}
|
|
112
|
+
- **Positioning:** {holds|shifted} — {assessment if shifted}
|
|
113
|
+
|
|
114
|
+
## Update Map
|
|
115
|
+
| Dimension | File to Update | Change |
|
|
116
|
+
|-----------|---------------|--------|
|
|
117
|
+
```
|
|
68
118
|
|
|
69
119
|
## Step 2: Present findings
|
|
70
120
|
|
|
@@ -93,7 +143,7 @@ Use the Update Map from the sync report. For each confirmed change:
|
|
|
93
143
|
|
|
94
144
|
**Personality** — update `{BRAND_PATH}/strategy/archetype.md` and `positioning.md`. Update `brand-platform.md` if values/promise shifted.
|
|
95
145
|
|
|
96
|
-
Preserve chunk format per `
|
|
146
|
+
Preserve chunk format per `chunk-format.md`. Update INDEX.md files if chunks were added.
|
|
97
147
|
|
|
98
148
|
## Step 4: Summary
|
|
99
149
|
|
|
@@ -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,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsp-color
|
|
3
|
-
description: Design color systems — palettes, contrast, semantic mapping, dark mode
|
|
3
|
+
description: "Design color systems — palettes, contrast, semantic mapping, dark mode"
|
|
4
4
|
user-invocable: true
|
|
5
|
-
model: sonnet
|
|
6
5
|
allowed-tools:
|
|
7
6
|
- Read
|
|
8
7
|
- Write
|
|
@@ -15,22 +14,20 @@ allowed-tools:
|
|
|
15
14
|
You are a GSP color director. You build complete color systems — palette generation, OKLCH scales, WCAG contrast validation, semantic mapping, and dark mode.
|
|
16
15
|
|
|
17
16
|
This is a standalone composable skill. It works two ways:
|
|
18
|
-
1. **Standalone** — user runs `/gsp-color` directly for palette exploration
|
|
17
|
+
1. **Standalone** — user runs `/gsp-color` directly for palette exploration, contrast checking, or full system design
|
|
19
18
|
2. **As a building block** — the creative-director invokes `/gsp-color --enrich` to add technical precision to creative color choices
|
|
20
|
-
|
|
21
|
-
Absorbs the capabilities of the current `gsp-palette` (OKLCH generation) and the color audit mode of `gsp-accessibility` (contrast checking).
|
|
22
19
|
</context>
|
|
23
20
|
|
|
24
21
|
<objective>
|
|
25
|
-
Build
|
|
22
|
+
Build production-ready color palettes or full color systems from brand colors or user input.
|
|
26
23
|
|
|
27
|
-
**Input:** Hex colors
|
|
24
|
+
**Input:** Hex colors, `--preview`, `--enrich`, or interactive
|
|
28
25
|
**Output:** `color-system.md` chunk + `palettes.json` (OKLCH scales)
|
|
29
26
|
**Agent:** None — inline skill, deterministic palette generation + contrast math
|
|
30
27
|
</objective>
|
|
31
28
|
|
|
32
29
|
<execution_context>
|
|
33
|
-
@${CLAUDE_SKILL_DIR}
|
|
30
|
+
@${CLAUDE_SKILL_DIR}/chunk-format.md
|
|
34
31
|
</execution_context>
|
|
35
32
|
|
|
36
33
|
<rules>
|
|
@@ -40,66 +37,36 @@ Build a production-ready color system from brand colors or user input.
|
|
|
40
37
|
- Color names must be semantic (primary, secondary, accent, neutral) not literal (red, blue)
|
|
41
38
|
- All foreground/background pairs must report WCAG AA contrast ratios
|
|
42
39
|
- Dark mode mapping must maintain equivalent contrast relationships
|
|
40
|
+
- Foundation chunks follow chunk-format.md format exactly
|
|
43
41
|
</rules>
|
|
44
42
|
|
|
45
43
|
<process>
|
|
46
|
-
## Step 0:
|
|
47
|
-
|
|
48
|
-
| Input | Mode |
|
|
49
|
-
|-------|------|
|
|
50
|
-
| `/gsp-color --enrich` | Enrich existing color-system.md |
|
|
51
|
-
| `/gsp-color #FF5733 #3366FF` | Generate from hex values |
|
|
52
|
-
| `/gsp-color` | Interactive — explore and build |
|
|
53
|
-
|
|
54
|
-
## Step 1: Enrich mode (`--enrich`)
|
|
55
|
-
|
|
56
|
-
Read existing `{BRAND_PATH}/identity/color-system.md`. Extract chosen hex values and rationale.
|
|
57
|
-
|
|
58
|
-
Read `references/color-composition.md` for domain expertise.
|
|
59
|
-
|
|
60
|
-
Enrich the file with:
|
|
61
|
-
- OKLCH 11-stop scales via tints.dev API: `https://tints.dev/api/{colorName}/{hexWithout#}`
|
|
62
|
-
- WCAG AA contrast ratios for every semantic foreground/background pair
|
|
63
|
-
- Semantic color mapping (error, success, warning, info)
|
|
64
|
-
- Dark mode color mapping with equivalent contrast
|
|
65
|
-
- Write `palettes.json` alongside color-system.md
|
|
66
|
-
|
|
67
|
-
Overwrite `color-system.md` with enriched version. Preserve the creative rationale — add technical data around it.
|
|
68
|
-
|
|
69
|
-
## Step 2: Interactive mode (no args)
|
|
70
|
-
|
|
71
|
-
One `AskUserQuestion` at a time:
|
|
44
|
+
## Step 0: Parse mode
|
|
72
45
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
4. Confirm or iterate
|
|
46
|
+
| Input | Mode | Domain |
|
|
47
|
+
|-------|------|--------|
|
|
48
|
+
| `/gsp-color #hex [#hex...] --preview` | Preview scales | palette |
|
|
49
|
+
| `/gsp-color #hex [#hex...]` | Generate from hex | palette |
|
|
50
|
+
| `/gsp-color --enrich` | Enrich existing system | system |
|
|
51
|
+
| `/gsp-color` | Interactive full system | system |
|
|
80
52
|
|
|
81
|
-
## Step
|
|
53
|
+
## Step 1: Load domain
|
|
82
54
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
55
|
+
Read the domain file for the detected mode:
|
|
56
|
+
- **palette** mode → Read `${CLAUDE_SKILL_DIR}/domains/palette.md`
|
|
57
|
+
- **system** mode → Read `${CLAUDE_SKILL_DIR}/domains/system.md`
|
|
86
58
|
|
|
87
|
-
|
|
88
|
-
- Map brand colors to semantic roles (primary → CTAs, secondary → supporting, accent → highlights)
|
|
89
|
-
- Define standard semantic colors (error, success, warning, info)
|
|
90
|
-
- Map dark mode equivalents
|
|
59
|
+
For system mode, also read `${CLAUDE_SKILL_DIR}/references/color-composition.md`.
|
|
91
60
|
|
|
92
|
-
|
|
93
|
-
- Every text/background pair → WCAG AA ratio (4.5:1 normal, 3:1 large)
|
|
94
|
-
- Flag failures with suggested alternatives
|
|
61
|
+
## Step 2: Execute domain framework
|
|
95
62
|
|
|
96
|
-
|
|
63
|
+
Follow the loaded domain file's complete workflow — it contains all generation logic, API calls, output formats, and completion steps.
|
|
97
64
|
|
|
98
|
-
|
|
65
|
+
## Step 3: Write output
|
|
99
66
|
|
|
100
|
-
|
|
67
|
+
Write `color-system.md` + `palettes.json` to the resolved output path (skip if `--preview`).
|
|
101
68
|
|
|
102
|
-
## Step
|
|
69
|
+
## Step 4: Summary
|
|
103
70
|
|
|
104
|
-
Display
|
|
71
|
+
Display result summary and offer next steps per the domain file's completion section.
|
|
105
72
|
</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
|