Commit Graph
302 Commits
Author SHA1 Message Date
Paul BakausandClaude Opus 4.6 107aa8b7e1 Refine Commands section: fisheye alignment, category ordering, install step
- Shrink fisheye list to 400px and vertically center it so items align
  with magazine spread content area
- Sharpen fisheye mask gradient for cleaner edge fade
- Prevent spread-flow ("leads to" etc.) from wrapping to multiple lines
- Sort fisheye/spread commands by category order instead of arbitrary
- Add beta badges to fisheye items
- Remove border-right on spread-identity and border-top on demo caption
- Add "Teach it your design" as step 2 in Get Started section
- Make spread-command-name nowrap, remove word-break/hyphens

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 11:01:49 -07:00
Paul BakausandClaude Opus 4.6 39930a4186 Fix fisheye: absolute positioning with scroll-compensated centering
Rewrote fisheye layout to use position:absolute items with accumulated
scaled heights. Active item always stays at vertical center by adding
scrollTop to the offset calculation. Spacing compresses naturally for
scaled-down items. Gentler opacity fade (0.3 floor) so size is the
primary visual cue. Tighter CSS mask edges.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 09:55:02 -07:00
Paul BakausandClaude Opus 4.6 487ac0cf3a Redesign Commands section: magazine spread + fisheye nav
Replace the old scrollspy + glass terminal layout with:
- Editorial magazine spread: one command at a time with big display
  type name, category label, description, relationships, and
  before/after demo
- Fisheye command list: vertical scrollable list with transform-based
  scale effect (0.4x to 1.0x), smooth center detection, synced to
  the active spread. Index-based math avoids layout oscillation.
- Removed deprecated commands (teach-impeccable, frontend-design)
  from the browsable list
- Removed transition lock that blocked rapid scrolling updates
- Mobile layout preserved (existing carousel)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 08:20:48 -07:00
Paul BakausandClaude Opus 4.6 17f389db45 Update Framework section: CLI story + detect element in periodic table
- Update lead text to mention skill + commands + CLI
- Add CLI "detect" element (Dt) to System category in periodic table
  with dashed border, CLI badge, and hover tooltip
- Fix tooltip clipping (overflow: visible on container)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 16:58:50 -07:00
Paul BakausandClaude Opus 4.6 bdc23f02c7 Redesign Antidote section: horizontal disclosure, gallery sidebar, detection callout
- Replace tabbed pattern viewer with animated horizontal disclosure
  (inspired by jh3y/XJWNMOO): CSS Grid column transitions, hover to
  expand, rotated vertical labels, icon anchored at bottom
- Don't/Do toggle in each panel (defaults to Don't)
- Gallery of Shame as 2-column thumbnail sidebar beside the disclosure
- Detection callout as horizontal strip below
- Responsive: stacks at 1060px, gallery becomes 3-col grid
- Remove all em dashes from anti-pattern text (AI slop tell)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 16:52:11 -07:00
Paul BakausandClaude Opus 4.6 f683f413c8 Rename frontend-design to impeccable, fold teach-impeccable into teach mode
Major skill consolidation for v2.0:

- Rename source/skills/frontend-design/ to source/skills/impeccable/
  with user-invocable: true and argument-hint: "[teach]"
- Fold teach-impeccable body into impeccable as "Teach Mode" section,
  activated via /impeccable teach
- Create deprecation shims:
  - frontend-design: redirects to /impeccable
  - teach-impeccable: redirects to /impeccable teach
- Update all 16 skill cross-references from {{command_prefix}}frontend-design
  to {{command_prefix}}impeccable and {{command_prefix}}teach-impeccable to
  {{command_prefix}}impeccable teach
- Update CLI sentinel detection to use 'impeccable' (with teach-impeccable
  as legacy fallback)
