### Purpose Resolve one stable target, run two independent assessments, synthesize a design critique, persist a snapshot, and ask the user what to improve next. The chat response is the primary deliverable; the snapshot is an archive/backlog for future commands. ### Hard Invariants - Assessment A (design review) and Assessment B (detector/browser evidence) are both required. - Assessment A must finish before detector findings enter the parent synthesis context. Detector output is deterministic, but it still anchors judgment. - If sub-agents are unavailable, fall back sequentially: finish and record Assessment A first, then run Assessment B, then synthesize. - A skipped detector is a failed critique run unless `detect.mjs` is missing or crashes after a real attempt. - Viewable targets require browser inspection when available. - Any local server started only for critique visualization must run in the background, have a recorded stop method, and be stopped before final reporting unless the user asks to keep it. - Do not claim a user-visible overlay exists unless script injection succeeded and the detector ran in the page. ### Setup 1. **Resolve the target** to a concrete file path or URL. Prefer a source path over a dev-server URL when both identify the same surface; ports drift, paths do not. - "the homepage" -> `site/pages/index.astro` or `index.html` - "the settings modal" -> the primary component file - "this page" -> the current URL or source file 2. **Compute the slug**: ```bash node {{scripts_path}}/critique-storage.mjs slug "" ``` Keep it. If the command 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. ### Assessment Orchestration Delegate Assessment A and Assessment B to separate sub-agents when possible. They must not see each other's output. Do not show findings to the user until synthesis. Codex sub-agent gate: - If `spawn_agent` is exposed and the user explicitly allowed sub-agents, delegation, or parallel agent work, spawn A and B immediately. - If `spawn_agent` is exposed but the user did not explicitly allow sub-agents, ask exactly once: "Impeccable critique is designed to run two independent sub-agents for an unanchored assessment. May I use sub-agents for this critique?" Then stop until the user answers. - If allowed, spawn A and B. If declined, run sequentially and report `Assessment independence: degraded (sub-agents declined by user)`. - If `spawn_agent` is not exposed, do not ask; run sequentially and report `Assessment independence: degraded (spawn_agent unavailable in this session)`. - If spawning fails after permission, run sequentially and report `Assessment independence: degraded (sub-agent spawn failed: )`. Prefer `fork_context: false` with self-contained prompts containing cwd, target, live URL, references, product context, and output contract. If using `fork_context: true`, omit `agent_type`, `model`, and `reasoning_effort`. If browser automation is available, each assessment creates its own new tab. Never reuse an existing tab, even if it is already at the right URL. ### Assessment A: Design Review Read relevant source files and visually inspect the live page when browser automation is available. Think like a design director. Evaluate: - **AI slop**: Would someone believe "AI made this" immediately? Check all DON'T guidance from the parent Impeccable skill. - **Holistic design**: hierarchy, IA, emotional fit, discoverability, composition, typography, color, accessibility, states, copy, and edge cases. - **Cognitive load**: consult [cognitive-load](cognitive-load.md); report checklist failures and decision points with >4 visible options. - **Emotional journey**: peak-end rule, emotional valleys, reassurance at high-stakes moments. - **Nielsen heuristics**: consult [heuristics-scoring](heuristics-scoring.md); score all 10 heuristics 0-4. Return: AI slop verdict, heuristic scores, cognitive load, emotional journey, 2-3 strengths, 3-5 priority issues, persona red flags, minor observations, and provocative questions. ### Assessment B: Detector + Browser Evidence Run the bundled detector and browser visualization evidence. Assessment B is mandatory and must remain isolated from Assessment A until both are complete. CLI scan: ```bash node {{scripts_path}}/detect.mjs --json [--fast] [target] ``` - Pass markup files/directories as `[target]`; do not pass CSS-only files. - For URLs, skip CLI scan and use browser visualization. - For 200+ scannable files, use `--fast`; for 500+, narrow scope or ask. - Exit code 0 = clean; 2 = findings. - If the detector entrypoint is missing or fails to load, report deterministic scan unavailable and continue with browser/manual review. Browser visualization is required for a viewable target when browser automation is available. Use a localhost dev/static URL for local files; avoid `file://` unless the available browser explicitly supports this workflow. Overlay flow: 1. Create a fresh tab and navigate. 2. Preflight mutable injection by setting `document.title` and appending a `