Click to expand commit body
642f03d5 fix(live-server-test): isolate shared server cwd so tests cannot pollute repo
bc189488 Improve critique skill reliability
e1d3ea0b Detector architecture v2: static engine, benchmarks, lab, and visual contrast (#156)
4af581e2 chore(skill): bump to v3.1.1 + changelog
5f15163c fix(critique-storage): make CLI entry-point check Windows-safe (#155)
e4935044 chore: sync bun.lock to jsdom 29.1.1 from #154
de9aa13a ignore talks
1e8356fa fix(cli): pass --copy to npx skills add to avoid symlinking provider dirs (#148)
4027e17f chore: bump jsdom to 29.1.1, drop border-radius shorthand workaround (#154)
dc715c73 craft + codex: explicit user gates before code (Codex test fix)
23b6b9cc chore(cli): bump to v2.1.9 + changelog
735a0f4e chore(skill): bump to v3.1.0 + changelog
8cef2969 craft + codex: extract Codex-specific image flow into codex.md
afc974d6 shape: restore image-gen announcement + explicit brief confirmation
93a13f98 Critique persistence: per-run snapshots, ignore list, polish reads as signal (#153)
c32daaf3 fix(site): update GitHub star count to 27k
e7e923c4 Skill + craft cleanup, detector hardening, native subagent pipeline (#152)
e587004e Refactor: cleaner top-level directory structure (#138)
2aeac48b chore: track .impeccable/live/config.json for this repo
f7ab774f fix(release): read changelog from site/pages/index.astro after Astro migration
8e3d4d2b chore(skill): bump to v3.0.7 + changelog
d874af04 feat(live): make live sessions recoverable (#125)
88b82ae5 Remove Tessl skill review workflow (#136)
ea930268 docs(skill): apply STYLE.md to source/skills/impeccable (#135)
122a82f7 docs: strip AI prose, add STYLE.md and validateProse (#134)
eecdfa12 fix(site): style Astro-rendered <pre> blocks in prose bodies (#133)
ccf35735 fix(site): restore .prose class on docs and tutorial bodies (#132)
444e4aca Detector: add italic-serif display headline + hero eyebrow chip rules (#127) (#129)
b8f09c81 Migrate site from Bun to Astro (#130)
a312da5e fix(site): update GitHub star count to 23k, add changelog highlight reel
8c4ea9f0 chore(build): refresh harness output dirs for v3.0.6
a08f808e chore(skill): bump to v3.0.6 + changelog
f4b2b1b0 fix(skill): remove lane catalog from live departure mode, reinforce params
64c6df21 fix(detector): contrast checks run on styled <a> and <button> (v1.0.3)
d154a5fe fix(extension): popup scan stuck on Scanning after page reload (v1.0.2)
ac2237a7 feat(skill): identity-first variant planning in /impeccable live
b5c203f3 feat(detector): flag Fraunces, Geist, and the new monoculture fonts
856b90e5 chore(release): print a tweet-ready string after a successful release
c332c7aa feat(load-context): resolve context dir outside repo root (#119) (#123)
9a5d0e71 fix(live): switch live-poll to execFileSync, validate ids strictly (#124)
7e0ce5e6 ci: add Tessl skill review on SKILL.md changes (#74)
18fa503d fix: normalize quoted user-invocable frontmatter (#87)
04709ead security: use JSON.stringify for selector escaping in devtools panel (#93)
efedf2d3 Merge pull request #97 from Gujiassh/fix/community-section
f67add25 Merge pull request #120 from vinaypokharkar/feature/qoder-support
6b507e0c Release impeccable skill v3.0.5
c1e1104e Merge pull request #118 from pbakaus/feat/live-jsx-wrap-and-carbonize
1f760aff fix(live): expandReplaceRange handles multi-line self-closing JSX <div />
8660d3aa fix(live): wrap shape-of-output bugs from second Bugbot review
11dfad81 fix(live): CSP-meta patch+revert preserves space before self-closing /
a701ee61 fix(live): wrap preserves relative indent of multi-line picked elements
99e68370 fix(live): JSX accept/discard restores at original indent (Bugbot review)
fdb9e7c6 fix(live): screenshot overlay no longer flashes solid black during loading
9ec90430 fix(live): textContent disambiguation handles missing inter-element whitespace
54d9f05e fix(live): land valid TSX through wrap → preview → accept → carbonize
638af205 Document the release workflow in CLAUDE.md and AGENTS.md
5881a084 Thank @dergachoff for #113 in v3.0.4 changelog
27af49f1 Strip leading whitespace in release-notes markdown extraction
bf2bc55a Fold v3.0.3 changelog into v3.0.4
a923346b Add release tooling and bump CLI to 2.1.8
c812d76b feat: wire qoder into the download API allowlist
7cfa7759 fix: parseFrontmatter handles CRLF line endings
9a76c7bc fix: include qoder in normalizeForHash provider regex
c6ca7217 docs: add Qoder to README install and supported-tools sections
4f66eb9c feat: add Qoder harness support (closes #76)
5f5e2b01 Release impeccable skill v3.0.4
54f6ccf6 codex in auto-review became way too autonomous - significantly harden craft/shape flows
62ce35ac Merge pull request #116 from pbakaus/feat/live-modal-host-friendliness
630e586b feat(live): make picker chrome modal-host friendly (Radix, Headless UI, vaul)
39bec7c0 Merge pull request #115 from pbakaus/feat/harden-jsdom-border-radius
e3d488e1 Merge pull request #101 from voidborne-d/fix/windows-detect-path-drive-letter
66826384 test: wire windows-path-fix into bun test script + rebase notes
94b315ef fix: use fileURLToPath for Windows path resolution (#95)
28875097 fix(detector): preserve percent-radius signal when width is missing
65bbd6cb feat(detector): harden border-radius reads against jsdom CSS regressions
17fe31ba chore: bump in-range deps; pin jsdom to 29.0.0
427128e0 chore: reconcile bun.lock with @anthropic-ai/sdk ^0.91.1
70a92464 fix(plugin): slim Claude Code install (291MB→770KB) + fix skills path
8548003c Merge pull request #111 from vivshaw/main
579006cd fix: add missing trailing-slash redirect for /cases/neon-mirai/
ceb0ef8f chore: rename all references Neon Mirai -> Neo Mirai to match site title
25e6c820 chore(site): bump GitHub star count to 22k
6e96f628 fix(live): readable freeform input on dark bar + tools/live-loop.mjs
74f16d63 Add Neon Mirai showcase
d26ccac1 feat(test): pluggable LLM agent for live-mode E2E suite
43103524 fix(live): variant observer detects wrappers added as descendants
89ffd73d improve(polish): make polish a true superset of retired /normalize
4fa02bf5 docs: add live-mode E2E test instructions to CLAUDE.md and AGENTS.md
7baf77a4 chore: bump impeccable skill to v3.0.1
c3e18fe6 fix(live): four bugs surfaced by E2E suite + CSP meta auto-patch
c8de59d8 test(live): add full-cycle E2E framework-fixture suite with pluggable agent
d29a6907 Fix Neon Mirai active navigation
d340f075 Improve Neon Mirai manifesto artwork
7de610c6 Add Neon Mirai conference example
25353448 fix(site): restore docs-viz-caption top margin squashed by .prose p
346ce259 docs(site): add image gen bullet and Live Mode alpha tag to v3.0 changelog
f5e82162 fix(site): strip dev-only live.js inject tags from production HTML
6816558d Merge pull request #109 from pbakaus/3.0
0760cdf3 fix(skill): update stale SKILL.md font-tag reference in typography.md
a42d2185 fix(skill): resolve cursor bot findings on colorize + critique
5613891a docs(typography): absorb tactical additions from typecraft-guide-skill
e0ab3a73 feat(live + site): preserve variant attr on accept, designing-page redesigns
37f79cd0 feat(site): foreground visualize-first workflow on /designing + Case carousel
df72ca2a docs(impeccable): clarify live mode param expectations for freeform
53168091 feat(site): merge /anti-patterns and /visual-mode into /slop
c160ffc3 feat(live): v2 sidecar upgrade + preserve per-project config on build
a5cd7bf8 refine(skill): harden critique against skipping sub-agents and [Human] overlay
e1cfba0f feat(design): align DESIGN.md with Stitch's frontmatter spec
a95212aa feat(site): Designing orientation page with compass loop
b0feed06 feat(live): config globs + drift-heal warning for multi-page projects
6846a135 refine(live): skip screenshot upload when no annotations present
d60de0fb refine(site): restructure "Get Started" around the skill first
2658baa4 refine(site): adapt "The Case" to mobile as horizontal pill strip
3ffc485a refine(site): "The Case" crossfade + content cleanup, pattern-tabs scroll
2341fe36 feat(live): tune popover, theme-aware bar/picker, action icons, params system
59769e31 redesign(site): restructure "The Case" tabs, wrap panels in card
96c6565c Improve image-guided shape and craft flows
1a9e3576 restructure(site): Antidote → 8th tab inside The Case
1ac4cf91 refine(site): Antidote pairs use compact inline visual examples, not page screenshots
598c43cc refine(site): Antidote wall → before/after pairs
e436ed53 fix(site): Antidote foot meta in sentence case; fold Suggest into foot row
826c6cda refine(site): Antidote as a visual wall of three anti-pattern examples
bae62210 fix(site): Antidote row left-aligned (drop inherited justify-content: center)
6e9a4379 refine(site): Antidote content + layout pass
ec0bbda5 refine(site): bigger/bolder live-mode support column headers
e28ab986 copy: live mode 'start' cell, drop verbose stop command
32b81aeb refine(site): live mode support list copy pass + drop phase caption + border
ae6fa323 refine(site): fold Language subtitle, split Antidote, Live Mode layout + variants
fe6186bb feat(site): shrink Antidote, faithful two-bar Live Mode demo
6743fe2e feat(site): Palette/Periodic toggle in Language, rename Why → The Case
d72ac002 feat(site): replace Visual Mode section with Live Mode + interactive demo
bd25de98 refine(site): group Why heading with tabs, cleaner borders, visible progress fill
d7f7df1b fix(live): subtle focus ring on global-bar icon buttons
37c1a364 fix(live): Escape in PICKING also resets the global bar's Pick button
af50f22d chore(skill): slim per-event carbonize reminders
f38a8d40 chore(skill): harden post-accept carbonize cleanup so the agent can't skip it
239b75dd chore(site): post-carbonize cleanup for Why panel 04
eeb35d42 refine(site): fix Why section alignment + rework panel 04
023bf698 refine(site): rework Why visuals for panels 01, 03, 04, 05
03a1953b feat(site): add visuals + auto-rotate to Why Impeccable
e631074a feat(site): Why Impeccable section with tabbed feature loop
d03dca12 fix(site): restore Antidote section with curated anti-pattern list
549f9257 feat(site): v3.0 changelog expansion, pin FAQ, stale-ref cleanup
7e473e48 fix(site): instant hash restore, retry on fonts.ready + load, drop smooth-scroll
bd86147d refactor(live): move scroll-restore out of injected inline back into live.js
f0f29355 fix(live): retry inline scroll-restore on fonts.ready and load
fb78ec45 fix(live): inject inline pre-restore script so scrollY wins vs browser
5e04a9f2 fix(live): don't clear scroll key inside stopScrollLock
868d8c41 fix(live): separate scroll-key, pre-empt browser, snap on every scroll
a6aa98c6 chore(live): add diagnostic logging to scroll lock
565381a3 fix(live): pin window.scrollY instead of element viewport top
1e533e53 fix(live): disable browser overflow-anchor during session, always correct
b99ab4db fix(live): scope scroll lock to session wrapper, let user scroll cancel corrections
ad17880a fix(live): observer-based scroll lock holds element at viewport top during session
4f4df852 fix(live): restore scroll to element's viewport-relative top after reload
101dc503 fix(live): resolve canvas background from ancestors when element is transparent
1ba75a82 fix(skill): 3 review-bot findings from EAC PR
99494348 fix(live): don't pass backgroundColor to domToBlob
c7ee7224 fix(live): four HMR + React race bugs from Next 16 / Turbopack testing
89466e5d docs(product): add Register field (brand) to PRODUCT.md
bf6379a5 chore(skill): drop editorial→brand legacy alias
562f7361 feat(skill): rename register from "editorial" to "brand"
99cccc2f fix(live-inject): preserve indentation on remove, no orphan blank line
e441e88c feat(skill): strengthen editorial imagery guidance for weaker models
cd8dbff0 fix(live-accept): handle JSX self-closing <style />, single-line variants, and same-line style blocks
a4832adf fix(live-wrap): JSX/TSX correctness — multi-line tags, className, tag narrowing
67e468f8 fix(cleanup): authoritative lock signal + fingerprint fallback for orphan dirs
05b0ac3e feat(live): extend CSP detection to SvelteKit and Nuxt
d5480cae feat(live): CSP detection + consent-gated patch flow at first-time setup
444f8812 fix(test): un-ignore fixture dist/ trees so they actually track
c9c152f0 test(live): framework fixture matrix for inject / wrap / is-generated
37b8e8ba fix(live): multi-file inject, generated-file protection, and accept-flow correctness
e2279dda fix(live): restart shader and re-anchor selection on HMR page reload
9ccb240d fix(live): variant outline accuracy and shader re-anchor after wrap
62e5b2bb fix(live): restore prescriptive browser-open and background-poll guidance
4daabe52 feat(skill): register split, color strategy, and pre-design intake
81f880d0 feat(live): annotation capture, comment pins, drawing, and halftone loading shader
51d28cf1 smooth detect outline transitions
66630a0e chore: sync skills, live tooling, and eval ignores
90cddb4f feat(live): remove injected script when stopping live server
3d3cc156 Remove tracked .codex skill tree from repository
0c905330 docs(skill): clarify live-poll foreground vs background for Cursor and Claude Code
0b4bc377 Polish live-mode bar and DESIGN.md panel
fcb347b9 Add design system panel to /impeccable live
50dfeef3 Tighten typography.md; remove reference/pin.md
2c1d2a5a Remove reference/context.md; SKILL.md already covers the protocol
473dbd52 Trim SKILL.md plumbing; extract context + pin protocols to references
268a5e15 Clarify context gathering protocol: session cache, no truncation, exceptions
1ebe204b Align DESIGN.md format with official Google Stitch spec
866973fd Track PRODUCT.md + DESIGN.md as reference implementations
af2d6e11 Support PRODUCT.md + DESIGN.md as canonical context files
f339796b Extend action-specific diversity rules to all live actions
7386b303 Force variant diversity and mandatory reference loading in live mode
996c9af7 Add live.mjs combined entry point for fast startup
8030bc22 Add live-inject.mjs: per-project config for instant script tag management
f397b9f1 Fix keyboard nav and click-to-deselect in live mode picker
5fee3148 Fix section-nav using wrong positions for nested sections
830fe8e5 Instant accept/discard for live mode, SSE heartbeats, background server startup
9b573de1 Add ADR for live variant mode architecture
59bb3d35 Stop syncing repo-local Codex skill
4092ee5f Move PID file to project root (.impeccable-live.json)
4b52756e Fix live server startup: read port/token from PID file after background start
0a1e5614 Add global floating bar with detect/pick toggles
52b050bb Fix 5 bugs from real-world live mode testing
90d51583 remove old entries from skills lock
e4d1d969 Auto-generate argument hint with all commands grouped by category
455fe391 Add 41 tests for live-wrap and live-server, add auto-execute guards
7011a523 Remove live commands from CLI, delete src/live, add server-lost cleanup
5bad0872 Replace WebSocket with SSE, move live scripts into skill (self-contained)
a832fe77 No-HMR fallback: fetch raw source and inject variants into DOM
1671d04d Revert dynamic HTML serving (broke Bun module bundling)
05f5c0ba Add saving→confirmed bar states, auto-reload fallback, wrap CLI improvements
4535525f Add wrap CLI helper and optimize agent generation loop
26e0b8a7 Persist live session state in localStorage, fix HTML hot-reload
3d3c7ba3 Fix live session bugs found during E2E testing
722873d3 Redesign live bar: compact floating bar that morphs between states
bb94dadd Add live variant mode: element picker, action panel, poll/reply bridge (22 commands)
b93d36dc docs: add community & ecosystem section
e58cbc43 Split /onboard back out as its own command (21 commands total)
2c10cfb6 Trim v3.0 changelog to user-facing changes only
9341feea Ignore package-lock.json (project uses bun.lock)
2233d82f Bump skills to 3.0, remove prefixed bundle, redesign install section
b0f44f83 Consolidate 18 skills into 1 /impeccable skill with 20 commands
f957fcad Fix: quote YAML scalars that contain colon-space in frontmatter
git-subtree-dir: vendor/impeccable
git-subtree-split: 642f03d5a10eb3deb91bd511241e387e23b9aa39