- Update build system readPatterns() path and EXCLUDED_FROM_SUGGESTIONS
- Update all public files (data.js, cheatsheet, index, viz, demos)
- Update all documentation (README, NOTICE, AGENTS, plugin.json)
- Update all test expectations

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 14:04:54 -07:00
Paul BakausandClaude Opus 4.6 209444a9d5 Bump version to 2.0.2
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 13:40:01 -07:00
Paul BakausandClaude Opus 4.6 b858a5889e Add tests for prefix round-trip (detect, undo, re-apply)
Tests the full prefix lifecycle: detecting 'i-' from i-teach-impeccable,
undoing prefix (rename folders + strip from SKILL.md cross-references),
and re-applying prefix after update. Covers the scenario where
npx skills update needs unprefixed names from its lock file.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 13:37:46 -07:00
Paul BakausandClaude Opus 4.6 4a198d89d8 Handle prefixed skills during npx-skills-managed update
When skills are prefixed (e.g. i-audit), npx skills update would fail
because its lock file tracks unprefixed names. Now detects the prefix
via teach-impeccable naming, temporarily undoes the prefix (renaming
folders + reverting SKILL.md content), runs npx skills update, then
re-applies the prefix. If update fails, prefix is still restored.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 13:35:46 -07:00
Paul BakausandClaude Opus 4.6 5bb6328ed3 Add e2e tests for skills CLI and fix symlink handling
E2e tests covering: already-installed detection, prefix rename with
cross-reference updates, direct-download update fallback, and full
npx-skills install flow (skipped if npx skills unavailable).

Fixed prefix rename to handle npx-skills symlink layout: real dirs
in .agents/ are renamed and content-prefixed, then symlinks in
.claude/ are recreated to point to the renamed targets. Uses
unlinkSync (not rmSync) for symlinks to directories.

Added -y/--yes flag for non-interactive CI mode, --prefix= flag
for headless prefix selection.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 13:33:38 -07:00
Paul BakausandClaude Opus 4.6 3530a5740b Prefix all cross-references when renaming skills, not just frontmatter
Mirrors the build pipeline's prefixSkillReferences logic: when prefixing
skills after install, now also replaces /command-name invocations and
"the command-name skill" prose references throughout each SKILL.md body.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 13:21:30 -07:00
Paul BakausandClaude Opus 4.6 62349fa4f7 Add install guards and prefix support to skills install
- Check for existing installation (looks for teach-impeccable skill),
  bail with message unless --force is passed
- After npx skills add, prompt to prefix commands (default: i-)
  with custom prefix support; renames folders and updates frontmatter

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 13:18:19 -07:00
Paul BakausandClaude Opus 4.6 da8a59e981 Add skills subcommand and fix npm metadata
New `impeccable skills` CLI with three subcommands:
- `skills help`: fetches and displays all 20 commands from the API
- `skills install`: delegates to `npx skills add pbakaus/impeccable`
- `skills update`: tries `npx skills update` first; if skills aren't
  managed by the skills CLI, downloads the universal bundle from
  impeccable.style and overwrites provider folders directly, with
  git-based modification detection and confirmation prompt

Also fixes npm metadata: homepage -> impeccable.style, license -> Apache-2.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 13:04:43 -07:00
Paul BakausandClaude Opus 4.6 8d0e9de26d Prepare CLI for npm: v2.0.1, Node compat, npm-specific README
- Rename bin/impeccable.mjs to bin/impeccable (npm rejects .mjs in bin)
- Shebang: #!/usr/bin/env node (works without Bun)
- Add README.npm.md with CLI-focused docs, swapped in during publish
- Build browser script to source/ dir so URL scanning works in npm pkg
- Include browser script in files field
- Move website-only deps (archiver, motion, playwright) to devDependencies
- jsdom as dependency, puppeteer as optionalDependency
- Bump version to 2.0.1 across package.json, plugin.json, marketplace.json

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 12:17:59 -07:00
Paul BakausandClaude Opus 4.6 ce98272ea6 Polish browser overlay UI: label slide, banner scroll, toggle, passthrough
- Replace hover outline-offset with outline-color transition (no flicker)
- Label shows type name by default; on hover, detail slides up to replace
  it ticker-style with a dark background for visual distinction
