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
@@ -30,7 +30,7 @@ Design 3 distinct logo directions for a brand.
30
30
  </objective>
31
31
 
32
32
  <execution_context>
33
- @${CLAUDE_SKILL_DIR}/../../references/chunk-format.md
33
+ @${CLAUDE_SKILL_DIR}/chunk-format.md
34
34
  </execution_context>
35
35
 
36
36
  <rules>
@@ -117,7 +117,7 @@ Resolve output path:
117
117
  - Within a project: `{PROJECT_PATH}/references/logo-directions.md`
118
118
  - Standalone: display output, offer to save
119
119
 
120
- Write following `references/chunk-format.md` format. Target: 100-140 lines.
120
+ Write following `chunk-format.md` format. Target: 100-140 lines.
121
121
 
122
122
  Structure:
123
123
  ```markdown
@@ -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
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: gsp-phase-transition
3
+ description: "Render phase transition screens — pipeline progress, completion banner, file tree. Invoked by pipeline skills at phase completion."
4
+ user-invocable: false
5
+ model: sonnet
6
+ allowed-tools:
7
+ - Read
8
+ - Glob
9
+ ---
10
+ <context>
11
+ Rendering utility invoked by pipeline skills at phase completion. Produces the visual transition — pipeline progress line, completion banner, file tree of outputs — then returns control to the calling skill for routing.
12
+
13
+ The calling skill provides phase name and output directory. This skill reads STATE.md, renders the transition, and returns. The calling skill handles routing (AskUserQuestion, E2E auto-invoke, etc.) after this skill completes.
14
+ </context>
15
+
16
+ <objective>
17
+ Render a phase transition screen showing pipeline progress, the completed phase, and output file tree.
18
+
19
+ **Input:** Phase name + output directory path from the invoking skill
20
+ **Output:** Terminal output with pipeline progress, completion banner, and file tree
21
+ **Agent:** None — inline rendering
22
+ </objective>
23
+
24
+ <process>
25
+ ## Step 0: Parse invocation context
26
+
27
+ The invoking skill provides:
28
+ - **Phase name** — which phase just completed (e.g., "discover", "strategy", "build")
29
+ - **Output directory** — path to the phase's output files
30
+
31
+ Look up the completion message from the defaults table. If the invoking skill provided a custom message, use that instead.
32
+
33
+ ## Step 1: Read STATE.md
34
+
35
+ Determine context by reading the brand or project STATE.md:
36
+ - Which pipeline (branding or project)?
37
+ - Which phases are complete?
38
+ - Brand/project name?
39
+
40
+ Use Glob to find STATE.md: `.design/branding/*/STATE.md` or `.design/projects/*/STATE.md`.
41
+
42
+ ## Step 2: Pipeline progress line (conditional)
43
+
44
+ Show the pipeline line **only when 2+ phases are complete**. If this is the first phase completed, skip the pipeline line.
45
+
46
+ ### Styling
47
+
48
+ - `◆` for completed phases
49
+ - `◈` for next phase
50
+ - `◇` for pending phases
51
+ - `───` connecting phases
52
+
53
+ ```
54
+ {brand-or-project-name}
55
+ ◆ discover ─── ◆ strategy ─── ◈ identity ─── ◇ guidelines
56
+ ```
57
+
58
+ ### Branding phases
59
+
60
+ `discover ─── strategy ─── identity ─── guidelines`
61
+
62
+ If audit phase exists (evolve mode), prepend: `audit ─── `
63
+
64
+ ### Project phases
65
+
66
+ `brief ─── research ─── design ─── critique ─── build ─── review`
67
+
68
+ If launch is in scope, append: ` ─── launch`
69
+
70
+ ## Step 3: Completion banner + file tree
71
+
72
+ ```
73
+ ◆ {phase} complete — {completion_message}
74
+
75
+ {phase_dir}/
76
+ ├── {file1}.md
77
+ ├── {file2}.md
78
+ └── INDEX.md
79
+
80
+ ──────────────────────────────
81
+ ```
82
+
83
+ Read the actual output directory to list real files.
84
+
85
+ ### File tree rules
86
+
87
+ - Root is the phase directory name followed by `/`
88
+ - Files sorted alphabetically, directories first
89
+ - INDEX.md always listed last
90
+ - Use `├──` for all items except the last, which uses `└──`
91
+ - Subdirectories show their contents with `│` continuation
92
+
93
+ ### Final phase
94
+
95
+ If all phases in the pipeline are complete, add ` fully pretty.` after the divider.
96
+
97
+ ## Default completion messages
98
+
99
+ ### Branding
100
+
101
+ | Phase | Message |
102
+ |-------|---------|
103
+ | audit | brand assessed |
104
+ | discover | market landscape mapped |
105
+ | strategy | brand platform defined |
106
+ | identity | visual system designed |
107
+ | guidelines | design system built |
108
+
109
+ ### Project
110
+
111
+ | Phase | Message |
112
+ |-------|---------|
113
+ | brief | project scoped |
114
+ | research | patterns and approaches researched |
115
+ | design | screens designed |
116
+ | critique | designs critiqued |
117
+ | build | code implemented |
118
+ | review | implementation validated |
119
+ | launch | campaign assets created |
120
+
121
+ ## Step 4: Return
122
+
123
+ Return control to the calling skill. Do NOT present routing options — the calling skill owns routing.
124
+ </process>
@@ -130,6 +130,6 @@ Update `{PROJECT_PATH}/STATE.md`:
130
130
 
131
131
  ## Step 5: Phase transition output
132
132
 
133
- Render phase transition (see `references/phase-transitions.md`).
133
+ Invoke `/gsp-phase-transition` with phase `brief` and output directory `{PROJECT_PATH}/brief/`.
134
134
  </process>
135
135
  </output>
@@ -52,6 +52,11 @@ Implement designs as production-ready code in the codebase via phased pipeline w
52
52
  @${CLAUDE_SKILL_DIR}/../../templates/phases/build.md
53
53
  </execution_context>
54
54
 
55
+ <rules>
56
+ - Always use `AskUserQuestion` for user interaction — never prompt via plain text
57
+ - One decision per question — never batch multiple questions in a single message
58
+ </rules>
59
+
55
60
  <process>
56
61
  ## Step 0: Resolve project and brand
57
62
 
@@ -110,9 +115,9 @@ After scaffold completes, verify `{PROJECT_PATH}/build/SCAFFOLD-LOG.md` exists.
110
115
 
111
116
  ## Step 2.5: Load build references
112
117
 
113
- Read these reference files (relative to skill dir `${CLAUDE_SKILL_DIR}/../../references/`):
114
- - `visual-effects.md`
115
- - `block-patterns.md`
118
+ Read these reference files:
119
+ - `${CLAUDE_SKILL_DIR}/visual-effects.md`
120
+ - `${CLAUDE_SKILL_DIR}/../gsp-project-design/block-patterns.md`
116
121
 
117
122
  Hold their content for inlining into agent prompts in Steps 3 and 5.
118
123
 
@@ -126,7 +131,7 @@ Spawn `gsp-builder` agent with **execution_mode: foundations**.
126
131
 
127
132
  | File | Purpose |
128
133
  |------|---------|
129
- | `{BRAND_PATH}/patterns/{brand-name}.yml` | Token values only — used with `references/token-mapping.md` to generate CSS variables. Do NOT re-read patterns/constraints/effects from here — those are in STYLE.md. |
134
+ | `{BRAND_PATH}/patterns/{brand-name}.yml` | Token values only — used with `gsp-brand-guidelines/token-mapping.md` to generate CSS variables. Do NOT re-read patterns/constraints/effects from here — those are in STYLE.md. |
130
135
  | `{BRAND_PATH}/patterns/STYLE.md` | Design law — philosophy, patterns, constraints, effects, bold bets, implementation hints (if exists; fall back to `{brand-name}.md`) |
131
136
  | `{PROJECT_PATH}/brief/target-adaptations.md` | Component adaptations for target |
132
137
  | `.design/system/STACK.md` | Stack state |
@@ -348,7 +353,7 @@ Update `{PROJECT_PATH}/STATE.md`:
348
353
 
349
354
  ### Phase transition output
350
355
 
351
- Render phase transition (see `references/phase-transitions.md`). Include screen count and build status in the output.
356
+ Invoke `/gsp-phase-transition` with phase `build` and output directory `{PROJECT_PATH}/build/`.
352
357
 
353
358
  ---
354
359
 
@@ -70,9 +70,9 @@ Read `{PROJECT_PATH}/config.json` to get `implementation_target`, `design_scope`
70
70
 
71
71
  ## Step 1.8: Load critique references
72
72
 
73
- Read these reference files (relative to skill dir `${CLAUDE_SKILL_DIR}/../../references/`):
74
- - `wcag-checklist.md`
75
- - `color-composition.md`
73
+ Read these reference files:
74
+ - `${CLAUDE_SKILL_DIR}/../gsp-accessibility-audit/wcag-checklist.md`
75
+ - `${CLAUDE_SKILL_DIR}/../gsp-color/references/color-composition.md`
76
76
 
77
77
  Hold their content for inlining into agent prompts in Step 2.
78
78
 
@@ -92,7 +92,7 @@ Hold their content for inlining into agent prompts in Step 2.
92
92
  - **Content of** BRIEF.md
93
93
  - **Content of** color composition reference (loaded in Step 1.8)
94
94
  - Critique output template (from execution_context)
95
- - `references_path`: `${CLAUDE_SKILL_DIR}/../../references/` — for supplementary Read access to visual-taste.md, anti-patterns.md
95
+ - `references_path`: `${CLAUDE_SKILL_DIR}/` — for supplementary Read access to visual-taste.md, anti-patterns.md
96
96
  - Output path: `{PROJECT_PATH}/critique/`
97
97
 
98
98
  **Agent 2: gsp-accessibility-auditor** — Check if `{PROJECT_PATH}/critique/accessibility-audit.md` already exists from a prior `/gsp-accessibility` run. If yes, skip spawning the accessibility auditor — reuse the existing output. If no, pass in the agent prompt:
@@ -166,7 +166,7 @@ If verdict is **Fail**:
166
166
 
167
167
  ## Step 6: Phase transition output
168
168
 
169
- Render phase transition (see `references/phase-transitions.md`). This phase has pass/fail variants — the reference covers both.
169
+ Invoke `/gsp-phase-transition` with phase `critique` and output directory `{PROJECT_PATH}/critique/`.
170
170
 
171
171
  If critique identified brand-level issues (palette contrast, typography weight, spacing scale), note: "Some issues are brand-level — run `/gsp-brand-refine` to adjust tokens without re-running identity."
172
172
  </process>
@@ -110,7 +110,7 @@ Does it feel like a $150k agency build? Score 1 if it looks AI-generated or temp
110
110
 
111
111
  ## How to Use
112
112
 
113
- This reference is loaded by the critique agent alongside `references/nielsen-heuristics.md`. During critique:
113
+ This reference is loaded by the critique agent alongside `nielsen-heuristics.md`. During critique:
114
114
 
115
115
  1. Score each of the 15 taste items 1-5 with specific examples from the design
116
116
  2. Calculate total and map to sophistication level
@@ -155,6 +155,6 @@ Update `{PROJECT_PATH}/STATE.md`:
155
155
 
156
156
  ## Step 5: Phase transition output
157
157
 
158
- Render phase transition (see `references/phase-transitions.md`).
158
+ Invoke `/gsp-phase-transition` with phase `design` and output directory `{PROJECT_PATH}/design/`.
159
159
  </process>
160
160
  </output>
@@ -132,6 +132,6 @@ Update `{PROJECT_PATH}/STATE.md`:
132
132
 
133
133
  ## Step 4: Phase transition output
134
134
 
135
- Render phase transition (see `references/phase-transitions.md`).
135
+ Invoke `/gsp-phase-transition` with phase `research` and output directory `{PROJECT_PATH}/research/`.
136
136
  </process>
137
137
  </output>
@@ -171,7 +171,7 @@ If verdict is **Fail**:
171
171
 
172
172
  ## Step 6: Phase transition output
173
173
 
174
- Render phase transition (see `references/phase-transitions.md`). This phase has pass/fail variants — the reference covers both.
174
+ Invoke `/gsp-phase-transition` with phase `review` and output directory `{PROJECT_PATH}/review/`.
175
175
 
176
176
  If review identified brand-level issues (token values that don't work in context), note: "Some issues are brand-level — run `/gsp-brand-refine` to adjust tokens without re-running identity."
177
177
  </process>
@@ -30,7 +30,7 @@ Through a sequential one-question-at-a-time conversation, gather a complete brie
30
30
  </objective>
31
31
 
32
32
  <execution_context>
33
- @${CLAUDE_SKILL_DIR}/../../references/questioning.md
33
+ @${CLAUDE_SKILL_DIR}/questioning.md
34
34
  </execution_context>
35
35
 
36
36
  <rules>
@@ -29,15 +29,15 @@ Apply a named style preset to produce production-ready design tokens and foundat
29
29
 
30
30
  <execution_context>
31
31
  @${CLAUDE_SKILL_DIR}/styles/INDEX.yml
32
- @${CLAUDE_SKILL_DIR}/../../references/design-tokens.md
33
- @${CLAUDE_SKILL_DIR}/../../references/chunk-format.md
32
+ @${CLAUDE_SKILL_DIR}/../gsp-brand-guidelines/design-tokens.md
33
+ @${CLAUDE_SKILL_DIR}/chunk-format.md
34
34
  @${CLAUDE_SKILL_DIR}/../../templates/phases/patterns.md
35
35
  </execution_context>
36
36
 
37
37
  <rules>
38
38
  - Always use `AskUserQuestion` for user interaction — never prompt via plain text
39
39
  - One decision per question — never batch multiple questions in a single message
40
- - Token values in `.yml` presets follow W3C Design Tokens format from `references/design-tokens.md`
40
+ - Token values in `.yml` presets follow W3C Design Tokens format from `gsp-brand-guidelines/design-tokens.md`
41
41
  - When mixing styles, later style values override earlier ones (last-wins precedence)
42
42
  - Never mix clashing styles — check the compatibility matrix first
43
43
  </rules>
@@ -128,7 +128,7 @@ Copy the preset `.yml` to the output path as the brand's style source:
128
128
 
129
129
  If a `.yml` already exists at the output path, use `AskUserQuestion`: "A style preset already exists — overwrite?" with options **Overwrite** and **Cancel**. If cancelled, skip and proceed.
130
130
 
131
- The `.yml` IS the token source of truth — no separate `tokens.json` needed. The builder generates CSS variables from it at build time using `references/token-mapping.md`.
131
+ The `.yml` IS the token source of truth — no separate `tokens.json` needed. The builder generates CSS variables from it at build time using `gsp-brand-guidelines/token-mapping.md`.
132
132
 
133
133
  ## Step 7: Write STYLE.md
134
134
 
@@ -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
@@ -0,0 +1,124 @@
1
+ # Style Preset YAML Schema
2
+
3
+ Template for brand-derived style preset files (`{brand-name}.yml`). All token values must trace to foundation chunks. See any preset in `styles/` for a complete example.
4
+
5
+ ```yaml
6
+ name: {brand-slug}
7
+ description: {one-line brand aesthetic summary}
8
+ tags: [5-8 fuzzy-match tags for style discovery]
9
+ source: brand # marks this as brand-derived, not a GSP preset
10
+
11
+ tokens:
12
+ color:
13
+ primary: "{hex}" # from identity/color-system.md
14
+ secondary: "{hex}"
15
+ accent: "{hex}"
16
+ background: "{hex}"
17
+ surface: "{hex}"
18
+ on-primary: "{hex}"
19
+ on-background: "{hex}"
20
+ error: "{hex}"
21
+ success: "{hex}"
22
+ warning: "{hex}"
23
+ info: "{hex}"
24
+ muted: "{hex}"
25
+
26
+ typography:
27
+ font-family-primary: "{font stack}" # from identity/typography.md
28
+ font-family-mono: "{font stack}"
29
+ font-weight-heading: {number}
30
+ font-weight-body: {number}
31
+ font-size-base: "{px}"
32
+ line-height-base: {number}
33
+
34
+ shape:
35
+ border-radius-sm: "{px}" # from patterns/component specs
36
+ border-radius-md: "{px}"
37
+ border-radius-lg: "{px}"
38
+ border-width: "{px}"
39
+ border-color: "{hex}"
40
+
41
+ elevation:
42
+ shadow-sm: "{value}"
43
+ shadow-md: "{value}"
44
+ shadow-lg: "{value}"
45
+ shadow-xl: "{value}"
46
+
47
+ spacing:
48
+ base: {number}
49
+ scale: [{values}]
50
+
51
+ motion:
52
+ duration-fast: "{ms}"
53
+ duration-normal: "{ms}"
54
+ easing: "{value}"
55
+
56
+ dark_mode:
57
+ color:
58
+ background: "{hex}"
59
+ surface: "{hex}"
60
+ on-background: "{hex}"
61
+ border-color: "{hex}"
62
+ muted: "{hex}"
63
+
64
+ intensity:
65
+ variance: {1-10} # layout creativity — 1=strict grid, 10=experimental
66
+ motion: {1-10} # animation energy — 1=instant/none, 10=cinematic
67
+ density: {1-10} # content packing — 1=airy/spacious, 10=dense/compact
68
+
69
+ patterns:
70
+ card:
71
+ border: "{spec}"
72
+ shadow: "{spec}"
73
+ radius: "{spec}"
74
+ background: "{spec}"
75
+ padding: "{spec}"
76
+ button-primary:
77
+ background: "{spec}"
78
+ border: "{spec}"
79
+ text: "{spec}"
80
+ radius: "{spec}"
81
+ button-secondary:
82
+ background: "{spec}"
83
+ border: "{spec}"
84
+ text: "{spec}"
85
+ radius: "{spec}"
86
+ input:
87
+ border: "{spec}"
88
+ radius: "{spec}"
89
+ background: "{spec}"
90
+ focus: "{spec}"
91
+ badge:
92
+ shape: "{spec}"
93
+ text: "{spec}"
94
+ nav:
95
+ style: "{spec}"
96
+ links: "{spec}"
97
+ layout:
98
+ archetype: "{name}" # centered, asymmetric-grid, sidebar, dashboard, editorial
99
+ max-width: "{class}"
100
+ section-spacing: "{spec}"
101
+ grid-gap: "{spec}"
102
+ surfaces: "{spec}" # background treatments (grid, dots, gradient, clean)
103
+ decoration: "{spec}" # decorative elements (shapes, lines, labels)
104
+
105
+ constraints:
106
+ never:
107
+ - "{thing to never do — hard boundary}"
108
+ always:
109
+ - "{thing to always do — non-negotiable}"
110
+
111
+ effects:
112
+ interaction-vocabulary: [{named-techniques}]
113
+ hover:
114
+ card: "{technique + spec}"
115
+ button: "{technique + spec}"
116
+ active:
117
+ button: "{technique + spec}"
118
+ focus:
119
+ general: "{technique + spec}"
120
+ transition: "{duration + easing spec}"
121
+
122
+ compatibility: [] # leave empty for brand styles
123
+ clashes: [] # leave empty for brand styles
124
+ ```