feat(install): wire impeccable into the toolchain — deterministic design floor + /impeccable verbs

Complementary to frontend-design (kept: build-time aesthetic direction).
impeccable adds what the chain lacked: 45 deterministic anti-slop rules
(npx impeccable detect, exit 0/2, --json) — the design counterpart of the
semgrep gate — plus 23 design verbs under one /impeccable skill and
persistent per-project design context.

- plugins.lock.json: CLI pinned 3.2.0 (rules update = audit output change
  on unchanged code, LRN-077 class); skill dist = its own release track
- install-plugins.sh Step 8d: staged npx install (tmpdir) -> moved to
  skills-external/impeccable (machine-owned, gitignored, ctx7 pattern);
  never writes through the ~/.claude/skills symlink into the tracked tree
- update-all.sh: pin-honored refresh, Node<24 or failure -> dist kept
- Node >= 24 required (host at 22): steps skip gracefully, activation
  deferred to a deliberate Node bump
- link.sh EXTERNAL_SKILLS, profiles (design/web/web-full/full),
  plugin-advisor, CLAUDE.md design routing, design-gate, README, CHANGELOG
- NOT in design GATE-BLOCK yet: promotion after first dogfood
This commit is contained in:
Bastien Chanot
2026-07-05 14:42:42 +02:00
parent c47a902b78
commit 73c765aa08
14 changed files with 119 additions and 5 deletions
+7
View File
@@ -64,6 +64,7 @@ skills/ios-sync
skills/design-motion-principles
skills/emil-design-eng
skills/frontend-design
skills/impeccable
# External skills installed via `npx skills add` — auto-created by link.sh
skills/darwin-skill
@@ -136,6 +137,12 @@ desktop.ini
# an update. The source is always re-synced, so no offline copy is needed.
skills-external/frontend-design/
# Impeccable — machine-owned dist produced by `npx impeccable skills install`
# (install-plugins.sh Step 8d, update-all.sh), pinned in plugins.lock.json.
# Not vendored: the installer owns the layout and rewrites it on update
# (ctx7 pattern). Symlinked into skills/ by link.sh.
skills-external/impeccable/
# npx `skills add` project-scope artifacts — darwin-skill copies itself into
# the repo's .agents/ and writes skills-lock.json at root. Our own agents live
# in agents/ (no dot) and stay tracked. Anchored to root so only the dotted