- Banner: horizontal scroll with scroll-snap for findings, fixed controls
- Add toggle button to show/hide all overlays
- Overlays use pointer-events:none so page interactions (text selection,
  clicks, links) pass through; hover driven via target mouseenter/leave

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 16:47:22 -07:00
Paul BakausandClaude Opus 4.6 fda447ee8b Merge layout findings into existing overlays instead of stacking
When an element already has an overlay from per-element checks (e.g.
side-tab), layout findings (e.g. nested-cards) now merge into the
same overlay label instead of creating a duplicate stacked on top.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 16:21:25 -07:00
Paul BakausandClaude Opus 4.6 3818073268 Reposition overlays after ancestor CSS transitions (reveal animations)
Use a document-level transitionend listener instead of per-element
listeners, so overlays reposition when a parent's transform transition
ends (e.g. reveal animations with translateY on an ancestor container).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 16:15:12 -07:00
Paul BakausandClaude Opus 4.6 05c9776fd8 Fix overlay positioning for fixed elements and improve test fixture
Overlays for elements inside position:fixed contexts now use
position:fixed with viewport-relative coords, so they stay pinned
on scroll. Extracted shared positionOverlay() helper for consistent
coordinate handling across highlight, reposition, and IO callbacks.

Updated fixture with a real fixed footer scenario.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 23:15:43 -07:00
Paul BakausandClaude Opus 4.6 9ffa802c89 Hide overlays for non-rendered elements using IntersectionObserver
Overlays are now created hidden and revealed by an IntersectionObserver
(rootMargin: 99999px), so they automatically show/hide when their target
becomes visible or invisible -- handles closed <details>, display:none,
hidden modals, overflow:hidden clipping, etc. without polling.

Adds overlay-positioning.html test fixture with 9 scenario groups
covering transforms, closed details, sticky, overflow, position offsets,
flex/grid, containing-block creators, and combinations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 23:12:24 -07:00
Paul BakausandClaude Opus 4.6 3f86b72c88 Isolate browser tabs for critique sub-agents to prevent interference
Each assessment now creates its own tab and labels it ([LLM] or [Human])
so parallel sub-agents don't fight over the same page state.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 22:30:00 -07:00
Paul BakausandClaude Opus 4.6 efcfd5dadd Merge main into v2.0: consolidate critique skill with scoring, personas, and detection
Merges 54 commits from main including factory-based build system, Trae support,
improved skill descriptions, and security hardening. Consolidates the critique
skill to combine v2.0's sub-agent architecture and automated anti-pattern
detection with main's Nielsen heuristics scoring, cognitive load assessment,
persona-based testing, and structured follow-up workflow. Fixes browser detector
build to create target directory after skill sync.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 22:20:04 -07:00
Paul BakausandClaude Opus 4.6 685728b992 Redesign install section as two-step flow with Substack newsletter
Restructure the Install section into a "Get Started" two-step flow:
1. Install the skills (npx as primary, alternatives collapsible)
2. Stay up to date (embedded Substack subscribe form)

