sheleg-design-skill 1.59.1 → 1.59.4

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,106 @@
1
1
  ## [Unreleased]
2
2
 
3
+ > **v1.59.3 is a burned tag.** It was pushed against `origin/main` before the release
4
+ > PR had actually merged, so it names the v1.59.2 tree; the version-sync gate refuses
5
+ > it and the remote forbids tag deletion. Nothing shipped under it — this version is
6
+ > the same change, tagged on the verified merge commit.
7
+
8
+ ## [1.59.4] - 2026-09-06
9
+
10
+ ### Fixed
11
+
12
+ - **The front matter declared the optional siblings and said nothing about the
13
+ hard requirement.** `compatibility:` named `dataviz`, `shadcn` and
14
+ `migrate-radix-to-base` — three skills the body can work without — while the
15
+ body REQUIRES node with npx and network twice (`npx sheleg-design-skill --kit
16
+ <pack>`, `npx sshlg-skills pack design --lane`) and named no path for a
17
+ machine where npx is unreachable. Found by the family audit (2026-09-06, wave
18
+ AUDIT-WAVE-0906). Both halves fixed: the front matter now opens with
19
+ *"Kit/lane commands need node>=16, npx, network"*, and the kit-authoritative
20
+ paragraph states the degraded path in the same voice v1.59.1 gave the
21
+ director's Act 2 — nothing is blocked, the pack and its token layer in
22
+ `styles/tokens/<pack>.css` still carry the rules by reading, and the component
23
+ states only a kit materializes are then **unverified**, said out loud rather
24
+ than presented as kit-checked.
25
+
26
+ **The honest first draft was refused by this repository's own gate, and the
27
+ refusal is the interesting part.** The full declaration measured 342 chars —
28
+ comfortably inside the Agent Skills spec's 500-char `compatibility` cap — and
29
+ `check_description_canon` refused it at **432 of a 256 overhead budget**,
30
+ because every non-description key is read every session and the budget exists
31
+ so front matter never becomes a place to write prose. Two limits, and the
32
+ binding one was the house budget, not the spec cap — the same lesson v1.59.2
33
+ paid for on the description. So the front matter carries the compressed form
34
+ (**253 of 256**) and the body carries the detail, which is where a reader who
35
+ hit the failure would look anyway.
36
+
37
+ - **An empty recursive directory chain sat in checkouts, and the mirror
38
+ validator could not see the class it belongs to.**
39
+ `.cursor/skills/sheleg-design/styles/tokens/.cursor/skills/sheleg-design/` —
40
+ zero files, invisible to `git status` (git tracks no directory), to the npm
41
+ tarball (npm packs files), and to both directions of the mirror-drift check,
42
+ which walk `rglob("*")` filtered by `is_file()`. Measured on this machine
43
+ 2026-09-06: the umbrella's submodule checkout at `skills/sheleg-design`
44
+ carried the chain at commit `0902ef6`; this repository's own checkout was
45
+ clean. The artefact is removed, and the CLASS is closed: the mirror block now
46
+ reads **directories** over both trees — a nested `.cursor` anywhere inside
47
+ either bundle is refused as a copy artefact whatever it contains, and an
48
+ empty directory is refused wholesale. Watched failing against a real planted
49
+ chain before being believed — both checks answered with their own messages,
50
+ not a neighbour's — and planted permanently in the self-test as two
51
+ **directory fixtures**, a shape `PLANTS` cannot express because its mutations
52
+ are text edits to a file, and each fixture asserts the plant landed before
53
+ trusting any red. Floor raised 5621 → 5641, measured by running the gate on
54
+ this tree.
55
+
56
+ ## [1.59.2] - 2026-09-03
57
+
58
+ ### Fixed
59
+
60
+ - **The skill did not advertise the two words its own router text names.** The umbrella's
61
+ routing block says *"before design, **redesign**, **layout**, front-end or mobile-UI
62
+ work"*, and the trigger layer only ever fires on words a skill claims in its own
63
+ description. Measured 2026-09-03 against the real matcher: `редизайн сайта` → nothing,
64
+ `переделай дизайн` → nothing, `свёрстай дашборд` → nothing. The router text was inert
65
+ for exactly the vocabulary it was written for.
66
+
67
+ Four triggers added — `"redesign" / "редизайн, свёрстай, вёрстка"` — and paid for by
68
+ trimming prose no trigger depends on, verified against `lib/triggers.js` before cutting:
69
+ `layers that drift`, `or scrubbed`, `particle/`. Description **965 → 969, against a
70
+ working limit of 970.**
71
+
72
+ - **`B-84` was right and this entry's first draft said it was stale — the correction is
73
+ recorded rather than quietly rewritten.** That row cites a *970 working limit* and calls
74
+ this fix blocked. Reading this repository's own `test/validate.py` finds only the Agent
75
+ Skills cap of 1024, so the draft concluded no 970 existed and shipped a description at
76
+ 1014. **CI refused it**: the limit is a family HOUSE RULE, enforced by `make-skill`'s
77
+ `audit_skill.py --house` (`DESC_HEADROOM`), which runs in this repository's own
78
+ workflow — *"inside the 1024 cap but past the 970 working limit: leave room for the
79
+ 'what this is NOT for' clause a near-miss neighbour will require."*
80
+
81
+ **Two limits, two enforcers, and only one of them lives here.** A number absent from the
82
+ validator you happen to open is not a number that does not exist.
83
+
84
+ Headroom after this change is **ten characters**, at 960 of 970, bought by trimming
85
+ prose rather than by raising a limit. B-84's underlying claim — that the descriptions
86
+ which miss most cannot accept another trigger for free — holds.
87
+
88
+ - **The first trim removed three phrases a second consumer depended on.** `particle`,
89
+ `scrubbed` and `drift` are not hook triggers, so a check against `lib/triggers.js`
90
+ called them free; they are `T1_CARRIERS` here, the phrases this repository's own eval
91
+ tasks are matched on, and its gate refused the edit. Every span in the shipping trim
92
+ was tested against **both** lists before being cut — *"a description edit that reads
93
+ as additive can still remove the only phrase carrying a task"*, which is that guard's
94
+ own sentence.
95
+
96
+ - **The plant guarding that rule had gone quiet, and this release is why it was found.**
97
+ It hardcoded `"scroll-linked or scrubbed motion"`; the trim reworded exactly that
98
+ clause, the replace no-oped, and the self-test reported the guard as BROKEN while the
99
+ guard was fine. Standing instruction #6, on the anchor it warns about. The victim is
100
+ derived from `T1_CARRIERS` now and the assertion is made on the **parsed description,
101
+ read the way the guard reads it** — a plant that changed some other byte would still
102
+ be testing nothing.
103
+
3
104
  ## [1.59.1] - 2026-09-03
