skills/disambiguation-design/SKILL.md
Applying typographic disambiguation techniques for technical interfaces — using OpenType feature settings and font alternatives instead of monospace for non-lexical strings (IDs, SHAs, UUIDs). Triggers on: disambiguation, monospace, font-feature-settings, opentype, technical typography, commit SHA styling, non-lexical strings, font-precise, ss02, character clarity.
npx skillsauth add taskylizard/agents disambiguation-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Based on Brett Jones's article
Before reaching for a monospace typeface to improve clarity of non-lexical strings (commit SHAs, UUIDs, deploy IDs), check if your base typeface has disambiguation character alternatives via OpenType feature tags. This avoids optical imbalance while maintaining legibility.
Technical interfaces often use monospace for non-lexical strings to disambiguate characters like i l I o O 0. Monospace works, but has drawbacks:
Many typefaces include alternative character sets activated via font-feature-settings. These blend disambiguation into the base typeface without switching to monospace.
.font-precise {
font-feature-settings: 'ss02' 1;
}
| Property | Definition |
| --- | --- |
| ss02 | Disambiguation set |
| cv05 | Lower-case L with tail |
| cv08 | Upper-case I with serif |
| zero | Slashed zero |
body {
font-feature-settings: 'ss02' 1;
}
@theme {
--font-sans: Inter, 'sans-serif';
--font-sans--font-feature-settings: 'ss02' 1;
}
@layer utilities {
.font-precise {
font-feature-settings: 'ss02' 1;
}
}
@utility font-precise {
font-feature-settings: 'ss02' 1;
}
| Style | Pros | Cons | | --- | --- | --- | | System font | Proportional scaling, optimized for UI/prose | Some characters hard to distinguish | | Monospace | Clear character distinction, column alignment | Line length scales per char, disproportional next to sans-serif | | Disambiguation alternatives | Optimized for UI/prose, improved precision | Larger font bundle, unsuitable for multi-line column alignment |
When reviewing or building a technical interface:
ss02)font-feature-settings for single-line contextstools
Design and implement web animations that feel natural and purposeful, based on Emil Kowalski's "Animations on the Web" course. Use proactively when the user asks about easing, timing, springs, transitions, animation performance, or how to animate specific UI elements. Covers CSS transitions, Framer Motion, GSAP, accessibility (prefers-reduced-motion), and common patterns like modals, tooltips, page transitions, hover states, and microinteractions.
development
Query previous pi sessions to retrieve context, decisions, code changes, or other information. Use when you need to look up what happened in a parent session or any other session file.
tools
Interface Craft by Josh Puckett — a toolkit for building polished, animated interfaces in React. Includes Storyboard Animation (human-readable animation DSL with stage-driven sequencing), DialKit (live control panels for tuning animation values), and Design Critique (systematic UI review based on Josh Puckett's methodology). Triggers on: animate, animation, transition, storyboard, entrance, motion, spring, easing, timing, dialkit, sliders, controls, tune, tweak, critique, review, feedback, audit, improve, polish, refine, redesign.
data-ai
Context management via handoff instead of compaction. Loaded automatically — teaches the agent how context works in this environment.