- Elevate npx command as the sole primary install method
- Collapse Claude Code marketplace and manual ZIP into expandable alternatives
- Replace hidden prefix toggle with prominent radio card selector
- Download button dynamically updates label based on prefix choice
- Add Substack newsletter embed (impeccablestyle.substack.com)
- Add newsletter link to footer alongside blog link
- Normalize button styles for consistency (square corners for actions)
- Add newsletter icon assets (SVG + PNG) for Substack branding

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 13:03:30 -07:00
Paul BakausandClaude Opus 4.6 9d368b777d Fix privacy page not loading by adding it to build entrypoints
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 18:05:44 -07:00
Paul BakausandGitHub 727f0a661e Merge pull request #72 from pbakaus/release/v1.6
Bump version to 1.6.0
2026-03-25 09:26:05 -07:00
Paul BakausandClaude Opus 4.6 8d1937d3c9 Homepage UX improvements from design critique
- Add floating bottom section nav (appears after hero, hides at footer)
- Fix hero split comparison to default 50/50 instead of 70/30
- Remove duplicate "Works with" badges from Install section
- Periodic table: restore compact elements, add inline hover tooltips
- Truncate command descriptions in Commands section for scannability
- Collapse older changelog entries behind "View older releases"
- Add GitHub star count (13.3k) next to repo link
- Fix meta theme-color to match light mode
- Reduce hero top padding, update section 03 subtitle
- Clean up footer: remove redundant tagline and anchor links
- Fix divider line accumulation in changelog and FAQ sections
- Center glass terminal vertically in viewport

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:22:12 -07:00
Paul BakausandClaude Opus 4.6 1f484d0f5d Add privacy policy page
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:07:46 -07:00
Paul BakausandClaude Opus 4.6 6a716263ba Add user-facing changelog guidance to CLAUDE.md
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 18:41:46 -07:00
Paul BakausandClaude Opus 4.6 07efc2e761 Trim changelog to user-facing changes only
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 18:41:12 -07:00
Paul BakausandClaude Opus 4.6 f27bf49b39 Bump version to 1.6.0, add changelog entry
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 18:40:48 -07:00
Paul BakausandGitHub f27ddf0876 Merge pull request #66 from gabelul/feat/critique-audit-scoring
feat: add scoring, personas, and cognitive load to critique and audit
2026-03-24 18:36:11 -07:00
Paul BakausandClaude Opus 4.6 a9bf70f1ab Refine critique and audit skills based on review feedback
- Collapse inline cognitive load section into reference pointer
- Differentiate audit (technical, code-level) from critique (UX, holistic)
- Add MANDATORY PREPARATION block to audit for context gathering
- Rename Riley persona to "Deliberate Stress Tester", remove pricing focus
- Restore stripped checklist items, persona examples, and emotional journey detail
- Restore "Don't soften criticism" and IMPORTANT/NEVER lines in audit
- Restore constraints question in Phase 3
- Fix em dash formatting (use proper — not --)
- Shorten descriptions while preserving key trigger terms

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 16:57:47 -07:00
Paul BakausandClaude Opus 4.6 85e6d99fde Merge main and resolve frontmatter conflicts
Combine PR's enhanced descriptions (scoring, personas, cognitive load)
with main's argument-hint format. Rebuild all providers.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 16:07:38 -07:00
Paul BakausandGitHub fcfea0f2ad Merge pull request #68 from everforge/chore/appjs-security-hardening
Harden pattern rendering and clipboard interactions in app.js
2026-03-24 16:03:57 -07:00
Paul BakausandClaude Opus 4.6 6ca80f81a1 Harden pattern rendering and clipboard in app.js
Simplified to substantive changes only (no whitespace reformatting):
- Add escapeHtml() for API-derived text in pattern tab/panel rendering
- Add CSS.escape() + null guard for tab panel selector lookup
- Add clipboard fallback for non-HTTPS / older browsers

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 16:02:40 -07:00
Paul BakausandGitHub e3eb40c726 Merge pull request #61 from mvanhorn/docs/dropdown-positioning-guidance
docs: add dropdown positioning guidance to interaction-design reference
2026-03-24 15:59:14 -07:00
Paul BakausandGitHub 633fb2fad4 Merge pull request #55 from rohan-tessl/improve/skill-review-optimization
feat: improve skill descriptions for impeccable
2026-03-24 15:56:52 -07:00
Paul BakausandClaude Opus 4.6 bea7315076 Merge main and resolve conflicts for description improvements
Take PR's improved skill descriptions (with "Use when..." trigger
phrases) and combine with main's argument-hint format. Drop old args
blocks and deleted transformer files.

Rebuild all providers so descriptions propagate everywhere.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:52:32 -07:00
Paul BakausandGitHub 8303cbbbe2 Merge pull request #71 from pbakaus/chore/update-develop-docs
Update DEVELOP.md for factory-based build system
2026-03-24 15:49:03 -07:00
Paul BakausandClaude Opus 4.6 19c2610bef Merge main (Trae PR) into docs branch
Resolve DEVELOP.md conflict by keeping our rewritten version which
already covers the factory architecture.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:47:09 -07:00
Paul BakausandGitHub 9e3b87903a Merge pull request #53 from shog86/add-trae-support
Add trae support
2026-03-24 15:46:30 -07:00
Paul BakausandClaude Opus 4.6 7dc523d69b Update DEVELOP.md to reflect factory-based build system
Remove references to individual transformer files, args arrays, and
per-provider body transforms. Document the new factory/providers
architecture, provider config options, and how to add new providers.
Point to HARNESSES.md for capabilities details.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:46:28 -07:00
Paul BakausandClaude Opus 4.6 112317fd05 Rebase Trae support onto new factory architecture
Merge main (factory refactor) and adapt Trae to use the config-driven
transformer system instead of a standalone trae.js file. Two provider
entries (trae-cn, trae) replace the custom dual-directory logic.