4
105
 
5
106
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sheleg-design-skill",
3
- "version": "1.59.1",
3
+ "version": "1.59.4",
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.59.1",
6
+ "version": "1.59.4",
7
7
  "author": {
8
8
  "name": "ssheleg",
9
9
  "url": "https://x.com/sshlg93"
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: sheleg-design
3
- description: Use when deciding how something LOOKS or MOVES — cinematic landing pages and hero sections, particle/WebGL backgrounds, scroll-linked or scrubbed motion, layers that drift, dashboards, admin or internal tools, mobile screens, chat or agent interfaces, tokens, themes, palettes, typography and the Figma border. Triggers - "design a landing" / "дизайн лендинга", "build a landing page" / "сделай лендинг", "scroll animation" / "скролл-анимация", "dashboard style" / "стиль дашборда", "design tokens, style pack" / "дизайн-токены", "light/dark theme" / "светлая/тёмная тема", "figma variables" / "переменные фигмы, фигма в код", "mobile screen" / "мобильный экран", "palette, colors" / "палитра, цвета", "typography, font" / "типографика, шрифт", "how it looks, make it prettier" / "выглядит, красиво, красивее", "visual reference" / "визуальные референсы", "investor deck as a web page" / "веб-презентация". Not for structure, copy, backend behavior, or .pptx decks.
3
+ description: Use when deciding how something LOOKS or MOVES — cinematic landing pages and hero sections, particle/WebGL, scrubbed motion, drift, dashboards, admin or internal tools, mobile screens, chat or agent interfaces, tokens, palettes, typography and the Figma border. Triggers - "design a landing" / "дизайн лендинга", "build a landing page" / "сделай лендинг", "scroll animation" / "скролл-анимация", "dashboard style" / "стиль дашборда", "design tokens, style pack" / "дизайн-токены", "light/dark theme" / "светлая/тёмная тема", "figma variables" / "переменные фигмы, фигма в код", "mobile screen" / "мобильный экран", "palette, colors" / "палитра, цвета", "typography, font" / "типографика, шрифт", "how it looks, make it prettier" / "выглядит, красиво, красивее", "visual reference" / "визуальные референсы", "investor deck as a web page" / "веб-презентация", "redesign" / "редизайн, свёрстай, вёрстка". Not for structure, copy, backend behavior, or .pptx decks.
4
4
  license: MIT
5
- compatibility: Optional siblings — dataviz, shadcn, migrate-radix-to-base; each has an in-text fallback when absent.
5
+ compatibility: Kit/lane commands need node>=16, npx, network. Optional siblings — dataviz, shadcn, migrate-radix-to-base. Each has an in-text fallback when absent or unreachable.
6
6
  metadata:
7
- version: 1.59.1
7
+ version: 1.59.4
8
8
  ---
9
9
 
10
10
  # SHELEG Design
@@ -89,7 +89,11 @@ npx sheleg-design-skill --kit <pack>
89
89
  ```
90
90
 
91
91
  The generated `src/styles.css` is authoritative for states a core pack leaves
92
- open. A widened pack's kit and `## Components` section must agree. To author a
92
+ open. A widened pack's kit and `## Components` section must agree. Where `npx`
93
+ is unreachable — no node, no registry — nothing is blocked: the chosen pack and
94
+ its token layer in `styles/tokens/<pack>.css` still carry the rules by reading,
95
+ but the component states only a kit materializes are then **unverified** — say
96
+ so, rather than presenting a read-off state as a kit-checked one. To author a
93
97
  pack, start from
94
98
  [`styles/STYLE_PACK_TEMPLATE.md`](./styles/STYLE_PACK_TEMPLATE.md) and ship its
95
99
  token file in the same change.