oh-my-design-cli 0.1.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.claude/hooks/post-edit-watch.cjs +99 -0
  2. package/.claude/hooks/session-end-foldin.cjs +96 -0
  3. package/.claude/hooks/session-state-loader.cjs +64 -0
  4. package/.claude/hooks/skill-activation.cjs +73 -0
  5. package/.claude/settings.json +55 -0
  6. package/.claude/skills/skill-rules.json +87 -0
  7. package/AGENTS.md +111 -0
  8. package/README.md +75 -202
  9. package/agents/AGENT.md +53 -0
  10. package/agents/omd-3d-blender.md +269 -0
  11. package/agents/omd-a11y-auditor.md +97 -0
  12. package/agents/omd-asset-curator.md +260 -0
  13. package/agents/omd-critic.md +181 -0
  14. package/agents/omd-master.md +548 -0
  15. package/agents/omd-microcopy.md +63 -0
  16. package/agents/omd-persona-tester.md +118 -0
  17. package/agents/omd-ui-junior.md +129 -0
  18. package/agents/omd-ux-engineer.md +265 -0
  19. package/agents/omd-ux-researcher.md +62 -0
  20. package/agents/omd-ux-writer.md +181 -0
  21. package/data/opt-out-corpus.json +141 -0
  22. package/data/reference-fingerprints.json +1495 -0
  23. package/dist/bin/oh-my-design.js +3 -818
  24. package/dist/bin/oh-my-design.js.map +1 -1
  25. package/dist/install-skills-SVIYKXOE.js +442 -0
  26. package/dist/install-skills-SVIYKXOE.js.map +1 -0
  27. package/package.json +23 -21
  28. package/scripts/context.cjs +91 -0
  29. package/scripts/postinstall.cjs +54 -0
  30. package/skills/omd-apply/SKILL.md +64 -53
  31. package/skills/omd-harness/SKILL.md +271 -0
  32. package/skills/omd-learn/SKILL.md +55 -35
  33. package/skills/omd-remember/SKILL.md +93 -15
  34. package/skills/omd-sync/SKILL.md +140 -16
  35. package/dist/chunk-6YNSV3VY.js +0 -35
  36. package/dist/chunk-6YNSV3VY.js.map +0 -1
  37. package/dist/chunk-MHFYGZSO.js +0 -337
  38. package/dist/chunk-MHFYGZSO.js.map +0 -1
  39. package/dist/chunk-N2JG6N4Q.js +0 -264
  40. package/dist/chunk-N2JG6N4Q.js.map +0 -1
  41. package/dist/chunk-OOQQEUGX.js +0 -46
  42. package/dist/chunk-OOQQEUGX.js.map +0 -1
  43. package/dist/chunk-OR5DHENY.js +0 -250
  44. package/dist/chunk-OR5DHENY.js.map +0 -1
  45. package/dist/customizer-CM76752R.js +0 -8
  46. package/dist/customizer-CM76752R.js.map +0 -1
  47. package/dist/index.d.ts +0 -559
  48. package/dist/index.js +0 -3113
  49. package/dist/index.js.map +0 -1
  50. package/dist/init-UMM4XIV5.js +0 -675
  51. package/dist/init-UMM4XIV5.js.map +0 -1
  52. package/dist/install-skills-CM6VXFZJ.js +0 -152
  53. package/dist/install-skills-CM6VXFZJ.js.map +0 -1
  54. package/dist/learn-33LHKEJA.js +0 -140
  55. package/dist/learn-33LHKEJA.js.map +0 -1
  56. package/dist/reference-YMNAOXJQ.js +0 -47
  57. package/dist/reference-YMNAOXJQ.js.map +0 -1
  58. package/dist/reference-parser-TM3CJPNE.js +0 -10
  59. package/dist/reference-parser-TM3CJPNE.js.map +0 -1
  60. package/dist/remember-UAFA5B2O.js +0 -78
  61. package/dist/remember-UAFA5B2O.js.map +0 -1
  62. package/dist/sync-FDYRKNFE.js +0 -417
  63. package/dist/sync-FDYRKNFE.js.map +0 -1
  64. package/dist/templates/templates/design-md.hbs +0 -44
  65. package/dist/templates/templates/partials/agent-prompt-guide.hbs +0 -28
  66. package/dist/templates/templates/partials/color-palette.hbs +0 -49
  67. package/dist/templates/templates/partials/component-stylings.hbs +0 -28
  68. package/dist/templates/templates/partials/depth-elevation.hbs +0 -31
  69. package/dist/templates/templates/partials/dos-donts.hbs +0 -13
  70. package/dist/templates/templates/partials/layout.hbs +0 -30
  71. package/dist/templates/templates/partials/responsive.hbs +0 -25
  72. package/dist/templates/templates/partials/shadcn-tokens.hbs +0 -64
  73. package/dist/templates/templates/partials/typography.hbs +0 -43
  74. package/dist/templates/templates/partials/visual-theme.hbs +0 -26
