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: "document how X works", "write up how this works", "durable explanation", "explain this for the docs", "document this subsystem". Writes a durable, architectural-altitude explanation that survives code churn.
development
Use when picking up a fresh session after /clear, a stop, or an unanswered AskUserQuestion. Reconstructs the prior session's intent from its transcript tail and surfaces any unresolved decision; user-invoked only — for a hand-written end-of-day handoff use /mine-good-morning instead.
development
Use when the user says: "what did we discuss", "continue where we left off", "remember when", "as I mentioned", "you suggested", "we decided", "search my conversations", "find the conversation where", "what did we work on", or uses implicit signals like past-tense references, possessives without context, or assumptive questions. Direct search over past Claude Code sessions via cass.
tools
Use when the user says: "what context do I have", "relevant history for this task", "what have we done related to this". Also usable proactively when starting work that likely has prior history. Assembles a structured context brief from past session history via cass, scoped to the current task and workspace.