sheleg-design-skill 1.58.4 → 1.59.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/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.59.0] - 2026-09-03
4
+
5
+ ### Added
6
+
7
+ - **`CREATIVE_DIRECTOR.md` — the decision layer, and it is now the skill's first
8
+ act.** Everything else in this bundle is a craft reference. This is what says
9
+ which craft, whose tools, and how anyone would know it worked. It exists because
10
+ the failure mode of an agent doing design is not ugliness but **plausibility**: a
11
+ page that looks like a design, answers no stated need, was built with whatever
12
+ skill happened to fire first, and cannot be argued with because nobody wrote down
13
+ what it was supposed to do.
14
+
15
+ Five acts. **Act 1** is a four-line brief whose fourth line is a **falsifier** —
16
+ what would prove this design failed, stated so it could actually happen — plus
17
+ the mode table, where a redesign enters at `verify` and `a11y` because you
18
+ measure the thing you are replacing before you take it away, and an update
19
+ changes a token rather than the components that read it. **Act 2** casts the
20
+ tools by MEASURING with `npx sshlg-skills pack design --lane <lane>` rather than
21
+ recalling, and prints the cast before starting. **Act 3** runs two variations in
22
+ parallel subagents with disjoint casts — under the rule that keeps it honest,
23
+ which is that **the rubric is written before either variation exists**; build two
24
+ and then decide what you were comparing and you have picked the one you liked and
25
+ written the justification backwards. It also names when NOT to fork, because two
26
+ variations of a spacing fix is theatre. **Act 4** grafts what the loser did
27
+ better and records which tool produced which trait, so the next casting decision
28
+ is better than this one. **Act 5** splits validation into alignment (does it
29
+ answer the brief) and quality (eight measurable checks, each producing a number a
30
+ second reader can reproduce) — and states the limit rather than implying it:
31
+ **taste is not on that table**, and where two directions both pass, that is a
32
+ person's decision and the honest output is the pair plus the trade-off.
33
+
34
+ - The director is held by the validator like every other companion: it ships in the
35
+ bundle, is linked from `SKILL.md`, is mirrored into `.cursor/`, and carries a
36
+ derived `## Contents` list. **Its absence would otherwise be invisible** — the
37
+ craft references still read fine on their own, which is exactly why the layer
38
+ above them has to be held mechanically.
39
+
40
+ - Three findings from this repository's own gate, all real: the bundle file list in
41
+ `install.sh` did not carry the new file, the derived contents list was missing,
42
+ and the draft cited a repository path (`docs/ux/…`) that dead-ends for every
43
+ reader who installed the bundle rather than cloning the repo. The last one is
44
+ reworded to point at `/ux` instead.
45
+
46
+
3
47
  ## [1.58.4] - 2026-09-03
4
48
 
5
49
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sheleg-design-skill",
3
- "version": "1.58.4",
3
+ "version": "1.59.0",
4
4
  "description": "Design taste as an installable agent skill. Cinematic scroll-driven landing pages built on one scroll clock and layered degrade-to-calm motion, a motion doctrine that decides whether to animate before it decides how, three calibration dials, and thirty-nine locked style packs with ready-made design tokens — instrument-console, editorial-luxury, workbench, briefing-room, atrium, orchard, outrank, babylove, patchbay, nameplate, field-notes, cyclorama, showroom, blueprint, prism, maquette, scoreboard, datasheet, manpage, pigeonhole, roster, ora, tenor, paperclip, ledger, router, daylight, notation, almanac, vitrine, proscenium, awning, bulletin, rimlight, onionskin, deskmate, test-drive, surveyor and chorus. Colour, slop and fork-reciprocity gates run as scripts, not opinions. Works with Cursor, Claude Code and any agent that reads a SKILL.md.",
