oh-my-design-cli 1.8.6 → 1.9.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.
- package/.claude/hooks/lib/preferences-parser.cjs +1 -0
- package/.claude/hooks/lib/preferences-writer.cjs +1 -0
- package/.claude/hooks/post-edit-watch.cjs +1 -0
- package/.claude/hooks/session-end-foldin.cjs +1 -0
- package/.claude/hooks/session-state-loader.cjs +1 -0
- package/.claude/hooks/skill-activation.cjs +1 -0
- package/.claude/settings.json +10 -1
- package/.github/assets/logo-bg.png +0 -0
- package/AGENTS.md +20 -1
- package/CHANGELOG.md +482 -0
- package/MIGRATION.md +103 -0
- package/README.ja.md +56 -19
- package/README.ko.md +47 -30
- package/README.md +48 -30
- package/README.zh-TW.md +59 -22
- package/agents/AGENT.md +8 -7
- package/agents/omd-codex-image.md +1 -1
- package/agents/omd-critic.md +6 -7
- package/agents/omd-designer-review.md +1 -1
- package/agents/omd-final-qa.md +1 -1
- package/agents/omd-humanizer.md +38 -0
- package/agents/omd-kr-writer.md +3 -4
- package/agents/omd-locale-adapter.md +12 -16
- package/agents/omd-master.md +24 -19
- package/agents/omd-microcopy.md +1 -1
- package/agents/omd-orchestrator.md +7 -8
- package/agents/omd-slop-auditor.md +31 -0
- package/agents/omd-ux-researcher.md +1 -1
- package/data/reference-fingerprints.json +2761 -85
- package/dist/bin/oh-my-design.js +16 -8
- package/dist/bin/oh-my-design.js.map +1 -1
- package/dist/chunk-UJIHCEYF.js +99 -0
- package/dist/chunk-UJIHCEYF.js.map +1 -0
- package/dist/doctor-LDWSFM3I.js +763 -0
- package/dist/doctor-LDWSFM3I.js.map +1 -0
- package/dist/install-skills-ZZFNJ2II.js +1120 -0
- package/dist/install-skills-ZZFNJ2II.js.map +1 -0
- package/docs/CLI_QUICKSTART.md +157 -0
- package/package.json +25 -4
- package/scripts/postinstall.cjs +5 -4
- package/skills/claude-design/SKILL.md +38 -14
- package/skills/claude-design/references/claude-design-flow.md +11 -11
- package/skills/claude-design/references/codebase-analysis.md +5 -4
- package/skills/omd-final-qa/SKILL.md +1 -1
- package/skills/omd-harness/SKILL.md +51 -50
- package/skills/omd-humanize/SKILL.md +116 -0
- package/skills/omd-humanize/agents/openai.yaml +4 -0
- package/skills/omd-humanize/references/locale-playbooks.md +102 -0
- package/skills/omd-humanize/references/sources.md +11 -0
- package/skills/omd-init/SKILL.md +18 -12
- package/skills/omd-locale-adapter/SKILL.md +58 -91
- package/skills/omd-orchestrator/SKILL.md +11 -5
- package/skills/omd-reference-capture/SKILL.md +80 -26
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-LICENSE.txt +202 -0
- package/skills/omd-reference-capture/scripts/PLAYWRIGHT-NOTICE.txt +5 -0
- package/skills/omd-reference-capture/scripts/THIRD_PARTY_NOTICES.md +3 -0
- package/skills/omd-reference-capture/scripts/capture-reference-evidence.mjs +159906 -0
- package/skills/omd-slop-audit/SKILL.md +110 -0
- package/skills/omd-slop-audit/agents/openai.yaml +4 -0
- package/skills/omd-slop-audit/references/pattern-catalog.md +96 -0
- package/skills/omd-slop-audit/references/sources.md +24 -0
- package/web/references/104/DESIGN.md +354 -0
- package/web/references/11st/DESIGN.md +197 -316
- package/web/references/29cm/DESIGN.md +297 -393
- package/web/references/42dot/DESIGN.md +390 -0
- package/web/references/8percent/DESIGN.md +438 -0
- package/web/references/ably/DESIGN.md +267 -572
- package/web/references/acer/DESIGN.md +329 -0
- package/web/references/airbnb/DESIGN.md +219 -557
- package/web/references/airbridge/DESIGN.md +451 -0
- package/web/references/alipay/DESIGN.md +179 -420
- package/web/references/apple/DESIGN.md +224 -498
- package/web/references/asleep/DESIGN.md +402 -0
- package/web/references/au/DESIGN.md +334 -0
- package/web/references/autopedia/DESIGN.md +382 -0
- package/web/references/aws-cloudscape/DESIGN.md +241 -0
- package/web/references/baemin/DESIGN.md +332 -491
- package/web/references/banksalad/DESIGN.md +269 -180
- package/web/references/barogo/DESIGN.md +416 -0
- package/web/references/beusable/DESIGN.md +464 -0
- package/web/references/bigin/DESIGN.md +454 -0
- package/web/references/bilibili/DESIGN.md +206 -374
- package/web/references/bmw/DESIGN.md +162 -276
- package/web/references/brandi/DESIGN.md +184 -325
- package/web/references/buzzvil/DESIGN.md +457 -0
- package/web/references/cafe24/DESIGN.md +472 -0
- package/web/references/catchtable/DESIGN.md +219 -264
- package/web/references/cgv/DESIGN.md +317 -0
- package/web/references/channeltalk/DESIGN.md +210 -336
- package/web/references/china-airlines/DESIGN.md +291 -0
- package/web/references/cjonstyle/DESIGN.md +453 -0
- package/web/references/class101/DESIGN.md +168 -387
- package/web/references/classum/DESIGN.md +228 -203
- package/web/references/claude/DESIGN.md +242 -479
- package/web/references/clay/DESIGN.md +179 -377
- package/web/references/clickhouse/DESIGN.md +254 -343
- package/web/references/codeit/DESIGN.md +470 -0
- package/web/references/cohere/DESIGN.md +214 -324
- package/web/references/coinone/DESIGN.md +199 -179
- package/web/references/corca/DESIGN.md +414 -0
- package/web/references/coupang/DESIGN.md +205 -475
- package/web/references/cursor/DESIGN.md +240 -381
- package/web/references/dabang/DESIGN.md +248 -213
- package/web/references/dable/DESIGN.md +431 -0
- package/web/references/datarize/DESIGN.md +338 -0
- package/web/references/dealicious/DESIGN.md +402 -0
- package/web/references/drdiary/DESIGN.md +404 -0
- package/web/references/elastic/DESIGN.md +238 -0
- package/web/references/elevenlabs/DESIGN.md +183 -321
- package/web/references/elice/DESIGN.md +445 -0
- package/web/references/eslite/DESIGN.md +257 -0
- package/web/references/evaair/DESIGN.md +338 -0
- package/web/references/expo/DESIGN.md +238 -331
- package/web/references/familymart-tw/DESIGN.md +254 -0
- package/web/references/ferrari/DESIGN.md +160 -377
- package/web/references/figma/DESIGN.md +197 -451
- package/web/references/fitpet/DESIGN.md +445 -0
- package/web/references/flex/DESIGN.md +170 -253
- package/web/references/framer/DESIGN.md +197 -340
- package/web/references/freee/DESIGN.md +211 -533
- package/web/references/friendliai/DESIGN.md +431 -0
- package/web/references/frip/DESIGN.md +440 -0
- package/web/references/furiosaai/DESIGN.md +450 -0
- package/web/references/gangnamunni/DESIGN.md +154 -591
- package/web/references/gaudiolab/DESIGN.md +414 -0
- package/web/references/google/DESIGN.md +290 -398
- package/web/references/goorm/DESIGN.md +470 -0
- package/web/references/greencar/DESIGN.md +420 -0
- package/web/references/hackle/DESIGN.md +472 -0
- package/web/references/hashicorp/DESIGN.md +273 -318
- package/web/references/heydealer/DESIGN.md +429 -0
- package/web/references/humanscape/DESIGN.md +433 -0
- package/web/references/hwahae/DESIGN.md +453 -0
- package/web/references/hyundai/DESIGN.md +158 -368
- package/web/references/hyundaicard/DESIGN.md +171 -121
- package/web/references/ibm/DESIGN.md +227 -378
- package/web/references/idus/DESIGN.md +450 -0
- package/web/references/igaworks/DESIGN.md +437 -0
- package/web/references/inflearn/DESIGN.md +221 -366
- package/web/references/intuit/DESIGN.md +244 -0
- package/web/references/jandi/DESIGN.md +191 -291
- package/web/references/jobplanet/DESIGN.md +415 -0
- package/web/references/kakao/DESIGN.md +287 -475
- package/web/references/kakaobank/DESIGN.md +220 -521
- package/web/references/kakaogames/DESIGN.md +220 -0
- package/web/references/kakaopay/DESIGN.md +207 -526
- package/web/references/karrot/DESIGN.md +227 -251
- package/web/references/kb-kookmin/DESIGN.md +308 -0
- package/web/references/kbank/DESIGN.md +220 -175
- package/web/references/kcd/DESIGN.md +432 -0
- package/web/references/kmong/DESIGN.md +281 -356
- package/web/references/krds/DESIGN.md +245 -19
- package/web/references/kream/DESIGN.md +224 -359
- package/web/references/kurly/DESIGN.md +211 -533
- package/web/references/kyobobook/DESIGN.md +445 -0
- package/web/references/lablup/DESIGN.md +474 -0
- package/web/references/lamborghini/DESIGN.md +198 -360
- package/web/references/lemonbase/DESIGN.md +452 -0
- package/web/references/lguplus/DESIGN.md +259 -0
- package/web/references/likelion/DESIGN.md +283 -0
- package/web/references/line/DESIGN.md +396 -355
- package/web/references/linear.app/DESIGN.md +209 -562
- package/web/references/lotteon/DESIGN.md +386 -0
- package/web/references/lovable/DESIGN.md +255 -349
- package/web/references/makinarocks/DESIGN.md +242 -0
- package/web/references/maum-ai/DESIGN.md +423 -0
- package/web/references/medibloc/DESIGN.md +425 -0
- package/web/references/megabox/DESIGN.md +232 -0
- package/web/references/mercari/DESIGN.md +217 -434
- package/web/references/microsoft/DESIGN.md +234 -388
- package/web/references/mildang/DESIGN.md +411 -0
- package/web/references/millie/DESIGN.md +183 -504
- package/web/references/minimax/DESIGN.md +264 -322
- package/web/references/miricanvas/DESIGN.md +182 -355
- package/web/references/miro/DESIGN.md +234 -232
- package/web/references/mistral.ai/DESIGN.md +231 -314
- package/web/references/mixi/DESIGN.md +234 -0
- package/web/references/moin/DESIGN.md +445 -0
- package/web/references/mongodb/DESIGN.md +219 -316
- package/web/references/moreh/DESIGN.md +437 -0
- package/web/references/musinsa/DESIGN.md +184 -510
- package/web/references/mynavi/DESIGN.md +242 -0
- package/web/references/myrealtrip/DESIGN.md +169 -406
- package/web/references/naver/DESIGN.md +328 -499
- package/web/references/naverwebtoon/DESIGN.md +172 -395
- package/web/references/neosapience/DESIGN.md +441 -0
- package/web/references/nhn/DESIGN.md +169 -346
- package/web/references/nhncloud/DESIGN.md +185 -123
- package/web/references/nota/DESIGN.md +451 -0
- package/web/references/notion/DESIGN.md +271 -475
- package/web/references/nrise/DESIGN.md +417 -0
- package/web/references/ohouse/DESIGN.md +210 -549
- package/web/references/oliveyoung/DESIGN.md +217 -326
- package/web/references/ollama/DESIGN.md +241 -308
- package/web/references/onestore/DESIGN.md +248 -0
- package/web/references/palantir/DESIGN.md +256 -0
- package/web/references/panasonic/DESIGN.md +276 -0
- package/web/references/patternfly/DESIGN.md +259 -0
- package/web/references/payhere/DESIGN.md +438 -0
- package/web/references/pega/DESIGN.md +262 -0
- package/web/references/peoplefund/DESIGN.md +431 -0
- package/web/references/petfriends/DESIGN.md +428 -0
- package/web/references/pinkfong/DESIGN.md +199 -367
- package/web/references/pinterest/DESIGN.md +258 -308
- package/web/references/portone/DESIGN.md +446 -0
- package/web/references/poya/DESIGN.md +286 -0
- package/web/references/pozalabs/DESIGN.md +438 -0
- package/web/references/protopie/DESIGN.md +419 -0
- package/web/references/qraft/DESIGN.md +448 -0
- package/web/references/queenit/DESIGN.md +432 -0
- package/web/references/quotabook/DESIGN.md +449 -0
- package/web/references/rebellions/DESIGN.md +449 -0
- package/web/references/recruit/DESIGN.md +247 -0
- package/web/references/remember/DESIGN.md +202 -396
- package/web/references/resend/DESIGN.md +274 -348
- package/web/references/returnzero/DESIGN.md +460 -0
- package/web/references/sakura-internet/DESIGN.md +269 -0
- package/web/references/samsung/DESIGN.md +157 -359
- package/web/references/sandoll/DESIGN.md +445 -0
- package/web/references/sanity/DESIGN.md +241 -375
- package/web/references/saramin/DESIGN.md +465 -0
- package/web/references/scatterlab/DESIGN.md +412 -0
- package/web/references/selectstar/DESIGN.md +439 -0
- package/web/references/servicenow/DESIGN.md +289 -0
- package/web/references/shiftee/DESIGN.md +468 -0
- package/web/references/shinhanbank/DESIGN.md +161 -341
- package/web/references/shinhancard/DESIGN.md +208 -319
- package/web/references/sionic/DESIGN.md +454 -0
- package/web/references/sktelecom/DESIGN.md +310 -0
- package/web/references/socar/DESIGN.md +125 -32
- package/web/references/softbank/DESIGN.md +231 -0
- package/web/references/solapi/DESIGN.md +483 -0
- package/web/references/sony/DESIGN.md +234 -0
- package/web/references/soop/DESIGN.md +261 -0
- package/web/references/spacex/DESIGN.md +184 -323
- package/web/references/spotify/DESIGN.md +253 -394
- package/web/references/squeezebits/DESIGN.md +441 -0
- package/web/references/stayfolio/DESIGN.md +422 -0
- package/web/references/stripe/DESIGN.md +212 -491
- package/web/references/supabase/DESIGN.md +244 -316
- package/web/references/supertone/DESIGN.md +413 -0
- package/web/references/tabling/DESIGN.md +415 -0
- package/web/references/taishinbank/DESIGN.md +243 -0
- package/web/references/teamlab/DESIGN.md +240 -0
- package/web/references/teamsparta/DESIGN.md +472 -0
- package/web/references/tellingme/DESIGN.md +392 -0
- package/web/references/tesla/DESIGN.md +244 -427
- package/web/references/thsr/DESIGN.md +284 -0
- package/web/references/thumbtack/DESIGN.md +302 -0
- package/web/references/together.ai/DESIGN.md +257 -304
- package/web/references/toss/DESIGN.md +251 -593
- package/web/references/toss-securities/DESIGN.md +255 -178
- package/web/references/tossbank/DESIGN.md +195 -491
- package/web/references/toyota/DESIGN.md +238 -0
- package/web/references/tving/DESIGN.md +197 -245
- package/web/references/typed/DESIGN.md +413 -0
- package/web/references/uber/DESIGN.md +256 -333
- package/web/references/udn/DESIGN.md +250 -0
- package/web/references/upbit/DESIGN.md +145 -256
- package/web/references/upstage/DESIGN.md +211 -204
- package/web/references/uswds/DESIGN.md +287 -0
- package/web/references/vercel/DESIGN.md +236 -440
- package/web/references/vuno/DESIGN.md +413 -0
- package/web/references/wanted/DESIGN.md +215 -487
- package/web/references/weverse/DESIGN.md +437 -0
- package/web/references/wise/DESIGN.md +223 -231
- package/web/references/wisetracker/DESIGN.md +462 -0
- package/web/references/wooribank/DESIGN.md +245 -0
- package/web/references/yanolja/DESIGN.md +250 -419
- package/web/references/yeogiotte/DESIGN.md +235 -418
- package/web/references/zapier/DESIGN.md +256 -377
- package/web/references/zendesk/DESIGN.md +288 -0
- package/web/references/zigzag/DESIGN.md +200 -621
- package/dist/install-skills-7UUDOLG2.js +0 -734
- package/dist/install-skills-7UUDOLG2.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
// omd:installed-hook sha256=44ceaf346dc7238f92f127699d9b985940f77c68a461752d15f10b930ecea4ca
|
|
2
3
|
// Shared parser for .omd/preferences.md — the CANONICAL format written by the
|
|
3
4
|
// omd:remember skill (skills/omd-remember/SKILL.md). The remember format is the
|
|
4
5
|
// single source of truth; these hooks read it, they never change it.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
// omd:installed-hook sha256=f539948ceb96797081ba2669c7820149a7b1784659b5f950d1b08f2a9945b30e
|
|
2
3
|
// Shared writer for .omd/preferences.md — appends entries in the EXACT
|
|
3
4
|
// canonical format the omd:remember skill writes (skills/omd-remember/SKILL.md).
|
|
4
5
|
// The remember format is the single source of truth; this writer must stay
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
// omd:installed-hook sha256=f471b2b322fbbedf5a1a311819827a55aedcc1cd660617df2b2d130153467974
|
|
2
3
|
// PostToolUse hook — runs after Edit/Write on .tsx/.jsx/.css/.scss files.
|
|
3
4
|
// Detects if the change introduced a hex / radius / motion-duration value
|
|
4
5
|
// that's NOT in DESIGN.md, surfaces a one-line suggestion to capture as
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
// omd:installed-hook sha256=2bc5b9656c2e3891c68c9bb3213af770002727fd354273fbe4b3158c9dd92968
|
|
2
3
|
// Stop hook — at session end, run fold-in algorithm on .omd/preferences.md.
|
|
3
4
|
// If proposals exceed threshold, append a note to .omd/timeline.md AND write
|
|
4
5
|
// .omd/foldin-proposal.json so the next SessionStart hook instructs the agent
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
// omd:installed-hook sha256=e5c62304db69247f7deb2237b9b4c559b65e56c0b9d2a9f095f41fa6598d4f4c
|
|
2
3
|
// SessionStart hook — load .omd/state.md (and a recent timeline tail) into the
|
|
3
4
|
// session as additionalContext. If state.md is missing or stale, recompute
|
|
4
5
|
// best-effort from preferences.md + timeline.md.
|
package/.claude/settings.json
CHANGED
|
@@ -24,6 +24,16 @@
|
|
|
24
24
|
"timeout": 3000
|
|
25
25
|
}
|
|
26
26
|
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"matcher": "startup|resume|clear|compact",
|
|
30
|
+
"hooks": [
|
|
31
|
+
{
|
|
32
|
+
"type": "command",
|
|
33
|
+
"command": "bash ${CLAUDE_PROJECT_DIR}/scripts/context_restore.sh",
|
|
34
|
+
"timeout": 5000
|
|
35
|
+
}
|
|
36
|
+
]
|
|
27
37
|
}
|
|
28
38
|
],
|
|
29
39
|
"PostToolUse": [
|
|
@@ -52,4 +62,3 @@
|
|
|
52
62
|
]
|
|
53
63
|
}
|
|
54
64
|
}
|
|
55
|
-
|
|
Binary file
|
package/AGENTS.md
CHANGED
|
@@ -94,8 +94,22 @@ For ad-hoc UI work (component changes, microcopy edits, color tweaks) not runnin
|
|
|
94
94
|
|
|
95
95
|
This mirrors the `omd:apply` Claude Code skill behavior.
|
|
96
96
|
|
|
97
|
+
## Product surface ownership (mandatory)
|
|
98
|
+
|
|
99
|
+
- The user-facing creation funnel is Home `시작하기` → **`/builder`**.
|
|
100
|
+
- In product discussions, “preview”, “미리보기”, “사용자가 보는 화면”, and “시작하기 이후” mean the builder preview unless the user explicitly names another route.
|
|
101
|
+
- `/reference/[id]` is the catalog/detail and reference-data diagnostic surface. Do not treat it as the primary user preview and do not validate a builder task only on this route.
|
|
102
|
+
- `ReferencePreview` is currently a shared renderer used by both consumers. Shared-renderer changes are allowed, but every builder request must be entered and acceptance-tested through `/builder`; route ownership is determined by the consumer journey, not the component filename.
|
|
103
|
+
- Before finishing builder UI work, verify Home → `/builder` → brand selection → preview, including user overrides when relevant.
|
|
104
|
+
|
|
97
105
|
## Hard rules (apply across channels)
|
|
98
106
|
|
|
107
|
+
- **Unknown means absent — at the smallest unresolved field/group boundary.** oh-my-design is a reference delivery product, not a fallback generator. Never promote a plausible substitute, heuristic parse, generic component, system font, or adjacent corporate/marketing surface as a brand/product fact. Omit only the unresolved field, item, or wholly empty group in `/builder` and `/reference/[id]`; preserve every other verified value, metric, description, and section from the canonical reference.
|
|
108
|
+
- Never enforce absence by deleting or replacing the canonical reference body, collapsing a useful reference into a status document, or adding `Partial`/warning chrome in place of its content. A missing font family removes that family/specimen, not verified typography metrics, spacing, colors, components, or explanations.
|
|
109
|
+
- **Reference depth is part of correctness.** §1 must explain the company/product, distinctive brand expression, and current evolution using first-party history/rebrand/culture evidence; it must not read like an audit-scope disclaimer. §3 must distinguish official product-use, live surface-use, official distributed font assets, declared-only faces, and unresolved claims. A browser-unloadable but officially confirmed product font keeps its metadata and loses only the live specimen.
|
|
110
|
+
- Narrative evidence and UI-token evidence are related but not identical. An official font's history, visual character, or license can belong in the reference without being promoted to `tokens.typography.family.ui`. Do not delete useful brand context merely because it is not a machine token.
|
|
111
|
+
- Public marketing, corporate, font-catalog, and product/app surfaces are separate evidence domains. Observation on one domain cannot populate another domain's reference tokens without explicit evidence linking them.
|
|
112
|
+
- Runtime font availability does not authorize substitution. A known but non-loadable font may be labeled unavailable; do not render Inter/system-ui as though it were that font.
|
|
99
113
|
- Never fabricate DESIGN.md §11-13 (Brand Narrative / Principles / Personas) facts. Use `[FILL IN]` placeholders if user-provided facts are absent.
|
|
100
114
|
- Never introduce a token absent from DESIGN.md without going through Phase 5 (system extension with checkpoint #2 approval).
|
|
101
115
|
- Never download from Pinterest. Pinterest URLs are listed for the user to download manually.
|
|
@@ -103,10 +117,15 @@ This mirrors the `omd:apply` Claude Code skill behavior.
|
|
|
103
117
|
- Never auto-skip user checkpoints.
|
|
104
118
|
- Never delete a run directory. They are permanent learning artifacts.
|
|
105
119
|
|
|
120
|
+
## 세션 연속성 프로토콜
|
|
121
|
+
- 시작: `scripts/context_restore.sh` 실행(또는 docs/CURRENT_STATE.md 읽기) → 막힘/대기부터 처리.
|
|
122
|
+
- 체크포인트: 작업 단위 완료·결정 확정마다 CURRENT_STATE.md를 먼저 갱신하고 나서 보고한다.
|
|
123
|
+
- 종료: JOURNAL.md 맨 위에 항목 추가(한 일/열린 것/다음, 5줄 이내). 채팅에만 있는 맥락은 잃어버린 것으로 간주.
|
|
124
|
+
- 컨텍스트가 요약(compact)된 채 재개되면: 첫 행동으로 context_restore.sh를 실행해 복원한다.
|
|
125
|
+
|
|
106
126
|
## Pre-existing OmD shims (managed by `omd sync`)
|
|
107
127
|
|
|
108
128
|
Below this line, `omd sync` may add a managed block with shim content for Claude Code / Cursor compat. Do not edit between the markers.
|
|
109
129
|
|
|
110
130
|
<!-- omd:start version=1 -->
|
|
111
131
|
<!-- omd:end -->
|
|
112
|
-
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
User-facing changes to `oh-my-design-cli` and the bundled skill / agent files.
|
|
4
|
+
|
|
5
|
+
After any release: run `npx oh-my-design-cli@latest`, keep the detected channels selected, then verify with `npx oh-my-design-cli@latest doctor`. Managed files refresh automatically; user-authored files outside OmD ownership are preserved. See `Upgrading` in `README.md`.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1.9.0 — 2026-07-17
|
|
10
|
+
|
|
11
|
+
**CLI re-onboarding: one guided entrypoint, an exact repair doctor, safer managed upgrades, and outcome-first documentation in five languages.**
|
|
12
|
+
|
|
13
|
+
- Bare `npx oh-my-design-cli@latest` now opens the guided installer. `doctor` checks the complete 18-skill product bundle, 16 specialist roles, channel-local catalog, hooks, fingerprint coverage, and `DESIGN.md`, then prints a repair command scoped only to the broken channels.
|
|
14
|
+
- Claude Code, Codex, and OpenCode receive channel-native skills, supported specialist roles, and a local catalog; Cursor receives its project rule shim plus the shared catalog. The installer and docs no longer imply identical host capabilities.
|
|
15
|
+
- Managed reference sync now records content hashes. It refreshes only unchanged installer-owned `DESIGN.md` files, preserves same-ID user edits and private references, and removes retired managed files without deleting user sidecars in their directories. Existing non-OmD hooks remain untouched. Reinstalling Codex also removes OmD-owned legacy `.codex/skills` entrypoints automatically while preserving private skills.
|
|
16
|
+
- `doctor` now validates exact Claude hook event/command mappings, distinguishes Cursor's shared catalog from a Claude installation, detects stale or locally modified hooks, and can execute a scoped `--repair-hooks` recovery. Unmarked OmD-reserved conflicts use an explicit `--force`; symlinked managed paths and unmanaged legacy Codex entries fail closed for manual review. Installer drift exits non-zero instead of reporting a false success.
|
|
17
|
+
- Generated Codex/OpenCode roles now carry the correct project/global offline-catalog root. OpenCode role bodies use native hyphenated skill ids, while Cursor's rule embeds a small evidence-safe DESIGN.md bootstrap/apply contract without pretending named skills or sub-agents were installed.
|
|
18
|
+
- The package now ships `docs/CLI_QUICKSTART.md`. The website adds 40 static CLI docs routes across English, Korean, Japanese, Simplified Chinese, and Traditional Chinese (Taiwan), including an outcome-first live-demo runbook, plus localized human and agent-readable `llms` guides.
|
|
19
|
+
- Tag publishing is gated by CLI lint/tests/counts plus web tests/typecheck/build, and tarball hygiene now fails closed when it cannot inspect the package.
|
|
20
|
+
- MCP is no longer part of the recommended runtime. Installation remains a local markdown/data copy with zero OmD AI API calls; the user’s existing coding-agent subscription remains the inference layer.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 1.8.8 — 2026-07-02
|
|
25
|
+
|
|
26
|
+
**44 new Korean company references added (catalog 356 → 400; KR refs 149 → 193) via the full 추천→선발→수집→검수 pipeline — every ref Tier-1 brand-owned proof-gated. Milestone: catalog hits 400.**
|
|
27
|
+
|
|
28
|
+
- Coverage: **AI 10** (asleep·scatterlab·friendliai·pozalabs·selectstar·squeezebits·corca·gaudiolab·maum-ai·sionic), **consumer-tech 6** (heydealer·barogo·frip·nrise·stayfolio·tabling), **fintech 6** (payhere·8percent·moin·peoplefund·quotabook·qraft), **healthcare 5** (fitpet·tellingme·drdiary·humanscape·medibloc), **ecommerce 4** (petfriends·idus·cjonstyle·dealicious), **marketing 4** (dable·beusable·igaworks·wisetracker), **education 3** (likelion·mildang·teamsparta), **design-tools 2** (protopie·sandoll), **automotive 2** (autopedia·42dot), **productivity 1** (typed), **saas 1** (jobplanet).
|
|
29
|
+
- Standouts carry named / official design systems or distinctive product UIs: likelion (Storybook DS), protopie (Studio XID), sandoll (type foundry), asleep / scatterlab (consumer AI apps).
|
|
30
|
+
- Recommend fanned 9 sector deep-research agents (64-item clean pool, deduped vs the full 356-id catalog); **an LLM-synthesis drift that silently re-introduced 12 catalog-existing ids + 1 same-company alias was caught at curation** and hard-re-deduped against on-disk `references/`. User excluded 6 母-brand sub-products (tosspayments/kakaopaysec/kakaowebtoon/brunch/kakaowork/watchapedia) + tistory. Build ran one CREATE subagent per brand in demand-driven waves of 5, stopping at 44 green.
|
|
31
|
+
- `urbanbase` dropped as **INFEASIBLE** (brand defunct — domain now a GoDaddy parking lander; agent correctly refused to fabricate). `peoplefund` captured through its 크플(Cple) rebrand redirect.
|
|
32
|
+
- All 44 pass `verify-reference` 27/27 + catalog-integrity (16 files / 638 tests). KR proof gate met for every ref (≥2 brand-owned Tier-1 sources + `## Proof` block). Tier 2 (getdesign / refero) empty for all 44, as `spec/regional-sources.yaml` anticipates.
|
|
33
|
+
- Audit: `data/reference-audits/2026-07-02-kr44.md` (13 High / 29 Medium / 2 Low). Counts propagated by `sync-catalog.mjs` (README, llms.txt, SEO layouts ×3, fingerprints ×3, design-md mirror).
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 1.8.7 — 2026-06-26
|
|
38
|
+
|
|
39
|
+
**30 new Korean company references added (catalog 326 → 356; KR refs 119 → 149) via the full 탐색→선발→수집→검수→배포 pipeline — every ref Tier-1 brand-owned proof-gated.**
|
|
40
|
+
|
|
41
|
+
- Coverage deliberately steered toward under-represented categories: **AI 7** (nota·rebellions·furiosaai·returnzero·makinarocks·supertone·neosapience), **marketing 4** (airbridge·buzzvil·datarize·bigin), **education 3** (goorm·elice·codeit), **SaaS 3** (saramin·lemonbase·shiftee), **ecommerce 3** (kyobobook·cafe24·queenit), **developer-tools 2** (hackle·solapi), **backend-devops 2** (lablup·moreh), **consumer-tech 2** (hwahae·weverse), **fintech 2** (portone·kcd), **automotive 1** (greencar), **healthcare 1** (vuno).
|
|
42
|
+
- Standouts carry named / official design systems: goorm (Vapor UI), 교보문고 (KDS), 화해 (HDS), cafe24 (Smart Design), lablup (Backend.AI WebUI).
|
|
43
|
+
- Discovery fanned 8 sector agents (101 raw → 89 unique, deduped vs the full 326-id catalog); two LLM-drift duplicates caught at curation (`wadiz`, `yeogi`==`yeogiotte`) and swapped for clean alternates. Build ran one CREATE subagent per brand in waves of 5 (Tier-1 live Playwright `getComputedStyle` over ≥2 brand-owned surfaces each).
|
|
44
|
+
- All 30 pass `verify-reference` 27/27 + catalog-integrity (16 files / 594 tests). KR proof gate met for every ref: ≥2 brand-owned Tier-1 sources + `## Proof` block (≥80 raw computed-style samples). Tier 2 (getdesign / refero) empty for all 30, as `spec/regional-sources.yaml` anticipates.
|
|
45
|
+
- Audit: `data/reference-audits/2026-06-26-kr30.md` (23 High / 7 Medium / 0 Low). Counts propagated by `sync-catalog.mjs` (README ×4, llms.txt, SEO layouts, fingerprints ×3, design-md mirror).
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 1.8.6 — 2026-06-23
|
|
50
|
+
|
|
51
|
+
**New skill `omd:feel` — quantifies the design / frontend industry's "gut-feel" into 113 provenance-graded, machine-checkable interface rules an AI can APPLY (inject motion / spacing / type / a11y defaults during UI work) and AUDIT (BLOCK / WARN / FYI). Inherits Jakub Krehel's `make-interfaces-feel-better` and extends it with Apple HIG / Material 3 / WCAG / design-system tokens + practitioner research.**
|
|
52
|
+
|
|
53
|
+
- 17 feel-dimensions, 113 rules. 85 are spec / design-system-token-backed (enforceable); the rest are labelled convention / opinion so folklore is never presented as spec. Core idea: **provenance tier → enforcement strength** (SPEC/DS = gate, CONV = default, OP/FOLK = suggestion). `DESIGN.md` tokens always win. Files: `skills/omd-feel/{SKILL.md, reference.md, provenance.md}` — auto-installs via `install-skills`. Skill bundle 17 → 18.
|
|
54
|
+
- Dogfooded on this site's home + docs: fixed a real `prefers-reduced-motion` a11y gap (framer-motion + `animate-ping` + smooth-scroll were ungated) via a global CSS net + `<MotionConfig reducedMotion="user">`, swept `transition: all` → named props on the landing / docs surfaces, and added `text-wrap: balance / pretty`. `tsc` + 553 tests green.
|
|
55
|
+
- Docs / README: reference count corrected 286 → 326 across localized READMEs + site metadata (catalog grew in 1.8.3–1.8.4; localized surfaces had drifted).
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 1.8.5 — 2026-06-23
|
|
60
|
+
|
|
61
|
+
**QA pass on the 2026-06-22 batch: 40 refs re-inspected vs live + benchmarked against the `designlang` deterministic extractor. 35/40 PASS, mean accuracy 98.3/100, 5 MINOR token-value fixes applied.**
|
|
62
|
+
|
|
63
|
+
- Two multi-agent workflows: per-ref live re-inspection + adversarial verify (QA), and our-tokens-vs-designlang-vs-reality comparison. Zero major errors, zero fabrications; brand primaries/fonts all held. `designlang` independently corroborated ~5.4/6 of our key tokens per ref.
|
|
64
|
+
- **5 confirmed MINOR corrections** (structural token values, not brand errors): **paypal** card shadow `0.1/4px/12px → 0.08/24px/48px` (live `layered-card`); **chunghwa** radius scale +20px (dominant modal/card default, ~46%); **hyundai** chatbot FAB box-shadow `rgba(0,0,0,0.15) 0 0 20px` added (CREATE sampled the wrapper, not the button); **snapchat** §6 "none across nav" softened — components flat but marketing nav wrapper carries one shadow; **octopusenergy** postcode input split into hero (white/Arial-600) vs tariffs (transparent/Chromatophore) surfaces. All 5 verify-reference green; 553 tests pass.
|
|
65
|
+
- Benchmark write-up: `data/reference-audits/2026-06-23-qa-designlang-benchmark.md`. Finding: our LLM pipeline is 39–0 (1 tie) more brand-accurate than `designlang` (which picks most-frequent color as "primary", ~35% brand-correct); recommendation = fold designlang in as a free deterministic Stage 0 (palette histograms + DTCG) feeding our brand-judgment pass.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 1.8.4 — 2026-06-22
|
|
70
|
+
|
|
71
|
+
**Catalog +30: TW·US·UK 메가브랜드 — 카탈로그가 296 → 326개로. 4개국 확장 라운드 2의 배치 2~4/4 (KR은 1.8.3). Phase 4 프로모는 이 라운드에서 생략.**
|
|
72
|
+
|
|
73
|
+
- **TW 10** (Taiwan-HQ 한정) — E.SUN Bank(玉山銀行) · Fubon(富邦) · iPASS MONEY(一卡通) · EasyWallet(悠遊付) · OPENPOINT(統一/7-11) · Bahamut(巴哈姆特) · iCook(愛料理) · Taiwan Mobile(台灣大哥大) · Chunghwa Telecom(中華電信) · 591(591房屋交易). 핀테크 ≤5 도메인 균형.
|
|
74
|
+
- **US 10** — PayPal · Zoom · Asana · Squarespace · Reddit(RPL) · Snapchat · DoorDash · Instacart · Databricks(brand portal) · HubSpot(Canvas). 4종은 공개 DS/brand 포털 보유로 토큰 grounding 최상.
|
|
75
|
+
- **UK 10** (registry enum=UK) — GOV.UK(Design System) · BBC(GEL) · Monzo · Starling · Deliveroo · Octopus Energy · ASOS · Skyscanner(Backpack) · Trainline · Farfetch. UK 보유 2 → 12개로. GOV.UK·BBC·Backpack 등 공개 DS 골드스탠다드 다수.
|
|
76
|
+
- 전 30종 verify-reference 게이트 그린(US/UK는 26, KR/TW 규칙 비적용) + token↔prose 정합. TW는 brand-owned Tier-1 ≥2 충족. 큐레이션은 HQ-국가 규칙으로 Shopify(CA)·Shopee(SG)·Atlassian(AU)·Depop(US-owned) 등 제외.
|
|
77
|
+
- getdesign.md/refero: KR/TW 0/20(empty 지속), US/UK는 7종 등재 — 영미권 공개 DS 가시성이 동아시아 대비 확연.
|
|
78
|
+
- 배치별 audit `data/reference-audits/2026-06-22-{tw,us,uk}10.md`.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 1.8.3 — 2026-06-22
|
|
83
|
+
|
|
84
|
+
**Catalog +10: KR 메가브랜드 — 카탈로그가 286 → 296개로. 4개국 확장 라운드 2의 배치 1/4 (KR→TW→US→UK).**
|
|
85
|
+
|
|
86
|
+
- **KR 10** — Samsung(삼성전자, One UI) · Hyundai(현대자동차) · Kia(기아) · Naver Pay(네이버페이) · KB Pay(KB페이) · Hana Bank(하나은행) · Shinhan Bank(신한은행) · SSG.COM(쓱닷컴) · KakaoPage(카카오페이지) · Liner(라이너). 실제 브랜드 인지도/사용량 상위 기준으로 큐레이션.
|
|
87
|
+
- 자동차 2종은 모노크롬·0px radius·무그림자(차량 사진이 깊이 담당), 금융 4종은 로그인 게이트 뒤 네이티브 앱 — 공개 웹/개발자 디자인가이드 표면에서 정직하게 토큰 추출(naverpay/kbpay는 Medium-High, in-app 상태는 UPDATE 대상).
|
|
88
|
+
- getdesign.md/refero는 KR 0/10(여전히 empty) — KR brand-owned Tier-1 소스 ≥2로 전 항목 충족. verify-reference 27/27 게이트 전원 그린, 523 테스트 통과.
|
|
89
|
+
- 배치 audit `data/reference-audits/2026-06-22-kr10.md`.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 1.8.2 — 2026-06-17
|
|
94
|
+
|
|
95
|
+
**Catalog +40: KR/US/TW/JP IT 확장 — 카탈로그가 246 → 286개로. 4개국 × 10개, 전 항목 Proof Gate + live-inspect.**
|
|
96
|
+
|
|
97
|
+
- **KR 10** — NHN(Kenya Hara 무채색 CI) · Wrtn(뤼튼) · TMAP모빌리티 · NCSOFT(→NC) · Spoqa(스포카, Spoqa Han Sans) · Stibee(스티비) · ZEPETO(제페토) · Shift Up(시프트업) · IICOMBINED(Gentle Monster·Tamburins·Nudake) · The Pinkfong Company.
|
|
98
|
+
- **US 10** — Twilio(Paste) · Workday(Canvas) · Cash App · Mailchimp · GitLab(Pajamas) · Plaid(Threads) · Headspace · Datadog · Twitch · Patreon. 공개 디자인시스템 헤비웨이트 다수.
|
|
99
|
+
- **TW 10** — Fourdesire(SPARKFUL) · Bito · Cubo Ai · MOZE · Vocus(方格子) · Portaly · Readmoo(讀墨) · XREX · MaiCoin/MAX · Heptabase(operating-base 기준 TW 분류).
|
|
100
|
+
- **JP 10** — Spindle(CyberAgent Ameba) · 디지털청 DADS(CC BY 4.0) · DMM Turtle · GMO Pepabo Inhouse · Gaudiy · SPEEDA(FALCON) · Cybozu(kintone DS) · Goodpatch · Nintendo · mikan. DS 강국답게 공식 디자인시스템 직접 추출.
|
|
101
|
+
- 전 항목 verify-reference 게이트 그린 + token↔prose 정합, KR/TW는 brand-owned Tier-1 소스 ≥2 충족. 후보는 4개국 어드버서리얼 검증(HQ 국가 + 디자인 가치)으로 큐레이션 — Typed(서비스 종료) · iCook/BlendVision(모회사 HQ 일본) · Disquiet/PopDaily(일반적 UI) 등 탈락.
|
|
102
|
+
- 배치별 audit `data/reference-audits/2026-06-17-{kr,us,tw,jp}10.md` + 큐레이션 문서 `research/2026-06-17_reference-candidates-kr-us-tw-jp.md`.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 1.8.1 — 2026-06-11
|
|
107
|
+
|
|
108
|
+
**Catalog +25: KR/JP/TW/US 배치 — 카탈로그가 221 → 246개로. 수집→검수→배포 파이프라인 스크립트화.**
|
|
109
|
+
|
|
110
|
+
- **KR 5** — 3o3(삼쩜삼) · Blind(블라인드) · MiriCanvas(미리캔버스) · Imweb(아임웹) · Modusign(모두싸인). 미리캔버스가 KR design-tools 공백을 채움.
|
|
111
|
+
- **JP 5** — Rakuten(ReX 토큰을 공개 npm tarball에서 직접 추출) · Wantedly(공식 Brand Guide PDF 기반) · ABEMA(다크 스트리밍 시스템) · STORES · Timee.
|
|
112
|
+
- **TW 5** — Accupass · FunNow · Firstory · Omnichat · Greenvines(綠藤生機).
|
|
113
|
+
- **US 5** — Google(Material 3) · Microsoft(Fluent 2) · Adobe(Spectrum 2) · Salesforce(SLDS 2 styling hooks) · Dropbox(brand.dropbox.com). 공식 DS 헤비웨이트 5종이 처음으로 카탈로그에 합류.
|
|
114
|
+
- 전 레퍼런스 Proof Gate(라이브 inspect raw sample ≥5) + token↔prose 정합 게이트 통과, KR/TW는 brand-owned Tier-1 소스 ≥2 충족.
|
|
115
|
+
- **KR 5 (2차)** — Ringle(링글) · POSTYPE(포스타입) · LaundryGo(런드리고) · Greeting(그리팅) · Danawa(다나와). 개선된 게이트 파이프라인으로 추가 — 5/5 첫 실행에 전 게이트 그린.
|
|
116
|
+
- **새 파이프라인 스크립트** — `web/scripts/verify-reference.mjs`(레퍼런스 단독 게이트: catalog-integrity per-ref 항목 + strict-YAML + 로고 liveness, registry 빌드 불필요) + `web/scripts/sync-catalog.mjs`(fingerprints ×3 / design-md mirror / 카운트 문자열 / llms.txt Examples / npm test 일괄). `omd:add-reference` 스킬에 batch 서브에이전트 프로토콜 명문화.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 1.8.0 — 2026-06-10
|
|
121
|
+
|
|
122
|
+
**The taste loop closes: your corrections become preferences, preferences become proposals, and one click folds them into DESIGN.md. Plus a taste dashboard and a scripted release bench.**
|
|
123
|
+
|
|
124
|
+
- **Auto-fold gate.** When a preference scope recurs past the threshold, `session-end-foldin` writes a structured proposal and your *next session opens by asking* — one selectable-option question ("이 취향, DESIGN.md에 반영할까요?"). Approve → `omd:learn` folds it; decline → snoozed until it recurs again. The old remember → wait → manually-run-learn dance is gone.
|
|
125
|
+
- **Ambient capture now persists — and sees more.** `post-edit-watch` no longer just warns: off-system drift is recorded to `.omd/preferences.md` as `confidence: inferred` (24h dedup, never while editing DESIGN.md/.omd). Detection grew from hex colors to radius and motion-duration — including Tailwind classes, kebab-case CSS, **camelCase JSX inline styles**, and `.html` outputs (what `omd:harness` actually emits).
|
|
126
|
+
- **`omd:taste` — see what the system thinks you like.** One command renders applied / pending (with recurrence counts and how far from the fold threshold) / snoozed / not-yet-known axes, with inline actions (fold now · forget · refine). Skill count: 16 → 17.
|
|
127
|
+
- **Reviewers feed the loop.** `omd:designer-review` and `omd:final-qa` now end recurring findings with a single opt-in question — "이 패턴, 취향으로 기록할까요?" — recording with `signal: review` on consent. Never auto-recorded, never auto-folded.
|
|
128
|
+
- **Scripted 2-bench release routine.** `scripts/bench/score-init.mjs` (first-60s) and the new `scripts/bench/score-taste.mjs` (capture → reflect → propose) score real headless runs deterministically; both at 10/10 on this release.
|
|
129
|
+
- Fixes & hygiene: `session-state-loader` output envelope corrected (its session-start context was silently dropped); catalog resolution order normalized across all 4 documents with a CI drift guard; installer channel mapping unified into one table (cursor dedup behavior preserved, tested); `omd:kr-writer` presets now self-contained for npx installs; dangling dev-only references cleaned; docs/JSON-LD FAQ generated from one source; release workflow actions bumped for Node 24 runners.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 1.7.2 — 2026-06-10
|
|
134
|
+
|
|
135
|
+
**First-run fixes for npx installs (skill triggering, local catalog, dead hooks), a first-class Cursor install channel, and a safer `omd:init`.**
|
|
136
|
+
|
|
137
|
+
- **Installed-skill marker moved below frontmatter.** The `<!-- omd:installed-skill -->` marker was written *above* the YAML frontmatter, which broke frontmatter parsing in some hosts and stopped skills from triggering on natural language. Managed files are rewritten with the marker after the frontmatter block; re-run `install-skills` to pick it up.
|
|
138
|
+
- **Reference catalog + ctx-prime install locally.** `install-skills` now copies the reference catalog and ctx-prime data into `.claude/data/`, so `omd:init` works on the very first run of an npx install — no more empty-catalog dead end. As a safety net, `omd:init` also falls back to the website's raw `.md` endpoints when the local catalog can't be resolved.
|
|
139
|
+
- **Cursor install channel.** `install-skills --agent cursor` (also offered in the channel multiselect, auto-detected when `.cursor/` exists) writes the `.cursor/rules/omd-design.mdc` shim — identical to the `omd:sync` template, body-hash marker included — plus the shared `.claude/data` catalog. No skills, hooks, or settings are written for Cursor.
|
|
140
|
+
- **Hooks revived on clean installs.** `post-edit-watch`, `foldin`, `state-loader`, and `skill-activation` shipped in states that left them dead on a fresh install; all four now register and fire correctly.
|
|
141
|
+
- **`omd:init` apply-mode confirmation.** Before writing, `omd:init` now distinguishes root bootstrap vs reference-only mode and asks before replacing an existing `DESIGN.md` — on Claude Code via the selectable-option (AskUserQuestion) UI.
|
|
142
|
+
- **Builder → agent prompt handoff.** The builder preview's install CTA composes your first prompt from the live config (reference, components, token overrides vs reference defaults, dark mode, style preferences) instead of a generic one-liner, so what you customized in the builder is what `omd:init` bootstraps.
|
|
143
|
+
|
|
144
|
+
> Site-only (no npm impact, deploys with the site): raw DESIGN.md twin endpoints at `/design-systems/<id>.md` (agents can fetch references over HTTP), 8 curated collection pages at `/collections/[slug]`, builder floating install CTA + neutral logo nameplates, GA4 install-funnel events (`install_copy` / `prompt_copy`), The Wall card-expand interaction removed (static tiles, hover kept), and a four-README restructure around the install→activate path.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 1.6.7 — 2026-06-05
|
|
149
|
+
|
|
150
|
+
**Codex / OpenCode skills now install to their real discovery paths — and `claude-design` runs on all three channels.**
|
|
151
|
+
|
|
152
|
+
- **Correct channel paths.** `install-skills` installed Codex skills to `.codex/skills/` and OpenCode skills to a flat `.opencode/agents/<name>.md`. Neither matches the agents' actual discovery rules, so those skills were effectively invisible. Now:
|
|
153
|
+
- **Codex → `.agents/skills/<name>/SKILL.md`** (official path per `developers.openai.com/codex/skills`).
|
|
154
|
+
- **OpenCode → `.opencode/skills/<name>/SKILL.md`** (folder skills per `opencode.ai/docs/skills`).
|
|
155
|
+
- Both are folder layouts, so multi-file skills install with their `scripts/` and `references/` intact.
|
|
156
|
+
- **`claude-design` is no longer Claude-Code-only.** Its primary backend is Playwright (a `node`-only, agent-agnostic Chrome driver), so it works from Codex and OpenCode too. `x-omd-channels` now lists all three. The `claude-in-chrome` path remains a Claude-Code-only fallback.
|
|
157
|
+
- **Note:** if you previously installed for Codex/OpenCode, the old `.codex/skills/` and `.opencode/agents/` files are now stale — re-run `install-skills` and delete the old copies. OpenCode also reads `~/.claude/skills/`, so a `--global` install already surfaces skills there.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 1.6.4–1.6.6 — 2026-06-05
|
|
162
|
+
|
|
163
|
+
**`install-skills` selection UX.**
|
|
164
|
+
|
|
165
|
+
- `--skills-only` now actually shows agents as skipped (was listing all 16 in the summary).
|
|
166
|
+
- Auto-resolved targets no longer blast all three ecosystems; they're narrowed to channels the selected skills support.
|
|
167
|
+
- Scope / skills / sub-agents / channels resolve independently — passing `--skills` no longer suppresses the "where do I install" (channel) and scope prompts.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## 1.6.3 — 2026-06-05
|
|
172
|
+
|
|
173
|
+
**Project / global install scope for `install-skills`.**
|
|
174
|
+
|
|
175
|
+
- **Install scope: project or global** — `install-skills` now asks where to install (or pass `--global`): **Project** (`./.claude/skills`, the default) or **Global** (`~/.claude/skills`, available in every project). Global writes skills + sub-agents (+ data) to the user-level dir and deliberately leaves your global hooks/`settings.json` untouched — ideal for using `claude-design` everywhere without per-project installs.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 1.6.2 — 2026-06-05
|
|
180
|
+
|
|
181
|
+
**New bundled skill `claude-design` (terminal → claude.ai/design), single-skill install via `--skills-only`, and channel-restricted skills.**
|
|
182
|
+
|
|
183
|
+
- **`claude-design` skill (Claude Code only)** — analyzes your codebase (stack, tokens, components, real UI copy, brand assets) and drives **claude.ai/design** end-to-end to generate a code-grounded design, returning a shareable link. If claude.ai/design interjects a "Quick questions" clarifying panel before generating, the skill detects it (it appears late, in a closed Questions tab, in varying layouts) and — by default — the agent reads the questions and picks the appropriate option per your codebase, with a "Decide for me" autonomous fallback for headless runs. Install standalone: `npx oh-my-design-cli install-skills --skills claude-design --agent claude-code --skills-only`.
|
|
184
|
+
- **`--skills-only` install flag** — install a single skill with no agents / hooks / omd onboarding (clean standalone install).
|
|
185
|
+
- **`x-omd-channels` skill frontmatter** — a skill can declare its compatible agent channels; incompatible targets are skipped (`claude-design` is claude-code-only — needs Chrome automation + `python3` + a global `playwright`).
|
|
186
|
+
- **Multi-file skills** — `install-skills` now copies a skill's full tree (`scripts/`, `references/`), not just `SKILL.md`.
|
|
187
|
+
|
|
188
|
+
> Site-only (no npm impact, deploys with the site): builder UX (registry-wide curation, scroll-to-top, mobile DESIGN.md toggle), landing mobile polish (Live Proof carousel, The Wall show-more, 2-col footer), and footer version sync to `package.json`.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 1.6.1 — 2026-06-02
|
|
193
|
+
|
|
194
|
+
**Catalog grows to 150 brands (+13), the bundled DESIGN.md mirror is fixed, and the reference pipeline gains deterministic proof/format gates.**
|
|
195
|
+
|
|
196
|
+
- **13 new references** through a new proof-gated pipeline — Sendbird (US), KR: velog · NHN Cloud · Hyundai Card · Melon · Bithumb, TW: Rayark · 91APP · Kdan · Hahow · Gogolook · KKBOX · Cake. Every spec value is live-DOM-inspected or pulled from an open-source token file; no fabricated values.
|
|
197
|
+
- **Fixed the bundled `design-md/` mirror** — 110 DESIGN.md files carried stale pre-migration frontmatter/bodies (one shipped a broken `## 1. Overview` header). Re-synced to the canonical references.
|
|
198
|
+
- **Backfilled Do's-and-Don'ts** for 21 references that previously rendered an empty Guidelines section.
|
|
199
|
+
- **New deterministic catalog gates** — proof block for verified refs, §4 placeholder-value lint, §7 guideline-marker advisory, §1 blank-line guard; plus `spec/regional-sources.yaml` for KR/TW source coverage.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 1.6.0 — 2026-05-28
|
|
204
|
+
|
|
205
|
+
**Conversational deepening — harness skill now reads your codebase before asking, then runs a single-batch picker interview matching the Ouroboros/donguri feel — zero external plugin dependencies.**
|
|
206
|
+
|
|
207
|
+
> **2026-05-29 post-release AEO addendum** (no version bump — npm bundle unchanged):
|
|
208
|
+
>
|
|
209
|
+
> Marketing/docs site (`oh-my-design.kr`) and LLM-facing content deepened so LLMs cite oh-my-design when asked about design.md / vibe coding / design systems for AI coding agents. CLI behavior unchanged; no `npm publish` needed.
|
|
210
|
+
>
|
|
211
|
+
> Added — LLM-facing content:
|
|
212
|
+
> - `web/public/llms-full.txt` — full concatenated context (README + entire CHANGELOG + primary SKILL.md files + omd-master agent + spec/omd-v0.1 + 100+ brand catalog one-liners). 173 KB / 2,653 lines. Pair with the curated TOC at `/llms.txt`. Generated by `scripts/gen-llms-full.cjs`; regenerated automatically on `web` dev / build / publish.
|
|
213
|
+
> - `web/public/llms.ko.txt` — Korean mirror of `llms.txt` for KR-first LLM queries with inline Korean mini-FAQ.
|
|
214
|
+
> - `scripts/gen-llms-full.cjs` — deterministic concatenation helper. Reads canonical sources, never invents content.
|
|
215
|
+
>
|
|
216
|
+
> Added — Next.js routes (5 new, 24 dynamic):
|
|
217
|
+
> - `/faq` — 18 Q&A in 4 sections; `FAQPage` JSON-LD with 18 Question/Answer entities.
|
|
218
|
+
> - `/what-is-design-md` — definitional page claiming the term; `DefinedTerm` + `Article` JSON-LD.
|
|
219
|
+
> - `/alternatives/[slug]` for `shadcn`, `v0`, `anima`, `locofy` — 7-row comparison + when-to-use; `Article` + 2× `SoftwareApplication` JSON-LD.
|
|
220
|
+
> - `/changelog` + `/changelog/[version]` — 24 SSG pages parsed from this file via `web/src/lib/changelog.ts`; per-version `Article` JSON-LD with `datePublished`.
|
|
221
|
+
>
|
|
222
|
+
> Changed — AEO hygiene:
|
|
223
|
+
> - `web/src/app/layout.tsx` — `softwareVersion` in schema.org now imports from `package.json` (was hardcoded `"1.5.0"`). Three v1.6 entries appended to `featureList`.
|
|
224
|
+
> - `web/public/llms.txt` — new section describing CTX-PRIME, Interview-lite, sub-agent auto-recovery, and the natural-language auto-trigger phrasings.
|
|
225
|
+
> - `web/src/app/sitemap.ts` — 7 new static routes + 24 dynamic changelog routes.
|
|
226
|
+
> - `web/package.json` — `dev`/`build` regenerate `llms-full.txt` first so the deployed copy never drifts from canonical sources.
|
|
227
|
+
|
|
228
|
+
Closes the gap where natural-language design requests ("그럴싸한 랜딩 만들어줘", "프로토타입이라도 구색 갖춰서") fell through `omd-harness` and landed in plain-coding mode. Five entry-side defects fixed in one release. Full RFC: `research/harness-design/20-harness-1.6-conversational-deepening.md`.
|
|
229
|
+
|
|
230
|
+
### Added
|
|
231
|
+
|
|
232
|
+
- **`scripts/ctx-prime.cjs`** — deterministic, sub-50ms codebase analyzer. Emits `<RUN_DIR>/ctx-prime.json` with stack detection, dominant brand color, font families, voice keywords, language, surface inventory, audience hypothesis (with confidence + evidence), and wow-moment candidates. Pure node, no deps.
|
|
233
|
+
- **`omd-harness` Step 2.5 — CTX-PRIME phase.** Runs `ctx-prime.cjs` before reference selection, surfaces analysis as the opening move ("이 레포 분석했어요 — Next.js + #0064FF 베이스 + 11개 surface"), and asks one `AskUserQuestion` picker for audience confirmation with confidence-ranked options + free-text "Other".
|
|
234
|
+
- **`omd-harness` Interview-lite** — a single batched `AskUserQuestion` covering `exit_scope` / `wow_moment` / `cta_primary` / `visual_grounding`. Options derived from `ctx-prime.json` (e.g., wow-moment options use detected `wow_moment_candidates`). Answers written to `<RUN_DIR>/handoff/.handoff.json` as `prefilled_slots`.
|
|
235
|
+
- **`omd-master` INTAKE — prefilled-slots fast path.** When `.handoff.json` has `prefilled_slots`, skip SLOT_GATE entirely and jump straight to PROPOSE_PLAN. Never re-asks `audience` / `wow_moment` that the harness already collected.
|
|
236
|
+
|
|
237
|
+
### Changed
|
|
238
|
+
|
|
239
|
+
- **`omd-harness` trigger description broadened** — now matches "랜딩페이지", "프로토타입", "그럴싸한", "구색", "first screen", "MVP UI", "landing", "prototype", etc. Generic natural-language requests now activate the harness reliably.
|
|
240
|
+
- **`omd-harness` Step 1 — subagent registration auto-recovery.** Was a hard gate that stopped on missing `omd-master`; now copies the agent file from `npm root -g`/local to `.claude/agents/` (or detected agent flavor) and continues. Restart-Claude-Code message demoted to last-resort fallback.
|
|
241
|
+
|
|
242
|
+
### Why
|
|
243
|
+
|
|
244
|
+
Real-session failure trace where a user requested a landing-page prototype, expected an Ouroboros-style multi-turn brainstorm, and got a single-shot DESIGN.md emit instead. Diagnosis traced five concrete entry-side defects in `skills/omd-harness/SKILL.md`. All five fixed without breaking the run-dir / handoff contract — legacy runs (without `prefilled_slots`) follow the unchanged path.
|
|
245
|
+
|
|
246
|
+
### Migration
|
|
247
|
+
|
|
248
|
+
`npx oh-my-design-cli@latest install-skills --all` picks up the new harness skill + master agent. No config changes required.
|
|
249
|
+
|
|
250
|
+
### Files added to bundle
|
|
251
|
+
|
|
252
|
+
- `scripts/ctx-prime.cjs` added to package `files:` array.
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## 1.5.0 — 2026-05-19
|
|
257
|
+
|
|
258
|
+
**v0.2 agent layer ships in the bundle. Blog feature removed. Release-hygiene routine added.**
|
|
259
|
+
|
|
260
|
+
Bundle is now **15 skills + 16 sub-agents** (was 9 + 11). Re-run `npx oh-my-design-cli@latest install-skills` to pick it up.
|
|
261
|
+
|
|
262
|
+
### Added — v0.2 agent layer (6 skills + 6 sub-agents)
|
|
263
|
+
|
|
264
|
+
A supervisor + specialist topology for multi-step authoring, all channel-aware (Claude Code / Codex / OpenCode):
|
|
265
|
+
|
|
266
|
+
- **omd-orchestrator** — supervisor. 5-stage workflow (write → review → revise → localize → critic → images → handoff), hard 2-round revision cap. Anthropic orchestrator-workers + LangGraph supervisor pattern.
|
|
267
|
+
- **omd-kr-writer** — Korean prose with **12 voice presets** (toss-tech-design default / karrot-neighborly / brunch-maker / naver-d2 / biz-report / academic / journalism / …). 9-field voice spec per preset in `data/research/2026-05-18-kr-style-presets.md`. Anti translation-ese.
|
|
268
|
+
- **omd-locale-adapter** — KR → EN/JP/ZH-TW **adaptation** (cultural reference swaps, JP honorific matching, ZH-TW traditional idioms). KR is the source of truth.
|
|
269
|
+
- **omd-designer-review** — visual + brand audit vs DESIGN.md (typo hierarchy, color budget, radius scale, component states, mobile). Severity BLOCK / WARN / FYI with line refs. Read-only advisory.
|
|
270
|
+
- **omd-final-qa** — read-only critic, **8-item publish rubric**, forbids "looks good" rubber-stamps, hard 2-round cap.
|
|
271
|
+
- **omd-codex-image** — channel-aware image materialization. One `<!-- omd:gen-image -->` spec, three downstream paths: **Codex native generation** / `omd-asset-curator` free-license fallback (Claude Code) / OpenCode user-queue. Idempotent, IP-safe (no logo/face synthesis).
|
|
272
|
+
|
|
273
|
+
### Added — release hygiene
|
|
274
|
+
|
|
275
|
+
- **omd-release-hygiene** skill + `scripts/check-release-hygiene.sh` + husky `pre-commit` gate. Blocks experiment byproducts (v1/v2 `.bak`, `_source-*`, contact sheets, logs, scratch dirs) from entering a commit. Codifies the docs-sync + npm-packaging checklist for new skills.
|
|
276
|
+
|
|
277
|
+
### Removed
|
|
278
|
+
|
|
279
|
+
- **`/blog` route and the blog feature** (was dev-only behind `NODE_ENV`). Routes, components, `@/lib/blog*`, and the blog views/likes KV endpoints removed. `omd-kr-writer` is kept — KR voice synthesis is useful beyond the blog.
|
|
280
|
+
- **kr-spellcheck** — a deterministic Korean-orthography linter was prototyped and dropped. A 25-pattern regex heuristic had too low recall (~50–67%) to be worth shipping. If you need automated KR spellcheck, wire an external service such as the 부산대 한국어 맞춤법 검사기. (`omd-final-qa` dropped its rubric item 9 accordingly.)
|
|
281
|
+
|
|
282
|
+
### Changed
|
|
283
|
+
|
|
284
|
+
- **`install-skills` TUI** — interactive multiselect order is now **skill → sub-agent → channel**. Agent channels default to none-selected (you pick); "detected" hints read real `.claude/`/`.codex/`/`.opencode/` presence instead of the all-3 fallback. Added `enter = 확인` hints.
|
|
285
|
+
- `experiments/` is now gitignored (local scratch, like `.promo/` and `.experiments/`).
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## 1.4.0 — 2026-05-15
|
|
290
|
+
|
|
291
|
+
**Architectural refactor — single-source registry replaces 5 hand-maintained maps.**
|
|
292
|
+
|
|
293
|
+
Three consecutive KR-10 batches (78→88, 88→98, 98→108) lost data because the sub-agent missed one of 5 hand-maintained data maps (`route.ts`, `logos.ts`, `tokens.ts`, `homepage-urls.ts`, `design-systems.ts`). `homepage-urls.ts` was missed in 2 batches in a row, requiring a 20-brand backfill. Prose checklists in `omd-add-reference` Phase 5 failed to enforce parity.
|
|
294
|
+
|
|
295
|
+
Option C — single source of truth + machine gate:
|
|
296
|
+
|
|
297
|
+
- **Canonical YAML frontmatter** in every `references/<id>/DESIGN.md` carries `id`, `name`, `country` (ISO), `category` (slug), `homepage`, `primary_color`, `logo.{type,slug}`, `verified`, and optional `display_name_kr` + `ds` block. All 108 existing references migrated via `web/scripts/migrate-frontmatters.mjs` (preserves any existing fm; merges from the 5 source maps; emits canonical block).
|
|
298
|
+
- **Typed registry** at `web/src/data/registry.generated.ts` (autogenerated, ~41 KB, 108 entries, sorted by id for stable diff). Built by `web/scripts/build-registry.mjs`, which validates the schema and fails fast pointing at the offending file. Auto-runs on `npm run dev` and `npm run build`.
|
|
299
|
+
- **5 consumers refactored** to derive everything from `REGISTRY` / `REGISTRY_BY_ID`. `route.ts`, `logos.ts`, `tokens.ts` (`BRAND_COLORS`), `design-systems.ts` (`getDesignSystem` / `getAllDesignSystems`). `web/src/lib/homepage-urls.ts` **deleted** — `getHomepageUrl` now lives in `registry.generated.ts`. `preview-export-view.tsx` import updated.
|
|
300
|
+
- **Catalog-integrity vitest** at `web/__tests__/catalog-integrity.test.ts`: 108 parametrized per-id assertions (schema, §1 canonical header, prose-first paragraph, fingerprint cross-check, design-md mirror) plus 5 cross-cutting invariants (registry sort, triple-fingerprint byte identity, mirror coverage, llms.txt advisory check). 328 tests, all green.
|
|
301
|
+
- **Husky pre-commit hook** at `.husky/pre-commit` runs `build-registry + catalog-integrity` only when data-plane paths change (`references/`, `data/reference-fingerprints.json`, mirror copies, `registry.generated.ts`, scripts, the test itself). Other commits stay fast. Hook wired via `core.hooksPath = .husky`.
|
|
302
|
+
- **Skill thin-out:**
|
|
303
|
+
- `.claude/skills/omd-add-reference/SKILL.md` Phase 5: 80 lines → 32 lines. Prose checklist replaced with the canonical frontmatter schema + a single `npm run build-registry && npm test` gate. Sub-agent self-verification step required.
|
|
304
|
+
- `.claude/skills/omd-batch-launch/SKILL.md` Phase 3: 58 lines → 22 lines. Same pattern.
|
|
305
|
+
- **Build verified** — `cd web && npm run build` passes type-check and prerenders all 247 routes (incl. all 108 `/design-systems/<id>` pages). No regression in API, builder, playground, or browse modal — every surface reads the same registry.
|
|
306
|
+
|
|
307
|
+
Migration is one-way and irreversible: any new reference must follow the canonical frontmatter schema. The vitest gate (and husky) will refuse to merge a DESIGN.md missing a required field.
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## 1.3.11 — 2026-05-15
|
|
312
|
+
|
|
313
|
+
- **+10 KR references** (98 → 108): `toss-securities`, `oliveyoung`, `gmarket`, `tving`, `catchtable`, `upstage`, `chai`, `dabang`, `jumpit`, `fastcampus`. Each ships full DESIGN.md + `assets/_reference/{tokens,structure,fonts}.json` + `.live-inspect-proof.json` (≥ 5 raw_samples) with canonical §1 `Visual Theme & Atmosphere` (regression guard verified).
|
|
314
|
+
- Notable: **chai** flagged as service-terminated (2024 → PortOne Solutions rebrand) — kept as archaeological reference. **upstage** Tier-1 partial-positive (brand resource center exists, no token tables).
|
|
315
|
+
- **Dev-only NEW tag** — landing wall + design-systems catalog now surface a `NEW` badge on the latest batch (toss-securities/oliveyoung/gmarket/tving/catchtable/upstage/chai/dabang/jumpit/fastcampus) when `NODE_ENV=development`. Production rendering unaffected.
|
|
316
|
+
- Numbers cascade: READMEs × 4 + llms.txt + landing (hero/sections/the-wall/tokens) + SEO layouts (root/docs/builder/design-systems) + body copy (reference-preview/result-card). All `98` → `108`.
|
|
317
|
+
- API mappings: `route.ts` CATEGORIES/COUNTRIES/DISPLAY_NAMES + `logos.ts` LOGO_MAP/DOMAIN_OVERRIDES + BRAND_COLORS + design-md/ mirror sync. Fingerprints × 3 byte-identical at count=108.
|
|
318
|
+
- Audit log: `data/reference-audits/2026-05-15-kr10.md`.
|
|
319
|
+
|
|
320
|
+
## 1.3.10 — 2026-05-14
|
|
321
|
+
|
|
322
|
+
- **+10 KR references** (88 → 98): `kream`, `upbit`, `kbank`, `inflearn`, `wadiz`, `channeltalk`, `lunit`, `bunjang`, `flex`, `classum`. Each ships full DESIGN.md + `assets/_reference/{tokens,structure,fonts}.json` + `.live-inspect-proof.json` (≥ 5 raw_samples) per `omd:add-reference` skill.
|
|
323
|
+
- Tier-1 official DS finding: **Channel Talk publishes Bezier** (github.com/channel-io/bezier-react, MIT) — first canonical KR SaaS DS in the catalog.
|
|
324
|
+
- Numbers refreshed across surfaces: README badges + intro, README.ko.md, docs page, `web/public/llms.txt`, landing copy, root SEO metadata.
|
|
325
|
+
- `web/src/app/api/references/route.ts` + `web/src/lib/logos.ts` register the 10 new brands (categories / country / display name / logo / domain fallback).
|
|
326
|
+
- Audit log: `data/reference-audits/2026-05-14-kr10.md`.
|
|
327
|
+
|
|
328
|
+
## 1.3.9 — 2026-05-14
|
|
329
|
+
|
|
330
|
+
- Docs only. `README.md` and `README.ko.md` gain an **Upgrading** section. `CHANGELOG.md` (this file) extended to cover the 1.2.x → 1.3.x line.
|
|
331
|
+
- Docs page (`oh-my-design.kr/docs`) gains an Upgrading card.
|
|
332
|
+
- No skill, agent, hook, CLI, or data change.
|
|
333
|
+
|
|
334
|
+
## 1.3.8 — 2026-05-14
|
|
335
|
+
|
|
336
|
+
- **`omd:harness` rule 9** (new): hero archetype catalog with 7 variants — `left-character`, `center-text`, `carousel`, `split-screen`, `editorial-magazine`, `dashboard-preview`, `quote-led`. Brand-vibe → archetype matching table. Same brand re-run → 2nd-rank archetype, so visual variation is automatic.
|
|
337
|
+
- `experiment-meta.json` gains a `hero_archetype` field.
|
|
338
|
+
- Per-archetype grep gates documented (e.g. `center-text` mandates `position:absolute = 0` in the hero block; `dashboard-preview` mandates `<img> = 0` + mock ≥ 50% of viewport).
|
|
339
|
+
|
|
340
|
+
## 1.3.7 — 2026-05-14
|
|
341
|
+
|
|
342
|
+
- **`omd:harness` rule 5** rewritten — header logo is a wordmark in a display font, not a separate icon mark. Anti-pattern list: DiceBear `shapes`+wordmark pairs, DiceBear `initials` chips, hand-drawn inline-svg logos, and dashed-box `[YOUR LOGO]` placeholders are all forbidden.
|
|
343
|
+
- Brand-vibe → font + product-name matching table added (Bricolage Grotesque / Space Grotesk / DM Serif Display / Fraunces, all SIL OFL via Google Fonts).
|
|
344
|
+
- `omd:asset-fetch` §1 rewritten to match.
|
|
345
|
+
|
|
346
|
+
## 1.3.6 — 2026-05-13
|
|
347
|
+
|
|
348
|
+
- **New skill `omd:experiment-gallery`** — builds a single `index.html` that previews every brand experiment under a folder as iframe-scaled cards with archetype badges, wow ratings, multi-turn deltas, and per-brand IP audit. Reusable across batches.
|
|
349
|
+
- **`omd:reference-capture` Phase 3.9** (new): browser-harness fast-path auto-detect. When the user has `browser-harness` (https://github.com/browser-use/browser-harness) installed and Chrome with `--remote-debugging-port=9222`, the skill drives live computed-style capture via CDP — measured 3-5× faster than playwright MCP. Falls back to playwright MCP otherwise.
|
|
350
|
+
- **`omd:harness` rule 10** (new): IntersectionObserver reveal safety net mandatory. `@keyframes failsafeReveal` + `html.js-ready` gate + reduced-motion guard. Stops the recurring "fullpage screenshot has blank sections below the fold" regression.
|
|
351
|
+
|
|
352
|
+
## 1.3.5 — 2026-05-13
|
|
353
|
+
|
|
354
|
+
- **New skill `omd:asset-fetch`** — free-license asset catalog with verified-200 CDN URLs. DiceBear (CC0 avatars: notionists / lorelei / personas / adventurer / fun-emoji), Lucide (ISC icons), Heroicons (MIT), Tabler (MIT), Picsum (CC0 photos with deterministic seeds), Loremflickr (Flickr-CC photos with deterministic locks), and SIL OFL display fonts (Bricolage Grotesque, Space Grotesk, DM Serif Display, Fraunces, Pretendard, Wanted Sans, Noto Sans KR).
|
|
355
|
+
- **`omd:harness` rule 6** tightened — generator must read from `omd:asset-fetch`. Handcraft inline-svg characters / icons / logos forbidden. CDN call fails → fall back to a brand-color CSS gradient placeholder. Provenance comment `<!-- omd-asset: source=<url>, license=<license>, fetched=<ISO> -->` mandatory on any saved asset file (e.g. `assets/illustrations/hero-character.svg`).
|
|
356
|
+
|
|
357
|
+
## 1.3.4 — 2026-05-13
|
|
358
|
+
|
|
359
|
+
- **`omd:harness` rule 7**: single shared `.container-inner` class enforces consistent horizontal padding across `<header>`, `.hero`, sections, `<footer>`. Stops the "header offset 24px from hero" class of bugs on wide viewports.
|
|
360
|
+
- **`omd:harness` rule 8**: hero composition decomposed into separate elements (`.hero-character`, `.hero-chart`, `.hero-stat-card`, `.hero-ornament`). Single-SVG-with-everything forbidden — asset swap no longer destroys the scene.
|
|
361
|
+
- **`omd:reference-capture` Phase 4.0** (new): `.live-inspect-proof.json` mandatory with ≥ 5 raw samples from playwright `browser_evaluate`. If `tokens.json#live_overrides` ends up byte-equal to canonical, the block is deleted (drift-detection: live inspect didn't really run).
|
|
362
|
+
|
|
363
|
+
## 1.3.3 — 2026-05-13
|
|
364
|
+
|
|
365
|
+
- Wordmark-only logo pattern introduced in `omd:asset-fetch` §1 (rewritten further in 1.3.7).
|
|
366
|
+
- `omd:asset-fetch` becomes the single source of truth for which CDN URLs the generator may use.
|
|
367
|
+
|
|
368
|
+
## 1.3.2 — 2026-05-13
|
|
369
|
+
|
|
370
|
+
- Deferred experiment: a `clone` / `inspired` mode toggle that turned out to be the wrong split. Removed in 1.3.3 in favor of a single-mode flow.
|
|
371
|
+
|
|
372
|
+
## 1.3.1 — 2026-05-13
|
|
373
|
+
|
|
374
|
+
- Skill descriptions made count-agnostic. Replaced hard-coded `"67개 / 78개 / 88개 reference"` strings with `"실제 기업 reference"` so the description never drifts with the reference count. `omd:init` and `omd:harness` SKILL.md descriptions updated.
|
|
375
|
+
|
|
376
|
+
## 1.3.0 — 2026-05-13
|
|
377
|
+
|
|
378
|
+
- **New skill `omd:reference-capture`** — live brand-site CDP / playwright inspect. Writes `assets/_reference/<id>/` with `tokens.json`, `structure.json`, `fonts.json`, `screenshots/{hero-desktop,hero-mobile}.png`, `LICENSE-NOTE.md`, and `attribution.md`. The captured material is reference-only and never embedded in user product DOM.
|
|
379
|
+
- **`omd:init` CLI drift fix**: the skill body referenced `omd init recommend` and `omd init prepare` subcommands the CLI never actually exposed. Rewritten to use the bundled fingerprints + Bash directly. Skill is now self-contained.
|
|
380
|
+
|
|
381
|
+
## 1.2.0 — 2026-05-13
|
|
382
|
+
|
|
383
|
+
- 10 new Korean references (78 → 88 total). Fingerprints + DESIGN.md files now ship in the npm tarball: `socar`, `gangnamunni`, `kakaopay`, `zigzag`, `29cm`, `ably`, `banksalad`, `zigbang`, `wanted`, `remember`.
|
|
384
|
+
- Web `api/references/route.ts`, `lib/logos.ts`, `lib/homepage-urls.ts` mappings extended for the new IDs. `tokens.ts` `BRAND_COLORS` const extended.
|
|
385
|
+
|
|
386
|
+
## 1.1.0 — 78 references (+11 Korean cluster including KRDS)
|
|
387
|
+
|
|
388
|
+
The reference bundle expanded from 67 → 78 and the npm tarball now actually carries them.
|
|
389
|
+
|
|
390
|
+
### Added
|
|
391
|
+
|
|
392
|
+
- **11 new references** (Korean cluster): `yeogiotte` (여기어때) · `musinsa` · `kurly` (마켓컬리) · `ohouse` (오늘의집) · `naver` · `yanolja` (야놀자) · `coupang` · `kakaobank` · `ridi` · `qanda` · **`krds`** (Korea Republic Design System, 행정안전부 주관 — the first government DS in the bundle).
|
|
393
|
+
- Each new ref ships with a `.verification.md` alongside its `DESIGN.md` documenting Tier 1 live DOM measurements, Tier 2 cross-check status, conflict matrix, and cited philosophy sources.
|
|
394
|
+
- `data/reference-fingerprints.json` regenerated → **count 67 → 78**, all 11 new entries added.
|
|
395
|
+
- `data/reference-tags.md`: 11 new rows + Korean shortcut buckets (한국 이커머스 · 한국 여행 · 공공·행정·정부).
|
|
396
|
+
|
|
397
|
+
### Fixed
|
|
398
|
+
|
|
399
|
+
- **Tarball was missing references entirely.** `package.json` `files[]` pointed at `references/**/DESIGN.md` which is now a local-dev symlink — npm doesn't follow symlinks in the whitelist, so 1.0.x shipped 0 reference files. Updated to `web/references/*/DESIGN.md` (the canonical path); tarball now contains all 78 `DESIGN.md` files.
|
|
400
|
+
|
|
401
|
+
### Changed
|
|
402
|
+
|
|
403
|
+
- `omd-init` skill references the canonical `web/references/<id>/DESIGN.md` path inside the package.
|
|
404
|
+
- Apple-tier philosophy verification for all 67 pre-existing refs (Tier 1 live DOM + Tier 2 cross-check + `.verification.md` with conflict matrix). Skill behavior unchanged — this only deepens the source-of-truth.
|
|
405
|
+
|
|
406
|
+
## 1.0.2 — Onboarding banner correction
|
|
407
|
+
|
|
408
|
+
The `install-skills` "Next" panel still claimed *"Hook이 자동으로 라우팅 — 디자인 의도 감지해서 하네스/스킬 호출"* and described `/omd-harness` as *"hook 우회"*. That language described the 1.0.0 forced-eval hook which was retired in 1.0.1 — auto-routing now happens via Claude's standard description matching, and the hook only gates on DESIGN.md existence. The banner is the first thing users see after install, so it's worth getting right even for a single panel.
|
|
409
|
+
|
|
410
|
+
### Changed
|
|
411
|
+
|
|
412
|
+
- `install-skills` Next panel:
|
|
413
|
+
- "Hook이 자동으로 라우팅 — 디자인 의도 감지해서 하네스/스킬 호출" → "Claude가 description 매칭으로 자동 라우팅. Hook은 DESIGN.md 부재 시 omd:init 안내만."
|
|
414
|
+
- `/omd-harness <task>` description: "hook 우회, 즉시 진입" → "즉시 진입"
|
|
415
|
+
- inline comment: "자동 hook 라우팅" → "자동 라우팅"
|
|
416
|
+
|
|
417
|
+
## 1.0.1 — Trigger surface cleanup
|
|
418
|
+
|
|
419
|
+
Patch release focused on skill triggering — descriptions, hook behavior, and a stale dependency in the package manifest. No public API change.
|
|
420
|
+
|
|
421
|
+
### Changed
|
|
422
|
+
|
|
423
|
+
- Skill triggering uses the standard mechanism (SKILL.md `description`) as the single source of truth. Descriptions trimmed to ~230 chars on average (down from ~700) and rewritten in the canonical "what it does + use-when + chain hints" pattern that the rest of the Claude Code skill ecosystem uses. Modern models generalize from one phrase per language, so the keyword-inflated form was paying maintenance cost without measurable trigger gain.
|
|
424
|
+
- Skill descriptions now ship Japanese and Traditional Chinese trigger examples alongside Korean and English (`omd-apply`, `omd-init`, `omd-harness`, `omd-remember`, `omd-learn`, `omd-sync`, `omd-add-reference`). About half of OmD users work in JP / TW, so they previously fell back to weaker description-only matching with English/Korean phrases.
|
|
425
|
+
- `.claude/hooks/skill-activation.cjs` simplified from a keyword/regex forced-eval injector to a DESIGN.md existence gate. The "OMD SKILL ACTIVATION CHECK" block no longer appears on every UI prompt — the hook is silent unless DESIGN.md is missing and the prompt looks like UI work, in which case it surfaces a single one-line nudge to run `omd:init` first. The forced-eval layer was a custom belt-and-suspenders pattern from the 3.x model era; with 4.x description matching it became overlap and a second source of truth that drifted.
|
|
426
|
+
|
|
427
|
+
### Removed
|
|
428
|
+
|
|
429
|
+
- `.claude/skills/skill-rules.json` (dual source-of-truth for the forced-eval matcher).
|
|
430
|
+
- Dangling reference to that file in `package.json` `files[]`.
|
|
431
|
+
|
|
432
|
+
## 1.0.0 — Skill-first
|
|
433
|
+
|
|
434
|
+
Breaking release. The CLI surface collapsed from 9 user-facing commands down to 1 (`install-skills`). All operational logic moved to skill markdown + agent prose. See [MIGRATION.md](MIGRATION.md).
|
|
435
|
+
|
|
436
|
+
### Removed
|
|
437
|
+
|
|
438
|
+
- CLI commands: `generate`, `init recommend`, `init prepare`, `learn`, `remember`, `sync`, `context`, `harness`, `setup-blender`, `reference list/show`, `preview`.
|
|
439
|
+
- Public API exports (`src/index.ts`): `detectContext`, `extractUrl`, `renderPlan`, `applyOverrides`, `loadReference`, `appendEntry`, `writeAllShims`, all v4 modules. The package no longer ships a programmatic API; use the skill markdown directly.
|
|
440
|
+
- TypeScript modules (≈ 7000 lines): customizer, preview-generator, recommend, vocabulary, init-deprecate, apply-delta-stub, preferences, shims, sync-lock, sync-marker, run-archive, memory, code-introspect, context-detect, url-token-extractor, plan-emitter, signal-classifier, budget-tracker, visual-anchor, trace, and supporting utility / preset modules.
|
|
441
|
+
- Tests for removed surface (≈ 480 of 545 retired).
|
|
442
|
+
|
|
443
|
+
### Added
|
|
444
|
+
|
|
445
|
+
- `omd-asset-curator` agent: stack-aware asset medium selection. Detects framework (Next/Vue/Svelte/etc.), CSS framework, icon libs (lucide/heroicons), chart libs (recharts/chartjs/nivo/etc.), animation libs (framer-motion/lottie/rive). Recommends the best matching medium per asset (inline SVG / chart library / Lottie / Rive / Unsplash / 3D dispatch). Inline SVG recipes for liquid fills, progress indicators, simple icons, empty-state illustrations.
|
|
446
|
+
- `omd-apply` skill: explicit dispatch decision tree. Complex requests (assets, charts, screens, a11y, microcopy, persona) now route to specialized sub-agents instead of being handled inline.
|
|
447
|
+
- `scripts/context.cjs`: 80-line deterministic project scan helper invoked by master Phase A as a fast cache, optional but preserved for repeatability.
|
|
448
|
+
- `omd-3d-blender` agent: just-in-time install walkthrough (uv check → brew install / brew --cask blender → claude mcp add → addon prompt). No longer bundled into `install-skills`.
|
|
449
|
+
- `MIGRATION.md`, this `CHANGELOG.md`.
|
|
450
|
+
|
|
451
|
+
### Changed
|
|
452
|
+
|
|
453
|
+
- npm tarball ~60% smaller (no preview templates, no stale src/, no preset library).
|
|
454
|
+
- Dependencies: 9 → 3 (`@clack/prompts`, `commander`, `picocolors`).
|
|
455
|
+
- `package.json`: removed `main`, `types`, `exports` fields. Bin-only package.
|
|
456
|
+
- README rewritten around the single-command flow + agent natural-language pattern.
|
|
457
|
+
- Skill activation rules: `omd-apply` triggers tightened (39 → 23) so high-intent requests like "에셋 / 차트 / 아이콘" route to omd-asset-curator instead of being absorbed by omd-apply inline. Orphan `omd-add-reference` rule removed.
|
|
458
|
+
|
|
459
|
+
### Migration
|
|
460
|
+
|
|
461
|
+
```bash
|
|
462
|
+
cd my-project
|
|
463
|
+
npx oh-my-design-cli@latest install-skills
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
Then restart your agent (Cmd+Q + relaunch for Claude Code).
|
|
467
|
+
|
|
468
|
+
## 0.1.3 — 2026-04-29
|
|
469
|
+
|
|
470
|
+
- Drop unused dependencies (shadcn, tw-animate-css).
|
|
471
|
+
|
|
472
|
+
## 0.1.2 — 2026-04-29
|
|
473
|
+
|
|
474
|
+
- Trim 90% of npm tarball (drop research / preview / per-reference READMEs).
|
|
475
|
+
|
|
476
|
+
## 0.1.1 — 2026-04-29
|
|
477
|
+
|
|
478
|
+
- Five usability fixes from npm-publish verification.
|
|
479
|
+
|
|
480
|
+
## 0.1.0 — 2026-04-29
|
|
481
|
+
|
|
482
|
+
- First publish under the `oh-my-design-cli` npm name.
|