oh-my-design-cli 1.0.2 → 1.2.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/README.ja.md +7 -7
- package/README.ko.md +7 -7
- package/README.md +15 -18
- package/README.zh-TW.md +7 -7
- package/agents/omd-ux-writer.md +1 -1
- package/data/architecture-proposals/2026-05-13-thin-install-fresh-fetch.md +189 -0
- package/data/reference-audits/2026-05-13-kr10.md +132 -0
- package/data/reference-fingerprints.json +626 -3
- package/data/reference-tags.md +15 -1
- package/package.json +2 -2
- package/skills/omd-apply/SKILL.md +1 -1
- package/skills/omd-harness/SKILL.md +3 -3
- package/skills/omd-init/SKILL.md +2 -2
- package/web/AGENTS.md +5 -0
- package/web/references/29cm/DESIGN.md +445 -0
- package/web/references/ably/DESIGN.md +582 -0
- package/{references → web/references}/airbnb/DESIGN.md +158 -19
- package/web/references/airtable/DESIGN.md +241 -0
- package/{references → web/references}/apple/DESIGN.md +131 -76
- package/web/references/baemin/DESIGN.md +470 -0
- package/web/references/banksalad/DESIGN.md +606 -0
- package/{references → web/references}/bmw/DESIGN.md +138 -9
- package/{references → web/references}/cal/DESIGN.md +173 -17
- package/{references → web/references}/claude/DESIGN.md +11 -1
- package/{references → web/references}/clay/DESIGN.md +75 -0
- package/{references → web/references}/clickhouse/DESIGN.md +74 -0
- package/{references → web/references}/cohere/DESIGN.md +75 -0
- package/web/references/coinbase/DESIGN.md +205 -0
- package/{references → web/references}/composio/DESIGN.md +74 -0
- package/web/references/coupang/DESIGN.md +487 -0
- package/{references → web/references}/cursor/DESIGN.md +74 -0
- package/web/references/dcard/DESIGN.md +567 -0
- package/{references → web/references}/elevenlabs/DESIGN.md +91 -0
- package/{references → web/references}/expo/DESIGN.md +72 -0
- package/{references → web/references}/ferrari/DESIGN.md +72 -0
- package/{references → web/references}/figma/DESIGN.md +124 -48
- package/{references → web/references}/framer/DESIGN.md +143 -16
- package/web/references/freee/DESIGN.md +558 -0
- package/web/references/gangnamunni/DESIGN.md +605 -0
- package/{references → web/references}/hashicorp/DESIGN.md +72 -0
- package/{references → web/references}/ibm/DESIGN.md +68 -0
- package/{references → web/references}/intercom/DESIGN.md +73 -0
- package/web/references/kakao/DESIGN.md +490 -0
- package/web/references/kakaobank/DESIGN.md +533 -0
- package/web/references/kakaopay/DESIGN.md +529 -0
- package/web/references/karrot/DESIGN.md +431 -0
- package/web/references/kraken/DESIGN.md +219 -0
- package/web/references/krds/DESIGN.md +982 -0
- package/web/references/kurly/DESIGN.md +574 -0
- package/{references → web/references}/lamborghini/DESIGN.md +74 -0
- package/{references → web/references}/line/DESIGN.md +84 -43
- package/{references → web/references}/linear.app/DESIGN.md +8 -1
- package/{references → web/references}/lovable/DESIGN.md +73 -0
- package/web/references/mercari/DESIGN.md +464 -0
- package/{references → web/references}/minimax/DESIGN.md +72 -0
- package/{references → web/references}/mintlify/DESIGN.md +72 -0
- package/web/references/miro/DESIGN.md +252 -0
- package/{references → web/references}/mistral.ai/DESIGN.md +72 -0
- package/{references → web/references}/mongodb/DESIGN.md +72 -0
- package/web/references/musinsa/DESIGN.md +536 -0
- package/web/references/naver/DESIGN.md +518 -0
- package/{references → web/references}/notion/DESIGN.md +9 -1
- package/web/references/nvidia/DESIGN.md +491 -0
- package/web/references/ohouse/DESIGN.md +570 -0
- package/{references → web/references}/ollama/DESIGN.md +72 -0
- package/{references → web/references}/opencode.ai/DESIGN.md +73 -0
- package/web/references/pinkoi/DESIGN.md +575 -0
- package/{references → web/references}/pinterest/DESIGN.md +73 -0
- package/{references → web/references}/posthog/DESIGN.md +172 -18
- package/web/references/qanda/DESIGN.md +459 -0
- package/{references → web/references}/raycast/DESIGN.md +169 -34
- package/web/references/remember/DESIGN.md +445 -0
- package/{references → web/references}/renault/DESIGN.md +72 -0
- package/{references → web/references}/replicate/DESIGN.md +73 -0
- package/{references → web/references}/resend/DESIGN.md +73 -0
- package/{references → web/references}/revolut/DESIGN.md +74 -0
- package/web/references/ridi/DESIGN.md +517 -0
- package/{references → web/references}/runwayml/DESIGN.md +152 -24
- package/{references → web/references}/sanity/DESIGN.md +72 -0
- package/{references → web/references}/sentry/DESIGN.md +73 -0
- package/web/references/socar/DESIGN.md +370 -0
- package/web/references/spacex/DESIGN.md +379 -0
- package/web/references/spotify/DESIGN.md +426 -0
- package/{references → web/references}/stripe/DESIGN.md +44 -1
- package/{references → web/references}/supabase/DESIGN.md +73 -0
- package/{references → web/references}/superhuman/DESIGN.md +159 -17
- package/{references → web/references}/tesla/DESIGN.md +170 -0
- package/{references → web/references}/together.ai/DESIGN.md +73 -0
- package/{references → web/references}/toss/DESIGN.md +304 -50
- package/{references → web/references}/uber/DESIGN.md +73 -0
- package/{references → web/references}/vercel/DESIGN.md +9 -1
- package/{references → web/references}/voltagent/DESIGN.md +73 -0
- package/web/references/wanted/DESIGN.md +515 -0
- package/{references → web/references}/warp/DESIGN.md +142 -15
- package/web/references/webflow/DESIGN.md +253 -0
- package/{references → web/references}/wise/DESIGN.md +84 -0
- package/{references → web/references}/x.ai/DESIGN.md +85 -0
- package/web/references/yanolja/DESIGN.md +448 -0
- package/web/references/yeogiotte/DESIGN.md +424 -0
- package/{references → web/references}/zapier/DESIGN.md +85 -0
- package/web/references/zigbang/DESIGN.md +457 -0
- package/web/references/zigzag/DESIGN.md +618 -0
- package/references/airtable/DESIGN.md +0 -107
- package/references/baemin/DESIGN.md +0 -260
- package/references/coinbase/DESIGN.md +0 -129
- package/references/dcard/DESIGN.md +0 -302
- package/references/freee/DESIGN.md +0 -308
- package/references/kakao/DESIGN.md +0 -261
- package/references/karrot/DESIGN.md +0 -252
- package/references/kraken/DESIGN.md +0 -146
- package/references/mercari/DESIGN.md +0 -294
- package/references/miro/DESIGN.md +0 -108
- package/references/nvidia/DESIGN.md +0 -308
- package/references/pinkoi/DESIGN.md +0 -309
- package/references/spacex/DESIGN.md +0 -205
- package/references/spotify/DESIGN.md +0 -246
- package/references/webflow/DESIGN.md +0 -109
package/README.ja.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<h1 align="center">oh-my-design</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<strong>
|
|
8
|
+
<strong>88 社の実在する企業デザインシステムから DESIGN.md を生成。</strong>インタラクティブウィザード。AI 呼び出しゼロ。
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<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>
|
|
18
18
|
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square" alt="PRs Welcome" />
|
|
19
19
|
<img src="https://img.shields.io/badge/AI%20calls-zero-blue?style=flat-square" alt="Zero AI" />
|
|
20
|
-
<img src="https://img.shields.io/badge/references-
|
|
20
|
+
<img src="https://img.shields.io/badge/references-88-7c5cfc?style=flat-square" alt="88 References" />
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
23
|
<p align="center">
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
|
|
37
37
|
1. **[仕様](spec/omd-v0.1.md)** — バージョン管理された Google Stitch 拡張、MIT ライセンス。
|
|
38
38
|
2. **[Claude Code スキル](.claude/skills/omd/SKILL.md)** — 仕様をハード制約として自動適用。
|
|
39
|
-
3. **[
|
|
39
|
+
3. **[88 のリファレンス](references/)** — 実在企業の `DESIGN.md` をフォークし、ビルダーでカスタマイズしてそのまま導入。
|
|
40
40
|
|
|
41
41
|
**API キー不要。AI 呼び出しゼロ。全てクライアントサイドで完結。**
|
|
42
42
|
|
|
@@ -61,10 +61,10 @@ Toss · Claude · Line · Stripe · Linear · Vercel · Notion · Airbnb · Appl
|
|
|
61
61
|
## 主な機能
|
|
62
62
|
|
|
63
63
|
- **ビルダー** — リファレンスを選び、カラー / radius / ダークモードを調整し、コンポーネントを選択して Export。**Philosophy** フィルターで完全なブランド哲学を持つ 10 件に絞り込めます。
|
|
64
|
-
- **デザインシステムディレクトリ** ([oh-my-design.kr/design-systems](https://oh-my-design.kr/design-systems)) —
|
|
65
|
-
- **Personal Curation** ([oh-my-design.kr/curation](https://oh-my-design.kr/curation)) — MBTI 風の短いクイズであなたのデザイン傾向を
|
|
64
|
+
- **デザインシステムディレクトリ** ([oh-my-design.kr/design-systems](https://oh-my-design.kr/design-systems)) — 88 リファレンス中 34 件は公式のデザインシステムまたはブランドガイドラインページを持っており、ディレクトリからライブサムネイル付きで直接アクセスできます。
|
|
65
|
+
- **Personal Curation** ([oh-my-design.kr/curation](https://oh-my-design.kr/curation)) — MBTI 風の短いクイズであなたのデザイン傾向を 88 リファレンスのいずれかとマッチングし、そのリファレンスが事前選択されたビルダーへ直接移動します。
|
|
66
66
|
|
|
67
|
-
## サポートされる
|
|
67
|
+
## サポートされる 88 のリファレンス
|
|
68
68
|
|
|
69
69
|
| カテゴリ | 企業 |
|
|
70
70
|
|----------|------|
|
|
@@ -112,7 +112,7 @@ Toss · Claude · Line · Stripe · Linear · Vercel · Notion · Airbnb · Appl
|
|
|
112
112
|
oh-my-design/
|
|
113
113
|
spec/ OmD v0.1 仕様 (正本)
|
|
114
114
|
.claude/skills/omd/ Claude Code スキルバンドル
|
|
115
|
-
references/
|
|
115
|
+
references/ 88 社分の DESIGN.md ファイル
|
|
116
116
|
src/ CLI コア (TypeScript)
|
|
117
117
|
web/ Next.js ウェブビルダー
|
|
118
118
|
src/app/ Landing + Builder + Directory ページ
|
package/README.ko.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<h1 align="center">oh-my-design</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<strong>
|
|
8
|
+
<strong>88개 기업 디자인 시스템 기반 DESIGN.md 생성기.</strong> 인터랙티브 위자드. AI 호출 없음.
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<a href="https://www.npmjs.com/package/oh-my-design-cli"><img src="https://img.shields.io/npm/dm/oh-my-design-cli?style=flat-square&color=cb3837" alt="npm downloads" /></a>
|
|
18
18
|
<a href="LICENSE"><img src="https://img.shields.io/github/license/kwakseongjae/oh-my-design?style=flat-square" alt="License" /></a>
|
|
19
19
|
<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
|
-
<img src="https://img.shields.io/badge/references-
|
|
20
|
+
<img src="https://img.shields.io/badge/references-88-7c5cfc?style=flat-square" alt="88 References" />
|
|
21
21
|
<img src="https://img.shields.io/badge/AI%20calls-zero-blue?style=flat-square" alt="Zero AI" />
|
|
22
22
|
</p>
|
|
23
23
|
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
1. **[스펙](spec/omd-v0.1.md)** — 버전 관리되는 Google Stitch 확장, MIT 라이선스.
|
|
39
39
|
2. **[Claude Code 스킬](.claude/skills/omd/SKILL.md)** — 스펙을 하드 제약으로 자동 적용.
|
|
40
|
-
3. **[
|
|
40
|
+
3. **[88개 레퍼런스](references/)** — 실제 기업의 `DESIGN.md` 파일들을 포크하고, 빌더로 커스터마이징해 바로 씁니다.
|
|
41
41
|
|
|
42
42
|
**API 키 불필요. AI 호출 없음. 모두 클라이언트 사이드.**
|
|
43
43
|
|
|
@@ -162,10 +162,10 @@ Toss · Claude · Line · Stripe · Linear · Vercel · Notion · Airbnb · Appl
|
|
|
162
162
|
## 주요 구성
|
|
163
163
|
|
|
164
164
|
- **빌더** — 레퍼런스 선택 후 색상 / radius / 다크 모드를 조정하고, 컴포넌트를 고른 뒤 Export. **Philosophy** 필터로 완전한 브랜드 철학을 담은 10개만 볼 수 있어요.
|
|
165
|
-
- **디자인 시스템 디렉토리** ([oh-my-design.kr/design-systems](https://oh-my-design.kr/design-systems)) —
|
|
166
|
-
- **Personal Curation** ([oh-my-design.kr/curation](https://oh-my-design.kr/curation)) — MBTI 스타일의 짧은 퀴즈로 당신의 디자인 성향을
|
|
165
|
+
- **디자인 시스템 디렉토리** ([oh-my-design.kr/design-systems](https://oh-my-design.kr/design-systems)) — 88개 레퍼런스 중 34개는 공식 디자인 시스템 또는 브랜드 가이드라인 페이지가 있으며, 디렉토리에서 라이브 썸네일과 함께 바로 이동할 수 있습니다.
|
|
166
|
+
- **Personal Curation** ([oh-my-design.kr/curation](https://oh-my-design.kr/curation)) — MBTI 스타일의 짧은 퀴즈로 당신의 디자인 성향을 88개 레퍼런스 중 하나와 매칭해, 해당 레퍼런스가 미리 선택된 빌더로 바로 이동시켜 줍니다.
|
|
167
167
|
|
|
168
|
-
##
|
|
168
|
+
## 88개 지원 레퍼런스
|
|
169
169
|
|
|
170
170
|
| 카테고리 | 기업 |
|
|
171
171
|
|----------|------|
|
|
@@ -213,7 +213,7 @@ Toss · Claude · Line · Stripe · Linear · Vercel · Notion · Airbnb · Appl
|
|
|
213
213
|
oh-my-design/
|
|
214
214
|
spec/ OmD v0.1 스펙 (정본)
|
|
215
215
|
.claude/skills/omd/ Claude Code 스킬 번들
|
|
216
|
-
references/
|
|
216
|
+
references/ 88개 기업 DESIGN.md 파일
|
|
217
217
|
src/ CLI 코어 (TypeScript)
|
|
218
218
|
web/ Next.js 웹 빌더
|
|
219
219
|
src/app/ Landing + Builder + Directory 페이지
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<h1 align="center">oh-my-design</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<strong>One-command bootstrap for skill-driven design with your AI coding agent.</strong>
|
|
8
|
+
<strong>One-command bootstrap for skill-driven design with your AI coding agent.</strong> 88 real company design systems. Zero AI calls in the install. Then you just talk to your agent.
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
@@ -13,24 +13,23 @@
|
|
|
13
13
|
<a href="https://www.npmjs.com/package/oh-my-design-cli"><img src="https://img.shields.io/npm/dm/oh-my-design-cli?style=flat-square&color=cb3837" alt="npm downloads" /></a>
|
|
14
14
|
<a href="LICENSE"><img src="https://img.shields.io/github/license/kwakseongjae/oh-my-design?style=flat-square" alt="License" /></a>
|
|
15
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>
|
|
16
|
-
<img src="https://img.shields.io/badge/references-
|
|
16
|
+
<img src="https://img.shields.io/badge/references-88-7c5cfc?style=flat-square" alt="88 References" />
|
|
17
17
|
<img src="https://img.shields.io/badge/CLI%20commands-1-blue?style=flat-square" alt="One CLI command" />
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
## What is
|
|
22
|
+
## What is oh-my-design?
|
|
23
23
|
|
|
24
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.
|
|
25
25
|
|
|
26
|
-
`DESIGN.md` is the brand spec ([Google Stitch](https://stitch.withgoogle.com/docs/design-md/overview/) tokens + the
|
|
26
|
+
`DESIGN.md` is the brand spec ([Google Stitch](https://stitch.withgoogle.com/docs/design-md/overview/) tokens + the brand-philosophy layer: Voice / Narrative / Principles / Personas / States / Motion). 88 real-company DESIGN.md files ship in this package. Pick one, customize through conversation, ship.
|
|
27
27
|
|
|
28
28
|
**No API keys. No external infra. Everything runs inside your existing CLI session.**
|
|
29
29
|
|
|
30
30
|
## Install
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
cd my-project
|
|
34
33
|
npx oh-my-design-cli install-skills
|
|
35
34
|
```
|
|
36
35
|
|
|
@@ -38,12 +37,12 @@ Then restart your agent (Cmd+Q in Claude Code, then relaunch) so the new skills
|
|
|
38
37
|
|
|
39
38
|
That is the only CLI command you will run. Everything else is natural language to your agent.
|
|
40
39
|
|
|
41
|
-
## How
|
|
40
|
+
## How to use omd with your AI
|
|
42
41
|
|
|
43
42
|
Open Claude Code (or Codex / OpenCode) in your project. Just talk:
|
|
44
43
|
|
|
45
44
|
> "Set up the design system for a calm B2B fintech dashboard."
|
|
46
|
-
> Agent picks a reference from
|
|
45
|
+
> Agent picks a reference from 88 (likely Linear or Stripe), proposes a hybrid DESIGN.md, asks for confirmation, writes the file plus shims.
|
|
47
46
|
|
|
48
47
|
> "Make the empty-state for the search results page."
|
|
49
48
|
> 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.
|
|
@@ -60,7 +59,7 @@ Open Claude Code (or Codex / OpenCode) in your project. Just talk:
|
|
|
60
59
|
> "We never use uppercase CTAs."
|
|
61
60
|
> 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.
|
|
62
61
|
|
|
63
|
-
## What
|
|
62
|
+
## What's in the install
|
|
64
63
|
|
|
65
64
|
| Path | Owner | Purpose |
|
|
66
65
|
|---|---|---|
|
|
@@ -68,10 +67,10 @@ Open Claude Code (or Codex / OpenCode) in your project. Just talk:
|
|
|
68
67
|
| `.codex/skills/omd-*/SKILL.md` | install-skills | Codex skill bundle |
|
|
69
68
|
| `.opencode/agents/omd-*.md` | install-skills | OpenCode agent bundle |
|
|
70
69
|
| `.claude/agents/omd-*.md` | install-skills | 11 canonical sub-agents (master + 10 specialists) |
|
|
71
|
-
| `.claude/data/*` | install-skills |
|
|
70
|
+
| `.claude/data/*` | install-skills | 88-reference fingerprints, vocabulary, opt-out corpus |
|
|
72
71
|
| `.claude/hooks/*.cjs` | install-skills | UserPromptSubmit / SessionStart / PostToolUse hooks |
|
|
73
72
|
| `.claude/skills/skill-rules.json` | install-skills | Skill activation rules |
|
|
74
|
-
| `references/*/DESIGN.md` | bundled |
|
|
73
|
+
| `references/*/DESIGN.md` | bundled | 88 real design systems |
|
|
75
74
|
| `DESIGN.md` | your agent (after init flow) | Your project's authoritative brand spec |
|
|
76
75
|
| `CLAUDE.md` / `AGENTS.md` / `.cursor/rules/omd-design.mdc` | omd-sync skill | Pointers so every agent reads DESIGN.md |
|
|
77
76
|
| `.omd/preferences.md` | omd-remember skill | Append-only design correction log |
|
|
@@ -82,7 +81,7 @@ Open Claude Code (or Codex / OpenCode) in your project. Just talk:
|
|
|
82
81
|
Skills (loaded into your agent's context based on prompt triggers):
|
|
83
82
|
|
|
84
83
|
- **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.
|
|
84
|
+
- **omd:init** — Bootstrap DESIGN.md from a reference + project description. 88 references, hybrid variation that preserves the reference voice while shifting only user-named axes.
|
|
86
85
|
- **omd:harness** — `/omd-harness <task>` to run the 10-phase design pipeline with checkpoints. Spawns sub-agents in parallel.
|
|
87
86
|
- **omd:remember** — Captures user corrections to `.omd/preferences.md` automatically when the agent detects them.
|
|
88
87
|
- **omd:learn** — Folds pending corrections back into DESIGN.md by scope.
|
|
@@ -102,18 +101,16 @@ Sub-agents — 1 orchestrator + 10 specialists (invoked by the master or directl
|
|
|
102
101
|
- **omd-persona-tester** — Adversarial 4-persona walkthrough (V/J/F/S). sonnet.
|
|
103
102
|
- **omd-critic** — Root-cause analysis when the user iterates. opus.
|
|
104
103
|
|
|
105
|
-
## What
|
|
104
|
+
## What it is not
|
|
106
105
|
|
|
107
106
|
- It is not a collection of CLI commands. There is one bootstrap command. Everything else is skill prose.
|
|
108
|
-
- It is not an SDK.
|
|
107
|
+
- It is not an SDK. If you need the matching algorithm or shim format, look at the skill markdown directly.
|
|
109
108
|
- It does not generate emojis as icons. Asset agent prefers inline SVG (Lucide-matched or custom).
|
|
110
109
|
|
|
111
|
-
|
|
110
|
+
## Changelog
|
|
112
111
|
|
|
113
|
-
|
|
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.
|
|
112
|
+
See [CHANGELOG.md](CHANGELOG.md) for release history. Migrating from 0.1.x: see [MIGRATION.md](MIGRATION.md).
|
|
116
113
|
|
|
117
114
|
## License
|
|
118
115
|
|
|
119
|
-
MIT. References belong to their respective companies
|
|
116
|
+
MIT — see [LICENSE](LICENSE). References belong to their respective companies; reproduced for educational reference.
|
package/README.zh-TW.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<h1 align="center">oh-my-design</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<strong>從
|
|
8
|
+
<strong>從 88 家真實企業的設計系統生成 DESIGN.md。</strong>互動式精靈。零 AI 呼叫。
|
|
9
9
|
</p>
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<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>
|
|
18
18
|
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square" alt="PRs Welcome" />
|
|
19
19
|
<img src="https://img.shields.io/badge/AI%20calls-zero-blue?style=flat-square" alt="Zero AI" />
|
|
20
|
-
<img src="https://img.shields.io/badge/references-
|
|
20
|
+
<img src="https://img.shields.io/badge/references-88-7c5cfc?style=flat-square" alt="88 References" />
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
23
|
<p align="center">
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
|
|
37
37
|
1. **[規範](spec/omd-v0.1.md)** — 版本化的 Google Stitch 擴充,MIT 授權。
|
|
38
38
|
2. **[Claude Code skill](.claude/skills/omd/SKILL.md)** — 將規範作為硬性約束自動套用。
|
|
39
|
-
3. **[
|
|
39
|
+
3. **[88 個參考檔案](references/)** — 真實企業的 `DESIGN.md`,可以 fork、透過 builder 客製化後直接上線。
|
|
40
40
|
|
|
41
41
|
**無須 API 金鑰。零 AI 呼叫。全部在客戶端執行。**
|
|
42
42
|
|
|
@@ -61,10 +61,10 @@ Toss · Claude · Line · Stripe · Linear · Vercel · Notion · Airbnb · Appl
|
|
|
61
61
|
## 主要功能
|
|
62
62
|
|
|
63
63
|
- **Builder** — 選擇參考、調整色彩 / radius / 深色模式、挑選元件,然後按下 Export。透過 **Philosophy** 篩選可以只顯示具備完整品牌哲學的 10 個參考。
|
|
64
|
-
- **Design Systems 目錄** ([oh-my-design.kr/design-systems](https://oh-my-design.kr/design-systems)) —
|
|
65
|
-
- **Personal Curation** ([oh-my-design.kr/curation](https://oh-my-design.kr/curation)) — 透過 MBTI 風格的簡短測驗,將你的設計偏好對應到
|
|
64
|
+
- **Design Systems 目錄** ([oh-my-design.kr/design-systems](https://oh-my-design.kr/design-systems)) — 88 個參考中有 34 個擁有官方設計系統或品牌指南頁面,可從目錄配合即時縮圖直接前往。
|
|
65
|
+
- **Personal Curation** ([oh-my-design.kr/curation](https://oh-my-design.kr/curation)) — 透過 MBTI 風格的簡短測驗,將你的設計偏好對應到 88 個參考之一,並直接帶你進入已預選該參考的 Builder。
|
|
66
66
|
|
|
67
|
-
##
|
|
67
|
+
## 88 個支援的參考
|
|
68
68
|
|
|
69
69
|
| 類別 | 企業 |
|
|
70
70
|
|------|------|
|
|
@@ -112,7 +112,7 @@ Toss · Claude · Line · Stripe · Linear · Vercel · Notion · Airbnb · Appl
|
|
|
112
112
|
oh-my-design/
|
|
113
113
|
spec/ OmD v0.1 規範 (正本)
|
|
114
114
|
.claude/skills/omd/ Claude Code skill 包
|
|
115
|
-
references/
|
|
115
|
+
references/ 88 家企業的 DESIGN.md 檔案
|
|
116
116
|
src/ CLI 核心 (TypeScript)
|
|
117
117
|
web/ Next.js 網頁 builder
|
|
118
118
|
src/app/ Landing + Builder + Directory 頁面
|
package/agents/omd-ux-writer.md
CHANGED
|
@@ -53,7 +53,7 @@ target이 wireframe markdown이면 `## Section` heading으로 분리.
|
|
|
53
53
|
|
|
54
54
|
### 4. Specificity
|
|
55
55
|
- 광범위 단어 ("amazing", "powerful", "innovative") 카운트 — 3개 이상이면 fail
|
|
56
|
-
- 측정 가능한 claim ("under 2 seconds", "
|
|
56
|
+
- 측정 가능한 claim ("under 2 seconds", "실제 기업 references", "zero AI calls")가 있는가?
|
|
57
57
|
- 모호한 형용사를 구체 수치로 대체 가능?
|
|
58
58
|
|
|
59
59
|
### 5. Verb strength (특히 CTA)
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# Thin install + fresh fetch (WebFetch + MCP)
|
|
2
|
+
|
|
3
|
+
**Status**: proposed — not implemented
|
|
4
|
+
**Author context**: 2026-05-13 conversation, after KR-10 batch
|
|
5
|
+
**Motivation**: npm publish on every brand addition is high-friction and produces stale installs
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Problem statement
|
|
10
|
+
|
|
11
|
+
Current `oh-my-design-cli` package bundles 88 brand DESIGN.md files (~12MB) and ships them via npm.
|
|
12
|
+
|
|
13
|
+
**Pain points observed**:
|
|
14
|
+
1. Every batch (10 brands) requires `npm publish` to reach end users
|
|
15
|
+
2. Users installed at count N keep seeing N brands forever, even after we add more
|
|
16
|
+
3. Skill descriptions historically baked the count (`"67개 ..."`) — required re-edit per batch, easy to forget (we forgot in the 78 release; observed again at 88)
|
|
17
|
+
4. Bundle grows linearly; cold install time scales
|
|
18
|
+
5. Single brand typo fix = minor version bump + publish
|
|
19
|
+
|
|
20
|
+
**Decided 2026-05-13**: skill descriptions are now **count-agnostic** ("실제 기업 레퍼런스" without a number). Won't regress this kind of bug again. But the fundamental delivery model still needs reform.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Proposed architecture
|
|
25
|
+
|
|
26
|
+
Hybrid: **thin npm baseline + fresh fetch at runtime**.
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
npm package (thin, ~500KB)
|
|
30
|
+
├─ skills/ (routing logic, count-agnostic)
|
|
31
|
+
├─ data/reference-fingerprints.json (metadata only — id, category, primary, tone keywords)
|
|
32
|
+
├─ data/snapshot-date.txt ("baseline 2026-05-13")
|
|
33
|
+
├─ hooks/, agents/, bin/ (unchanged)
|
|
34
|
+
└─ (no DESIGN.md bundled — fetched at runtime)
|
|
35
|
+
|
|
36
|
+
Runtime (skill execution in user's agent)
|
|
37
|
+
1. Match brand via local fingerprints.json (offline-capable)
|
|
38
|
+
2. Fetch full DESIGN.md from:
|
|
39
|
+
- Primary: WebFetch https://oh-my-design.kr/api/references/<id>/design-md
|
|
40
|
+
- MCP path: omd_get_designmd(id) (if MCP server connected)
|
|
41
|
+
- Fallback: bundled (if shipped — optional Phase 3 decision)
|
|
42
|
+
3. Apply, write to project DESIGN.md
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Outcome**:
|
|
46
|
+
- New brand batch → `git push` web + git commit fingerprints; **no npm publish**
|
|
47
|
+
- Users see new brands on next skill call (no reinstall)
|
|
48
|
+
- npm publish frequency drops to "skill behavior changes" (<1/month)
|
|
49
|
+
- Marketing copy (READMEs) still updates count per batch — that's intentional
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Implementation phases
|
|
54
|
+
|
|
55
|
+
### Phase 1 — Backend HTTP endpoint (~1h)
|
|
56
|
+
|
|
57
|
+
`web/src/app/api/references/[id]/design-md/route.ts`:
|
|
58
|
+
```ts
|
|
59
|
+
import { readFileSync } from 'fs';
|
|
60
|
+
import { join } from 'path';
|
|
61
|
+
import { NextRequest, NextResponse } from 'next/server';
|
|
62
|
+
|
|
63
|
+
export async function GET(_req: NextRequest, { params }: { params: { id: string } }) {
|
|
64
|
+
try {
|
|
65
|
+
const md = readFileSync(join(process.cwd(), 'references', params.id, 'DESIGN.md'), 'utf-8');
|
|
66
|
+
return new NextResponse(md, {
|
|
67
|
+
headers: {
|
|
68
|
+
'Content-Type': 'text/markdown; charset=utf-8',
|
|
69
|
+
'Cache-Control': 'public, max-age=300, s-maxage=3600',
|
|
70
|
+
'Access-Control-Allow-Origin': '*',
|
|
71
|
+
'ETag': `"${md.length}-${md.slice(-32)}"`,
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
} catch {
|
|
75
|
+
return NextResponse.json({ error: 'not found' }, { status: 404 });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Smoke test: `curl https://oh-my-design.kr/api/references/kakaopay/design-md | head -20`
|
|
81
|
+
|
|
82
|
+
### Phase 2 — MCP server (~3h, parallel with Phase 1)
|
|
83
|
+
|
|
84
|
+
New package `oh-my-design-mcp` (separate npm package).
|
|
85
|
+
|
|
86
|
+
Tools exposed:
|
|
87
|
+
| Tool | Args | Returns |
|
|
88
|
+
|---|---|---|
|
|
89
|
+
| `omd_search_references` | `{ query, top_k? }` | top-N brand fingerprints (id, score, why) |
|
|
90
|
+
| `omd_get_designmd` | `{ id }` | full DESIGN.md markdown |
|
|
91
|
+
| `omd_list_categories` | — | category → ids map |
|
|
92
|
+
| `omd_get_snapshot_date` | — | "2026-05-13" (for staleness check) |
|
|
93
|
+
|
|
94
|
+
Resources exposed (MCP resources, browsable):
|
|
95
|
+
- `omd://references` — list all
|
|
96
|
+
- `omd://references/<id>` — single DESIGN.md
|
|
97
|
+
|
|
98
|
+
Server reads from same HTTP endpoint internally (single source of truth) OR direct disk if self-hosted.
|
|
99
|
+
|
|
100
|
+
Distribution: `npx -y oh-my-design-mcp` in MCP config:
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"mcpServers": {
|
|
104
|
+
"oh-my-design": { "command": "npx", "args": ["-y", "oh-my-design-mcp"] }
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Phase 3 — Skill updates (~1h)
|
|
110
|
+
|
|
111
|
+
`skills/omd-init/SKILL.md`, `skills/omd-harness/SKILL.md`:
|
|
112
|
+
|
|
113
|
+
```diff
|
|
114
|
+
- Phase 4: fetch reference DESIGN.md from .claude/data/references/<id>/DESIGN.md
|
|
115
|
+
+ Phase 4: fetch reference DESIGN.md (priority order):
|
|
116
|
+
+ a) If MCP `oh-my-design` connected: call omd_get_designmd(id)
|
|
117
|
+
+ b) Else WebFetch https://oh-my-design.kr/api/references/<id>/design-md
|
|
118
|
+
+ c) Else (offline): bundled .claude/data/references/<id>/DESIGN.md if present
|
|
119
|
+
+ d) Else: report "id not in catalog, network unavailable, no bundle"
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Skill must also surface the snapshot date to the user when fetching offline:
|
|
123
|
+
> "오프라인 모드 — 2026-05-13 기준 카탈로그 사용 중. 최신 brand 보려면 인터넷 연결 후 재시도."
|
|
124
|
+
|
|
125
|
+
### Phase 4 — Bundle diet (~30m, optional)
|
|
126
|
+
|
|
127
|
+
`package.json`:
|
|
128
|
+
```diff
|
|
129
|
+
"files": [
|
|
130
|
+
"dist",
|
|
131
|
+
"skills/*",
|
|
132
|
+
"agents",
|
|
133
|
+
"data",
|
|
134
|
+
- "web/references/*/DESIGN.md",
|
|
135
|
+
+ "data/snapshot-date.txt",
|
|
136
|
+
".claude/hooks/*.cjs",
|
|
137
|
+
".claude/settings.json"
|
|
138
|
+
]
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
`scripts/postinstall.cjs`: stop copying DESIGN.md files into `.claude/data/references/`. Skills will fetch.
|
|
142
|
+
|
|
143
|
+
**Trade-off**: completely offline-broken if API down. Mitigation: optional flag `--bundle-references` for users who want offline guarantee.
|
|
144
|
+
|
|
145
|
+
### Phase 5 — `omd:batch-launch` SKILL update (~15m)
|
|
146
|
+
|
|
147
|
+
Phase 3 SYNC:
|
|
148
|
+
- Remove `npm publish` from suggested follow-ups
|
|
149
|
+
- Add note: "After git push, brand reaches users automatically via API"
|
|
150
|
+
- Marketing surfaces (README count, llms.txt count) still need batch sync since they're static
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Migration plan
|
|
155
|
+
|
|
156
|
+
1. **Phase 1 first** (backend endpoint) — non-breaking, just adds capability
|
|
157
|
+
2. **Phase 2 in parallel** (MCP) — non-breaking, separate package
|
|
158
|
+
3. **Phase 3** (skill update) — backward-compat: tries MCP → WebFetch → bundle, so old installs still work
|
|
159
|
+
4. **Phase 4 last** (bundle diet) — only after Phase 3 has shipped for 1-2 weeks and we confirm fetch reliability
|
|
160
|
+
5. **Phase 5** (omd:batch-launch update) — final cleanup after migration is stable
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Open questions
|
|
165
|
+
|
|
166
|
+
- **Authentication**: keep API public read? (Yes — DESIGN.md files are intended for public consumption, that's the product.)
|
|
167
|
+
- **Rate limit**: needed? (Probably basic per-IP at edge — Vercel/Cloudflare. Not critical for v1.)
|
|
168
|
+
- **Versioning of DESIGN.md content**: should the API return a `?version=YYYY-MM-DD` parameter so installs can pin? (Defer — KISS for v1.)
|
|
169
|
+
- **Caching**: should the skill cache fetched DESIGN.md locally per session? (Yes — agent runtime should cache the parsed result for the session.)
|
|
170
|
+
- **What about agent that has no WebFetch tool?** (Edge case. Codex CLI has it. Cursor has it via tool config. If a user's agent really has neither WebFetch nor MCP, they install the `--bundle-references` flag at install time.)
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## When to do this
|
|
175
|
+
|
|
176
|
+
**Trigger**: next time the user mentions "10개 더" or any brand addition. Pause Phase 2 build, ship the architecture first, then resume.
|
|
177
|
+
|
|
178
|
+
**Or**: after 2 more batches (100, 110 brands), npm package bundle pain becomes hard to ignore — natural breakpoint.
|
|
179
|
+
|
|
180
|
+
**Not now**: this conversation closed with count-agnostic skill descriptions as the immediate fix. Architecture is tracked but not implemented yet.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Reading list / inspirations
|
|
185
|
+
|
|
186
|
+
- Linear's hosted catalog approach (linear.app/docs API)
|
|
187
|
+
- Tailwind v4 CDN-first delivery model
|
|
188
|
+
- shadcn/ui's "components are not a package, they're snippets you copy" — opposite direction but instructive
|
|
189
|
+
- MCP spec: `https://modelcontextprotocol.io/`
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Batch Audit — 2026-05-13 / KR-10
|
|
2
|
+
|
|
3
|
+
**Theme**: Korean IT companies with publicly observable design system signal
|
|
4
|
+
**Brands added**: 10 (78 → 88)
|
|
5
|
+
**Skill**: `omd:batch-launch` (Phase 2 build pipeline = `omd:add-reference` CREATE)
|
|
6
|
+
**Verification date**: 2026-05-13
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## How the 10 were researched (pipeline applied to each)
|
|
11
|
+
|
|
12
|
+
Every brand went through the standard `omd:add-reference` CREATE 3-tier pipeline. Each `omd-batch-launch` subagent was constrained to:
|
|
13
|
+
|
|
14
|
+
1. **Tier 1 — Live inspect (required)**: playwright MCP `getComputedStyle` on hero CTA / nav / footer / input / cards across **≥1 surface** of the brand's production site. Where possible, also `curl` of the production CSS bundle (more authoritative than runtime sampling because it exposes the entire token system).
|
|
15
|
+
2. **Tier 2 — Cross-check (both attempted)**: `getdesign.md/<id>` + `styles.refero.design/?q=<brand>` (also `?q=<한글명>`). Either source success = OK; both empty = explicitly logged in §4 footer.
|
|
16
|
+
3. **Tier 3 — Reconcile + write**: 9 product sections (Stripe schema) + §10-15 philosophy (Toss §10-15 shape) + `_research.md` source map + `_promo.json` highlight + verified footer.
|
|
17
|
+
|
|
18
|
+
Every brand also has:
|
|
19
|
+
- `web/references/<id>/DESIGN.md` (the spec, frontmatter `omd: 0.1`)
|
|
20
|
+
- `web/references/<id>/_research.md` (Tier-by-Tier source list + dates + confidence per section)
|
|
21
|
+
- `web/references/<id>/_promo.json` (id, Korean name, logo URL, single "most striking" highlight for promo video)
|
|
22
|
+
- §4 footer with `**Verified:** 2026-05-13` + Tier 1 sources + Tier 2 status + Conflicts unresolved
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Systemic finding
|
|
27
|
+
|
|
28
|
+
**Tier 2 directories (`getdesign.md`, `styles.refero.design`) have weak Korean coverage**. All 10 brands returned **empty** on both 3rd-party indexes. This is not a brand-quality issue — it's a directory-bias issue (both are English-tooling-oriented). Documented per-brand in §4 footers.
|
|
29
|
+
|
|
30
|
+
**But brand-published DS / design narrative resources DO exist for most of the 10** — they were just not in those 3rd-party indexes. 7/10 have public DS-related surfaces that were used in Tier 1 reconcile:
|
|
31
|
+
|
|
32
|
+
| brand | brand-published DS surface | type | live (2026-05-13) |
|
|
33
|
+
|---|---|---|---|
|
|
34
|
+
| socar | `design.socar.kr` | docs hub | ✅ 200 |
|
|
35
|
+
| wanted | `montage.wanted.co.kr` + `wanted.co.kr/brandcenter` | full DS | ✅ 200 |
|
|
36
|
+
| remember | `dramancompany.github.io/remember-ui` | Storybook | ✅ 200 |
|
|
37
|
+
| banksalad | `github.com/banksalad` (org + styleguide repos) | source | ✅ 200 |
|
|
38
|
+
| zigzag | `brunch.co.kr/@zigzag/73` + `devblog.kakaostyle.com` | brand articles (ZDS) | ✅ 200 |
|
|
39
|
+
| gangnamunni | `blog.gangnamunni.com/post/welchis/` | DS architecture post | ✅ 200 |
|
|
40
|
+
| kakaopay | `story.kakaopay.com` | brand / design narrative | ✅ 200 |
|
|
41
|
+
| 29cm | — | — | ❌ no public DS |
|
|
42
|
+
| ably | — | — | ❌ no public DS |
|
|
43
|
+
| zigbang | — | — | ❌ no public DS |
|
|
44
|
+
|
|
45
|
+
→ For future Korean batches, weight Tier 1 (live inspect + **brand-owned tech blogs / brunch / medium / GitHub orgs**) more heavily. Tier 2 (3rd-party directories) is documentation discovery, not validation.
|
|
46
|
+
|
|
47
|
+
→ The 7 brand-published DS URLs are also registered in `web/src/lib/design-systems.ts` so they surface as DS buttons in Browse modal and Builder Step 3 preview header. The 3 brands without a public DS correctly return null and the DS button stays hidden.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Per-brand audit
|
|
52
|
+
|
|
53
|
+
Confidence rubric:
|
|
54
|
+
- **High** — ≥2 Tier 1 surfaces OR production CSS bundle captured; no unresolved hex; ≥3 supporting brand-owned sources (blog/medium/brunch); §10-15 sourced
|
|
55
|
+
- **Medium** — 1 Tier 1 surface; some inferred values; brand-owned philosophy sources present
|
|
56
|
+
- **Low** — Tier 1 partially blocked; key tokens marked `(unverified live)` or `(illustrative)`; needs UPDATE pass
|
|
57
|
+
|
|
58
|
+
| # | id | confidence | Tier 1 depth | Tier 2 | Known gaps | Follow-up |
|
|
59
|
+
|---|----|------------|--------------|--------|------------|-----------|
|
|
60
|
+
| 1 | socar | **Medium** | 1 surface (home full); design.socar.kr partial (browser session contended) | empty (getdesign no record · refero no isolated set) | SOCAR Blue **exact hex unpublished** — brand-name-only reference. Brand fonts Sandoll Gothic Neo2 / Avenir (print) vs live Pretendard (web) — documented as intentional print-vs-web split. | UPDATE pass on `design.socar.kr` for canonical SOCAR Blue hex + Space Frame system tokens |
|
|
61
|
+
| 2 | gangnamunni | **High** | 3 (home live + production CSS bundle `d246c5b2edcb00b6.css` with full Cell token map + blog.gangnamunni.com Cell+Welchis architecture post) | empty | none material | — |
|
|
62
|
+
| 3 | kakaopay | **Medium** | 1 surface (home full live inspect); /payment/online second surface blocked by browser tab contention | empty (both verified empty) | none unresolved. KPDS = narrative-only on `story.kakaopay.com`, no public docs site. | UPDATE pass on /payment/online or /transfer for second surface verification |
|
|
63
|
+
| 4 | zigzag | **High** | 4 (home live + production CSS bundle 184KB with full ZDS canonical tokens via `--zds-color-*` vars + devblog.kakaostyle.com ZDS rearchitecture + brunch.co.kr/@zigzag/73 brand-owned) | empty | Two-pink architecture (`#fa6ee3` brand-anchor vs `#f55dd6` interactive primary) — documented as intentional role split | — |
|
|
64
|
+
| 5 | 29cm | **Medium** | 1 surface (home via isolated Playwright `browser_run_code_unsafe` workaround for session contention) | empty | PDP / checkout flows not inspected this pass | UPDATE pass on PDP + checkout (editorial product story modules) |
|
|
65
|
+
| 6 | ably | **Low** | 1 navigation only — live `evaluate` calls blocked by Playwright session contention; §4 token hexes flagged `(unverified live)` in footer | empty / inconclusive (refero JS-rendered, capture blocked) | §4 token values need live re-capture. Brand disambiguation note added (Ably Corp KR commerce ≠ ably.com realtime API). | **Priority**: full Phase U2 live inspect re-run on a clean Playwright session |
|
|
66
|
+
| 7 | banksalad | **High** | 5 (home live + 865KB production CSS bundle with `border-radius:2px` ×81 confirming system default + BPL tech blog + 2× GitHub orgs) | empty (both verified empty) | One nav exception documented (sign-in pill at 16px radius vs system 2px default) — already noted as exception, not conflict | — |
|
|
67
|
+
| 8 | zigbang | **Medium** | 2 (home full + /home/apt/map partial — map-overlay listing card tokens inferred due to second-pass contention) | empty | (a) **brand-orange exact hex unpublished** — `~#FF6600` flagged illustrative in §2 + footer; (b) map-overlay listing-card / price-chip tokens inferred | UPDATE pass on /home/apt/map for canonical orange hex + listing-card token verification |
|
|
68
|
+
| 9 | wanted | **High** | 8 sources (live DOM on `wdlist/518` 22 samples + brandcenter + Montage docs + wanted-sans GitHub + wanteddev org + wantedlab.com + WDS creation blog) | empty (refero blocked by session contention, getdesign verified empty) | none unresolved. `#14191E` (marketing) vs `#171719` (product) is documented two-surface split, not a conflict. | (optional) refero re-attempt on clean session |
|
|
69
|
+
| 10 | remember | **High** | 5 (career page primary live inspect + `dramancompany.github.io/remember-ui/` Storybook root + corp x2 + redirect) | empty (3rd-party empty + GitHub UI repo 404 — source private/deleted, Storybook deploy still live) | (a) filter-chip **selected/active** state not observed (only default captured); (b) error/warning semantic tokens inferred from KR fintech convention | UPDATE pass capturing filter chip selected/active + error/warning states |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Confidence distribution
|
|
74
|
+
|
|
75
|
+
- **High** (5): gangnamunni, banksalad, wanted, zigzag, remember
|
|
76
|
+
- **Medium** (3): socar, 29cm, kakaopay
|
|
77
|
+
- **Low** (1): ably
|
|
78
|
+
- *(zigbang was kept at Medium even though 2 surfaces inspected, because of 2 unresolved illustrative tokens — orange hex + map overlay)*
|
|
79
|
+
|
|
80
|
+
**Aggregate**: 5/10 are publishable as-is. 3/10 are publishable with marked uncertainty. **2/10 (ably + zigbang) warrant a follow-up UPDATE pass before being cited in external blog posts or comparisons.**
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Known shared limitation — Playwright session contention
|
|
85
|
+
|
|
86
|
+
The Phase 2 build ran 10 subagents in parallel, all sharing the host Playwright MCP browser. Several agents reported that `browser_evaluate` calls landed on *other agents' tabs* (kakaopay/zigzag/banksalad/29cm appear in multiple reports as "the tab that hijacked my session"). Mitigations applied per agent:
|
|
87
|
+
|
|
88
|
+
- Fall back to direct `curl` of the production CSS bundle (banksalad, gangnamunni, zigzag) — actually higher signal than runtime sampling for these
|
|
89
|
+
- Use `browser_run_code_unsafe` in isolated newPage context (29cm)
|
|
90
|
+
- Document and explicitly flag affected surfaces in `_research.md` (ably, kakaopay, zigbang)
|
|
91
|
+
|
|
92
|
+
**Process fix for next batch**: serialize Playwright sessions per brand (run 1-2 in parallel, not 10), OR isolate to `--user-data-dir` per agent if available. Cost: longer wall-clock. Benefit: no contention, clean §4 token values for every brand.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Promo highlight selection (auditable)
|
|
97
|
+
|
|
98
|
+
Each brand's `_promo.json` records a single "most striking" element — chosen by the build subagent and used in the promo MP4. Type distribution:
|
|
99
|
+
|
|
100
|
+
- **palette** (7): socar, gangnamunni, zigzag, ably, banksalad, zigbang, wanted
|
|
101
|
+
- **voice** (2): kakaopay, 29cm
|
|
102
|
+
- **cta** (1): remember
|
|
103
|
+
|
|
104
|
+
Justifications are written into each `_promo.json` (`label` field) and re-verified during Phase 4 composition build.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Follow-up TODO (prioritized)
|
|
109
|
+
|
|
110
|
+
1. **ably** — full Phase U2 live inspect re-run (clean session). §4 tokens currently `(unverified live)`.
|
|
111
|
+
2. **zigbang** — UPDATE pass on `/home/apt/map` for canonical orange hex + map-overlay tokens.
|
|
112
|
+
3. **socar** — UPDATE pass on `design.socar.kr` for canonical SOCAR Blue hex + Space Frame token system.
|
|
113
|
+
4. **remember** — UPDATE pass capturing filter-chip selected/active + error/warning semantic tokens.
|
|
114
|
+
5. **29cm** — UPDATE pass on PDP + checkout flows.
|
|
115
|
+
6. **kakaopay** — UPDATE pass on a transactional second surface (e.g., /transfer).
|
|
116
|
+
7. **reader UI**: long variant headings overlap preview area (observed on 29cm §5). Fix in `web/src/components/reference-preview.tsx` (or equivalent).
|
|
117
|
+
8. **Process**: serialize Playwright sessions per build agent for future batches.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Schema for this file (future batches use the same shape)
|
|
122
|
+
|
|
123
|
+
Required top-level sections (so they're greppable across batches in `data/reference-audits/`):
|
|
124
|
+
- `## How the 10 were researched`
|
|
125
|
+
- `## Systemic finding`
|
|
126
|
+
- `## Per-brand audit` (table with id, confidence, Tier 1 depth, Tier 2, Known gaps, Follow-up)
|
|
127
|
+
- `## Confidence distribution`
|
|
128
|
+
- `## Known shared limitation`
|
|
129
|
+
- `## Promo highlight selection`
|
|
130
|
+
- `## Follow-up TODO`
|
|
131
|
+
|
|
132
|
+
Filename: `data/reference-audits/<YYYY-MM-DD>-<batch-slug>.md`
|