diff --git a/plugin/agents/impeccable-asset-producer.md b/plugin/agents/impeccable-asset-producer.md index 0bcf99e26..561074f1a 100644 --- a/plugin/agents/impeccable-asset-producer.md +++ b/plugin/agents/impeccable-asset-producer.md @@ -30,8 +30,8 @@ Every region with `medium: raster` in the spec ships as a plate at its `plate` p Per region, in the spec's order: -1. `node .claude/skills/impeccable/scripts/comp-spec.mjs --crop ` writes the reference crop under `.impeccable/build/crops/`. -2. Produce the plate. With the API fallback: `node .claude/skills/impeccable/scripts/generate-image.mjs --plate --quality high` does the whole step (crop as reference, the spec's plate prompt, output size chosen from the region's aspect, the file written to its plate path, prompt embedded, and the plate scored against the crop). With a harness-native image tool: use the crop as the input image and `node .claude/skills/impeccable/scripts/comp-spec.mjs --plate-prompt ` as the prompt, write the result to the plate path, then run `node .claude/skills/impeccable/scripts/embed-prompt.mjs --prompt ""`. +1. `node "${CLAUDE_PLUGIN_ROOT}/skills/impeccable/scripts/comp-spec.mjs" --crop ` writes the reference crop under `.impeccable/build/crops/`. +2. Produce the plate. With the API fallback: `node "${CLAUDE_PLUGIN_ROOT}/skills/impeccable/scripts/generate-image.mjs" --plate --quality high` does the whole step (crop as reference, the spec's plate prompt, output size chosen from the region's aspect, the file written to its plate path, prompt embedded, and the plate scored against the crop). With a harness-native image tool: use the crop as the input image and `node "${CLAUDE_PLUGIN_ROOT}/skills/impeccable/scripts/comp-spec.mjs" --plate-prompt ` as the prompt, write the result to the plate path, then run `node "${CLAUDE_PLUGIN_ROOT}/skills/impeccable/scripts/embed-prompt.mjs" --prompt ""`. When that script path is unreachable in your environment, write the same prompt to `.prompt.txt` beside the asset and note it in your manifest so the parent can embed it. 3. Read the score line. `PLATE-SCORE` under 50%, or a `PLATE-WARN`, means the plate does not read as the region: open the plate beside the crop, name what drifted (subject, framing, palette, style), tighten the prompt with that, and regenerate once. Two misses on one region: keep the better plate, mark it `needs_parent_review`, and say why in one line. 4. Transparent cutouts (a figure or object on the page ground): generate on a flat chroma color absent from the subject and key it to alpha before writing the PNG; never ship the keyed background. diff --git a/plugin/skills/impeccable/SKILL.md b/plugin/skills/impeccable/SKILL.md index 8ef6786d6..84bb660ff 100644 --- a/plugin/skills/impeccable/SKILL.md +++ b/plugin/skills/impeccable/SKILL.md @@ -7,7 +7,6 @@ argument-hint: "[shape · audit|critique · animate|bolder|colorize|delight|layo license: Apache 2.0 allowed-tools: - Bash(npx impeccable *) - - Bash(node .claude/skills/impeccable/scripts/*) --- This skill gives you the tools and permission to create design that earns to be called out-of-distribution craft: Whereas before, your design work would have been safe, timid and measured, you now approach every design task as an award-winning design director with impeccable understanding for what makes exceptional design work: production-grade code, peak creativity, a clear POV, deep understanding of the needs of the client and users, and exceptional craft. @@ -19,7 +18,7 @@ Core principles: ## Setup -1. Run `node /scripts/context.mjs` once per session, where `` is the loaded base directory the runtime reports for this skill; keep cwd at the user's project. That base directory resolves every `node .claude/skills/impeccable/scripts/...` command in this skill and its references, and `.claude/skills/impeccable/scripts` is the fallback only when the runtime reports no base directory. Pass a named source file or route as `--target `. It loads PRODUCT.md, DESIGN.md, the matching surface brief, and native-platform guidance when applicable; follow its directives and do not rerun it. +1. Run `node "/scripts/context.mjs"` once per session, where `` is the loaded base directory the runtime reports for this skill; keep cwd at the user's project. Every `node "/scripts/..."` command in this skill and its references resolves against that base directory. Pass a named source file or route as `--target `. It loads PRODUCT.md, DESIGN.md, the matching surface brief, and native-platform guidance when applicable; follow its directives and do not rerun it. 2. Before acting, load the one playbook that owns the request: the Commands table's reference for an explicit or clearly implied sub-command, or [reference/new-work.md](reference/new-work.md) for a new surface or replacement visual world. Then inspect the target and at least one representative source of incumbent visual truth (tokens, theme, CSS, component, or asset) before editing. 3. After analysis and direction are resolved, load [reference/craft-floor.md](reference/craft-floor.md) immediately before editing UI. It carries the quality floor, the absolute bans, and the reflexes no detector catches. Do not load it for planning-only work. @@ -77,7 +76,7 @@ Routing: After init writes PRODUCT.md, resume without rerunning `context.mjs`; init loads the native platform reference itself when the platform it recorded is `ios`, `android`, or `adaptive`. -**Pin / Unpin:** `node .claude/skills/impeccable/scripts/pin.mjs ` creates or removes a standalone `/` shortcut. Report the script's result concisely; relay stderr verbatim on error. +**Pin / Unpin:** `node "/scripts/pin.mjs" ` creates or removes a standalone `/` shortcut. Report the script's result concisely; relay stderr verbatim on error. **Hooks:** `/impeccable hooks ` manages the design detector hook for this project (auto-runs the detector after UI file edits and surfaces findings). Load [reference/hooks.md](reference/hooks.md) when the user invokes it with any argument. diff --git a/plugin/skills/impeccable/reference/critique.md b/plugin/skills/impeccable/reference/critique.md index 637e73fca..d298da3eb 100644 --- a/plugin/skills/impeccable/reference/critique.md +++ b/plugin/skills/impeccable/reference/critique.md @@ -23,7 +23,7 @@ Resolve one stable target, run two independent assessments, synthesize a design - "this page" -> the current URL or source file 2. **Confirm the target slugs cleanly**: ```bash - node .claude/skills/impeccable/scripts/critique-storage.mjs slug "" + node "/scripts/critique-storage.mjs" slug "" ``` Every later command also accepts the resolved target directly and derives the same slug internally; never hand-write a slug. If this exits non-zero, skip persistence and trend for this run, but continue the critique. 3. **Read `.impeccable/critique/ignore.md`** if it exists. Drop matching findings silently; it is the only prior-run input critique consumes. @@ -59,7 +59,7 @@ Run the bundled detector and browser visualization evidence. Assessment B is man CLI scan: ```bash -node .claude/skills/impeccable/scripts/detect.mjs --json [target] +node "/scripts/detect.mjs" --json [target] ``` - Pass markup files/directories as `[target]`; do not pass CSS-only files. @@ -73,7 +73,7 @@ Browser visualization is required for a viewable target when browser automation 1. Create a fresh tab and navigate. Prefer the harness's native/browser-canvas screenshot path before hand-rolling a Playwright/Puppeteer script; only fall back to a custom script when no native browser tool is exposed. 2. Preflight mutable injection by setting `document.title` and appending a `