Also adds placeholderProvider support to the factory for providers that
share placeholder configs but need separate output directories.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:38:25 -07:00
Paul BakausandGitHub 8f5d0b3fc1 Merge pull request #69 from pbakaus/chore/fix-yaml-frontmatter
Fix YAML frontmatter, consolidate transformers, add harness reference
2026-03-24 15:26:35 -07:00
Paul BakausandClaude Opus 4.6 83b01ecfa2 Use {{command_prefix}} for skill invocation references
Skill cross-references like "Use the frontend-design skill" and
"run teach-impeccable" now use {{command_prefix}} so each provider
gets the correct invocation syntax (/ for most, $ for Codex).

Prose references to skill content ("guidelines in the frontend-design
skill") are left unchanged since they're not invocation instructions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:24:29 -07:00
Paul BakausandClaude Opus 4.6 7c208cdfbb Merge main and integrate command_prefix support into factory
Resolve conflict from codex.js (deleted in our branch, modified on main
for command_prefix). The command_prefix feature from main is preserved
in factory.js via PROVIDER_PLACEHOLDERS lookup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 15:19:13 -07:00
Paul BakausandClaude Opus 4.6 2d4c7899dd Update provider configs from official docs, add HARNESSES.md reference
Research each harness's official documentation to verify and correct
provider frontmatter configs. Remove Codex/Gemini body transforms that
targeted their commands systems, not skills.

- Add compatibility + metadata to Cursor and Agents (Copilot)
- Add allowed-tools to Pi
- Remove Codex $ARGNAME and Gemini {{args}} body transforms
- Add HARNESSES.md as source of truth for harness capabilities

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 10:46:59 -07:00
Paul BakausandClaude Opus 4.6 6de73abf1b Fix invalid YAML frontmatter and consolidate build transformers
Fixes #67: argument-hint values starting with [ were parsed as YAML flow
sequences. Replace structured args arrays in source files with pre-formatted
argument-hint strings, and quote values starting with [ or { in
generateYamlFrontmatter().

Also consolidates 8 nearly-identical transformer files into a single
config-driven createTransformer() factory. Adding a new provider now
requires only a config object in providers.js instead of a full file.

- Replace args source frontmatter with argument-hint strings
- Add YAML quoting for values starting with [ or {
- Add quote stripping to parseFrontmatter() for round-trip support
- Create factory.js + providers.js, delete 8 individual transformers
- Replace 16 explicit build.js calls with a loop over PROVIDERS
- Consolidate 8 test files into 2 (factory + providers)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 09:48:42 -07:00
everforge ca43d5ccf7 Escape API-driven text before injecting it into tab/panel markup to reduce XSS risk, and add a robust clipboard fallback plus safer tab panel selection for edge-case category names. 2026-03-24 09:58:59 -05:00
Paul BakausandGitHub e9ab330a61 Merge pull request #65 from gabelul/fix/codex-prefix-from-upstream-main
fix: show $ instead of / for Codex command references
2026-03-23 19:43:59 -07:00
Gabi 2b68f01ea3 feat: give critique and audit actual teeth — scoring, personas, cognitive load
Critique was vibes-only before. Now it scores against Nielsen's 10 heuristics
(0-4 each, /40 total) so you get a number, not just feelings. Added 5 user
personas that auto-select based on the interface type — a power user and a
first-timer break different things, turns out. Cognitive load checklist catches
the "why does this screen make my brain hurt" problems.

Audit gets the same treatment: 0-4 per dimension, /20 total, P0-P3 severity
instead of the vague Critical/High/Medium/Low labels nobody agrees on.

Both now present recommendations inline — no plan file, no /next or /fix-all
commands. Just tell the AI what to fix and it does it. Simpler.

New reference files: heuristics-scoring, personas, cognitive-load.
2026-03-24 00:13:00 +01:00