5
5
  "bin": {
6
6
  "sheleg-design-skill": "bin/cli.js"
@@ -3,7 +3,7 @@
3
3
  "name": "sheleg-design",
4
4
  "displayName": "SHELEG Design",
5
5
  "description": "SHELEG Design methodology: cinematic scroll-driven landing pages (single scroll clock, layered degrade-to-calm motion, WebGL particle formations), a motion doctrine that decides whether to animate before it decides how, and thirty-nine pluggable visual style packs, each with a ready-made token layer — instrument-console (near-black aerospace console; technical systems and infrastructure), editorial-luxury (cream and espresso; editorial, research, premium B2B), workbench (quiet light/dark UI; dashboards, admin, internal tools), briefing-room (dark 16:9 deck; investor and board presentations), atrium (cream daylight; consumer health and high-trust DTC), babylove (white with orange; SEO SaaS, long time-to-value, disconnected states), patchbay (black with mint-cyan; engines, buses, pipelines, OSS front doors), nameplate (cool slab with coral; press, certification and third-party trust), rimlight (white with blue light; studios, services and case studies), onionskin (white working sheet; developer and AI infrastructure), deskmate (warm beige with a dusk bleed; AI coworkers and chat-native agents), test-drive (warm paper with one coral; self-serve SaaS proven by the live product), surveyor (peach paper with teal and pink; visibility, monitoring and benchmark tools), chorus (warm paper under a crosshair grid, with a cut-corner bubble; AI-search visibility, brand monitoring and community marketing), outrank (white with violet; one brand across marketing and product), orchard (warm oat slabs; friendly biotech and wellness), field-notes (ruled green paper; auditable open-source developer tools), showroom (white gallery; product-led companies selling the app), blueprint (white technical stock; vector, storage and query infrastructure), prism (iridescent hard edge; command-first OSS infrastructure), maquette (near-black table; enterprise data infrastructure), cyclorama (looping pastel field; applied-AI consultancies), scoreboard (warm paper; growth, ads and accumulating metrics), datasheet (off-white specification; fraud, identity and device intelligence), manpage (cream manual; APIs, SDKs, CLIs and MCP servers), pigeonhole (filed white field; inbox, ticket and CRM triage), roster (faint square grid; platforms sold through who uses them), ora (warm coal; machine verdicts, audits and protocol traces), tenor (warm management paper; agent operations and autonomous back office), ledger (cream ruled console; analysts, BI and warehouse agents), paperclip (monochrome coal; orchestrators, schedulers and job runners), awning (white commerce forecourt; storefront, payroll and billing platforms), router (pale console with hairlines; dashboard, billing and inventory surfaces), daylight (bright portal with one shadow; client onboarding and service portals), notation (restrained technical hairlines; OSS, docs and developer workspaces), almanac (oatmeal editorial paper; manifestos and category-defining pages), vitrine (serif trust display; evaluated B2B, security and compliance), proscenium (white demo sequence; product tours and launch pages), bulletin (cheerful outlined bands; broad SMB and agency platforms). Ships the sheleg-design skill, the architecture reference, the motion doctrine, the Figma and Claude Design bridges, AI-surface patterns, the packs' token CSS, and the /sheleg-design command.",
6
- "version": "1.58.4",
6
+ "version": "1.59.0",
7
7
  "author": {
8
8
  "name": "ssheleg",
9
9
  "url": "https://x.com/sshlg93"
@@ -0,0 +1,239 @@
1
+ # Creative Director — the first act, before any pixel
2
+
3
+ This is what `/sheleg-design` opens with. Everything else in this bundle is a
4
+ craft reference; this is the decision layer that says **which craft, whose tools,
5
+ and how you will know it worked**.
6
+
7
+ It exists because the failure mode of an agent doing design is not ugliness. It
8
+ is *plausibility*: a page that looks like a design, answers no stated need, was
9
+ built with whatever skill happened to fire first, and cannot be argued with
10
+ because nobody wrote down what it was supposed to do. Five acts, in order. Act 1
11
+ and Act 5 are the two that are usually skipped, and they are the two that make
12
+ the middle three worth doing.
13
+
14
+ ---
15
+
16
+ ## Contents
17
+
18
+ - Act 1 — The brief, and the sentence that could falsify it
19
+ - Act 2 — Cast the tools, by measuring rather than recalling
20
+ - Act 3 — Fork, but only when the fork is real — and write the rubric first
21
+ - Act 4 — Judge, then graft, then record what the cast produced
22
+ - Act 5 — Validate: alignment first, then quality
23
+ - The output the director owes
24
+
25
+ ## Act 1 — The brief, and the sentence that could falsify it
26
+
27
+ **Nothing is designed until this exists in writing.** Four lines, and the fourth
28
+ is the one that costs something:
29
+
30
+ | | |
31
+ |---|---|
32
+ | **Surface** | landing / hero, product UI, mobile screen, agent interface, deck-as-page |
33
+ | **Job** | what the person who lands here must be able to do, in their words |
34
+ | **Constraint** | the thing that is not negotiable — a brand, a stack, a deadline, an existing system |
35
+ | **Falsifier** | **what would prove this design failed**, stated so that it could actually happen |
36
+
37
+ A falsifier is not "it looks bad". It is *"a first-time visitor cannot say what
38
+ this product does after five seconds"*, *"the primary action is below the fold on
39
+ a 13-inch laptop"*, *"the dashboard's densest table needs horizontal scrolling at
40
+ 1280px"*. If you cannot write one, the brief is a mood and the rest of this
41
+ document cannot help you.
42
+
43
+ **Where the brief comes from, in order of preference.** If `super-ux` is
44
+ installed and the project keeps a UX scenario base — `/ux` reports whether it
45
+ does and where — the Job line is **traced to a scenario id**, not invented, and a
46
+ design that answers no scenario is the first finding, before any visual work. No
47
+ scenario base: offer `/ux` once, then proceed with the brief written here and say
48
+ plainly that it is unvalidated.
49
+
50
+ **Mode changes where you enter, and it is not cosmetic.**
51
+
52
+ | Mode | Enters at | Why |
53
+ |---|---|---|
54
+ | **New design** | `style` | there is nothing to measure yet; the direction is the first commitment |
55
+ | **Redesign** | `verify` + `a11y` **first** | you are replacing something that works for somebody. Measure it before you take it away, or you will re-ship its defects and lose its accidents |
56
+ | **Update** | `tokens` | change the token, not the components that read it. An update that edits components is a redesign wearing a smaller word |
57
+ | **Audit** | `a11y` → `verify` → `speed` | nothing is redrawn until all three have spoken |
58
+
59
+ The redesign row is the one people get wrong. **A redesign starts with a
60
+ measurement of the thing being replaced** — contrast, keyboard path, what the
61
+ current page actually does on the target viewport — because half of "the old one
62
+ was bad" turns out to be "the old one handled a case I have not thought about".
63
+
64
+ ---
65
+
66
+ ## Act 2 — Cast the tools, by measuring rather than recalling
67
+
68
+ The director does not choose from memory. On a typical machine this pack is a
69
+ small fraction of what is installed, and most of it is invisible to a router that
70
+ only knows its own roster.
71
+
72
+ ```bash
73
+ npx sshlg-skills pack design --lane <style|brand-surface|product-surface|motion|tokens|figma|implement|mobile|verify|a11y|handoff>
74
+ ```
75
+
76
+ That prints, for the lane you named: what is **present** here, what is
77
+ **missing** with the exact install command, and which of them have been
78
+ **measured and declined**. It reports and never installs.
79
+
80
+ **Then print the cast before starting** — the skills you will use, one line each
81
+ saying what for, and the lane each serves. Not for approval; so the operator can
82
+ see the choice and correct it. A cast that is never printed cannot be corrected,
83
+ and an agent that silently reached for the first skill that fired has made a
84
+ decision nobody can audit.
85
+
86
+ **The three lanes with no owner in this family are the ones to check hardest** —
87
+ implementation, verification and **accessibility**. Nothing here asks whether the
88
+ interface can be used at all; that lane is delegated, and delegation only works
89
+ if somebody actually casts for it.
90
+
91
+ **Ours versus theirs is not a loyalty question.** Where an outside skill answers
92
+ the lane better, cast it. The one rule that does not bend: **this skill decides
93
+ the route, and everything cast is a tool inside a lane — never a second entry
94
+ point.** Some of them advertise themselves as one; a broad `user-invocable`
95
+ design skill will fire on the same prompt you did. That is not a reason to avoid
96
+ it. It is a reason to say, out loud, which one is directing.
97
+
98
+ ---
99
+
100
+ ## Act 3 — Fork, but only when the fork is real — and write the rubric first
101
+
102
+ Two variations built by two subagents with **different casts** is the strongest
103
+ move in this document and the easiest one to turn into theatre.
104
+
105
+ ### The rule that makes it honest
106
+
107
+ **The rubric is written before either variation is made, and it is not touched
108
+ afterwards.** If you build two and then decide what you were comparing, you have
109
+ not run a comparison — you have picked the one you liked and written the
110
+ justification backwards. Three to five criteria, each one *checkable by someone
111
+ who did not build either variation*, and each one traceable to the brief's Job or
112
+ Falsifier.
113
+
114
+ A usable rubric line looks like *"the primary action is reachable without
115
+ scrolling at 1280×800"* or *"the type scale uses at most five distinct sizes"* —
116
+ not *"feels more premium"*.
117
+
118
+ ### When to fork
119
+
120
+ Fork when **all three** hold:
121
+
122
+ 1. the lane has both a credible family answer and a credible outside one,
123
+ 2. the brief is genuinely under-determined — two defensible directions exist,
124
+ 3. the surface is worth it: a landing page, a hero, a product's main screen, a
125
+ visual language being set for the first time.
126
+
127
+ ### When NOT to fork
128
+
129
+ A token change. A spacing fix. A bug. A surface with a locked design system,
130
+ where the answer is *apply the system* and two variations are two ways of
131
+ disobeying it. Anything where the brief already determines the answer — forking
132
+ there does not explore a space, it manufactures a choice and then spends someone's
133
+ attention resolving it.
134
+
135
+ ### How to run it
136
+
137
+ Two subagents, launched together, each given:
138
+
139
+ - the **same** brief from Act 1, verbatim,
140
+ - the **same** rubric, verbatim,
141
+ - **its own cast, declared and disjoint** — variation A on this pack's style pack
142
+ and doctrine; variation B on the outside skills cast in Act 2,
143
+ - an instruction to produce a **working surface**, not a description of one,
144
+ - **no knowledge of the other variation.** They must not read each other's output,
145
+ or the second one converges on the first and the comparison collapses.
146
+
147
+ Name the casts in the output. *"A: workbench + MOTION_DOCTRINE. B: impeccable
148
+ product mode + vercel-composition-patterns"* is a record that makes the next
149
+ casting decision better; *"two options"* is not.
150
+
151
+ ---
152
+
153
+ ## Act 4 — Judge, then graft, then record what the cast produced
154
+
155
+ Score both against the rubric written in Act 3. Then do the two things a bare
156
+ verdict skips:
157
+
158
+ **Graft.** Name the specific thing the losing variation did better and carry it
159
+ into the winner. A fork that discards half its own output wasted half its cost.
160
+ If the loser had nothing worth carrying, say so — that is a real finding about
161
+ the cast, not a formality.
162
+
163
+ **Record which tool produced which trait.** *"B's type scale was tighter and came
164
+ from its font-pairing data; A's motion degraded correctly and B's did not"* is
165
+ the sentence that makes the next run's Act 2 sharper. Without it, every fork
166
+ starts from the same ignorance as the first one.
167
+
168
+ **Where the two variations are equally defensible, say so and stop.** Two
169
+ credible directions is a decision for a person, and a director that manufactures
170
+ a preference to look decisive is worse than one that hands over a clean choice
171
+ with the trade-off named.
172
+
173
+ ---
174
+
175
+ ## Act 5 — Validate: alignment first, then quality
176
+
177
+ Two different questions, and passing one says nothing about the other.
178
+
179
+ ### Alignment — does this answer the brief?
180
+
181
+ - Every element on the surface traces to the **Job**, or is deliberate decoration
182
+ and named as such. An element that traces to neither is the first thing to cut.
183
+ - The **Falsifier** is checked, out loud. If it is now true, the design failed
184
+ and no amount of craft in the middle acts changes that.
185
+ - Where scenarios exist, the surface is checked against them — `/ux-audit` does
186
+ this with `file:line` evidence, and it is the only alignment check here that is
187
+ mechanical.
188
+
189
+ ### Quality — the measurable half
190
+
191
+ These are checks, not opinions. Each one produces a number or a yes/no that a
192
+ second reader can reproduce:
193
+
194
+ | Check | How it is measured |
195
+ |---|---|
196
+ | Contrast | every text/background pair against WCAG AA; body text ≥ 4.5:1, large ≥ 3:1 — a **computed ratio**, never a glance |
197
+ | Colour is not the only signal | every status, link and error state carries a second cue — shape, icon, weight, text |
198
+ | Keyboard path | every interactive element reachable and visibly focused, in DOM order |
199
+ | One anchor per viewport | count what competes for first attention; more than one means none |
200
+ | Type scale | count the distinct font sizes actually rendered — an ad-hoc scale shows up as a long tail |
201
+ | Token discipline | `grep` for raw hex and raw px outside the token layer; a one-off value is a system leaking |
202
+ | Motion, and its absence | every duration inside the doctrine's bands, and the surface fully usable under `prefers-reduced-motion: reduce` — checked by turning it on, not by reading the CSS |
203
+ | Renders without JS | the content is present in the served HTML — matters for the reader who is a crawler as much as for the one on a slow connection |
204
+
205
+ **Run them where the thing runs.** A screenshot in a browser at the target
206
+ viewport beats reading the diff, every time; `webapp-testing` and the Chrome
207
+ DevTools tooling exist for this, and the `verify` lane in Act 2 casts them. A
208
+ quality claim made from source is a claim about source.
209
+
210
+ ### The limit, stated rather than implied
211
+
212
+ **Taste is not on that table, and this document will not pretend otherwise.**
213
+ These checks catch defects and enforce a system. They cannot tell you whether the
214
+ result is *good* — and a director that reports "all gates green" as if it meant
215
+ "this is good design" has substituted the measurable half for the whole. Say
216
+ which half you checked. Where two directions both pass, that is the moment a
217
+ person decides, and the honest output is the pair plus the trade-off, not a
218
+ manufactured winner.
219
+
220
+ ---
221
+
222
+ ## The output the director owes
223
+
224
+ One short record, every time, whether the work took ten minutes or a day:
225
+
226
+ ```
227
+ Brief surface / job / constraint / falsifier (+ scenario id where one exists)
228
+ Mode new | redesign | update | audit → entered at <lane>
229
+ Cast <skill> — <what for>, per lane (measured with `pack design`)
230
+ Fork yes → rubric (written first), A: <cast>, B: <cast>, winner + what was grafted
231
+ no → why not
232
+ Alignment falsifier checked: <result>
233
+ Quality the table above, with numbers
234
+ Open what a person still has to decide
235
+ ```
236
+
237
+ **`Open` is not an admission of failure.** It is the line that separates a
238
+ director from a generator: the generator returns something finished-looking with
239
+ nothing left to decide, and every real design job has something left to decide.
@@ -4,7 +4,7 @@ description: Use when deciding how something LOOKS or MOVES — cinematic landin
4
4
  license: MIT
5
5
  compatibility: Optional siblings — dataviz, shadcn, migrate-radix-to-base; each has an in-text fallback when absent.
6
6
  metadata:
7
- version: 1.58.4
7
+ version: 1.59.0
8
8
  ---
9
9
 
10
10
  # SHELEG Design
@@ -17,6 +17,19 @@ independently-degradable responses**. Centralize scroll into one store; layers
17
17
  read it per frame and react in their own language. Nothing crossfades — things
18
18
  *redeploy*. Every layer degrades to a calm static state.
19
19
 
20
+ **READ FIRST, BEFORE ANY OF THE CRAFT BELOW:**
21
+ [`CREATIVE_DIRECTOR.md`](./CREATIVE_DIRECTOR.md) — the decision layer. What the
22
+ surface is for and **what would prove it failed**; which lane and which mode the
23
+ task is in, because a redesign starts by measuring the thing it replaces and an
24
+ update changes a token rather than the components that read it; which tools to
25
+ cast, measured with `npx sshlg-skills pack design --lane <lane>` rather than
26
+ recalled; when to build **two variations with two disjoint casts in parallel
27
+ subagents** — and the rule that keeps that honest, which is that the rubric is
28
+ written before either one exists; and the validation split that matters, where
29
+ alignment to the brief and measurable quality are two different questions and
30
+ neither implies the other. **The failure mode of an agent doing design is not
31
+ ugliness, it is plausibility**, and that document is what refuses it.
32
+
20
33
  **REQUIRED REFERENCE — for the cinematic path:** read
21
34
  [`SHELEG_DESIGN.md`](./SHELEG_DESIGN.md) before implementing a scroll-driven page —
22
35
  architecture, morph math, the DOM↔WebGL bridge, the build recipe (§11), the file map.