Skill · loaded on demand
The Focus AI Standards
Skill: SKL-003
Install: develop-design-md
Provenance: Authored here
The Focus AI
standards.thefocus.ai

develop-design-md

Status of this skill

This is a skill: a capability an agent loads when its triggers match. It binds nothing — it is something an agent can do, not something any repository must do (STD-011).

Take a project from "no visual identity" to a committed, validated DESIGN.md — brand interview, contrasting rendered prototypes, distilled tokens plus a voice rulebook, then a fresh-agent validation pass. Produces the file plus a decision log and a list of product tickets the prototypes surfaced. Use when a project needs a brand, a design system, a visual direction, or a DESIGN.md. Triggers on: "design system", "DESIGN.md", "brand this", "visual identity", "what should this look like", "pick a look", "style guide", "design tokens", "voice and tone".

Agent · install with
skills add The-Focus-AI/standards --skill develop-design-md

Use this prompt to take a project from "we have no visual identity" (or "our identity lives in someone's head") to a committed DESIGN.md that any coding agent can read and apply consistently. The process combines the grill-me skill (to extract brand decisions from the user) with the prototype skill (to make those decisions concrete and comparable before writing anything down).

What a DESIGN.md is

A DESIGN.md is a single markdown file describing a project's visual language in a form AI coding agents can act on. It sits between a Figma export (too specific) and a traditional brand book (too loose). The reference specification is google-labs-code/design.md:

A good DESIGN.md is specific enough that two different agents produce visually consistent UI, and flexible enough to cover situations it never mentions. See The-Focus-AI/focus-ai-brand for a house example of the genre.

Inputs to gather first (research, don't ask)

Before interviewing the user, discover what already exists. Facts are your job; only decisions belong to the user.

  1. Existing materials: current site/app screenshots, logos, prior decks, CSS/Tailwind config, any focus-ai-brand or other brand skill installed in the repo.
  2. The audience and product surface: what does this project ship (marketing site, dashboard, CLI docs, PDF reports)? Which surfaces will consume the DESIGN.md?
  3. Competitor/aspiration references if the user has named any.

Then sort every Phase 1 decision branch into one of two bins — this determines how it gets asked:

Phase 1 — Grill the brand (grill-me)

Unattended-session rule. The interview is the point of this phase — never silently substitute repo evidence for it. If the user may not be present, ask the first grill question and stop. If the task explicitly requires delivering autonomously, label every choice a veto-able recommendation and lead the final report with the decision log (what was assumed and why), not the deliverable. Evidence tells you what exists; only the user can tell you what it should feel like.

Run the grill-me skill. Interview one question at a time, always with your recommended answer, until shared understanding is reached. Plain-prose questions and screenshot reactions beat structured option dialogs; accept short answers ("keep it", "V1 but denser") as confirmations. Walk these branches in order — later branches depend on earlier answers:

  1. Positioning — What is this product, for whom, and what should someone feel in the first five seconds? What one word must the UI never evoke?
  2. Personality — Pick 3–5 personality traits (e.g. precise, warm, playful, authoritative). For each, ask for a brand the user thinks embodies it. Voice stays fixed; tone adapts per surface.
  3. Atmosphere — Light or dark default? Dense or airy? Editorial or utilitarian? Rounded or sharp? Flat or elevated?
  4. Color feelings — Not hex values yet: warm vs cool, muted vs vivid, one accent or several, any colors that are off-limits (cliché, competitor, accessibility). (Typography is deliberately not asked here — it is an open-bin taste decision that resolves in Phase 2 against rendered compositions, not adjectives.)
  5. Voice rulebook — Beyond traits: which writing creed governs the copy (Orwell's six rules, Strunk & White's "omit needless words", or the user's own)? Which words are banned outright (e.g. leverage, seamless, supercharge, excited to announce)? How do errors speak — apologetic, factual, or instructive? Are contractions, jokes, and exclamation marks allowed, and where?
  6. Non-negotiables — Accessibility floor (WCAG AA minimum), existing logo/colors that must be honored, print/PDF needs, dark-mode requirement. Ask density per surface explicitly — mobile and desktop may want opposite answers (kneeboard-dense phone, spacious desktop is a real pattern).

Confirm branch-by-branch as you go; a final all-at-once summary gate is optional and usually redundant. Do not start Phase 2 with any branch unresolved unless it is explicitly parked as "decide against artifacts."

Phase 2 — Prototype contrasting directions (prototype)

Run the prototype skill, UI branch. This is throwaway code that answers one question: "Which visual direction is right?"

Pick the venue by what the round is testing:

Rules for the variants:

Then grill again, briefly: which variant wins, what to steal from the losers, what still feels wrong. Iterate the variants until the user says "that's it." Two or three rounds is normal; more means Phase 1 missed a decision — go back and grill that branch.

Phase 3 — Distill into DESIGN.md

Write DESIGN.md at the project root from the winning prototype:

  1. Extract the exact values from the winning variant into YAML frontmatter tokens. Name tokens by purpose (button-primary-hover), not by abstract level (blue-500).
  2. Write the prose sections in spec order. Every rule in the prose should trace to either a Phase 1 decision or something observed in the prototype ("the dense table variant lost — default to airy spacing").
  3. Do's and Don'ts: capture what the losing variants got wrong as explicit don'ts, with the on-brand alternative beside each.
  4. Voice & Tone — write it as a rulebook, not a mood board, in the tradition of Orwell's six rules and Strunk & White. It must contain:
  5. The 3–5 personality traits, each with one sentence on what it forbids (a trait that forbids nothing is decoration).
  6. 5–8 numbered writing rules, imperative and checkable, e.g. "Never use a long word where a short one will do", "Cut every qualifier: very, really, just, simply", "Verbs first: say what happened, not how you feel about it", "Errors state what failed and the next step — no apologies, no mascots". End with an escape hatch in Orwell's spirit: "Break any of these rules sooner than write anything barbarous."
  7. A banned-word list with replacements (leverage → use, utilize → use, seamless → cut it, prior to → before, excited to announce → cut it and state the thing).
  8. At least five before/after rewrite pairs, one per surface: marketing headline, empty state, error message, release note, and button label. The "before" should be a plausible off-brand sentence, not a strawman.
  9. A per-surface tone table: how the fixed voice flexes across marketing, product UI, docs, and errors (e.g. jokes allowed in empty states, never in errors).
  10. Agent Prompt Guide: 2–3 reusable prompt snippets for generating new UI under this system.

Phase 4 — Validate

Outputs — more than the file

Prototyping a design surfaces product decisions, not just visual ones: a specimen cell will invent a capability the product doesn't have yet (a cached forecast, an offline pack, a share flow). Don't let those evaporate. End the process with three deliverables:

  1. DESIGN.md — validated, committed.
  2. A decision log — each branch's verdict and who made it (user answer vs evidenced-from-repo vs autonomous recommendation), so the next agent knows what is settled versus assumed.
  3. A tickets-discovered list — every product capability the prototypes implied but the codebase lacks, ready for to-tickets or the issue tracker.