skills-impeccable/i-teach-impeccable/SKILL.md
Use when the user says: "setup impeccable", "design context setup", "teach impeccable", "design this UI", "look and feel", "establish design tokens", "plan the look and feel", "UI planning", "design system for this project", "craft the interface". Gathers design context and concrete tokens, saves to design/context.md.
npx skillsauth add NodeJSmith/Claudefiles i-teach-impeccableInstall 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.
Gather design context for this project — both prose context (audience, brand, principles) and concrete design tokens (colors, fonts, spacing, motion). Persist everything to design/context.md for all future sessions.
Before asking questions, scan the project to discover what you can:
Also check for a design doc: look for design/specs/*/design.md. If found, read the User Scenarios section — it contains structured actor/goal/context data that pre-answers Step 2 questions.
Note what you've learned and what remains unclear.
Look for design/context.md, .impeccable.md, or design/direction.md.
If found, read and ask:
AskUserQuestion:
question: "Existing design context found. What would you like to do?"
header: "Context"
options:
- label: "Update it"
description: "Revise the existing context with new decisions"
- label: "Start fresh"
description: "Replace it entirely"
If updating, carry forward decisions not being changed.
Ask focused questions, one at a time. Skip any already answered by the spec or codebase exploration.
Question 1 (skip if spec has User Scenarios):
AskUserQuestion:
question: "Who is this person? Not 'users' — the actual person. A teacher at 7am with coffee, a developer debugging at midnight, a manager scanning reports between meetings."
header: "Audience"
If the answer is vague ("users", "people"), push back: "Can you be more specific? What's their context when they use this?"
Question 2 (skip if spec has User Scenarios):
AskUserQuestion:
question: "What must they accomplish? The verb — not 'use the dashboard.' Grade submissions, find the broken deployment, approve the payment."
header: "Task"
Question 3:
AskUserQuestion:
question: "What should this feel like? Specific language: 'warm like a notebook', 'cold like a terminal', 'dense like a trading floor.' Not 'clean and modern.'"
header: "Feel"
If any answer is vague ("clean and modern", "simple"), push back with a concrete alternative and ask to confirm or revise.
Ask for visual references:
AskUserQuestion:
question: "Name 2-3 apps or sites whose *feel* (not features) matches what you described. Not to copy — to articulate direction."
header: "References"
If the user cannot name any, suggest 3 options based on the domain and intent. For each reference, identify:
Naming the visual movement constrains downstream decisions more precisely than vague feel descriptors.
Run the four-part exploration. Present all four before proposing any direction.
Present exploration results to the user. Remove the product name — could someone still identify what it's for? If not, explore deeper.
Draft your token decisions internally. Before presenting them, run these checks:
If any check fails, iterate before presenting. Ask yourself: "If they said this lacks craft, what would they point to?" Fix that first.
Present concrete token decisions. Every value must be justified against intent and domain — not "it's common" or "it works."
Present a summary covering:
Ask the user to confirm or revise before saving.
After user confirmation, write design/context.md. Create the design/ directory if it does not exist.
---
schema_version: 1
updated_at: YYYY-MM-DD
---
## Users & Purpose
[From Step 2, Questions 1-2 — who the person is, their context, the task]
## Brand Personality
[From Step 2, Question 3 — emotional feel, aesthetic tone]
## Aesthetic Direction
[From Step 3 — visual references, what to take/leave, visual movement name]
[From Step 4 — domain concepts, signature element, defaults rejected]
## Concrete Constraints
[From Step 4 — hard aesthetic rules, e.g., "no rounded corners above 4px", "body text must be serif"]
## Design Principles
[3-5 principles derived from the conversation]
## Design Tokens
### Color
| Token | Light | Dark | Role |
|-------|-------|------|------|
| `--bg` | oklch(...) | oklch(...) | Page background |
| `--surface` | oklch(...) | oklch(...) | Card/panel background |
| ... | ... | ... | ... |
**Rationale**: [how colors connect to domain and intent]
### Typography
- **Primary**: [font name] — [why]
- **Mono**: [font name] — [for code/data]
- **Scale**: [specific sizes: xs, sm, base, lg, xl, 2xl, 3xl]
- **Weights**: [which weights, for what purpose]
### Spacing
- **Base**: [value]
- **Scale**: micro (1×), sm (2×), md (4×), lg (8×), xl (12×), 2xl (16×)
### Depth
- **Strategy**: [borders-only | subtle shadows | layered | surface tints]
- **Why**: [connection to intent]
- **Levels**: [specific values]
### Border Radius
- **Scale**: sm, md, lg
- **Character**: [sharp=technical, round=friendly]
### Motion
- **Micro**: [~150ms, easing]
- **Transition**: [200-250ms, easing]
- **Entrance**: [if applicable]
### Anti-patterns
[Specific things to avoid for THIS product — not generic advice]
If design/context.md already exists and the user chose "Update it" in Step 1, update changed sections in place rather than overwriting.
AskUserQuestion:
question: "Design context saved. What's next?"
header: "Next step"
options:
- label: "Generate a mockup"
description: "Run /mine.mockup to produce an HTML preview using these tokens"
- label: "Also add to CLAUDE.md"
description: "Append a Design Context summary to CLAUDE.md so it loads automatically in all sessions (takes effect in new sessions, not the current one)"
- label: "Done for now"
description: "Context is saved — it will be used by all i-* design skills automatically"
If mockup → invoke /mine.mockup.
If CLAUDE.md → append or update a ## Design Context section in CLAUDE.md with a summary of the prose sections (not the full token tables — those live in design/context.md).
Be invisible. Don't announce modes or narrate process.
Never say: "I'm now entering the exploration phase", "Let me check for existing files..." Instead: Jump into work. Present exploration, then direction, then confirm.
development
Use when the user says: "humanize this", "unslop this", "de-slop this", "fix AI writing", "remove AI tells", "clean up AI prose". Edits prose to remove AI writing patterns and add human voice. Analyzes first, then asks how to fix. Prose complement to mine.clean-code.
development
Use when the user says: "why is this code like this", "why does this exist", "why was this built this way", "decision rationale", "what's the history behind". Decision archaeology — reconstructs historical rationale from evidence, not speculation.
development
Use when the user says: "how does X work", "walk me through", "explain this subsystem", "explain how", "trace the flow". Complexity-adaptive subsystem explanation — builds mental models conversationally, not documentation artifacts.
development
Use when the user says: 'create an issue', 'file an issue', 'open an issue', 'write an issue', 'new issue for this'. Codebase-aware issue creation — investigates the code to produce well-structured issues with acceptance criteria, affected areas, and enough detail for automated triage.