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
|
@@ -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}
|
|
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 `
|
|
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
|
-
|
|
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
|
|
114
|
-
-
|
|
115
|
-
-
|
|
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 `
|
|
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
|
-
|
|
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
|
|
74
|
-
-
|
|
75
|
-
-
|
|
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}
|
|
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
|
-
|
|
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 `
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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>
|
|
@@ -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}
|
|
33
|
-
@${CLAUDE_SKILL_DIR}
|
|
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 `
|
|
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 `
|
|
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
|
+
```
|