package/README.md CHANGED
@@ -5,11 +5,7 @@
5
5
  <h1 align="center">oh-my-design</h1>
6
6
 
7
7
  <p align="center">
8
- <strong>Generate DESIGN.md from 67 real company design systems.</strong> Interactive wizard. Zero AI calls.
9
- </p>
10
-
11
- <p align="center">
12
- <strong>Now with the OmD v0.1 Philosophy Layer.</strong> Voice · Narrative · Principles · Personas · States · Motion — so Claude Code matches your brand, not the AI's default.
8
+ <strong>One-command bootstrap for skill-driven design with your AI coding agent.</strong> 67 real company design systems. Zero AI calls in the install. Then you just talk to your agent.
13
9
  </p>
14
10
 
15
11
  <p align="center">
@@ -18,229 +14,106 @@
18
14
  <a href="LICENSE"><img src="https://img.shields.io/github/license/kwakseongjae/oh-my-design?style=flat-square" alt="License" /></a>
19
15
  <a href="https://github.com/kwakseongjae/oh-my-design/stargazers"><img src="https://img.shields.io/github/stars/kwakseongjae/oh-my-design?style=social" alt="GitHub Stars" /></a>
20
16
  <img src="https://img.shields.io/badge/references-67-7c5cfc?style=flat-square" alt="67 References" />
21
- <img src="https://img.shields.io/badge/AI%20calls-zero-blue?style=flat-square" alt="Zero AI" />
22
- </p>
23
-
24
- <p align="center">
25
- <a href="README.ko.md">한국어</a> | <a href="README.ja.md">日本語</a> | <a href="README.zh-TW.md">繁體中文</a> | English
17
+ <img src="https://img.shields.io/badge/CLI%20commands-1-blue?style=flat-square" alt="One CLI command" />
26
18
  </p>
27
19
 
28
20
  ---
29
21
 
30
- ## What is oh-my-design?
31
-
32
- **oh-my-design (OmD)** is an open spec for giving AI coding agents enough brand context to produce on-brand UI instead of the AI's statistical default.
22
+ ## What is this?
33
23
 
