From 50dfeef39f6c86d9db362d1c163a22b4042be973 Mon Sep 17 00:00:00 2001 From: Paul Bakaus Date: Tue, 14 Apr 2026 10:56:07 -0700 Subject: [PATCH] Tighten typography.md; remove reference/pin.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit typography.md had a parallel 4-step font-selection procedure and a smaller banned-fonts list (5 fonts: Inter, Roboto, Open Sans, Lato, Montserrat) that duplicated SKILL.md's authoritative with its 23-font list. Removed the duplicate procedure and deferred to SKILL.md for the banned list. Kept the unique material: anti-reflex corrections, system-font note, pairing principles, web font loading, OpenType, fluid type guidance, accessibility — and all of the scale/rhythm/measure content that SKILL.md doesn't cover. pin.md removed for the same reason as context.md: SKILL.md's inlined pin section already covers what an agent needs (what pin does, usage, valid commands, how to report back). No value in the indirection. SKILL.md: 386 → 388 lines (slight growth from inlining pin details) typography.md: 142 → 132 lines Co-Authored-By: Claude Opus 4.6 (1M context) --- .agents/skills/impeccable/SKILL.md | 6 ++-- .agents/skills/impeccable/reference/pin.md | 31 ------------------- .../skills/impeccable/reference/typography.md | 16 ++-------- .claude/skills/impeccable/SKILL.md | 6 ++-- .claude/skills/impeccable/reference/pin.md | 31 ------------------- .../skills/impeccable/reference/typography.md | 16 ++-------- .cursor/skills/impeccable/SKILL.md | 6 ++-- .cursor/skills/impeccable/reference/pin.md | 31 ------------------- .../skills/impeccable/reference/typography.md | 16 ++-------- .gemini/skills/impeccable/SKILL.md | 6 ++-- .gemini/skills/impeccable/reference/pin.md | 31 ------------------- .../skills/impeccable/reference/typography.md | 16 ++-------- .github/skills/impeccable/SKILL.md | 6 ++-- .github/skills/impeccable/reference/pin.md | 31 ------------------- .../skills/impeccable/reference/typography.md | 16 ++-------- .kiro/skills/impeccable/SKILL.md | 6 ++-- .kiro/skills/impeccable/reference/pin.md | 31 ------------------- .../skills/impeccable/reference/typography.md | 16 ++-------- .opencode/skills/impeccable/SKILL.md | 6 ++-- .opencode/skills/impeccable/reference/pin.md | 31 ------------------- .../skills/impeccable/reference/typography.md | 16 ++-------- .pi/skills/impeccable/SKILL.md | 6 ++-- .pi/skills/impeccable/reference/pin.md | 31 ------------------- .pi/skills/impeccable/reference/typography.md | 16 ++-------- .rovodev/skills/impeccable/SKILL.md | 6 ++-- .rovodev/skills/impeccable/reference/pin.md | 31 ------------------- .../skills/impeccable/reference/typography.md | 16 ++-------- .trae-cn/skills/impeccable/SKILL.md | 6 ++-- .trae-cn/skills/impeccable/reference/pin.md | 31 ------------------- .../skills/impeccable/reference/typography.md | 16 ++-------- .trae/skills/impeccable/SKILL.md | 6 ++-- .trae/skills/impeccable/reference/pin.md | 31 ------------------- .../skills/impeccable/reference/typography.md | 16 ++-------- source/skills/impeccable/SKILL.md | 6 ++-- source/skills/impeccable/reference/pin.md | 31 ------------------- .../skills/impeccable/reference/typography.md | 16 ++-------- 36 files changed, 84 insertions(+), 552 deletions(-) delete mode 100644 .agents/skills/impeccable/reference/pin.md delete mode 100644 .claude/skills/impeccable/reference/pin.md delete mode 100644 .cursor/skills/impeccable/reference/pin.md delete mode 100644 .gemini/skills/impeccable/reference/pin.md delete mode 100644 .github/skills/impeccable/reference/pin.md delete mode 100644 .kiro/skills/impeccable/reference/pin.md delete mode 100644 .opencode/skills/impeccable/reference/pin.md delete mode 100644 .pi/skills/impeccable/reference/pin.md delete mode 100644 .rovodev/skills/impeccable/reference/pin.md delete mode 100644 .trae-cn/skills/impeccable/reference/pin.md delete mode 100644 .trae/skills/impeccable/reference/pin.md delete mode 100644 source/skills/impeccable/reference/pin.md diff --git a/.agents/skills/impeccable/SKILL.md b/.agents/skills/impeccable/SKILL.md index a7c519cc5..10d4ff4ee 100644 --- a/.agents/skills/impeccable/SKILL.md +++ b/.agents/skills/impeccable/SKILL.md @@ -374,8 +374,10 @@ When a sub-command is matched, load the linked reference and follow its instruct ## Pin / Unpin -For `pin ` or `unpin `, run: +**Pin** creates a standalone shortcut so `$` invokes `$impeccable ` directly. **Unpin** removes it. The script writes to every harness directory present in the project so shortcuts work across every AI tool the user has installed. + ```bash node .agents/skills/impeccable/scripts/pin.mjs ``` -Full details (what pin/unpin does, valid commands, cross-harness behavior): [reference/pin.md](reference/pin.md). \ No newline at end of file + +Valid `` is any sub-command from the router table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error. \ No newline at end of file diff --git a/.agents/skills/impeccable/reference/pin.md b/.agents/skills/impeccable/reference/pin.md deleted file mode 100644 index d3828748e..000000000 --- a/.agents/skills/impeccable/reference/pin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pin / Unpin - -Commands that create or remove standalone slash-command shortcuts for frequently-used sub-commands. - -## What it does - -**Pin** creates a lightweight standalone skill so `$` invokes `$impeccable ` directly. Example: `$impeccable pin audit` creates `$audit` as a shortcut for `$impeccable audit`. - -**Unpin** removes a previously pinned shortcut. - -The pinned skill is a thin redirect — it doesn't duplicate the sub-command reference, it just forwards to the impeccable router. - -## Usage - -```bash -node {{scripts_path}}/pin.mjs pin -node {{scripts_path}}/pin.mjs unpin -``` - -The script writes to every harness directory present in the project (`.claude/`, `.cursor/`, `.codex/`, `.agents/`, `.gemini/`, etc.) so pinned shortcuts work across every AI coding tool the user has installed. - -## Valid commands - -Any impeccable sub-command name is a valid pin target: `craft`, `shape`, `teach`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `overdrive`, `clarify`, `adapt`, `optimize`, `live`. - -## Reporting back - -After running the script, report what happened: -- **Pin success**: confirm the new shortcut (e.g. *"Pinned. You can now use `$audit` as a shortcut for `$impeccable audit`."*). -- **Unpin success**: confirm removal. -- **Errors**: relay the script's stderr verbatim — usually the command name was invalid or the pin already/doesn't exist. diff --git a/.agents/skills/impeccable/reference/typography.md b/.agents/skills/impeccable/reference/typography.md index 7063af5b2..cae643e5c 100644 --- a/.agents/skills/impeccable/reference/typography.md +++ b/.agents/skills/impeccable/reference/typography.md @@ -30,24 +30,14 @@ Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scal ## Font Selection & Pairing -### Choosing Distinctive Fonts +The tactical selection procedure and the full banned-fonts list live in SKILL.md's `` and `` tags (already loaded when this reference is consulted). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules. -**Avoid the invisible defaults**: Inter, Roboto, Open Sans, Lato, Montserrat. These are everywhere, making your design feel generic. They're fine for documentation or tools where personality isn't the goal—but if you want distinctive design, look elsewhere. +### Anti-reflexes worth defending against -**Pick the font from the brief, not from a category preset.** The most common AI typography failure is reaching for the same "tasteful" font for every editorial brief, the same "modern" font for every tech brief, the same "elegant serif" for every premium brief. Those reflexes produce monoculture across projects. The right font is one whose physical character matches *this specific* brand, audience, and moment. - -A working selection process: - -1. Read the brief once. Write down three concrete words for the brand voice. Not "modern" or "elegant" — those are dead categories. Try "warm and mechanical and opinionated" or "calm and clinical and careful" or "fast and dense and unimpressed" or "handmade and a little weird." -2. Now imagine the font as a physical object the brand could ship: a typewriter ribbon, a hand-lettered shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a museum exhibit caption, a tax form, a children's book printed on cheap newsprint. Whichever physical object fits the three words is pointing at the right *kind* of typeface. -3. Browse a font catalog (Google Fonts, Pangram Pangram, Adobe Fonts, Future Fonts, ABC Dinamo) with that physical object in mind. **Reject the first thing that "looks designy."** That's your trained-everywhere reflex. Keep looking. -4. Avoid your defaults from previous projects. If you find yourself reaching for the same display font you used last time, make yourself pick something else. - -**Anti-reflexes worth defending against**: - A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools. - An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans. - A children's product does NOT need a rounded display font. Kids' books use real type. -- A "modern" brief does NOT need a geometric sans. The most modern thing you can do in 2026 is not use the font everyone else is using. +- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using. **System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality. diff --git a/.claude/skills/impeccable/SKILL.md b/.claude/skills/impeccable/SKILL.md index 74c7b9bc8..28547c885 100644 --- a/.claude/skills/impeccable/SKILL.md +++ b/.claude/skills/impeccable/SKILL.md @@ -380,8 +380,10 @@ When a sub-command is matched, load the linked reference and follow its instruct ## Pin / Unpin -For `pin ` or `unpin `, run: +**Pin** creates a standalone shortcut so `/` invokes `/impeccable ` directly. **Unpin** removes it. The script writes to every harness directory present in the project so shortcuts work across every AI tool the user has installed. + ```bash node .claude/skills/impeccable/scripts/pin.mjs ``` -Full details (what pin/unpin does, valid commands, cross-harness behavior): [reference/pin.md](reference/pin.md). \ No newline at end of file + +Valid `` is any sub-command from the router table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error. \ No newline at end of file diff --git a/.claude/skills/impeccable/reference/pin.md b/.claude/skills/impeccable/reference/pin.md deleted file mode 100644 index 81565d5fc..000000000 --- a/.claude/skills/impeccable/reference/pin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pin / Unpin - -Commands that create or remove standalone slash-command shortcuts for frequently-used sub-commands. - -## What it does - -**Pin** creates a lightweight standalone skill so `/` invokes `/impeccable ` directly. Example: `/impeccable pin audit` creates `/audit` as a shortcut for `/impeccable audit`. - -**Unpin** removes a previously pinned shortcut. - -The pinned skill is a thin redirect — it doesn't duplicate the sub-command reference, it just forwards to the impeccable router. - -## Usage - -```bash -node {{scripts_path}}/pin.mjs pin -node {{scripts_path}}/pin.mjs unpin -``` - -The script writes to every harness directory present in the project (`.claude/`, `.cursor/`, `.codex/`, `.agents/`, `.gemini/`, etc.) so pinned shortcuts work across every AI coding tool the user has installed. - -## Valid commands - -Any impeccable sub-command name is a valid pin target: `craft`, `shape`, `teach`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `overdrive`, `clarify`, `adapt`, `optimize`, `live`. - -## Reporting back - -After running the script, report what happened: -- **Pin success**: confirm the new shortcut (e.g. *"Pinned. You can now use `/audit` as a shortcut for `/impeccable audit`."*). -- **Unpin success**: confirm removal. -- **Errors**: relay the script's stderr verbatim — usually the command name was invalid or the pin already/doesn't exist. diff --git a/.claude/skills/impeccable/reference/typography.md b/.claude/skills/impeccable/reference/typography.md index 7063af5b2..cae643e5c 100644 --- a/.claude/skills/impeccable/reference/typography.md +++ b/.claude/skills/impeccable/reference/typography.md @@ -30,24 +30,14 @@ Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scal ## Font Selection & Pairing -### Choosing Distinctive Fonts +The tactical selection procedure and the full banned-fonts list live in SKILL.md's `` and `` tags (already loaded when this reference is consulted). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules. -**Avoid the invisible defaults**: Inter, Roboto, Open Sans, Lato, Montserrat. These are everywhere, making your design feel generic. They're fine for documentation or tools where personality isn't the goal—but if you want distinctive design, look elsewhere. +### Anti-reflexes worth defending against -**Pick the font from the brief, not from a category preset.** The most common AI typography failure is reaching for the same "tasteful" font for every editorial brief, the same "modern" font for every tech brief, the same "elegant serif" for every premium brief. Those reflexes produce monoculture across projects. The right font is one whose physical character matches *this specific* brand, audience, and moment. - -A working selection process: - -1. Read the brief once. Write down three concrete words for the brand voice. Not "modern" or "elegant" — those are dead categories. Try "warm and mechanical and opinionated" or "calm and clinical and careful" or "fast and dense and unimpressed" or "handmade and a little weird." -2. Now imagine the font as a physical object the brand could ship: a typewriter ribbon, a hand-lettered shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a museum exhibit caption, a tax form, a children's book printed on cheap newsprint. Whichever physical object fits the three words is pointing at the right *kind* of typeface. -3. Browse a font catalog (Google Fonts, Pangram Pangram, Adobe Fonts, Future Fonts, ABC Dinamo) with that physical object in mind. **Reject the first thing that "looks designy."** That's your trained-everywhere reflex. Keep looking. -4. Avoid your defaults from previous projects. If you find yourself reaching for the same display font you used last time, make yourself pick something else. - -**Anti-reflexes worth defending against**: - A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools. - An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans. - A children's product does NOT need a rounded display font. Kids' books use real type. -- A "modern" brief does NOT need a geometric sans. The most modern thing you can do in 2026 is not use the font everyone else is using. +- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using. **System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality. diff --git a/.cursor/skills/impeccable/SKILL.md b/.cursor/skills/impeccable/SKILL.md index c6001117e..8bf3a06bd 100644 --- a/.cursor/skills/impeccable/SKILL.md +++ b/.cursor/skills/impeccable/SKILL.md @@ -376,8 +376,10 @@ When a sub-command is matched, load the linked reference and follow its instruct ## Pin / Unpin -For `pin ` or `unpin `, run: +**Pin** creates a standalone shortcut so `/` invokes `/impeccable ` directly. **Unpin** removes it. The script writes to every harness directory present in the project so shortcuts work across every AI tool the user has installed. + ```bash node .cursor/skills/impeccable/scripts/pin.mjs ``` -Full details (what pin/unpin does, valid commands, cross-harness behavior): [reference/pin.md](reference/pin.md). \ No newline at end of file + +Valid `` is any sub-command from the router table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error. \ No newline at end of file diff --git a/.cursor/skills/impeccable/reference/pin.md b/.cursor/skills/impeccable/reference/pin.md deleted file mode 100644 index 81565d5fc..000000000 --- a/.cursor/skills/impeccable/reference/pin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pin / Unpin - -Commands that create or remove standalone slash-command shortcuts for frequently-used sub-commands. - -## What it does - -**Pin** creates a lightweight standalone skill so `/` invokes `/impeccable ` directly. Example: `/impeccable pin audit` creates `/audit` as a shortcut for `/impeccable audit`. - -**Unpin** removes a previously pinned shortcut. - -The pinned skill is a thin redirect — it doesn't duplicate the sub-command reference, it just forwards to the impeccable router. - -## Usage - -```bash -node {{scripts_path}}/pin.mjs pin -node {{scripts_path}}/pin.mjs unpin -``` - -The script writes to every harness directory present in the project (`.claude/`, `.cursor/`, `.codex/`, `.agents/`, `.gemini/`, etc.) so pinned shortcuts work across every AI coding tool the user has installed. - -## Valid commands - -Any impeccable sub-command name is a valid pin target: `craft`, `shape`, `teach`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `overdrive`, `clarify`, `adapt`, `optimize`, `live`. - -## Reporting back - -After running the script, report what happened: -- **Pin success**: confirm the new shortcut (e.g. *"Pinned. You can now use `/audit` as a shortcut for `/impeccable audit`."*). -- **Unpin success**: confirm removal. -- **Errors**: relay the script's stderr verbatim — usually the command name was invalid or the pin already/doesn't exist. diff --git a/.cursor/skills/impeccable/reference/typography.md b/.cursor/skills/impeccable/reference/typography.md index 7063af5b2..cae643e5c 100644 --- a/.cursor/skills/impeccable/reference/typography.md +++ b/.cursor/skills/impeccable/reference/typography.md @@ -30,24 +30,14 @@ Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scal ## Font Selection & Pairing -### Choosing Distinctive Fonts +The tactical selection procedure and the full banned-fonts list live in SKILL.md's `` and `` tags (already loaded when this reference is consulted). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules. -**Avoid the invisible defaults**: Inter, Roboto, Open Sans, Lato, Montserrat. These are everywhere, making your design feel generic. They're fine for documentation or tools where personality isn't the goal—but if you want distinctive design, look elsewhere. +### Anti-reflexes worth defending against -**Pick the font from the brief, not from a category preset.** The most common AI typography failure is reaching for the same "tasteful" font for every editorial brief, the same "modern" font for every tech brief, the same "elegant serif" for every premium brief. Those reflexes produce monoculture across projects. The right font is one whose physical character matches *this specific* brand, audience, and moment. - -A working selection process: - -1. Read the brief once. Write down three concrete words for the brand voice. Not "modern" or "elegant" — those are dead categories. Try "warm and mechanical and opinionated" or "calm and clinical and careful" or "fast and dense and unimpressed" or "handmade and a little weird." -2. Now imagine the font as a physical object the brand could ship: a typewriter ribbon, a hand-lettered shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a museum exhibit caption, a tax form, a children's book printed on cheap newsprint. Whichever physical object fits the three words is pointing at the right *kind* of typeface. -3. Browse a font catalog (Google Fonts, Pangram Pangram, Adobe Fonts, Future Fonts, ABC Dinamo) with that physical object in mind. **Reject the first thing that "looks designy."** That's your trained-everywhere reflex. Keep looking. -4. Avoid your defaults from previous projects. If you find yourself reaching for the same display font you used last time, make yourself pick something else. - -**Anti-reflexes worth defending against**: - A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools. - An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans. - A children's product does NOT need a rounded display font. Kids' books use real type. -- A "modern" brief does NOT need a geometric sans. The most modern thing you can do in 2026 is not use the font everyone else is using. +- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using. **System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality. diff --git a/.gemini/skills/impeccable/SKILL.md b/.gemini/skills/impeccable/SKILL.md index 91b220cda..5af023da3 100644 --- a/.gemini/skills/impeccable/SKILL.md +++ b/.gemini/skills/impeccable/SKILL.md @@ -375,8 +375,10 @@ When a sub-command is matched, load the linked reference and follow its instruct ## Pin / Unpin -For `pin ` or `unpin `, run: +**Pin** creates a standalone shortcut so `/` invokes `/impeccable ` directly. **Unpin** removes it. The script writes to every harness directory present in the project so shortcuts work across every AI tool the user has installed. + ```bash node .gemini/skills/impeccable/scripts/pin.mjs ``` -Full details (what pin/unpin does, valid commands, cross-harness behavior): [reference/pin.md](reference/pin.md). \ No newline at end of file + +Valid `` is any sub-command from the router table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error. \ No newline at end of file diff --git a/.gemini/skills/impeccable/reference/pin.md b/.gemini/skills/impeccable/reference/pin.md deleted file mode 100644 index 81565d5fc..000000000 --- a/.gemini/skills/impeccable/reference/pin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pin / Unpin - -Commands that create or remove standalone slash-command shortcuts for frequently-used sub-commands. - -## What it does - -**Pin** creates a lightweight standalone skill so `/` invokes `/impeccable ` directly. Example: `/impeccable pin audit` creates `/audit` as a shortcut for `/impeccable audit`. - -**Unpin** removes a previously pinned shortcut. - -The pinned skill is a thin redirect — it doesn't duplicate the sub-command reference, it just forwards to the impeccable router. - -## Usage - -```bash -node {{scripts_path}}/pin.mjs pin -node {{scripts_path}}/pin.mjs unpin -``` - -The script writes to every harness directory present in the project (`.claude/`, `.cursor/`, `.codex/`, `.agents/`, `.gemini/`, etc.) so pinned shortcuts work across every AI coding tool the user has installed. - -## Valid commands - -Any impeccable sub-command name is a valid pin target: `craft`, `shape`, `teach`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `overdrive`, `clarify`, `adapt`, `optimize`, `live`. - -## Reporting back - -After running the script, report what happened: -- **Pin success**: confirm the new shortcut (e.g. *"Pinned. You can now use `/audit` as a shortcut for `/impeccable audit`."*). -- **Unpin success**: confirm removal. -- **Errors**: relay the script's stderr verbatim — usually the command name was invalid or the pin already/doesn't exist. diff --git a/.gemini/skills/impeccable/reference/typography.md b/.gemini/skills/impeccable/reference/typography.md index 7063af5b2..cae643e5c 100644 --- a/.gemini/skills/impeccable/reference/typography.md +++ b/.gemini/skills/impeccable/reference/typography.md @@ -30,24 +30,14 @@ Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scal ## Font Selection & Pairing -### Choosing Distinctive Fonts +The tactical selection procedure and the full banned-fonts list live in SKILL.md's `` and `` tags (already loaded when this reference is consulted). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules. -**Avoid the invisible defaults**: Inter, Roboto, Open Sans, Lato, Montserrat. These are everywhere, making your design feel generic. They're fine for documentation or tools where personality isn't the goal—but if you want distinctive design, look elsewhere. +### Anti-reflexes worth defending against -**Pick the font from the brief, not from a category preset.** The most common AI typography failure is reaching for the same "tasteful" font for every editorial brief, the same "modern" font for every tech brief, the same "elegant serif" for every premium brief. Those reflexes produce monoculture across projects. The right font is one whose physical character matches *this specific* brand, audience, and moment. - -A working selection process: - -1. Read the brief once. Write down three concrete words for the brand voice. Not "modern" or "elegant" — those are dead categories. Try "warm and mechanical and opinionated" or "calm and clinical and careful" or "fast and dense and unimpressed" or "handmade and a little weird." -2. Now imagine the font as a physical object the brand could ship: a typewriter ribbon, a hand-lettered shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a museum exhibit caption, a tax form, a children's book printed on cheap newsprint. Whichever physical object fits the three words is pointing at the right *kind* of typeface. -3. Browse a font catalog (Google Fonts, Pangram Pangram, Adobe Fonts, Future Fonts, ABC Dinamo) with that physical object in mind. **Reject the first thing that "looks designy."** That's your trained-everywhere reflex. Keep looking. -4. Avoid your defaults from previous projects. If you find yourself reaching for the same display font you used last time, make yourself pick something else. - -**Anti-reflexes worth defending against**: - A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools. - An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans. - A children's product does NOT need a rounded display font. Kids' books use real type. -- A "modern" brief does NOT need a geometric sans. The most modern thing you can do in 2026 is not use the font everyone else is using. +- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using. **System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality. diff --git a/.github/skills/impeccable/SKILL.md b/.github/skills/impeccable/SKILL.md index 0784259b2..d22aa1929 100644 --- a/.github/skills/impeccable/SKILL.md +++ b/.github/skills/impeccable/SKILL.md @@ -378,8 +378,10 @@ When a sub-command is matched, load the linked reference and follow its instruct ## Pin / Unpin -For `pin ` or `unpin `, run: +**Pin** creates a standalone shortcut so `/` invokes `/impeccable ` directly. **Unpin** removes it. The script writes to every harness directory present in the project so shortcuts work across every AI tool the user has installed. + ```bash node .github/skills/impeccable/scripts/pin.mjs ``` -Full details (what pin/unpin does, valid commands, cross-harness behavior): [reference/pin.md](reference/pin.md). \ No newline at end of file + +Valid `` is any sub-command from the router table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error. \ No newline at end of file diff --git a/.github/skills/impeccable/reference/pin.md b/.github/skills/impeccable/reference/pin.md deleted file mode 100644 index 81565d5fc..000000000 --- a/.github/skills/impeccable/reference/pin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pin / Unpin - -Commands that create or remove standalone slash-command shortcuts for frequently-used sub-commands. - -## What it does - -**Pin** creates a lightweight standalone skill so `/` invokes `/impeccable ` directly. Example: `/impeccable pin audit` creates `/audit` as a shortcut for `/impeccable audit`. - -**Unpin** removes a previously pinned shortcut. - -The pinned skill is a thin redirect — it doesn't duplicate the sub-command reference, it just forwards to the impeccable router. - -## Usage - -```bash -node {{scripts_path}}/pin.mjs pin -node {{scripts_path}}/pin.mjs unpin -``` - -The script writes to every harness directory present in the project (`.claude/`, `.cursor/`, `.codex/`, `.agents/`, `.gemini/`, etc.) so pinned shortcuts work across every AI coding tool the user has installed. - -## Valid commands - -Any impeccable sub-command name is a valid pin target: `craft`, `shape`, `teach`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `overdrive`, `clarify`, `adapt`, `optimize`, `live`. - -## Reporting back - -After running the script, report what happened: -- **Pin success**: confirm the new shortcut (e.g. *"Pinned. You can now use `/audit` as a shortcut for `/impeccable audit`."*). -- **Unpin success**: confirm removal. -- **Errors**: relay the script's stderr verbatim — usually the command name was invalid or the pin already/doesn't exist. diff --git a/.github/skills/impeccable/reference/typography.md b/.github/skills/impeccable/reference/typography.md index 7063af5b2..cae643e5c 100644 --- a/.github/skills/impeccable/reference/typography.md +++ b/.github/skills/impeccable/reference/typography.md @@ -30,24 +30,14 @@ Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scal ## Font Selection & Pairing -### Choosing Distinctive Fonts +The tactical selection procedure and the full banned-fonts list live in SKILL.md's `` and `` tags (already loaded when this reference is consulted). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules. -**Avoid the invisible defaults**: Inter, Roboto, Open Sans, Lato, Montserrat. These are everywhere, making your design feel generic. They're fine for documentation or tools where personality isn't the goal—but if you want distinctive design, look elsewhere. +### Anti-reflexes worth defending against -**Pick the font from the brief, not from a category preset.** The most common AI typography failure is reaching for the same "tasteful" font for every editorial brief, the same "modern" font for every tech brief, the same "elegant serif" for every premium brief. Those reflexes produce monoculture across projects. The right font is one whose physical character matches *this specific* brand, audience, and moment. - -A working selection process: - -1. Read the brief once. Write down three concrete words for the brand voice. Not "modern" or "elegant" — those are dead categories. Try "warm and mechanical and opinionated" or "calm and clinical and careful" or "fast and dense and unimpressed" or "handmade and a little weird." -2. Now imagine the font as a physical object the brand could ship: a typewriter ribbon, a hand-lettered shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a museum exhibit caption, a tax form, a children's book printed on cheap newsprint. Whichever physical object fits the three words is pointing at the right *kind* of typeface. -3. Browse a font catalog (Google Fonts, Pangram Pangram, Adobe Fonts, Future Fonts, ABC Dinamo) with that physical object in mind. **Reject the first thing that "looks designy."** That's your trained-everywhere reflex. Keep looking. -4. Avoid your defaults from previous projects. If you find yourself reaching for the same display font you used last time, make yourself pick something else. - -**Anti-reflexes worth defending against**: - A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools. - An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans. - A children's product does NOT need a rounded display font. Kids' books use real type. -- A "modern" brief does NOT need a geometric sans. The most modern thing you can do in 2026 is not use the font everyone else is using. +- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using. **System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality. diff --git a/.kiro/skills/impeccable/SKILL.md b/.kiro/skills/impeccable/SKILL.md index fe11d706f..74564609f 100644 --- a/.kiro/skills/impeccable/SKILL.md +++ b/.kiro/skills/impeccable/SKILL.md @@ -376,8 +376,10 @@ When a sub-command is matched, load the linked reference and follow its instruct ## Pin / Unpin -For `pin ` or `unpin `, run: +**Pin** creates a standalone shortcut so `/` invokes `/impeccable ` directly. **Unpin** removes it. The script writes to every harness directory present in the project so shortcuts work across every AI tool the user has installed. + ```bash node .kiro/skills/impeccable/scripts/pin.mjs ``` -Full details (what pin/unpin does, valid commands, cross-harness behavior): [reference/pin.md](reference/pin.md). \ No newline at end of file + +Valid `` is any sub-command from the router table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error. \ No newline at end of file diff --git a/.kiro/skills/impeccable/reference/pin.md b/.kiro/skills/impeccable/reference/pin.md deleted file mode 100644 index 81565d5fc..000000000 --- a/.kiro/skills/impeccable/reference/pin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pin / Unpin - -Commands that create or remove standalone slash-command shortcuts for frequently-used sub-commands. - -## What it does - -**Pin** creates a lightweight standalone skill so `/` invokes `/impeccable ` directly. Example: `/impeccable pin audit` creates `/audit` as a shortcut for `/impeccable audit`. - -**Unpin** removes a previously pinned shortcut. - -The pinned skill is a thin redirect — it doesn't duplicate the sub-command reference, it just forwards to the impeccable router. - -## Usage - -```bash -node {{scripts_path}}/pin.mjs pin -node {{scripts_path}}/pin.mjs unpin -``` - -The script writes to every harness directory present in the project (`.claude/`, `.cursor/`, `.codex/`, `.agents/`, `.gemini/`, etc.) so pinned shortcuts work across every AI coding tool the user has installed. - -## Valid commands - -Any impeccable sub-command name is a valid pin target: `craft`, `shape`, `teach`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `overdrive`, `clarify`, `adapt`, `optimize`, `live`. - -## Reporting back - -After running the script, report what happened: -- **Pin success**: confirm the new shortcut (e.g. *"Pinned. You can now use `/audit` as a shortcut for `/impeccable audit`."*). -- **Unpin success**: confirm removal. -- **Errors**: relay the script's stderr verbatim — usually the command name was invalid or the pin already/doesn't exist. diff --git a/.kiro/skills/impeccable/reference/typography.md b/.kiro/skills/impeccable/reference/typography.md index 7063af5b2..cae643e5c 100644 --- a/.kiro/skills/impeccable/reference/typography.md +++ b/.kiro/skills/impeccable/reference/typography.md @@ -30,24 +30,14 @@ Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scal ## Font Selection & Pairing -### Choosing Distinctive Fonts +The tactical selection procedure and the full banned-fonts list live in SKILL.md's `` and `` tags (already loaded when this reference is consulted). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules. -**Avoid the invisible defaults**: Inter, Roboto, Open Sans, Lato, Montserrat. These are everywhere, making your design feel generic. They're fine for documentation or tools where personality isn't the goal—but if you want distinctive design, look elsewhere. +### Anti-reflexes worth defending against -**Pick the font from the brief, not from a category preset.** The most common AI typography failure is reaching for the same "tasteful" font for every editorial brief, the same "modern" font for every tech brief, the same "elegant serif" for every premium brief. Those reflexes produce monoculture across projects. The right font is one whose physical character matches *this specific* brand, audience, and moment. - -A working selection process: - -1. Read the brief once. Write down three concrete words for the brand voice. Not "modern" or "elegant" — those are dead categories. Try "warm and mechanical and opinionated" or "calm and clinical and careful" or "fast and dense and unimpressed" or "handmade and a little weird." -2. Now imagine the font as a physical object the brand could ship: a typewriter ribbon, a hand-lettered shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a museum exhibit caption, a tax form, a children's book printed on cheap newsprint. Whichever physical object fits the three words is pointing at the right *kind* of typeface. -3. Browse a font catalog (Google Fonts, Pangram Pangram, Adobe Fonts, Future Fonts, ABC Dinamo) with that physical object in mind. **Reject the first thing that "looks designy."** That's your trained-everywhere reflex. Keep looking. -4. Avoid your defaults from previous projects. If you find yourself reaching for the same display font you used last time, make yourself pick something else. - -**Anti-reflexes worth defending against**: - A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools. - An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans. - A children's product does NOT need a rounded display font. Kids' books use real type. -- A "modern" brief does NOT need a geometric sans. The most modern thing you can do in 2026 is not use the font everyone else is using. +- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using. **System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality. diff --git a/.opencode/skills/impeccable/SKILL.md b/.opencode/skills/impeccable/SKILL.md index 7bbdf6261..3b8eb71c2 100644 --- a/.opencode/skills/impeccable/SKILL.md +++ b/.opencode/skills/impeccable/SKILL.md @@ -380,8 +380,10 @@ When a sub-command is matched, load the linked reference and follow its instruct ## Pin / Unpin -For `pin ` or `unpin `, run: +**Pin** creates a standalone shortcut so `/` invokes `/impeccable ` directly. **Unpin** removes it. The script writes to every harness directory present in the project so shortcuts work across every AI tool the user has installed. + ```bash node .opencode/skills/impeccable/scripts/pin.mjs ``` -Full details (what pin/unpin does, valid commands, cross-harness behavior): [reference/pin.md](reference/pin.md). \ No newline at end of file + +Valid `` is any sub-command from the router table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error. \ No newline at end of file diff --git a/.opencode/skills/impeccable/reference/pin.md b/.opencode/skills/impeccable/reference/pin.md deleted file mode 100644 index 81565d5fc..000000000 --- a/.opencode/skills/impeccable/reference/pin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pin / Unpin - -Commands that create or remove standalone slash-command shortcuts for frequently-used sub-commands. - -## What it does - -**Pin** creates a lightweight standalone skill so `/` invokes `/impeccable ` directly. Example: `/impeccable pin audit` creates `/audit` as a shortcut for `/impeccable audit`. - -**Unpin** removes a previously pinned shortcut. - -The pinned skill is a thin redirect — it doesn't duplicate the sub-command reference, it just forwards to the impeccable router. - -## Usage - -```bash -node {{scripts_path}}/pin.mjs pin -node {{scripts_path}}/pin.mjs unpin -``` - -The script writes to every harness directory present in the project (`.claude/`, `.cursor/`, `.codex/`, `.agents/`, `.gemini/`, etc.) so pinned shortcuts work across every AI coding tool the user has installed. - -## Valid commands - -Any impeccable sub-command name is a valid pin target: `craft`, `shape`, `teach`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `overdrive`, `clarify`, `adapt`, `optimize`, `live`. - -## Reporting back - -After running the script, report what happened: -- **Pin success**: confirm the new shortcut (e.g. *"Pinned. You can now use `/audit` as a shortcut for `/impeccable audit`."*). -- **Unpin success**: confirm removal. -- **Errors**: relay the script's stderr verbatim — usually the command name was invalid or the pin already/doesn't exist. diff --git a/.opencode/skills/impeccable/reference/typography.md b/.opencode/skills/impeccable/reference/typography.md index 7063af5b2..cae643e5c 100644 --- a/.opencode/skills/impeccable/reference/typography.md +++ b/.opencode/skills/impeccable/reference/typography.md @@ -30,24 +30,14 @@ Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scal ## Font Selection & Pairing -### Choosing Distinctive Fonts +The tactical selection procedure and the full banned-fonts list live in SKILL.md's `` and `` tags (already loaded when this reference is consulted). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules. -**Avoid the invisible defaults**: Inter, Roboto, Open Sans, Lato, Montserrat. These are everywhere, making your design feel generic. They're fine for documentation or tools where personality isn't the goal—but if you want distinctive design, look elsewhere. +### Anti-reflexes worth defending against -**Pick the font from the brief, not from a category preset.** The most common AI typography failure is reaching for the same "tasteful" font for every editorial brief, the same "modern" font for every tech brief, the same "elegant serif" for every premium brief. Those reflexes produce monoculture across projects. The right font is one whose physical character matches *this specific* brand, audience, and moment. - -A working selection process: - -1. Read the brief once. Write down three concrete words for the brand voice. Not "modern" or "elegant" — those are dead categories. Try "warm and mechanical and opinionated" or "calm and clinical and careful" or "fast and dense and unimpressed" or "handmade and a little weird." -2. Now imagine the font as a physical object the brand could ship: a typewriter ribbon, a hand-lettered shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a museum exhibit caption, a tax form, a children's book printed on cheap newsprint. Whichever physical object fits the three words is pointing at the right *kind* of typeface. -3. Browse a font catalog (Google Fonts, Pangram Pangram, Adobe Fonts, Future Fonts, ABC Dinamo) with that physical object in mind. **Reject the first thing that "looks designy."** That's your trained-everywhere reflex. Keep looking. -4. Avoid your defaults from previous projects. If you find yourself reaching for the same display font you used last time, make yourself pick something else. - -**Anti-reflexes worth defending against**: - A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools. - An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans. - A children's product does NOT need a rounded display font. Kids' books use real type. -- A "modern" brief does NOT need a geometric sans. The most modern thing you can do in 2026 is not use the font everyone else is using. +- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using. **System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality. diff --git a/.pi/skills/impeccable/SKILL.md b/.pi/skills/impeccable/SKILL.md index 7afe10a13..f77a870ce 100644 --- a/.pi/skills/impeccable/SKILL.md +++ b/.pi/skills/impeccable/SKILL.md @@ -378,8 +378,10 @@ When a sub-command is matched, load the linked reference and follow its instruct ## Pin / Unpin -For `pin ` or `unpin `, run: +**Pin** creates a standalone shortcut so `/` invokes `/impeccable ` directly. **Unpin** removes it. The script writes to every harness directory present in the project so shortcuts work across every AI tool the user has installed. + ```bash node .pi/skills/impeccable/scripts/pin.mjs ``` -Full details (what pin/unpin does, valid commands, cross-harness behavior): [reference/pin.md](reference/pin.md). \ No newline at end of file + +Valid `` is any sub-command from the router table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error. \ No newline at end of file diff --git a/.pi/skills/impeccable/reference/pin.md b/.pi/skills/impeccable/reference/pin.md deleted file mode 100644 index 81565d5fc..000000000 --- a/.pi/skills/impeccable/reference/pin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pin / Unpin - -Commands that create or remove standalone slash-command shortcuts for frequently-used sub-commands. - -## What it does - -**Pin** creates a lightweight standalone skill so `/` invokes `/impeccable ` directly. Example: `/impeccable pin audit` creates `/audit` as a shortcut for `/impeccable audit`. - -**Unpin** removes a previously pinned shortcut. - -The pinned skill is a thin redirect — it doesn't duplicate the sub-command reference, it just forwards to the impeccable router. - -## Usage - -```bash -node {{scripts_path}}/pin.mjs pin -node {{scripts_path}}/pin.mjs unpin -``` - -The script writes to every harness directory present in the project (`.claude/`, `.cursor/`, `.codex/`, `.agents/`, `.gemini/`, etc.) so pinned shortcuts work across every AI coding tool the user has installed. - -## Valid commands - -Any impeccable sub-command name is a valid pin target: `craft`, `shape`, `teach`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `overdrive`, `clarify`, `adapt`, `optimize`, `live`. - -## Reporting back - -After running the script, report what happened: -- **Pin success**: confirm the new shortcut (e.g. *"Pinned. You can now use `/audit` as a shortcut for `/impeccable audit`."*). -- **Unpin success**: confirm removal. -- **Errors**: relay the script's stderr verbatim — usually the command name was invalid or the pin already/doesn't exist. diff --git a/.pi/skills/impeccable/reference/typography.md b/.pi/skills/impeccable/reference/typography.md index 7063af5b2..cae643e5c 100644 --- a/.pi/skills/impeccable/reference/typography.md +++ b/.pi/skills/impeccable/reference/typography.md @@ -30,24 +30,14 @@ Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scal ## Font Selection & Pairing -### Choosing Distinctive Fonts +The tactical selection procedure and the full banned-fonts list live in SKILL.md's `` and `` tags (already loaded when this reference is consulted). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules. -**Avoid the invisible defaults**: Inter, Roboto, Open Sans, Lato, Montserrat. These are everywhere, making your design feel generic. They're fine for documentation or tools where personality isn't the goal—but if you want distinctive design, look elsewhere. +### Anti-reflexes worth defending against -**Pick the font from the brief, not from a category preset.** The most common AI typography failure is reaching for the same "tasteful" font for every editorial brief, the same "modern" font for every tech brief, the same "elegant serif" for every premium brief. Those reflexes produce monoculture across projects. The right font is one whose physical character matches *this specific* brand, audience, and moment. - -A working selection process: - -1. Read the brief once. Write down three concrete words for the brand voice. Not "modern" or "elegant" — those are dead categories. Try "warm and mechanical and opinionated" or "calm and clinical and careful" or "fast and dense and unimpressed" or "handmade and a little weird." -2. Now imagine the font as a physical object the brand could ship: a typewriter ribbon, a hand-lettered shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a museum exhibit caption, a tax form, a children's book printed on cheap newsprint. Whichever physical object fits the three words is pointing at the right *kind* of typeface. -3. Browse a font catalog (Google Fonts, Pangram Pangram, Adobe Fonts, Future Fonts, ABC Dinamo) with that physical object in mind. **Reject the first thing that "looks designy."** That's your trained-everywhere reflex. Keep looking. -4. Avoid your defaults from previous projects. If you find yourself reaching for the same display font you used last time, make yourself pick something else. - -**Anti-reflexes worth defending against**: - A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools. - An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans. - A children's product does NOT need a rounded display font. Kids' books use real type. -- A "modern" brief does NOT need a geometric sans. The most modern thing you can do in 2026 is not use the font everyone else is using. +- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using. **System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality. diff --git a/.rovodev/skills/impeccable/SKILL.md b/.rovodev/skills/impeccable/SKILL.md index d4b040efa..d4edc8960 100644 --- a/.rovodev/skills/impeccable/SKILL.md +++ b/.rovodev/skills/impeccable/SKILL.md @@ -380,8 +380,10 @@ When a sub-command is matched, load the linked reference and follow its instruct ## Pin / Unpin -For `pin ` or `unpin `, run: +**Pin** creates a standalone shortcut so `/` invokes `/impeccable ` directly. **Unpin** removes it. The script writes to every harness directory present in the project so shortcuts work across every AI tool the user has installed. + ```bash node .rovodev/skills/impeccable/scripts/pin.mjs ``` -Full details (what pin/unpin does, valid commands, cross-harness behavior): [reference/pin.md](reference/pin.md). \ No newline at end of file + +Valid `` is any sub-command from the router table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error. \ No newline at end of file diff --git a/.rovodev/skills/impeccable/reference/pin.md b/.rovodev/skills/impeccable/reference/pin.md deleted file mode 100644 index 81565d5fc..000000000 --- a/.rovodev/skills/impeccable/reference/pin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pin / Unpin - -Commands that create or remove standalone slash-command shortcuts for frequently-used sub-commands. - -## What it does - -**Pin** creates a lightweight standalone skill so `/` invokes `/impeccable ` directly. Example: `/impeccable pin audit` creates `/audit` as a shortcut for `/impeccable audit`. - -**Unpin** removes a previously pinned shortcut. - -The pinned skill is a thin redirect — it doesn't duplicate the sub-command reference, it just forwards to the impeccable router. - -## Usage - -```bash -node {{scripts_path}}/pin.mjs pin -node {{scripts_path}}/pin.mjs unpin -``` - -The script writes to every harness directory present in the project (`.claude/`, `.cursor/`, `.codex/`, `.agents/`, `.gemini/`, etc.) so pinned shortcuts work across every AI coding tool the user has installed. - -## Valid commands - -Any impeccable sub-command name is a valid pin target: `craft`, `shape`, `teach`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `overdrive`, `clarify`, `adapt`, `optimize`, `live`. - -## Reporting back - -After running the script, report what happened: -- **Pin success**: confirm the new shortcut (e.g. *"Pinned. You can now use `/audit` as a shortcut for `/impeccable audit`."*). -- **Unpin success**: confirm removal. -- **Errors**: relay the script's stderr verbatim — usually the command name was invalid or the pin already/doesn't exist. diff --git a/.rovodev/skills/impeccable/reference/typography.md b/.rovodev/skills/impeccable/reference/typography.md index 7063af5b2..cae643e5c 100644 --- a/.rovodev/skills/impeccable/reference/typography.md +++ b/.rovodev/skills/impeccable/reference/typography.md @@ -30,24 +30,14 @@ Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scal ## Font Selection & Pairing -### Choosing Distinctive Fonts +The tactical selection procedure and the full banned-fonts list live in SKILL.md's `` and `` tags (already loaded when this reference is consulted). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules. -**Avoid the invisible defaults**: Inter, Roboto, Open Sans, Lato, Montserrat. These are everywhere, making your design feel generic. They're fine for documentation or tools where personality isn't the goal—but if you want distinctive design, look elsewhere. +### Anti-reflexes worth defending against -**Pick the font from the brief, not from a category preset.** The most common AI typography failure is reaching for the same "tasteful" font for every editorial brief, the same "modern" font for every tech brief, the same "elegant serif" for every premium brief. Those reflexes produce monoculture across projects. The right font is one whose physical character matches *this specific* brand, audience, and moment. - -A working selection process: - -1. Read the brief once. Write down three concrete words for the brand voice. Not "modern" or "elegant" — those are dead categories. Try "warm and mechanical and opinionated" or "calm and clinical and careful" or "fast and dense and unimpressed" or "handmade and a little weird." -2. Now imagine the font as a physical object the brand could ship: a typewriter ribbon, a hand-lettered shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a museum exhibit caption, a tax form, a children's book printed on cheap newsprint. Whichever physical object fits the three words is pointing at the right *kind* of typeface. -3. Browse a font catalog (Google Fonts, Pangram Pangram, Adobe Fonts, Future Fonts, ABC Dinamo) with that physical object in mind. **Reject the first thing that "looks designy."** That's your trained-everywhere reflex. Keep looking. -4. Avoid your defaults from previous projects. If you find yourself reaching for the same display font you used last time, make yourself pick something else. - -**Anti-reflexes worth defending against**: - A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools. - An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans. - A children's product does NOT need a rounded display font. Kids' books use real type. -- A "modern" brief does NOT need a geometric sans. The most modern thing you can do in 2026 is not use the font everyone else is using. +- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using. **System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality. diff --git a/.trae-cn/skills/impeccable/SKILL.md b/.trae-cn/skills/impeccable/SKILL.md index 9b7d369d5..56fcc2906 100644 --- a/.trae-cn/skills/impeccable/SKILL.md +++ b/.trae-cn/skills/impeccable/SKILL.md @@ -378,8 +378,10 @@ When a sub-command is matched, load the linked reference and follow its instruct ## Pin / Unpin -For `pin ` or `unpin `, run: +**Pin** creates a standalone shortcut so `/` invokes `/impeccable ` directly. **Unpin** removes it. The script writes to every harness directory present in the project so shortcuts work across every AI tool the user has installed. + ```bash node .trae-cn/skills/impeccable/scripts/pin.mjs ``` -Full details (what pin/unpin does, valid commands, cross-harness behavior): [reference/pin.md](reference/pin.md). \ No newline at end of file + +Valid `` is any sub-command from the router table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error. \ No newline at end of file diff --git a/.trae-cn/skills/impeccable/reference/pin.md b/.trae-cn/skills/impeccable/reference/pin.md deleted file mode 100644 index 81565d5fc..000000000 --- a/.trae-cn/skills/impeccable/reference/pin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pin / Unpin - -Commands that create or remove standalone slash-command shortcuts for frequently-used sub-commands. - -## What it does - -**Pin** creates a lightweight standalone skill so `/` invokes `/impeccable ` directly. Example: `/impeccable pin audit` creates `/audit` as a shortcut for `/impeccable audit`. - -**Unpin** removes a previously pinned shortcut. - -The pinned skill is a thin redirect — it doesn't duplicate the sub-command reference, it just forwards to the impeccable router. - -## Usage - -```bash -node {{scripts_path}}/pin.mjs pin -node {{scripts_path}}/pin.mjs unpin -``` - -The script writes to every harness directory present in the project (`.claude/`, `.cursor/`, `.codex/`, `.agents/`, `.gemini/`, etc.) so pinned shortcuts work across every AI coding tool the user has installed. - -## Valid commands - -Any impeccable sub-command name is a valid pin target: `craft`, `shape`, `teach`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `overdrive`, `clarify`, `adapt`, `optimize`, `live`. - -## Reporting back - -After running the script, report what happened: -- **Pin success**: confirm the new shortcut (e.g. *"Pinned. You can now use `/audit` as a shortcut for `/impeccable audit`."*). -- **Unpin success**: confirm removal. -- **Errors**: relay the script's stderr verbatim — usually the command name was invalid or the pin already/doesn't exist. diff --git a/.trae-cn/skills/impeccable/reference/typography.md b/.trae-cn/skills/impeccable/reference/typography.md index 7063af5b2..cae643e5c 100644 --- a/.trae-cn/skills/impeccable/reference/typography.md +++ b/.trae-cn/skills/impeccable/reference/typography.md @@ -30,24 +30,14 @@ Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scal ## Font Selection & Pairing -### Choosing Distinctive Fonts +The tactical selection procedure and the full banned-fonts list live in SKILL.md's `` and `` tags (already loaded when this reference is consulted). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules. -**Avoid the invisible defaults**: Inter, Roboto, Open Sans, Lato, Montserrat. These are everywhere, making your design feel generic. They're fine for documentation or tools where personality isn't the goal—but if you want distinctive design, look elsewhere. +### Anti-reflexes worth defending against -**Pick the font from the brief, not from a category preset.** The most common AI typography failure is reaching for the same "tasteful" font for every editorial brief, the same "modern" font for every tech brief, the same "elegant serif" for every premium brief. Those reflexes produce monoculture across projects. The right font is one whose physical character matches *this specific* brand, audience, and moment. - -A working selection process: - -1. Read the brief once. Write down three concrete words for the brand voice. Not "modern" or "elegant" — those are dead categories. Try "warm and mechanical and opinionated" or "calm and clinical and careful" or "fast and dense and unimpressed" or "handmade and a little weird." -2. Now imagine the font as a physical object the brand could ship: a typewriter ribbon, a hand-lettered shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a museum exhibit caption, a tax form, a children's book printed on cheap newsprint. Whichever physical object fits the three words is pointing at the right *kind* of typeface. -3. Browse a font catalog (Google Fonts, Pangram Pangram, Adobe Fonts, Future Fonts, ABC Dinamo) with that physical object in mind. **Reject the first thing that "looks designy."** That's your trained-everywhere reflex. Keep looking. -4. Avoid your defaults from previous projects. If you find yourself reaching for the same display font you used last time, make yourself pick something else. - -**Anti-reflexes worth defending against**: - A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools. - An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans. - A children's product does NOT need a rounded display font. Kids' books use real type. -- A "modern" brief does NOT need a geometric sans. The most modern thing you can do in 2026 is not use the font everyone else is using. +- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using. **System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality. diff --git a/.trae/skills/impeccable/SKILL.md b/.trae/skills/impeccable/SKILL.md index 8b39346c1..3e8fa22b4 100644 --- a/.trae/skills/impeccable/SKILL.md +++ b/.trae/skills/impeccable/SKILL.md @@ -378,8 +378,10 @@ When a sub-command is matched, load the linked reference and follow its instruct ## Pin / Unpin -For `pin ` or `unpin `, run: +**Pin** creates a standalone shortcut so `/` invokes `/impeccable ` directly. **Unpin** removes it. The script writes to every harness directory present in the project so shortcuts work across every AI tool the user has installed. + ```bash node .trae/skills/impeccable/scripts/pin.mjs ``` -Full details (what pin/unpin does, valid commands, cross-harness behavior): [reference/pin.md](reference/pin.md). \ No newline at end of file + +Valid `` is any sub-command from the router table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error. \ No newline at end of file diff --git a/.trae/skills/impeccable/reference/pin.md b/.trae/skills/impeccable/reference/pin.md deleted file mode 100644 index 81565d5fc..000000000 --- a/.trae/skills/impeccable/reference/pin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pin / Unpin - -Commands that create or remove standalone slash-command shortcuts for frequently-used sub-commands. - -## What it does - -**Pin** creates a lightweight standalone skill so `/` invokes `/impeccable ` directly. Example: `/impeccable pin audit` creates `/audit` as a shortcut for `/impeccable audit`. - -**Unpin** removes a previously pinned shortcut. - -The pinned skill is a thin redirect — it doesn't duplicate the sub-command reference, it just forwards to the impeccable router. - -## Usage - -```bash -node {{scripts_path}}/pin.mjs pin -node {{scripts_path}}/pin.mjs unpin -``` - -The script writes to every harness directory present in the project (`.claude/`, `.cursor/`, `.codex/`, `.agents/`, `.gemini/`, etc.) so pinned shortcuts work across every AI coding tool the user has installed. - -## Valid commands - -Any impeccable sub-command name is a valid pin target: `craft`, `shape`, `teach`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `overdrive`, `clarify`, `adapt`, `optimize`, `live`. - -## Reporting back - -After running the script, report what happened: -- **Pin success**: confirm the new shortcut (e.g. *"Pinned. You can now use `/audit` as a shortcut for `/impeccable audit`."*). -- **Unpin success**: confirm removal. -- **Errors**: relay the script's stderr verbatim — usually the command name was invalid or the pin already/doesn't exist. diff --git a/.trae/skills/impeccable/reference/typography.md b/.trae/skills/impeccable/reference/typography.md index 7063af5b2..cae643e5c 100644 --- a/.trae/skills/impeccable/reference/typography.md +++ b/.trae/skills/impeccable/reference/typography.md @@ -30,24 +30,14 @@ Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scal ## Font Selection & Pairing -### Choosing Distinctive Fonts +The tactical selection procedure and the full banned-fonts list live in SKILL.md's `` and `` tags (already loaded when this reference is consulted). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules. -**Avoid the invisible defaults**: Inter, Roboto, Open Sans, Lato, Montserrat. These are everywhere, making your design feel generic. They're fine for documentation or tools where personality isn't the goal—but if you want distinctive design, look elsewhere. +### Anti-reflexes worth defending against -**Pick the font from the brief, not from a category preset.** The most common AI typography failure is reaching for the same "tasteful" font for every editorial brief, the same "modern" font for every tech brief, the same "elegant serif" for every premium brief. Those reflexes produce monoculture across projects. The right font is one whose physical character matches *this specific* brand, audience, and moment. - -A working selection process: - -1. Read the brief once. Write down three concrete words for the brand voice. Not "modern" or "elegant" — those are dead categories. Try "warm and mechanical and opinionated" or "calm and clinical and careful" or "fast and dense and unimpressed" or "handmade and a little weird." -2. Now imagine the font as a physical object the brand could ship: a typewriter ribbon, a hand-lettered shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a museum exhibit caption, a tax form, a children's book printed on cheap newsprint. Whichever physical object fits the three words is pointing at the right *kind* of typeface. -3. Browse a font catalog (Google Fonts, Pangram Pangram, Adobe Fonts, Future Fonts, ABC Dinamo) with that physical object in mind. **Reject the first thing that "looks designy."** That's your trained-everywhere reflex. Keep looking. -4. Avoid your defaults from previous projects. If you find yourself reaching for the same display font you used last time, make yourself pick something else. - -**Anti-reflexes worth defending against**: - A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools. - An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans. - A children's product does NOT need a rounded display font. Kids' books use real type. -- A "modern" brief does NOT need a geometric sans. The most modern thing you can do in 2026 is not use the font everyone else is using. +- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using. **System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality. diff --git a/source/skills/impeccable/SKILL.md b/source/skills/impeccable/SKILL.md index 53e5b22a8..0b38d34d5 100644 --- a/source/skills/impeccable/SKILL.md +++ b/source/skills/impeccable/SKILL.md @@ -379,8 +379,10 @@ When a sub-command is matched, load the linked reference and follow its instruct ## Pin / Unpin -For `pin ` or `unpin `, run: +**Pin** creates a standalone shortcut so `{{command_prefix}}` invokes `{{command_prefix}}impeccable ` directly. **Unpin** removes it. The script writes to every harness directory present in the project so shortcuts work across every AI tool the user has installed. + ```bash node {{scripts_path}}/pin.mjs ``` -Full details (what pin/unpin does, valid commands, cross-harness behavior): [reference/pin.md](reference/pin.md). + +Valid `` is any sub-command from the router table above. Report the script's result concisely — confirm the new shortcut on success, relay stderr verbatim on error. diff --git a/source/skills/impeccable/reference/pin.md b/source/skills/impeccable/reference/pin.md deleted file mode 100644 index 4d4defbe3..000000000 --- a/source/skills/impeccable/reference/pin.md +++ /dev/null @@ -1,31 +0,0 @@ -# Pin / Unpin - -Commands that create or remove standalone slash-command shortcuts for frequently-used sub-commands. - -## What it does - -**Pin** creates a lightweight standalone skill so `{{command_prefix}}` invokes `{{command_prefix}}impeccable ` directly. Example: `{{command_prefix}}impeccable pin audit` creates `{{command_prefix}}audit` as a shortcut for `{{command_prefix}}impeccable audit`. - -**Unpin** removes a previously pinned shortcut. - -The pinned skill is a thin redirect — it doesn't duplicate the sub-command reference, it just forwards to the impeccable router. - -## Usage - -```bash -node {{scripts_path}}/pin.mjs pin -node {{scripts_path}}/pin.mjs unpin -``` - -The script writes to every harness directory present in the project (`.claude/`, `.cursor/`, `.codex/`, `.agents/`, `.gemini/`, etc.) so pinned shortcuts work across every AI coding tool the user has installed. - -## Valid commands - -Any impeccable sub-command name is a valid pin target: `craft`, `shape`, `teach`, `document`, `extract`, `critique`, `audit`, `polish`, `bolder`, `quieter`, `distill`, `harden`, `onboard`, `animate`, `colorize`, `typeset`, `layout`, `delight`, `overdrive`, `clarify`, `adapt`, `optimize`, `live`. - -## Reporting back - -After running the script, report what happened: -- **Pin success**: confirm the new shortcut (e.g. *"Pinned. You can now use `{{command_prefix}}audit` as a shortcut for `{{command_prefix}}impeccable audit`."*). -- **Unpin success**: confirm removal. -- **Errors**: relay the script's stderr verbatim — usually the command name was invalid or the pin already/doesn't exist. diff --git a/source/skills/impeccable/reference/typography.md b/source/skills/impeccable/reference/typography.md index 7063af5b2..cae643e5c 100644 --- a/source/skills/impeccable/reference/typography.md +++ b/source/skills/impeccable/reference/typography.md @@ -30,24 +30,14 @@ Use `ch` units for character-based measure (`max-width: 65ch`). Line-height scal ## Font Selection & Pairing -### Choosing Distinctive Fonts +The tactical selection procedure and the full banned-fonts list live in SKILL.md's `` and `` tags (already loaded when this reference is consulted). The rest of this section covers the adjacent knowledge: anti-reflex corrections, system font use, and pairing rules. -**Avoid the invisible defaults**: Inter, Roboto, Open Sans, Lato, Montserrat. These are everywhere, making your design feel generic. They're fine for documentation or tools where personality isn't the goal—but if you want distinctive design, look elsewhere. +### Anti-reflexes worth defending against -**Pick the font from the brief, not from a category preset.** The most common AI typography failure is reaching for the same "tasteful" font for every editorial brief, the same "modern" font for every tech brief, the same "elegant serif" for every premium brief. Those reflexes produce monoculture across projects. The right font is one whose physical character matches *this specific* brand, audience, and moment. - -A working selection process: - -1. Read the brief once. Write down three concrete words for the brand voice. Not "modern" or "elegant" — those are dead categories. Try "warm and mechanical and opinionated" or "calm and clinical and careful" or "fast and dense and unimpressed" or "handmade and a little weird." -2. Now imagine the font as a physical object the brand could ship: a typewriter ribbon, a hand-lettered shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a museum exhibit caption, a tax form, a children's book printed on cheap newsprint. Whichever physical object fits the three words is pointing at the right *kind* of typeface. -3. Browse a font catalog (Google Fonts, Pangram Pangram, Adobe Fonts, Future Fonts, ABC Dinamo) with that physical object in mind. **Reject the first thing that "looks designy."** That's your trained-everywhere reflex. Keep looking. -4. Avoid your defaults from previous projects. If you find yourself reaching for the same display font you used last time, make yourself pick something else. - -**Anti-reflexes worth defending against**: - A technical/utilitarian brief does NOT need a serif "for warmth." Most tech tools should look like tech tools. - An editorial/premium brief does NOT need the same expressive serif everyone is using right now. Premium can be Swiss-modern, can be neo-grotesque, can be a literal monospace, can be a quiet humanist sans. - A children's product does NOT need a rounded display font. Kids' books use real type. -- A "modern" brief does NOT need a geometric sans. The most modern thing you can do in 2026 is not use the font everyone else is using. +- A "modern" brief does NOT need a geometric sans. The most modern thing you can do is not use the font everyone else is using. **System fonts are underrated**: `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui` looks native, loads instantly, and is highly readable. Consider this for apps where performance > personality.