oh-my-design-cli 1.7.0 → 1.7.1
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.ko.md +17 -36
- package/agents/AGENT.md +3 -3
- package/agents/omd-master.md +7 -7
- package/agents/omd-microcopy.md +1 -1
- package/agents/omd-ux-researcher.md +1 -1
- package/package.json +1 -1
package/README.ko.md
CHANGED
|
@@ -50,24 +50,15 @@
|
|
|
50
50
|
```bash
|
|
51
51
|
cd my-project
|
|
52
52
|
|
|
53
|
-
#
|
|
53
|
+
# 한 번만: 에이전트 스킬 + 에이전트 설치 (.claude/skills, .codex/skills, .opencode/agents)
|
|
54
54
|
npx oh-my-design-cli install-skills
|
|
55
|
+
```
|
|
55
56
|
|
|
56
|
-
|
|
57
|
-
# (Claude Code/Codex/OpenCode 안에서 omd:init 스킬이 이 단계를 주도)
|
|
58
|
-
npx oh-my-design-cli init recommend "warm approachable B2C marketplace"
|
|
59
|
-
npx oh-my-design-cli init prepare --ref airbnb --description "warm approachable B2C marketplace"
|
|
60
|
-
|
|
61
|
-
# 3. 4개 에이전트가 DESIGN.md를 읽도록 shim 파일 생성/갱신
|
|
62
|
-
npx oh-my-design-cli sync
|
|
57
|
+
설치가 끝나면 나머지는 전부 **에이전트에게 자연어로** 말하면 됩니다 — 별도의 CLI 서브커맨드가 아니라 스킬이 파일을 직접 Read/Write/Bash 하며 처리합니다.
|
|
63
58
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
# 5. 누적된 preference를 DESIGN.md에 일괄 반영
|
|
68
|
-
npx oh-my-design-cli learn # pending 보기
|
|
69
|
-
npx oh-my-design-cli learn --mark-applied <id> # 반영 완료 표시
|
|
70
|
-
```
|
|
59
|
+
- **DESIGN.md 부트스트랩 + 레퍼런스 추천**: Claude Code/Codex/OpenCode 안에서 `omd:init` 스킬에게 요청하세요. 예: "warm approachable B2C marketplace로 DESIGN.md 만들어줘" → 스킬이 레퍼런스를 추천하고 프로젝트 description을 모아 DESIGN.md를 작성합니다.
|
|
60
|
+
- **shim 파일 생성/갱신**: `omd:sync` 스킬이 4개 에이전트가 DESIGN.md를 읽도록 `CLAUDE.md` / `AGENTS.md` / `.cursor/rules` shim을 유지합니다 ("shim 동기화해줘").
|
|
61
|
+
- **디자인 교정 기록 + 반영**: `omd:remember`로 preference를 append하고, `omd:learn`으로 누적된 preference를 DESIGN.md에 일괄 반영합니다.
|
|
71
62
|
|
|
72
63
|
**또는 글로벌 설치 (짧은 커맨드):**
|
|
73
64
|
|
|
@@ -75,27 +66,25 @@ npx oh-my-design-cli learn --mark-applied <id> # 반영 완료 표시
|
|
|
75
66
|
npm install -g oh-my-design-cli
|
|
76
67
|
# 이제 'oh-my-design' 또는 단축 별칭 'omd' 사용 가능
|
|
77
68
|
omd install-skills
|
|
78
|
-
omd sync
|
|
79
|
-
omd remember "..."
|
|
80
69
|
```
|
|
81
70
|
|
|
82
|
-
> **상태**:
|
|
71
|
+
> **상태**: 첫 ecosystem 릴리스. 안정적인 CLI 표면은 `install-skills` 하나뿐입니다 — 스킬·에이전트를 프로젝트에 설치/갱신하는 역할. 그 외 모든 동작(DESIGN.md 부트스트랩, 레퍼런스 추천, shim 동기화, preference 기록·반영)은 **스킬 주도**로, 에이전트가 파일을 직접 편집해 수행합니다. 에이전트 측 Hybrid variation 품질은 호스트 LLM이 `omd:init` 스킬 프롬프트를 얼마나 잘 따르는지에 좌우됩니다 — 결과가 만족스럽지 않으면 archive와 함께 이슈로 보고 부탁드려요.
|
|
83
72
|
|
|
84
73
|
### 설치되는 파일
|
|
85
74
|
|
|
86
75
|
| 파일 | 관리 주체 | 용도 |
|
|
87
76
|
|---|---|---|
|
|
88
77
|
| `DESIGN.md` | 사용자 | 단일 진실 — 브랜드 & UI 명세 |
|
|
89
|
-
| `CLAUDE.md` | `omd
|
|
90
|
-
| `AGENTS.md` | `omd
|
|
91
|
-
| `.cursor/rules/omd-design.mdc` | `omd
|
|
78
|
+
| `CLAUDE.md` | `omd:sync` 스킬 | Claude Code 포인터 (`@./DESIGN.md`) |
|
|
79
|
+
| `AGENTS.md` | `omd:sync` 스킬 | Codex CLI **+** OpenCode 공용 포인터 (한 파일이 둘 커버) |
|
|
80
|
+
| `.cursor/rules/omd-design.mdc` | `omd:sync` 스킬 | Cursor가 UI 파일 편집 시 DESIGN.md 자동 attach |
|
|
92
81
|
| `.claude/skills/omd-*/SKILL.md` | `omd install-skills` | Claude Code 스킬 9종 |
|
|
93
82
|
| `.codex/skills/omd-*/SKILL.md` | `omd install-skills` | Codex 스킬 9종 |
|
|
94
83
|
| `.opencode/agents/omd-*.md` | `omd install-skills` | OpenCode 에이전트 9종 |
|
|
95
|
-
| `.omd/preferences.md` | `omd
|
|
96
|
-
| `.omd/sync.lock.json` | `omd
|
|
84
|
+
| `.omd/preferences.md` | `omd:remember` 스킬 | append-only 디자인 교정 로그 |
|
|
85
|
+
| `.omd/sync.lock.json` | `omd:sync` 스킬 | drift 감지 상태 |
|
|
97
86
|
|
|
98
|
-
shim과 스킬 파일은 `<!-- omd:start -->` 마커 블록을 사용해서, 마커 외부의 사용자 편집은 `omd
|
|
87
|
+
shim과 스킬 파일은 `<!-- omd:start -->` 마커 블록을 사용해서, 마커 외부의 사용자 편집은 `omd:sync` 스킬 재실행에도 보존됩니다.
|
|
99
88
|
|
|
100
89
|
### 9개 스킬
|
|
101
90
|
|
|
@@ -122,21 +111,13 @@ shim과 스킬 파일은 `<!-- omd:start -->` 마커 블록을 사용해서, 마
|
|
|
122
111
|
|
|
123
112
|
### CLI 명령어
|
|
124
113
|
|
|
114
|
+
CLI가 노출하는 명령어는 `install-skills` 하나입니다 — 스킬·에이전트를 프로젝트에 설치/갱신합니다.
|
|
115
|
+
|
|
125
116
|
```
|
|
126
|
-
omd init recommend <description> # 태그+stem 매칭 레퍼런스 추천 (top-5)
|
|
127
|
-
omd init prepare --ref <id> --description <text>
|
|
128
|
-
# .omd/init-context.json + delta_set 준비
|
|
129
117
|
omd install-skills [--agent ...] # skills/*를 .claude /.codex /.opencode로 복사
|
|
130
|
-
omd reference list # 번들된 레퍼런스 id 목록
|
|
131
|
-
omd reference show <id> # 레퍼런스 DESIGN.md를 stdout으로 출력
|
|
132
|
-
omd sync [--force | --check] # shim 파일 작성 또는 감사
|
|
133
|
-
omd remember <note> [--scope ...] # preference entry append
|
|
134
|
-
omd learn # pending 목록
|
|
135
|
-
omd learn --mark-applied <id> # DESIGN.md 반영 후 상태 변경
|
|
136
|
-
omd learn --mark-rejected <id> --reason <text>
|
|
137
118
|
```
|
|
138
119
|
|
|
139
|
-
`omd sync
|
|
120
|
+
레퍼런스 추천, DESIGN.md 생성, shim 동기화, preference 기록·반영은 별도 CLI 서브커맨드가 아니라 **스킬 주도**입니다 — 설치 후 에이전트(`omd:init` / `omd:sync` / `omd:remember` / `omd:learn`)에게 자연어로 요청하면 스킬이 파일을 직접 Read/Write/Bash 하며 처리합니다.
|
|
140
121
|
|
|
141
122
|
### 결정적 vs 에이전트 주도
|
|
142
123
|
|
|
@@ -150,7 +131,7 @@ omd learn --mark-rejected <id> --reason <text>
|
|
|
150
131
|
|
|
151
132
|
### 상태
|
|
152
133
|
|
|
153
|
-
이 생태계는
|
|
134
|
+
이 생태계는 첫 agent-integration 릴리스입니다. 안정적인 CLI 표면은 `install-skills` 하나뿐 — 스킬·에이전트를 프로젝트에 설치/갱신합니다. 그 외 모든 동작(레퍼런스 추천, DESIGN.md 생성, shim 동기화, preference 기록·반영)은 **스킬 주도**로, 에이전트가 파일을 직접 편집해 수행합니다. 에이전트 측 Hybrid variation 품질은 호스트 LLM이 `omd:init` 스킬 프롬프트를 얼마나 잘 따르는지에 좌우됩니다 — 검증 맵은 [`test/scenarios/WORKFLOWS.md`](test/scenarios/WORKFLOWS.md) 참고. 실 세션 결과 환영 — `.omd/init-context.json`과 결과 `DESIGN.md`를 첨부해서 이슈로 보고 부탁드립니다.
|
|
154
135
|
|
|
155
136
|
### 업그레이드
|
|
156
137
|
|
package/agents/AGENT.md
CHANGED
|
@@ -16,9 +16,9 @@ A 60-line operational context card. Loaded into the project at install via `omd
|
|
|
16
16
|
- `agents/` — canonical 11 sub-agent definitions (master + 10 specialists; source-of-truth, generates `.claude/agents/` and `.codex/agents/`)
|
|
17
17
|
- `skills/omd-harness/` — entry skill that calls master orchestrator
|
|
18
18
|
- `skills/omd-init/`, `skills/omd-apply/`, `skills/omd-remember/`, `skills/omd-learn/`, `skills/omd-sync/` — existing OmD skills
|
|
19
|
-
- `data/reference-fingerprints.json` —
|
|
19
|
+
- `data/reference-fingerprints.json` — reference voice fingerprint manifest (skill-side semantic match)
|
|
20
20
|
- `data/vocabulary.json`, `data/synonyms.json`, `data/reference-tags.md` — controlled vocab + tagging
|
|
21
|
-
- `references/<id>/DESIGN.md`
|
|
21
|
+
- `references/<id>/DESIGN.md` — bundled reference design systems
|
|
22
22
|
- `spec/omd-v0.1.md` — OmD spec (15-section DESIGN.md format)
|
|
23
23
|
- `.omd/runs/run-<ts>-<slug>/` — every harness run; permanent archive
|
|
24
24
|
- `skills/omd-lab-02-design-harness/runs/v<N>-...` — Lab #02 versioned experiments
|
|
@@ -41,7 +41,7 @@ A 60-line operational context card. Loaded into the project at install via `omd
|
|
|
41
41
|
- 999 → never fabricate §11–13 facts
|
|
42
42
|
- 9999 → never invent tokens absent from DESIGN.md
|
|
43
43
|
- 99999 → never auto-skip user checkpoints
|
|
44
|
-
- 999999 → never invent reference ids
|
|
44
|
+
- 999999 → never invent reference ids — only ids present in `reference-fingerprints.json` (items[].id) are valid.
|
|
45
45
|
- 9999999 → never claim success when output is empty; Read the file
|
|
46
46
|
- 99999999 → never overwrite previous iteration; snapshot to `iteration-<N>/`
|
|
47
47
|
|
package/agents/omd-master.md
CHANGED
|
@@ -119,7 +119,7 @@ Each turn you are in one state. Determine current state from `.handoff.json` `st
|
|
|
119
119
|
- **FIGMA_GUIDANCE**: User pasted Figma file URL.
|
|
120
120
|
- Tell user: "Figma URL은 v4에서 직접 추출이 안 돼요. 두 가지 방법이 있어요:
|
|
121
121
|
1. Tokens Studio 플러그인으로 JSON export → 그 path 알려주세요
|
|
122
|
-
2. 우리
|
|
122
|
+
2. 우리 reference 카탈로그에서 가장 가까운 톤 골라서 시작 (catalog id로 답변)"
|
|
123
123
|
- Wait for user. Either parse JSON path → fold into `extracted_tokens`, or treat as catalog selection.
|
|
124
124
|
|
|
125
125
|
- **PRODUCTION_TRANSITION** (CRITICAL — re-engage when user says "프로덕션화" / "production" / "ship" / "deploy" / "실배포" mid-flight): User just shifted from prototyping to productionizing. **Don't fall back to plain coding.** **Don't extract DESIGN.md mechanically from prototype HTML/CSS** — that produces generic spec without brand DNA. Curate via reference matching instead.
|
|
@@ -132,14 +132,14 @@ Each turn you are in one state. Determine current state from `.handoff.json` `st
|
|
|
132
132
|
- tone keywords from visible microcopy (e.g., "calm / encouraging / not-pushy" from "오늘 첫 잔으로 시작해요")
|
|
133
133
|
- 5 short adjectives describing the *atmosphere* (NOT a full token dump)
|
|
134
134
|
|
|
135
|
-
### Step 2 — Reference matching (
|
|
135
|
+
### Step 2 — Reference matching (reference 카탈로그)
|
|
136
136
|
Score against `data/reference-fingerprints.json` using the signal above + voice_fingerprint + tone_keywords. Identify top 2-3 closest references.
|
|
137
137
|
|
|
138
138
|
### Step 3 — Curation proposal (the wow point)
|
|
139
139
|
Surface the matched references as a *curation question*, not a token dump:
|
|
140
140
|
|
|
141
141
|
```
|
|
142
|
-
prototype 한 번 보고 왔어요. 톤은 calm-blue + 응원하는 듯한 친근함 + 잔잔한 모션 —
|
|
142
|
+
prototype 한 번 보고 왔어요. 톤은 calm-blue + 응원하는 듯한 친근함 + 잔잔한 모션 — reference 카탈로그 중 toss + lovable이 가장 가깝게 보여요.
|
|
143
143
|
• toss — 차분한 calm-cerulean + 숫자 강조 + 한국 핀테크 절제미
|
|
144
144
|
• lovable — parchment cream + 휴머니스트 + 응원하는 따뜻함
|
|
145
145
|
|
|
@@ -149,7 +149,7 @@ Each turn you are in one state. Determine current state from `.handoff.json` `st
|
|
|
149
149
|
- go (toss base + drop delta) — 추천
|
|
150
150
|
- lovable base + drop delta
|
|
151
151
|
- 둘 다 섞기 (toss 60 / lovable 40)
|
|
152
|
-
- 다른 reference 골라볼게 (
|
|
152
|
+
- 다른 reference 골라볼게 (reference 카탈로그 보여줘)
|
|
153
153
|
- 그냥 prototype에서 바로 추출 (덜 추천 — generic해질 수 있음)
|
|
154
154
|
```
|
|
155
155
|
|
|
@@ -168,7 +168,7 @@ Each turn you are in one state. Determine current state from `.handoff.json` `st
|
|
|
168
168
|
```
|
|
169
169
|
(Edit 툴로 첫 줄 prepend.)
|
|
170
170
|
|
|
171
|
-
**Step 4.2 — Reference DESIGN.md Read.** `Read references/<chosen_ref_id>/DESIGN.md` (예: `references/toss/DESIGN.md`).
|
|
171
|
+
**Step 4.2 — Reference DESIGN.md Read.** `Read references/<chosen_ref_id>/DESIGN.md` (예: `references/toss/DESIGN.md`). reference 카탈로그 안의 모든 ref에 DESIGN.md 있음.
|
|
172
172
|
|
|
173
173
|
**Step 4.3 — delta axes 추론.** 사용자 description + chosen ref base를 비교해서 다음 axes 중 사용자가 명시했거나 함의한 것만 shift 대상으로 표시:
|
|
174
174
|
- `hue_deg` (색상 각도, 예: +30 = warmer rotation)
|
|
@@ -303,7 +303,7 @@ When user says "이 부분 좀 따뜻하게" / "더 세련되게" / "여기 좁
|
|
|
303
303
|
**RULE 7.5 — Vague modifier disambiguator (don't guess).**
|
|
304
304
|
When `signal-classifier` returns `vague_modifier !== null` (e.g., "좀 더 세련되게", "warmer", "여백 답답해"):
|
|
305
305
|
1. Do NOT silently apply your guess — that's how you produce wrong work the user has to reject.
|
|
306
|
-
2. Call `scoreCandidatesForModifier` (in `src/core/visual-anchor.ts`) with current reference + axis + direction +
|
|
306
|
+
2. Call `scoreCandidatesForModifier` (in `src/core/visual-anchor.ts`) with current reference + axis + direction + the full reference catalog.
|
|
307
307
|
3. Get top 3-4 reference candidates that move in the requested direction.
|
|
308
308
|
4. Build picker via `modifierDisambiguatorPicker` and present:
|
|
309
309
|
```
|
|
@@ -537,7 +537,7 @@ Audit trail. Persists across master spawns within a run.
|
|
|
537
537
|
- **999.** Never fabricate §11–13 facts. Use `[FILL IN]` placeholder.
|
|
538
538
|
- **9999.** Never introduce a token absent from DESIGN.md without going through Phase 5.
|
|
539
539
|
- **99999.** Never auto-skip mandatory user gates (Phase 3, Phase 5, SHIP_GATE).
|
|
540
|
-
- **999999.** Never invent reference ids — only
|
|
540
|
+
- **999999.** Never invent reference ids — only ids present in `reference-fingerprints.json` (items[].id) are valid.
|
|
541
541
|
- **9999999.** Never claim sub-agent succeeded when output is missing/empty. Read the file.
|
|
542
542
|
- **99999999.** Never overwrite previous iteration artifacts without snapshot.
|
|
543
543
|
|
package/agents/omd-microcopy.md
CHANGED
|
@@ -60,4 +60,4 @@ You write microcopy. Every word you write must be derivable from `DESIGN.md §10
|
|
|
60
60
|
|
|
61
61
|
Write a single `components/microcopy.json` containing all slots. No prose response — just the JSON file written.
|
|
62
62
|
|
|
63
|
-
If §10 is missing from DESIGN.md, halt and report to master: "DESIGN.md §10 missing — cannot write microcopy without voice spec.
|
|
63
|
+
If §10 is missing from DESIGN.md, halt and report to master: "DESIGN.md §10 missing — cannot write microcopy without voice spec. Ask omd-master to populate §10 (Voice) before microcopy can be written."
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: omd-ux-researcher
|
|
3
|
-
description: Reads bundled oh-my-design references (
|
|
3
|
+
description: Reads bundled oh-my-design references (the bundled reference catalog), researches competing services, validates Tier-1 official design system URLs. Returns concise, URL-cited findings. Read-only — never writes outside the run directory.
|
|
4
4
|
tools: Read, Glob, Grep, WebSearch, WebFetch, Bash, Write
|
|
5
5
|
model: opus
|
|
6
6
|
---
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-design-cli",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"description": "Bootstrap oh-my-design skills + agents into your project. After install, talk to your AI coding agent in natural language — no other CLI commands.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|