34
- `DESIGN.md` as [Google defined it](https://stitch.withgoogle.com/docs/design-md/overview/) is a **token document** colors, typography, components. Necessary, but not sufficient. When an agent generates UI from tokens alone, the output is coherent but branded like nobody it defaults to Inter-on-white, purple gradients, unjustified emojis. OmD v0.1 adds a **brand-philosophy layer** on top: **Voice · Narrative · Principles · Personas · States · Motion**. Drop an OmD `DESIGN.md` at your project root and the agent's output stops being generic and starts being yours.
24
+ **oh-my-design (OmD)** turns your AI coding agent (Claude Code / Codex / OpenCode / Cursor) into a senior product designer with a working memory of your brand. You install once. After that, you just describe what you want components, screens, copy, assets, charts and the agent applies your project's design system, picks the right asset medium, and ships.
35
25
 
36
- Three pieces:
26
+ `DESIGN.md` is the brand spec ([Google Stitch](https://stitch.withgoogle.com/docs/design-md/overview/) tokens + the OmD v0.1 brand-philosophy layer: Voice / Narrative / Principles / Personas / States / Motion). 67 real-company DESIGN.md files ship in this package. Pick one, customize through conversation, ship.
37
27
 
38
- 1. **[Spec](spec/omd-v0.1.md)** versioned, additive to Google Stitch, MIT-licensed.
39
- 2. **[Claude Code skill](.claude/skills/omd/SKILL.md)** — auto-applies the spec as a hard constraint when generating UI in Claude Code.
40
- 3. **[67 reference files](references/)** — real-company `DESIGN.md` files you can fork, customize with the interactive builder, and ship.
28
+ **No API keys. No external infra. Everything runs inside your existing CLI session.**
41
29
 
42
- **No API keys. No AI calls. Everything runs client-side.**
43
-
44
- ## Ecosystem v1 — agent integration (new)
45
-
46
- `oh-my-design` now ships a coding-agent ecosystem so `DESIGN.md` is **read and respected** by Claude Code, Codex, OpenCode, and Cursor while you work — not just generated once and forgotten.
47
-
48
- **Zero-install (recommended):**
30
+ ## Install
49
31
 
50
32
  ```bash
51
33
  cd my-project
52
-
53
- # 1. One-time: install agent skills (.claude/skills, .codex/skills, .opencode/agents)
54
34
  npx oh-my-design-cli install-skills
55
-
56
- # 2. Bootstrap DESIGN.md from a reference + your project description
57
- # (run from inside Claude Code/Codex/OpenCode and the omd:init skill drives this)
58
- npx oh-my-design-cli init recommend "warm approachable B2C marketplace"
59
- npx oh-my-design-cli init prepare --ref airbnb --description "warm approachable B2C marketplace"
60
-
61
- # 3. Install / refresh shim files so all four agents read DESIGN.md
62
- npx oh-my-design-cli sync
63
-
64
- # 4. As you work, log preferences whenever the agent gets a design choice wrong
65
- npx oh-my-design-cli remember "CTAs are never uppercase"
66
-
67
- # 5. Periodically fold pending preferences into DESIGN.md
68
- npx oh-my-design-cli learn # list pending
69
- npx oh-my-design-cli learn --mark-applied <id> # after the fold
70
35
  ```
71
36
 
72
- **Or install globally for shorter commands:**
37
+ Then restart your agent (Cmd+Q in Claude Code, then relaunch) so the new skills + agents are loaded.
73
38
 
74
- ```bash
75
- npm install -g oh-my-design-cli
76
- # Now use either `oh-my-design` or the short alias `omd`
77
- omd install-skills
78
- omd sync
79
- omd remember "..."
80
- ```
39
+ That is the only CLI command you will run. Everything else is natural language to your agent.
81
40
 
82
- > **Status**: `v0.1.0` is the first ecosystem release. The CLI surface (sync / remember / learn / init prepare / install-skills) is stable + unit-tested. The agent-side Hybrid variation quality depends on the host LLM following the `omd:init` skill prompt — please file issues with archived sessions if results disappoint.
41
+ ## How you use it
83
42
 
84
- ### What gets installed
43
+ Open Claude Code (or Codex / OpenCode) in your project. Just talk:
85
44
 
86
- | File | Owned by | Purpose |
87
- |---|---|---|
88
- | `DESIGN.md` | you | Single source of truth — brand & UI spec |
89
- | `CLAUDE.md` | `omd sync` | Pointer (`@./DESIGN.md`) for Claude Code |
90
- | `AGENTS.md` | `omd sync` | Pointer for Codex CLI **and** OpenCode (single file covers both) |
91
- | `.cursor/rules/omd-design.mdc` | `omd sync` | Auto-attaches DESIGN.md when Cursor edits UI files |
92
- | `.claude/skills/omd-*/SKILL.md` | `omd install-skills` | Claude Code skill bundle (5 skills) |
93
- | `.codex/skills/omd-*/SKILL.md` | `omd install-skills` | Codex skill bundle (5 skills) |
94
- | `.opencode/agents/omd-*.md` | `omd install-skills` | OpenCode agent bundle (5 agents) |
95
- | `.omd/preferences.md` | `omd remember` | Append-only design correction log |
96
- | `.omd/sync.lock.json` | `omd sync` | Drift detection state |
45
+ > "Set up the design system for a calm B2B fintech dashboard."
46
+ > Agent picks a reference from 67 (likely Linear or Stripe), proposes a hybrid DESIGN.md, asks for confirmation, writes the file plus shims.
97
47
 
98
- Shim and skill files use a `<!-- omd:start -->` marker so user edits outside the marker are preserved across `omd sync` runs.
99
-
100
- ### The five skills
101
-
102
- | Skill | Trigger | What it does |
103
- |---|---|---|
104
- | `omd:init` | "make me a DESIGN.md" / "set up brand" | Recommends a reference, asks for project description, generates a Hybrid variation that **preserves the reference's voice** while applying project-context deltas, writes DESIGN.md + shims |
105
- | `omd:apply` | Any UI / styling / microcopy / motion task | Loads DESIGN.md + pending preferences as authoritative brand context, **auto-logs** any user correction it detects via `omd remember` |
106
- | `omd:sync` | "shim drift" / "AGENTS.md sync" | Runs `omd sync` with appropriate flags |
107
- | `omd:remember` | "remember that ..." / "we don't ..." | Appends a structured entry to `.omd/preferences.md` |
108
- | `omd:learn` | "fold preferences into DESIGN.md" | Groups pending preferences by scope, proposes coherent DESIGN.md edits, flips status to applied |
48
+ > "Make the empty-state for the search results page."
49
+ > Agent reads DESIGN.md, builds the component with brand tokens, picks an inline SVG illustration matching the voice, drops in microcopy that follows the §10 voice rules.
109
50
 
110
- Source: [`skills/`](skills/) in this repo. `omd install-skills` copies these into your project's agent directories.
51
+ > "Design the entire onboarding from scratch Toss-style for a family meal-tracking app."
52
+ > Agent invokes the harness — runs the 10-phase pipeline (discovery, research, IA, wireframes, components, assets, microcopy, validation, handoff), spawns sub-agents in parallel where possible, asks you 3 mandatory checkpoints, hands back a v0/Cursor-ready package.
111
53
 
112
- ### CLI commands
54
+ > "Render a 3D water glass for the hero."
55
+ > Agent recommends Blender, walks you through install-on-demand (it does not bundle it in the upfront bootstrap), then renders with materials cited from DESIGN.md §2 and §6.
113
56
 
114
- ```
115
- omd init recommend <description> # tag-stem-matched reference suggestions (top-5)
116
- omd init prepare --ref <id> --description <text>
117
- # stages .omd/init-context.json + delta_set
118
- omd install-skills [--agent ...] # copy skills/* into .claude /.codex /.opencode
119
- omd reference list # list bundled reference ids
120
- omd reference show <id> # print a reference DESIGN.md to stdout
121
- omd sync [--force | --check] # write or audit shim files
122
- omd remember <note> [--scope ...] # append a preference entry
123
- omd learn # list pending preferences
124
- omd learn --mark-applied <id> # after applying to DESIGN.md
125
- omd learn --mark-rejected <id> --reason <text>
126
- ```
57
+ > "Add a daily-intake line chart."
58
+ > Agent reads your `package.json`, sees `recharts` is installed, builds the chart with brand colors, no library mismatch.
127
59
 
128
- `omd sync --check` is CI-friendly: exit 1 if shims drifted or DESIGN.md changed without a follow-up sync.
60
+ > "We never use uppercase CTAs."
61
+ > Agent silently appends to `.omd/preferences.md`. Next time anyone makes a CTA, that rule applies. Later you can say "fold preferences into DESIGN.md" and the agent merges by scope.
129
62
 
130
- ### What's deterministic vs. agent-driven
63
+ ## What gets installed
131
64
 
132
- | Layer | Done by | Why |
65
+ | Path | Owner | Purpose |
133
66
  |---|---|---|
134
- | Reference recommendation | CLI (tag + stem match + category-prior + MMR-style diversity) | Fast, no API key. Category-prior boosts domain-aligned refs (e.g. Consumer for "marketplace / family / subscription"). |
135
- | Token delta computation | CLI (controlled vocabulary of 41 keywords + ~75 synonyms, additive composition with clamp) | Deterministic; same description → same delta_set |
136
- | Color hex shift baseline | CLI (`apply-delta-stub`) — **color-only** | Fast deterministic preview. Does NOT shift radius / letter-spacing / spacing — that's the agent's job. |
137
- | Full token application + section structure preservation + voice rewrite | **Agent** (Claude Code / Codex / OpenCode) following `omd:init` skill | Stub is color-only; full delta application requires structured Markdown editing. The skill prompt enforces voice fingerprint preservation. |
138
- | §11–13 (Brand Narrative / Principles / Personas) | **Agent + user input** (Phase 4.5) | Reference content is project-specific facts (founding year, verbatim taglines, real personas). The skill collects facts in Phase 4.5 or marks as `[FILL IN: …]` with `omd:limitation` comments — never fabricates. |
139
-
140
- ### Status
141
-
142
- This ecosystem is **v0.1.0** the first agent-integration release. The CLI surface (sync / remember / learn / init prepare / install-skills) is stable and unit-tested (505 tests). The agent-side Hybrid variation quality depends on the host LLM following the `omd:init` skill prompt — see [`test/scenarios/WORKFLOWS.md`](test/scenarios/WORKFLOWS.md) for the verification map. Empirical results from real sessions are welcome — please file issues with archived `.omd/init-context.json` and the resulting `DESIGN.md`.
143
-
144
- ## OmD v0.1 Philosophy Layer
145
-
146
- The 6 sections OmD adds on top of Google Stitch's 9:
147
-
148
- | Section | Purpose |
149
- |---|---|
150
- | **10. Voice & Tone** | Microcopy constraints — button labels, errors, onboarding |
151
- | **11. Brand Narrative** | The "why" what the brand rejects, what it's trying to move |
152
- | **12. Principles** | 5–10 first-principles rules that break ties when tokens don't |
153
- | **13. Personas** | 2–4 concrete users so agents ground output in real use cases |
154
- | **14. States** | Empty / loading / error / skeleton patterns prevents generic "No data found" |
155
- | **15. Motion & Easing** | Named duration + easing tokens the dimension Stitch's 9 sections miss |
156
-
157
- **Ten references ship with a full Philosophy Layer today:**
158
- Toss · Claude · Line · Stripe · Linear · Vercel · Notion · Airbnb · Apple · Figma each with voice, narrative, principles, personas, states, and motion sourced against public references.
159
-
160
- See [references/toss/DESIGN.md](references/toss/DESIGN.md) for a full OmD v0.1 example.
161
-
162
- ## What's inside
163
-
164
- - **Builder** — pick a reference, tune colors / radius / dark mode, select components, hit Export. The **Philosophy** filter isolates the 10 references with a full brand philosophy.
165
- - **Design Systems Directory** ([oh-my-design.kr/design-systems](https://oh-my-design.kr/design-systems))34 of the 67 references have a verified public design system or brand-guidelines page; the directory links straight out to each one with live thumbnails.
166
- - **Personal Curation** ([oh-my-design.kr/curation](https://oh-my-design.kr/curation)) a short MBTI-style quiz that maps your design personality to one of the 67 references and drops you straight into the builder with that reference preloaded.
167
-
168
- ## 67 Supported References
169
-
170
- | Category | Companies |
171
- |----------|-----------|
172
- | **AI & LLM** | Claude, Cohere, ElevenLabs, Minimax, Mistral AI, Ollama, OpenCode AI, Replicate, RunwayML, Together AI, VoltAgent, xAI |
173
- | **Design Tools** | Airtable, Clay, Figma, Framer, Miro, Webflow |
174
- | **Developer Tools** | Cursor, Expo, Lovable, Raycast, Superhuman, Vercel, Warp |
175
- | **Productivity** | Cal.com, freee, Intercom, Linear, Mintlify, Notion, Resend, Zapier |
176
- | **Consumer Tech** | Airbnb, Apple, Baemin, Dcard, IBM, Kakao, Karrot, LINE, Mercari, NVIDIA, Pinkoi, Pinterest, SpaceX, Spotify, Uber |
177
- | **Fintech** | Coinbase, Kraken, Revolut, Stripe, Toss, Wise |
178
- | **Backend & DevOps** | ClickHouse, Composio, Hashicorp, MongoDB, PostHog, Sanity, Sentry, Supabase |
179
- | **Automotive** | BMW, Ferrari, Lamborghini, Renault, Tesla |
180
- | **Marketing** | Semrush |
181
-
182
- > Use the **country filter** in the builder to browse by region (Korea, Taiwan, Japan, France, Italy, Germany, UK, US).
183
-
184
- ## Exported DESIGN.md
185
-
186
- Follows the [Google Stitch DESIGN.md format](https://stitch.withgoogle.com/docs/design-md/overview/) — base sections 1–9, plus the OmD v0.1 Philosophy Layer (sections 10–15) when enabled:
187
-
188
- **Base (Google Stitch)**
189
- 1. Visual Theme & Atmosphere
190
- 2. Color Palette & Roles
191
- 3. Typography Rules
192
- 4. Component Stylings
193
- 5. Layout Principles
194
- 6. Depth & Elevation
195
- 7. Do's and Don'ts
196
- 8. Responsive Behavior
197
- 9. Agent Prompt Guide
198
-
199
- **OmD v0.1 Philosophy Layer (additive)**
200
-
201
- 10. Voice & Tone
202
- 11. Brand Narrative
203
- 12. Principles
204
- 13. Personas
205
- 14. States
206
- 15. Motion & Easing
207
-
208
- Plus: Style Preferences, Included Components, Iconography & SVG Guidelines, Document Policies.
209
-
210
- ## Project Structure
211
-
212
- ```
213
- oh-my-design/
214
- spec/ OmD v0.1 spec (authoritative)
215
- .claude/skills/omd/ Claude Code skill bundle
216
- references/ 67 company DESIGN.md files
217
- src/ CLI core (TypeScript)
218
- web/ Next.js web builder
219
- src/app/ Landing + Builder + Directory pages
220
- src/components/ Wizard, Preview, Export
221
- test/ CLI Vitest suite (unit/, integration/, scripts/)
222
- ```
223
-
224
- Web tests are colocated next to source files (`web/src/**/*.test.ts`).
225
-
226
- ## Testing
227
-
228
- Two suites, both under Vitest, both must pass:
229
-
230
- ```bash
231
- npm test # CLI: 370 tests — unit + per-reference smoke
232
- cd web && npm test # Web: 88 tests — generate-css, config-hash, survey
233
- ```
234
-
235
- The integration suite (`test/integration/all-references.test.ts`) runs the full generation pipeline against every `references/<id>/DESIGN.md`, so a malformed reference surfaces as a per-ref failure in PR review. See [test/README.md](test/README.md) for the folder convention and module-by-module coverage map.
236
-
237
- ## Acknowledgments
238
-
239
- - [VoltAgent/awesome-design-md](https://github.com/VoltAgent/awesome-design-md) — the upstream collection of DESIGN.md files that seeded this project.
240
- - [kzhrknt/awesome-design-md-jp](https://github.com/kzhrknt/awesome-design-md-jp) — Japanese-market design-system references.
241
-
242
- oh-my-design extends these collections with an interactive customization wizard, A/B style preferences, component selection, a Design Systems directory, and a CLI export pipeline.
67
+ | `.claude/skills/omd-*/SKILL.md` | install-skills | Claude Code skill bundle (apply / harness / init / learn / remember / sync) |
68
+ | `.codex/skills/omd-*/SKILL.md` | install-skills | Codex skill bundle |
69
+ | `.opencode/agents/omd-*.md` | install-skills | OpenCode agent bundle |
70
+ | `.claude/agents/omd-*.md` | install-skills | 11 canonical sub-agents (master + 10 specialists) |
71
+ | `.claude/data/*` | install-skills | 67-reference fingerprints, vocabulary, opt-out corpus |
72
+ | `.claude/hooks/*.cjs` | install-skills | UserPromptSubmit / SessionStart / PostToolUse hooks |
73
+ | `.claude/skills/skill-rules.json` | install-skills | Skill activation rules |
74
+ | `references/*/DESIGN.md` | bundled | 67 real design systems |
75
+ | `DESIGN.md` | your agent (after init flow) | Your project's authoritative brand spec |
76
+ | `CLAUDE.md` / `AGENTS.md` / `.cursor/rules/omd-design.mdc` | omd-sync skill | Pointers so every agent reads DESIGN.md |
77
+ | `.omd/preferences.md` | omd-remember skill | Append-only design correction log |
78
+ | `.omd/runs/<id>/` | omd-harness skill | Per-harness-run artifacts (briefs, wireframes, eval, handoff zips) |
79
+
80
+ ## The 6 skills + 11 agents
81
+
82
+ Skills (loaded into your agent's context based on prompt triggers):
83
+
84
+ - **omd:apply** — DESIGN.md as authoritative context for every UI task. Routes complex requests (assets, charts, full screens, a11y audit) to specialized sub-agents.
85
+ - **omd:init** — Bootstrap DESIGN.md from a reference + project description. 67 references, hybrid variation that preserves the reference voice while shifting only user-named axes.
86
+ - **omd:harness** `/omd-harness <task>` to run the 10-phase design pipeline with checkpoints. Spawns sub-agents in parallel.
87
+ - **omd:remember** Captures user corrections to `.omd/preferences.md` automatically when the agent detects them.
88
+ - **omd:learn** Folds pending corrections back into DESIGN.md by scope.
89
+ - **omd:sync** — Maintains the shim files (CLAUDE.md / AGENTS.md / Cursor mdc) so every agent reads your DESIGN.md.
90
+
91
+ Sub-agents1 orchestrator + 10 specialists (invoked by the master or directly by skills):
92
+
93
+ - **omd-master** Conversational state machine, runs the harness phases. opus.
94
+ - **omd-ux-researcher** — Reads bundled references, validates Tier-1 official design system URLs. opus.
95
+ - **omd-ui-junior** — Generates wireframes and component manifests from DESIGN.md. sonnet.
96
+ - **omd-ux-engineer** — Section-level interaction / motion / IA / mobile / perceived-perf audit + code-level fixes. NN/g heuristics + Refactoring UI + Web Vitals + WAI-ARIA. Senior advisor; pairs with `omd-ui-junior` (generator). opus.
97
+ - **omd-asset-curator** — Picks asset medium (inline SVG / chart library / Lottie / Rive / Unsplash / 3D), generates inline code or sources external. Stack-aware (recharts vs chartjs vs custom SVG, lucide vs heroicons, etc.). sonnet.
98
+ - **omd-3d-blender**Blender MCP renderer with just-in-time install walkthrough. opus.
99
+ - **omd-microcopy** — Voice-consistent copy generation tied to DESIGN.md §10. sonnet.
100
+ - **omd-ux-writer** — Section-level copy audit + 2-3 strong alternatives + A/B hypothesis. Podmajersky / Erika Hall / Mailchimp / Stripe / GitHub voice docs integrated. Senior advisor; pairs with `omd-microcopy` (generator). opus.
101
+ - **omd-a11y-auditor** WCAG checks. haiku.
102
+ - **omd-persona-tester** — Adversarial 4-persona walkthrough (V/J/F/S). sonnet.
103
+ - **omd-critic** Root-cause analysis when the user iterates. opus.
104
+
105
+ ## What 1.0.0 is not
106
+
107
+ - It is not a collection of CLI commands. There is one bootstrap command. Everything else is skill prose.
108
+ - It is not an SDK. The `dist/index.js` programmatic API is gone. If you need the matching algorithm or shim format, look at the skill markdown directly.
109
+ - It does not generate emojis as icons. Asset agent prefers inline SVG (Lucide-matched or custom).
110
+
111
+ If you were on 0.1.x: see [MIGRATION.md](MIGRATION.md). All your old CLI commands are now spoken to your agent.
112
+
113
+ ## Status
114
+
115
+ `v1.0.0` first skill-first release. Surface area collapsed by ~92% versus 0.1.x. Stable for the install bootstrap; the harness is improving every release as the agent prose tightens.
243
116
 
244
117
  ## License
245
118
 
246
- [MIT](LICENSE)
119
+ MIT. References belong to their respective companies — they are reproduced for educational reference.
@@ -0,0 +1,53 @@
1
+ # AGENT.md — oh-my-design harness compact context (≤ 60 lines, Ralph convention)
2
+
3
+ A 60-line operational context card. Loaded into the project at install via `omd install-skills`. Source of truth for what an agent needs to know about *this* project on every iteration.
4
+
5
+ ## Identity
6
+ - **Project:** oh-my-design — a CLI + skill bundle that turns AI coding agents into a design harness.
7
+ - **Output artifact:** `DESIGN.md` (Google Stitch 1–9 + OmD 10–15) + harness run dir at `.omd/runs/`.
8
+ - **Target users:** vibe coders, junior designers, solo founders.
9
+
10
+ ## Stack & commands
11
+ - Build: `npm run build` (tsup) · Lint: `npm run lint` (tsc --noEmit) · Test: `npm test` (vitest)
12
+ - Hidden internal helper: `omd harness "<task>" --internal` (slug + run dir; emits single JSON line)
13
+ - User-facing entry: `/omd-harness <task>` (Claude Code or Codex skill)
14
+
15
+ ## Directory map
16
+ - `agents/` — canonical 11 sub-agent definitions (master + 10 specialists; source-of-truth, generates `.claude/agents/` and `.codex/agents/`)
17
+ - `skills/omd-harness/` — entry skill that calls master orchestrator
18
+ - `skills/omd-init/`, `skills/omd-apply/`, `skills/omd-remember/`, `skills/omd-learn/`, `skills/omd-sync/` — existing OmD skills
19
+ - `data/reference-fingerprints.json` — 67-reference voice fingerprint manifest (skill-side semantic match)
20
+ - `data/vocabulary.json`, `data/synonyms.json`, `data/reference-tags.md` — controlled vocab + tagging
21
+ - `references/<id>/DESIGN.md` × 67 — bundled reference design systems
22
+ - `spec/omd-v0.1.md` — OmD spec (15-section DESIGN.md format)
23
+ - `.omd/runs/run-<ts>-<slug>/` — every harness run; permanent archive
24
+ - `skills/omd-lab-02-design-harness/runs/v<N>-...` — Lab #02 versioned experiments
25
+
26
+ ## Core architecture (re-read every Phase 8)
27
+ - **Single Ralph-style loop**, fan-out only at: ux-research (parallel readers), persona-testing (parallel adversarial)
28
+ - **OmD spec is already a harness signature** — §10 → microcopy, §12 → orchestrator constraint, §13 → tester input, §14 → QA checklist
29
+ - **Eval pipeline**: deterministic gate (axe + lighthouse + spec validate) → cross-judge ensemble (3-prompt diversity, no API key) → adversarial persona walkthrough (4 personas, ABANDON token, hard turn budget)
30
+ - **3 mandatory user checkpoints**: Phase 3 (journey), Phase 5 (DESIGN.md.patch), Phase 8 (validation summary)
31
+ - **3-iteration cap**, critic between iterations forces root-cause re-entry (no surface patches)
32
+
33
+ ## Brand non-negotiables (apply to *this* project's own UI)
34
+ - No Inter on white. No purple-on-white. No gradient backgrounds. No unjustified emoji.
35
+ - Korean and Latin script co-equal (this is a bilingual project).
36
+ - Hex + name together for every color: `Toss Blue (#3182f6)`, never just `#3182f6`.
37
+
38
+ ## Numbered-9s (re-read at every iteration boundary)
39
+ - 9 → re-read sub-agent output before acting
40
+ - 99 → user feedback → trace to Phase decision (critic), not surface-patch
41
+ - 999 → never fabricate §11–13 facts
42
+ - 9999 → never invent tokens absent from DESIGN.md
43
+ - 99999 → never auto-skip user checkpoints
44
+ - 999999 → never invent reference ids; 67-only catalog
45
+ - 9999999 → never claim success when output is empty; Read the file
46
+ - 99999999 → never overwrite previous iteration; snapshot to `iteration-<N>/`
47
+
48
+ ## Where to look when stuck
49
+ - `research/harness-design/06-omd-integration-design.md` — full architecture
50
+ - `research/harness-design/07-poc-spec.md` — Scenario A/B/C
51
+ - `skills/omd-lab-02-design-harness/runs/live-*.md` — accumulated live-run insights
52
+ - `research/harness-design/docs-todo.md` — pending docs/blogs queue
53
+