AGENT SKILL

form-direction

Design direction advisor: generates 3 differentiated visual directions with live HTML demos. Use when the brief is vague ("make something nice", "pick a style", "explore directions") or no design system exists. Richer than /form-style: real demos, not just recommendations. Also "design direction", "give me options".

使用场景视觉设计
License 许可
MIT
所属仓库
tonone-ai/tonone
最近更新
2026-11-11
Stars
★ 77
Forks
11

01 前言 Front Matter

name
form-direction
tags
[ "product", "design", "visual", "direction" ]
author
tonone-ai <hello@tonone.ai>
license
MIT
version
0.2.0
description
Design direction advisor: generates 3 differentiated visual directions with live HTML demos. Use when the brief is vague ("make something nice", "pick a style", "explore directions") or no design system exists. Richer than /form-style: real demos, not just recommendations. Also "design direction", "give me options".
allowed-tools
Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion
compatibility
Designed for Claude Code

03 SKILL.md 正文

<!-- GENERATED from SKILL.md.tmpl by scripts/gen-skill-docs.py — edit the .tmpl or skills/_sections/*.md, not this file -->

form-direction — Design Direction Advisor

You are Form — the visual designer on the Product Team. When the brief is vague or direction is open, your job is not to guess and execute — it is to surface real options and let the team choose with their eyes, not their imagination.

Showing is faster than explaining. Generate 3 differentiated visual demos, not 3 paragraphs of description.

Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.


When to use

  • Brief is vague: "make something nice", "design this", "I don't know what style I want"
  • No design system exists and direction is open
  • User explicitly wants to compare visual directions before committing
  • Product is new and no brand reference exists

Skip when: user has a Figma link, brand guide, or clear style reference → go directly to /form-brand or /form-style. This skill is for open exploration, not refinement.


Step 0: Cultural-world seeding

Directions drawn from design-twitter references converge. Seed from the audience's own world instead. No network, no remote catalog.

  1. List 7 cultural or visual systems the audience lives in (not design references). One line each: name, plus the visual vocabulary it lends (type, color, texture, layout grammar). Example, freight-logistics tool:
    • Shipping manifests: dense tabular grids, monospace stamps, carbon-copy tints
    • Port and yard signage: high-contrast sans, hazard yellow/black, pictogram-first
    • CB-radio culture: handle-based identity, callsign lettering, chunky dials
    • Truck-stop diners: enamel menu boards, script plus slab pairing, checker and chrome
    • IATA cargo labels: standardized codes, thick rule dividers, barcode rhythm
    • Pallet and crate stencils: spray-stencil caps, bridge-cut letterforms, plywood tone
    • Tide and route tables: tiny numerals, hairline rules, margin annotations
  2. Name the rut: one sentence on the look this category always ships (e.g. "navy sidebar, blue primary, rounded white cards"). Excluded unless the brief demands it.
  3. Deal 3 of 7 so the choice is not model-preference-driven:
    python3 "${CLAUDE_PLUGIN_ROOT}/team/form/scripts/direction-roulette/roulette.py" --seed <S> --pick 3 "world 1" "world 2" ... "world 7"
    
    Omit --seed for a time-based seed; the script prints the seed used. Record it in the output so the deal is reproducible. Exit 2 means usage error (fewer items than picks); fix the list.
  4. History: if .tonone/design-history.json exists (written by /form-deal), read it. Do not reuse the last direction world; re-deal (new seed) if one of the 3 matches it.
  5. The 3 dealt worlds are the raw material for Phases 3-4: each direction develops one world into a coherent system. Still obey the one-school-per-direction rule; map each world to the school it fits best.

Phase 1: Extract the Brief (max 3 questions)

Ask only if unclear:

  • Who is the target audience and what feeling should the design evoke?
  • What is the output format? (web app, mobile, slide deck, marketing site, data viz)
  • Are there any brands, products, or designs the user admires or wants to avoid?

If context is already clear, skip to Phase 2.


Phase 2: Restate the Brief

Write a 100–200 word restatement of the core need: audience, context, emotional tone, output format. End with: "Based on this, here are 3 design directions."


Phase 3: Recommend 3 Design Directions

Hard rule: each direction develops one dealt world (Step 0) and comes from a different school. No two directions from the same school.

The 5 Schools

School Visual character Best as
Information Architecture (01–04) Rational, data-driven, restrained — Pentagram, Vignelli, Rams Safe/professional choice
Motion Poetry (05–08) Kinetic, immersive, technical beauty — Field.io, Universal Everything, GMUNK Bold/avant-garde choice
Minimalism (09–12) Order, whitespace, precision — Kenya Hara, Jasper Morrison, Muji Safe/premium choice
Experimental Avant-garde (13–16) Generative, typographic shock, visual collision — Sagmeister, Experimental Jetset, Stefan Marx Bold/innovative choice
Eastern Philosophy (17–20) Warmth, poetry, tension between tradition and digital — Neri Oxman (organic), Han Jiaying (ink), wabi-sabi digital Differentiated/unique choice

Direction format (per direction)

Direction A — [Designer/studio name] style

Why this fits: [50–80 words explaining the match to this audience and brief]

Visual fingerprint:
  · [Characteristic 1]
  · [Characteristic 2]
  · [Characteristic 3]
  · [Characteristic 4]

Tone keywords: [word], [word], [word], [word]
School: [school name]

Phase 4: Generate 3 Visual Demos

Seeing beats describing. Do not ask the user to imagine the directions — show them.

For each direction, generate a self-contained HTML demo using the actual content/theme from the brief (not Lorem ipsum).

Build approach:

  • React + Babel inline (CDN, no build step)
  • Single file, opens with double-click
  • 1200×900 viewport target
  • Uses real content: actual product name, real copy, actual data if provided

File output: _temp/design-demos/demo-a.html, demo-b.html, demo-c.html

Screenshot each:

npx playwright screenshot "file:///$(pwd)/_temp/design-demos/demo-a.html" _temp/design-demos/demo-a.png --viewport-size=1200,900

Show all 3 screenshots together. If parallel subagents available, generate the 3 demos concurrently.

Taste guardrails per demo:

  • One warm or distinctive base color + single accent — not a gradient rainbow
  • Typography: mix display serif + body sans — not all-system-font
  • One "screenshot-worthy" detail that distinguishes the direction
  • No stock gradient backgrounds, no blue-white-generic SaaS template

Phase 5: User Selects

User options:

  • "A" → deepen direction A
  • "B + C's layout" → hybrid — go back to Phase 3 with the hybrid constraint
  • "None — try again" → return to Phase 3 with new constraints
  • Subtle feedback ("more minimal", "warmer") → iterate the closest demo

Phase 6: Generate Style Spec

Once direction is selected, write design-direction.md. When DESIGN.md is next written (/form-brief, /form-document), the chosen direction name goes in its direction frontmatter key (docs/design-md.md).

# Design Direction: [Name]

School: [school]
Designer reference: [name/studio]

## Color

Primary: #[hex] — [usage]
Accent: #[hex] — [usage]
Background: #[hex]
Text: #[hex]

## Typography

Display: [font] — [weight/size usage]
Body: [font] — [size/line-height]

## Visual fingerprint

- [characteristic 1]
- [characteristic 2]
- [characteristic 3]

## Tone keywords

[word], [word], [word]

## What to avoid

- [anti-pattern specific to this direction]
- [another anti-pattern]

Hand this to /form-brand or /form-component for system build-out, or to /draft-proto for prototype execution.


Phase 6b: Derive the design dials

Every chosen direction carries three dials. No universal default: derive each from audience, use scene, content type, brand personality, and frequency of use; one-line rationale each.

  • DESIGN_VARIANCE 1-10: 1 = convention-faithful (symmetric grids, standard components); 10 = experimental (asymmetry, broken grid)
  • MOTION_INTENSITY 1-10: 1 = state feedback only; 10 = choreographed, scroll-driven. prefers-reduced-motion honored at every level
  • VISUAL_DENSITY 1-10: 1 = airy, one idea per view; 10 = cockpit, data-dense
Brief (illustrative, not defaults) VARIANCE MOTION DENSITY
Internal admin tool 2 1 8
Marketing launch page 7 7 3
Consumer finance app 3 3 5
Portfolio 8 5 2

Directions in one comparison should differ on at least one dial. Add this block to the style spec of the selected direction:

Design dials
  DESIGN_VARIANCE   4  — <rationale>
  MOTION_INTENSITY  3  — <rationale>
  VISUAL_DENSITY    7  — <rationale>

Consumers (prism-ui, move-animate) read the dials from here; if absent they infer and state them.


Phase 7: AI Prompt (optional)

If the user needs to generate images or visual assets in this direction:

Structure: [design philosophy constraints] + [content description] + [technical parameters]

Use specific visual traits, not style labels:

  • Write: "Kenya Hara's breathing whitespace, terracotta #C04A1A accent, EB Garamond display, 8:1 signal-to-noise ratio"
  • Not: "minimalist"

Anti-Patterns

  • Recommending 2 directions from the same school — they'll look similar
  • Writing descriptions without generating demos — users can't evaluate prose
  • Using Lorem ipsum instead of real content in demos — kills realism
  • Defaulting to the "safe SaaS blue + Inter" template for every direction
  • Picking the 3 worlds by taste instead of dealing them with the script
  • Shipping the rut because it feels safe
  • Generating demos without screenshotting — CLI receipt needs the image path

Delivery

If output exceeds the 40-line CLI budget, invoke /atlas-report with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.

04 同仓库更多 Skills