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
@@ -1,234 +0,0 @@
1
- ---
2
- name: gsp-typescale
3
- description: Generate a mathematical type scale — standalone or as a building block for identity
4
- user-invocable: true
5
- model: sonnet
6
- allowed-tools:
7
- - Read
8
- - Write
9
- - Bash
10
- - AskUserQuestion
11
- - WebSearch
12
- ---
13
- <context>
14
- You are a GSP type scale generator. You produce a complete typography system from a base size, ratio, and font family — including fluid responsive sizing, vertical rhythm, Tailwind/shadcn integration, and accessibility-compliant defaults. Downstream agents (creative-director, system-architect, builder) consume the output files.
15
-
16
- This is a standalone composable skill. It works two ways:
17
- 1. **Standalone** — user runs `/gsp-typescale "Inter" --ratio 1.25` directly, gets a production-ready type system
18
- 2. **As a building block** — identity phase detects existing typography files and reuses them
19
-
20
- Visual companion: https://typescale.com/ — users can preview ratios interactively there, then feed the values here.
21
- </context>
22
-
23
- <objective>
24
- Generate a production-ready typography system with fluid responsive sizing, vertical rhythm, and framework-native output.
25
-
26
- **Input:** Font family, ratio, and options (args or interactive)
27
- **Output:** `typography.md` foundation chunk + `tailwind.typography.css` (Tailwind/shadcn) or `typescale.css` (vanilla) in the target directory
28
- **Agent:** None — mathematical scale generation, handled inline
29
- </objective>
30
-
31
- <execution_context>
32
- @${CLAUDE_SKILL_DIR}/../../references/chunk-format.md
33
- @${CLAUDE_SKILL_DIR}/../../references/typography-scales.md
34
- </execution_context>
35
-
36
- <rules>
37
- - Always use `AskUserQuestion` for user interaction — never prompt via plain text
38
- - One decision per question — never batch multiple questions in a single message
39
- - Foundation chunks follow `references/chunk-format.md` format exactly
40
- - All sizes include px, rem, AND fluid clamp() values for headings
41
- - Line heights snap to a 4px grid for vertical rhythm (body 24px = 6 × 4px)
42
- - Letter spacing follows the size-dependent curve: negative for large type, positive for small type, wide for all-caps (see reference)
43
- - CSS output defaults to Tailwind v4 / shadcn format unless `--vanilla` is passed
44
- - WCAG 2.2 AA compliance: body line-height ≥ 1.5, layout must survive SC 1.4.12 text spacing overrides
45
- </rules>
46
-
47
- <process>
48
- ## Step 0: Parse invocation
49
-
50
- Read the user's input to determine the mode:
51
-
52
- | Input | Mode |
53
- |-------|------|
54
- | `/gsp-typescale "Inter" --ratio 1.25` | Direct — font and ratio from args |
55
- | `/gsp-typescale --from-style cyberpunk` | From style — extract typography from a preset |
56
- | `/gsp-typescale` | Interactive — ask for inputs |
57
- | `/gsp-typescale --list-ratios` | List — show available ratios |
58
- | `/gsp-typescale --preview "Inter" --ratio 1.25` | Preview — show scale without writing files |
59
-
60
- Additional flags (combinable with any mode):
61
- - **--vanilla** — output plain CSS custom properties instead of Tailwind format
62
- - **--fluid** — use clamp()-based fluid sizing instead of breakpoint steps (default: fluid)
63
- - **--no-fluid** — use breakpoint steps only, no clamp()
64
- - **--grid 4** — vertical rhythm grid unit in px (default: 4)
65
-
66
- ## Step 1: List ratios mode (`--list-ratios`)
67
-
68
- If `--list-ratios`, display the built-in ratios with practical context:
69
-
70
- ```
71
- /gsp-typescale — ratios
72
- ═══════════════════════════════════════
73
-
74
- Name Ratio Character Best for
75
- ──────────────────────────────────────────────────────────────────
76
- minor-second 1.067 Nearly invisible steps Dense data UIs, admin panels
77
- major-second 1.125 Gentle, functional Documentation, dashboards
78
- minor-third 1.200 Balanced, versatile Most product UIs (Polaris uses this)
79
- major-third 1.250 Clear hierarchy Marketing + product hybrid
80
- perfect-fourth 1.333 Strong contrast Content-heavy sites, blogs
81
- augmented-fourth 1.414 Dramatic Editorial, magazine layouts
82
- perfect-fifth 1.500 Very dramatic Landing pages, hero sections
83
- golden-ratio 1.618 Maximum drama Art, luxury, display-heavy
84
-
85
- ──────────────────────────────────────────────────────────────────
86
- Usage: /gsp-typescale "Inter" --ratio 1.25
87
- Preview interactively: https://typescale.com/
88
- ```
89
-
90
- Stop here. Do not write any files.
91
-
92
- ## Step 2: Collect inputs
93
-
94
- ### Direct mode (args provided)
95
-
96
- Parse from the invocation:
97
- - **Font family** — quoted string (e.g., `"Inter"`)
98
- - **--ratio** — scale ratio (e.g., `1.25`)
99
- - **--secondary** — optional secondary font (e.g., `--secondary "Merriweather"`)
100
- - **--mono** — optional monospace font (e.g., `--mono "Geist Mono"`)
101
- - **--base** — optional base size in px (default: `16`)
102
- - **--weights** — optional weight list (e.g., `--weights 400,500,700`)
103
- - **--line-height** — optional base line-height override (default: `1.5`)
104
- - **--letter-spacing** — optional base letter-spacing override (default: `0`)
105
-
106
- ### From-style mode (`--from-style`)
107
-
108
- Read the style preset YAML from `../gsp-style/styles/{name}.yml`. Extract:
109
- - `typography.font-family-primary` → primary font
110
- - `typography.font-family-mono` → mono font
111
- - `typography.font-size-base` → base size
112
- - `typography.font-weight-heading` → heading weight
113
- - `typography.font-weight-body` → body weight
114
- - `typography.line-height-base` → base line height
115
-
116
- Calculate the implied ratio from the preset's type scale if present, or default to major-third (1.25).
117
-
118
- ### Interactive mode (no args)
119
-
120
- Use `AskUserQuestion` for each input:
121
-
122
- 1. **Primary font** — offer: Inter, Geist Sans, Plus Jakarta Sans, DM Sans, Space Grotesk, Instrument Serif, Custom
123
- 2. **Scale ratio** — offer: minor-third (1.2), major-third (1.25), perfect-fourth (1.333), augmented-fourth (1.414), Custom. Link https://typescale.com/ for preview.
124
- 3. **Base size** — default 16px unless specified
125
-
126
- ## Step 3: Calculate type scale
127
-
128
- Generate a 9-level scale: `size = base × ratio^n`. Round px to nearest 0.5px, rem = `px / 16`.
129
-
130
- | Level | Exponent | Tailwind | Purpose |
131
- |-------|----------|----------|---------|
132
- | Display | 5 | `text-6xl`–`text-7xl` | Hero headlines |
133
- | H1 | 4 | `text-4xl` | Page titles |
134
- | H2 | 3 | `text-3xl` | Section headings |
135
- | H3 | 2 | `text-2xl` | Subsection headings |
136
- | H4 | 1 | `text-xl` | Minor headings |
137
- | body-large | 0.5* | `text-lg` | Lead paragraphs |
138
- | body | 0 | `text-base` | Default body (= base) |
139
- | body-small | -1 | `text-sm` | Secondary text |
140
- | caption | -2 | `text-xs` | Labels, helper text |
141
- | overline | -2 | `text-xs` | All-caps labels (= caption size) |
142
-
143
- *body-large uses half-step exponent to bridge body → H4 gap.
144
-
145
- ### Line height per level (snapped to 4px grid)
146
-
147
- Formula: `ceil(fontSize * targetRatio / 4) * 4` — every line-height is a multiple of 4px.
148
-
149
- | Level | Target ratio |
150
- |-------|-------------|
151
- | Display | 1.1 |
152
- | H1 | 1.15 |
153
- | H2 | 1.2 |
154
- | H3 | 1.25 |
155
- | H4 | 1.3 |
156
- | body-large | 1.5 |
157
- | body | 1.5 (anchor: e.g. 24px = 6 × 4px) |
158
- | body-small | 1.5 |
159
- | caption | 1.4 |
160
- | overline | 1.5 |
161
-
162
- If user provided `--line-height`, use it as the body target ratio and adjust proportionally.
163
-
164
- ### Letter spacing per level (size-dependent curve)
165
-
166
- Based on the principle: small text needs more space, large text needs less. Reference: Apple SF Pro tracking, Tailwind defaults.
167
-
168
- | Level | Letter spacing | Tailwind token | Rationale |
169
- |-------|---------------|----------------|-----------|
170
- | Display | -0.025em | `tracking-tighter` | Tighten large type |
171
- | H1 | -0.025em | `tracking-tight` | |
172
- | H2 | -0.025em | `tracking-tight` | |
173
- | H3 | -0.015em | `tracking-tight` | |
174
- | H4 | -0.01em | `tracking-tight` | |
175
- | body-large | 0 | `tracking-normal` | Neutral |
176
- | body | 0 | `tracking-normal` | |
177
- | body-small | 0.01em | `tracking-normal` | Slightly open small text |
178
- | caption | 0.015em | `tracking-wide` | |
179
- | overline | 0.1em | `tracking-wider` | Wide-tracked for all-caps |
180
-
181
- ## Step 3.5: Calculate fluid type values
182
-
183
- For headings (Display → H4), generate `clamp()` values scaling between 375px (mobile) and 1280px (desktop). Mobile uses a ratio two steps down from the chosen ratio. Body and below stay fixed.
184
-
185
- **Ratio step-down map:**
186
-
187
- ```
188
- golden-ratio → perfect-fifth → augmented-fourth
189
- perfect-fifth → augmented-fourth → perfect-fourth
190
- augmented-fourth → perfect-fourth → major-third
191
- perfect-fourth → major-third → minor-third
192
- major-third → minor-third → major-second
193
- minor-third → major-second → minor-second
194
- major-second → minor-second → minor-second
195
- minor-second → minor-second → minor-second (floor)
196
- ```
197
-
198
- If `--no-fluid` is passed, skip clamp() and use breakpoint-only `@media` rules instead.
199
-
200
- ## Step 4: Preview mode (`--preview`)
201
-
202
- If `--preview`, display all 10 levels in a table with columns: Level, Mobile px, Desktop px, Fluid clamp(), Weight, LH, LS. Show base/ratio/fluid range header. Footer: grid unit, body line-height anchor, usage hint to write files. Stop here — do not write any files.
203
-
204
- ## Step 5: Resolve output path
205
-
206
- Determine where to write the typography output:
207
-
208
- ### Within a brand identity
209
- If a brand context exists (`.design/branding/{brand}/`):
210
- - Write to `{BRAND_PATH}/identity/`
211
- - Typography files sit alongside other identity artifacts
212
-
213
- ### Standalone (no brand context)
214
- - Write to `.design/branding/_typescale/`
215
- - Create minimal directory structure
216
-
217
- ## Step 6: Write typography.md
218
-
219
- Write `{OUTPUT_PATH}/typography.md` as a foundation chunk per `references/chunk-format.md`. Required sections: Font Families (with Google Fonts URL), Type Scale (all 10 levels — px, rem, clamp, weight, LH, LS, Tailwind class), shadcn/ui Typography Classes, Vertical Rhythm (grid unit + spacing tokens), Weights, Accessibility (WCAG 2.2 AA), Variable Font Notes (conditional), Modern CSS (`text-wrap: balance/pretty`), Related.
220
-
221
- ## Step 7: Write CSS output
222
-
223
- ### Tailwind / shadcn mode (default)
224
-
225
- Write `{OUTPUT_PATH}/tailwind.typography.css` — Tailwind v4 `@theme` extension. Include: header comment, Google Fonts `@import`, `--font-sans`/`--font-mono` + custom `--text-{level}` tokens (with `--line-height`, `--letter-spacing`, `--font-weight` sub-tokens), `:root` fluid clamp() properties (rem-based min/max only — never pure vw per WCAG 1.4.4), utility classes (`.text-display` through `.text-overline`), optical sizing + dark mode antialiasing, `text-wrap: balance` headings / `pretty` paragraphs.
226
-
227
- ### Vanilla mode (`--vanilla`)
228
-
229
- Write `{OUTPUT_PATH}/typescale.css` instead — plain CSS custom properties (no Tailwind syntax). Include: Google Fonts import, `:root` with font families, weights, fluid font sizes (clamp, rem-based), 4px grid-snapped line heights, letter spacing, vertical rhythm tokens.
230
-
231
- ## Step 8: Completion output
232
-
233
- Show: header (`/gsp-typescale — {font} @ {ratio}`), file tree (typography.md + CSS file), scale summary (ratio, range, levels, fluid, grid). Then `AskUserQuestion`: Generate palette → `/gsp-palette`, Apply a full style → `/gsp-style`, Continue to identity → `/gsp-brand-identity`, Done.
234
- </process>