From 55b9445dc4eb723d58267ae3b4a2a954d7c0acb5 Mon Sep 17 00:00:00 2001 From: Rex Lorenzo Date: Wed, 8 Jul 2026 09:11:14 -0700 Subject: [PATCH 1/2] feat(setup): offer Impeccable design skills install After the per-agent installs, prompt to install the Impeccable design skills (impeccable.style) for the selected tools it supports, mirroring the existing gh agent-skill flow. - Map selected tools to Impeccable providers (claude, codex, copilot->github); Antigravity has no provider and is skipped. - Build a de-duplicated --providers list and run `npx impeccable install --providers= --scope=global` on confirm. - Runs via npx with explicit providers/scope, so re-running refreshes an existing install and adds newly-selected agents (idempotent, no separate update branch). - Document the step in the README alongside the gh agent skill. --- README.md | 21 ++++++++++++++++++++ setup | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) diff --git a/README.md b/README.md index 80260ce..8a5b39c 100644 --- a/README.md +++ b/README.md @@ -211,6 +211,27 @@ gh skill list --agent claude-code # verify There is no `gh skill uninstall` command; to remove it, delete the installed `gh/` skill directory (its location is agent-dependent — e.g. `~/.codex/skills/gh/` or `~/.copilot/skills/gh/`; run `gh skill list --json skillName,path` to see the exact filesystem path). +## Impeccable Design Skills + +`setup` can also install [Impeccable](https://impeccable.style), a **third-party** design skill set for AI coding agents. It gives your agent a shared design vocabulary and commands (typography, color, motion, layout, polish, and AI-slop detection), with a build tailored to each harness. It is unrelated to the commands this repo ships. + +For the selected tools it supports (Claude Code, Codex CLI, Copilot CLI), `setup` offers to run one command covering them all: + +```bash +npx impeccable install --providers=claude,codex,github --scope=global +``` + +Because it runs via `npx` (always the latest) with explicit `--providers`/`--scope`, re-running `setup` and accepting this step refreshes an existing install and adds any newly-selected agents. There is no separate detect-and-update branch (unlike the `gh` skill above), since `install` with explicit providers is already idempotent and provider-aware. + +Antigravity CLI has no Impeccable provider, so it is skipped. This step needs `npx` (Node.js). To manage Impeccable yourself: + +```bash +npx impeccable install --providers=claude --scope=global # install for one provider +npx impeccable update # update +``` + +See [impeccable.style](https://impeccable.style) for the full command list and the Claude Code plugin install (`/plugin marketplace add pbakaus/impeccable`). + ## Adding New Commands Commands are authored once as Claude Code command files; everything else is generated: diff --git a/setup b/setup index c6fe01e..10e67c0 100755 --- a/setup +++ b/setup @@ -808,6 +808,57 @@ configure_gh_skill() { fi } +# ---- Impeccable design skills ---------------------------------------------- +# +# Impeccable (https://impeccable.style) is a third-party design skill set for +# AI coding agents: a shared design vocabulary plus commands for typography, +# color, motion, layout, polish, and AI-slop detection. It is unrelated to the +# commands this repo ships. Its scriptable installer targets providers by name. + +# Map an internal tool name to its Impeccable `--providers` id. +# Only tools Impeccable supports are mapped; Antigravity has no provider, so it +# is omitted (returns empty) and skipped by the caller. +impeccable_provider_id() { + case "$1" in + claude) echo "claude" ;; + codex) echo "codex" ;; + copilot) echo "github" ;; + esac +} + +# Offer to install the Impeccable design skills for the selected agents. +configure_impeccable_skills() { + # Build a de-duplicated, comma-separated provider list from selected tools. + local providers="" tool pid + for tool in "${selected_tools[@]}"; do + pid=$(impeccable_provider_id "$tool") + [[ -z "$pid" ]] && continue + [[ ",$providers," == *",$pid,"* ]] && continue + providers="${providers:+$providers,}$pid" + done + [[ -z "$providers" ]] && return + + echo "" + echo -e "${BOLD}── Impeccable design skills ──${NC}" + echo "" + echo " Install or update the Impeccable design skills (https://impeccable.style)?" + echo " A shared design vocabulary and commands for your agent: typography," + echo " color, motion, layout, polish, and AI-slop detection." + echo " Runs via npx (always the latest), so re-running refreshes an existing" + echo " install and adds any newly-selected agents:" + echo " npx impeccable install --providers=${providers} --scope=global" + echo "" + if prompt_yes_no " Install/update Impeccable skills?"; then + if npx impeccable install --providers="$providers" --scope=global; then + print_success "Installed/updated Impeccable skills for: ${providers}" + else + print_warning "Impeccable install failed; see output above" + fi + else + print_info "Skipped Impeccable skills" + fi +} + # ---- review loop script installer ----------------------------------------- # # Symlinks executable scripts from bin/ to ~/.local/bin/ so they are on PATH. @@ -1102,6 +1153,12 @@ if gh_skill_available; then done fi +# ---- offer the Impeccable design skills ------------------------------------ + +# Impeccable (impeccable.style) is a third-party design skill set for agents. +# Offer to install it once for whichever selected tools it supports. +configure_impeccable_skills + # ---- install shared prompts ------------------------------------------------ # Shared prompts are agent-agnostic and consumed by the review loop scripts. From f04469bcf5ab134d46c952829f201f2c4f355c3a Mon Sep 17 00:00:00 2001 From: Rex Lorenzo Date: Wed, 8 Jul 2026 13:48:16 -0700 Subject: [PATCH 2/2] fix(setup): default Impeccable prompt to No and guard on npx - Pass "n" to prompt_yes_no so the opt-in Impeccable install defaults to No, matching the documented behavior. - Pre-check npx after opt-in (mirrors the MCP npx guard) so a missing Node.js gives a clear message instead of a misleading install failure. --- setup | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/setup b/setup index 10e67c0..d4853af 100755 --- a/setup +++ b/setup @@ -848,7 +848,11 @@ configure_impeccable_skills() { echo " install and adds any newly-selected agents:" echo " npx impeccable install --providers=${providers} --scope=global" echo "" - if prompt_yes_no " Install/update Impeccable skills?"; then + if prompt_yes_no " Install/update Impeccable skills?" "n"; then + if ! command -v npx &>/dev/null; then + print_warning "npx not found; install Node.js to use Impeccable skills" + return + fi if npx impeccable install --providers="$providers" --scope=global; then print_success "Installed/updated Impeccable skills for: ${providers}" else