Commit graph

1 commit

Author SHA1 Message Date
Jun-te Kim
b69ef47f22 feat(impeccable): vendor the skill and wire up live mode
Live mode (impeccable.style/live-mode) never worked here because the skill was
never actually installed: postCreate ran `skills add pbakaus/impeccable
--global`, which silently no-ops — it's absent from ~/.claude/skills. Vendor it
into .claude/skills/impeccable instead, so live mode's scripts/ sit on a stable
path and everyone gets the same version (`npx impeccable update` to refresh).
Drop the dead postCreate step.

Live-mode wiring:

- .impeccable/live/config.json for Next.js App Router (src/app/layout.tsx,
  </body>, jsx). detect-csp.mjs reports no CSP in this project, so no config
  patch is needed and cspChecked is honestly true.
- Forward port 8400 with requireLocalPort. The script injected into the page
  hard-codes http://localhost:8400, so if VS Code remaps it the element picker
  silently never loads — the one devcontainer-specific trap here.
- Ignore the per-session journal/screenshots; keep the configs tracked.

DESIGN.md is required — live.mjs refuses to boot without it (context_missing).
Generated via the `document` skill from the actual codebase, so it records what
the code really does, including the gaps (dark mode defined but dead, --font-sans
referenced but never defined, --radius unused, the broken Tremor colour block).
Worth a read rather than a rubber stamp: it's the context live mode generates
variants against.

Verified: live.mjs boots ok with the helper on 8400 and injects into layout.tsx;
live-server.mjs stop strips the tag back out cleanly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 17:32:06 +00:00