oh-my-design-cli 1.1.0 → 1.3.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 +7 -7
- 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 +291 -2
- package/package.json +2 -1
- package/skills/omd-apply/SKILL.md +1 -1
- package/skills/omd-harness/SKILL.md +17 -3
- package/skills/omd-init/SKILL.md +162 -71
- package/skills/omd-reference-capture/SKILL.md +314 -0
- package/web/references/29cm/DESIGN.md +445 -0
- package/web/references/ably/DESIGN.md +582 -0
- package/web/references/banksalad/DESIGN.md +606 -0
- package/web/references/gangnamunni/DESIGN.md +605 -0
- package/web/references/kakaopay/DESIGN.md +529 -0
- package/web/references/remember/DESIGN.md +445 -0
- package/web/references/socar/DESIGN.md +370 -0
- package/web/references/wanted/DESIGN.md +515 -0
- package/web/references/zigbang/DESIGN.md +457 -0
- package/web/references/zigzag/DESIGN.md +618 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 1,
|
|
3
|
-
"generated_at": "2026-05-
|
|
3
|
+
"generated_at": "2026-05-13T00:00:00Z",
|
|
4
4
|
"generator": "oh-my-design parallel agent extraction (Claude Code Agent tool, no API key)",
|
|
5
|
-
"count":
|
|
5
|
+
"count": 88,
|
|
6
6
|
"items": [
|
|
7
7
|
{
|
|
8
8
|
"id": "airbnb",
|
|
@@ -1824,6 +1824,295 @@
|
|
|
1824
1824
|
"signature_motion": "Inset orange underline marks active tabs; sand underline previews hover.",
|
|
1825
1825
|
"has_personas": false,
|
|
1826
1826
|
"category_raw": "saas-tool"
|
|
1827
|
+
},
|
|
1828
|
+
{
|
|
1829
|
+
"id": "29cm",
|
|
1830
|
+
"primary_color_hex": "#000000",
|
|
1831
|
+
"category": "Commerce",
|
|
1832
|
+
"visual_theme": "Editorial select-shop magazine on pure white with pure black ink — photography first, oversized margins, Pretendard-only typography, no shadows, no brand color beyond black-on-white.",
|
|
1833
|
+
"voice_fingerprint": {
|
|
1834
|
+
"register": "editorial-curatorial",
|
|
1835
|
+
"sentence_length": "medium",
|
|
1836
|
+
"metaphor_density": "moderate",
|
|
1837
|
+
"vocabulary_register": "korean-dominant"
|
|
1838
|
+
},
|
|
1839
|
+
"tone_keywords": [
|
|
1840
|
+
"editorial",
|
|
1841
|
+
"curated",
|
|
1842
|
+
"calm",
|
|
1843
|
+
"considered",
|
|
1844
|
+
"magazine",
|
|
1845
|
+
"offbeat"
|
|
1846
|
+
],
|
|
1847
|
+
"antipatterns": [
|
|
1848
|
+
"No 최저가/초특가 or 오늘만 urgency",
|
|
1849
|
+
"No English SHOP NOW exclamations",
|
|
1850
|
+
"No corporate ~합니다 ending on consumer voice"
|
|
1851
|
+
],
|
|
1852
|
+
"signature_motion": "Color inversion on inverted CTA hover — #000000 ↔ #ffffff with 2px radius, no scale, no shadow.",
|
|
1853
|
+
"has_personas": true,
|
|
1854
|
+
"category_raw": "Commerce / Editorial Select-Shop"
|
|
1855
|
+
},
|
|
1856
|
+
{
|
|
1857
|
+
"id": "ably",
|
|
1858
|
+
"primary_color_hex": "#FA2E5F",
|
|
1859
|
+
"category": "Commerce",
|
|
1860
|
+
"visual_theme": "MZ-coded mobile-first style commerce on white canvas — vibrant pink-coral reserved for commercial pressure (CTA, sale, urgency) while neutrals carry the photography-dense 4-up grid.",
|
|
1861
|
+
"voice_fingerprint": {
|
|
1862
|
+
"register": "informal-stylist-friend",
|
|
1863
|
+
"sentence_length": "short",
|
|
1864
|
+
"metaphor_density": "sparse",
|
|
1865
|
+
"vocabulary_register": "korean-dominant"
|
|
1866
|
+
},
|
|
1867
|
+
"tone_keywords": [
|
|
1868
|
+
"fast",
|
|
1869
|
+
"friendly",
|
|
1870
|
+
"MZ-informal",
|
|
1871
|
+
"image-dense",
|
|
1872
|
+
"personalized",
|
|
1873
|
+
"playful"
|
|
1874
|
+
],
|
|
1875
|
+
"antipatterns": [
|
|
1876
|
+
"No 오류가 발생했습니다 vague errors",
|
|
1877
|
+
"No formal ~합니다/~십시오 on commerce surfaces",
|
|
1878
|
+
"No 약 ~원 price approximations"
|
|
1879
|
+
],
|
|
1880
|
+
"signature_motion": "Heart/찜 tap: outline to filled pink with brief scale pulse on the bottom-pinned 구매하기 bar.",
|
|
1881
|
+
"has_personas": true,
|
|
1882
|
+
"category_raw": "Commerce / MZ Style Commerce"
|
|
1883
|
+
},
|
|
1884
|
+
{
|
|
1885
|
+
"id": "banksalad",
|
|
1886
|
+
"primary_color_hex": "#04c584",
|
|
1887
|
+
"category": "Fintech",
|
|
1888
|
+
"visual_theme": "Trustworthy financial advisor on white with warm near-black text and saturated salad-green for all interaction — 2px radius dominance, dense data tables, Pretendard 700 numerals as headings.",
|
|
1889
|
+
"voice_fingerprint": {
|
|
1890
|
+
"register": "calm-advisor",
|
|
1891
|
+
"sentence_length": "medium",
|
|
1892
|
+
"metaphor_density": "sparse",
|
|
1893
|
+
"vocabulary_register": "korean-dominant"
|
|
1894
|
+
},
|
|
1895
|
+
"tone_keywords": [
|
|
1896
|
+
"factual",
|
|
1897
|
+
"advisor",
|
|
1898
|
+
"calm",
|
|
1899
|
+
"data-driven",
|
|
1900
|
+
"explanatory",
|
|
1901
|
+
"precise"
|
|
1902
|
+
],
|
|
1903
|
+
"antipatterns": [
|
|
1904
|
+
"No 약 ~원 approximations on money",
|
|
1905
|
+
"No 최고의/놀라운 superlatives",
|
|
1906
|
+
"No emoji on financial surfaces",
|
|
1907
|
+
"No 오류가 발생했습니다"
|
|
1908
|
+
],
|
|
1909
|
+
"signature_motion": "Brand green focus/hover lightens to #10df99 — interaction makes things lighter, never darker; subtle single-layer shadow.",
|
|
1910
|
+
"has_personas": true,
|
|
1911
|
+
"category_raw": "Fintech / Personal Finance Advisor"
|
|
1912
|
+
},
|
|
1913
|
+
{
|
|
1914
|
+
"id": "gangnamunni",
|
|
1915
|
+
"primary_color_hex": "#d54300",
|
|
1916
|
+
"category": "Healthcare",
|
|
1917
|
+
"visual_theme": "Warm medical platform on white with bluegray neutrals and a single saturated orange — hairlines over shadows, exact numerals on hospital and procedure cards, regulatory disclosure as part of trust.",
|
|
1918
|
+
"voice_fingerprint": {
|
|
1919
|
+
"register": "careful-clinician",
|
|
1920
|
+
"sentence_length": "medium",
|
|
1921
|
+
"metaphor_density": "sparse",
|
|
1922
|
+
"vocabulary_register": "korean-dominant"
|
|
1923
|
+
},
|
|
1924
|
+
"tone_keywords": [
|
|
1925
|
+
"informational",
|
|
1926
|
+
"reassuring",
|
|
1927
|
+
"factual",
|
|
1928
|
+
"transparent",
|
|
1929
|
+
"regulatory",
|
|
1930
|
+
"exact"
|
|
1931
|
+
],
|
|
1932
|
+
"antipatterns": [
|
|
1933
|
+
"No 예뻐지세요! or ✨💖 emoji on medical surfaces",
|
|
1934
|
+
"No 약 ~원 rounded pricing",
|
|
1935
|
+
"No 오류가 발생했습니다",
|
|
1936
|
+
"No consumer-beauty cartoon pinks"
|
|
1937
|
+
],
|
|
1938
|
+
"signature_motion": "Hospital card hover: 1px #d8dfe6 hairline darkens; orange accent appears only on the booking CTA, never on hover decoration.",
|
|
1939
|
+
"has_personas": true,
|
|
1940
|
+
"category_raw": "Healthcare / Cosmetic-Procedure Discovery"
|
|
1941
|
+
},
|
|
1942
|
+
{
|
|
1943
|
+
"id": "kakaopay",
|
|
1944
|
+
"primary_color_hex": "#FFEB00",
|
|
1945
|
+
"category": "Fintech",
|
|
1946
|
+
"visual_theme": "Warm friendly fintech that feels like a continuation of KakaoTalk — Noto Sans KR on near-white canvas, rounded geometry as brand commitment, Kakao yellow as ecosystem anchor (not default CTA), 3:1 contrast minimum enforced.",
|
|
1947
|
+
"voice_fingerprint": {
|
|
1948
|
+
"register": "polite-conversational",
|
|
1949
|
+
"sentence_length": "short",
|
|
1950
|
+
"metaphor_density": "sparse",
|
|
1951
|
+
"vocabulary_register": "korean-dominant"
|
|
1952
|
+
},
|
|
1953
|
+
"tone_keywords": [
|
|
1954
|
+
"warm",
|
|
1955
|
+
"conversational",
|
|
1956
|
+
"approachable",
|
|
1957
|
+
"inclusive",
|
|
1958
|
+
"rounded",
|
|
1959
|
+
"polite-casual"
|
|
1960
|
+
],
|
|
1961
|
+
"antipatterns": [
|
|
1962
|
+
"No 고객님께서는/~하시기 바랍니다 institutional Korean",
|
|
1963
|
+
"No 약 ~원 on money",
|
|
1964
|
+
"No 오류가 발생했습니다",
|
|
1965
|
+
"No sharp/aggressive geometry"
|
|
1966
|
+
],
|
|
1967
|
+
"signature_motion": "Rounded button press: subtle radius-preserving scale-down (0.98) with quiet single-layer shadow at ≤0.08 opacity.",
|
|
1968
|
+
"has_personas": true,
|
|
1969
|
+
"category_raw": "Fintech / Ecosystem Payments"
|
|
1970
|
+
},
|
|
1971
|
+
{
|
|
1972
|
+
"id": "remember",
|
|
1973
|
+
"primary_color_hex": "#000000",
|
|
1974
|
+
"category": "HR",
|
|
1975
|
+
"visual_theme": "Business-card-database-grown-up — near-white surfaces with off-black #222222 body, black as the primary CTA color (B2B professional gravity), signup orange #FF5414 reserved for conversion punches only.",
|
|
1976
|
+
"voice_fingerprint": {
|
|
1977
|
+
"register": "senior-colleague",
|
|
1978
|
+
"sentence_length": "short",
|
|
1979
|
+
"metaphor_density": "sparse",
|
|
1980
|
+
"vocabulary_register": "korean-dominant"
|
|
1981
|
+
},
|
|
1982
|
+
"tone_keywords": [
|
|
1983
|
+
"calm",
|
|
1984
|
+
"concrete",
|
|
1985
|
+
"professional",
|
|
1986
|
+
"B2B",
|
|
1987
|
+
"trusted",
|
|
1988
|
+
"restrained"
|
|
1989
|
+
],
|
|
1990
|
+
"antipatterns": [
|
|
1991
|
+
"No 불편을 드려 죄송합니다",
|
|
1992
|
+
"No emoji in scout/recruiter messages",
|
|
1993
|
+
"No 약 ~원 on salary numbers",
|
|
1994
|
+
"No mascots or illustration on product surfaces"
|
|
1995
|
+
],
|
|
1996
|
+
"signature_motion": "Black CTA hover: subtle 1px lift via shadow; orange #FF5414 only appears once per surface at conversion moments.",
|
|
1997
|
+
"has_personas": true,
|
|
1998
|
+
"category_raw": "HR / Business Network + Career Marketplace"
|
|
1999
|
+
},
|
|
2000
|
+
{
|
|
2001
|
+
"id": "socar",
|
|
2002
|
+
"primary_color_hex": "#1d4ed8",
|
|
2003
|
+
"category": "Mobility",
|
|
2004
|
+
"visual_theme": "Calm achromatic car-sharing chrome on pure white with cool-grey #354153 body type — SOCAR Blue reserved for the Space Frame symbol and primary booking CTA, 12/14/16px radius ladder, single-layer soft shadows.",
|
|
2005
|
+
"voice_fingerprint": {
|
|
2006
|
+
"register": "calm-service",
|
|
2007
|
+
"sentence_length": "short",
|
|
2008
|
+
"metaphor_density": "sparse",
|
|
2009
|
+
"vocabulary_register": "korean-dominant"
|
|
2010
|
+
},
|
|
2011
|
+
"tone_keywords": [
|
|
2012
|
+
"calm",
|
|
2013
|
+
"service-confirming",
|
|
2014
|
+
"achromatic",
|
|
2015
|
+
"declarative",
|
|
2016
|
+
"frictionless",
|
|
2017
|
+
"grounded"
|
|
2018
|
+
],
|
|
2019
|
+
"antipatterns": [
|
|
2020
|
+
"No Revolutionary/Game-changer marketing",
|
|
2021
|
+
"No 새로운 경험을 시작하세요 decoration without action",
|
|
2022
|
+
"No emoji on transactional booking/payment surfaces",
|
|
2023
|
+
"No 오류가 발생했습니다"
|
|
2024
|
+
],
|
|
2025
|
+
"signature_motion": "Booking CTA hover: SOCAR Blue darkens one step; card lift uses single rgba(0,0,0,0.1) 0 4px 8px shadow, never chromatic stacks.",
|
|
2026
|
+
"has_personas": true,
|
|
2027
|
+
"category_raw": "Mobility / Car-Sharing (SOCAR Blue approximation — exact hex unpublished)"
|
|
2028
|
+
},
|
|
2029
|
+
{
|
|
2030
|
+
"id": "wanted",
|
|
2031
|
+
"primary_color_hex": "#0066FF",
|
|
2032
|
+
"category": "HR",
|
|
2033
|
+
"visual_theme": "Career marketplace as growth mentor — single decisive cobalt #0066FF for interaction only on a warm-white canvas, custom Wanted Sans + Pretendard, 12px-radius JobCard with salary + 합격보상금 visible by structural rule.",
|
|
2034
|
+
"voice_fingerprint": {
|
|
2035
|
+
"register": "career-mentor",
|
|
2036
|
+
"sentence_length": "medium",
|
|
2037
|
+
"metaphor_density": "sparse",
|
|
2038
|
+
"vocabulary_register": "korean-dominant"
|
|
2039
|
+
},
|
|
2040
|
+
"tone_keywords": [
|
|
2041
|
+
"confident",
|
|
2042
|
+
"growth-oriented",
|
|
2043
|
+
"respectful",
|
|
2044
|
+
"factual",
|
|
2045
|
+
"gentle-yet-clear",
|
|
2046
|
+
"precise"
|
|
2047
|
+
],
|
|
2048
|
+
"antipatterns": [
|
|
2049
|
+
"No 대박 채용/핫한 회사/놓치지 마세요 urgency marketing",
|
|
2050
|
+
"No 약 X만원 salary hedging",
|
|
2051
|
+
"No 오류가 발생했습니다",
|
|
2052
|
+
"No competitive/negotiable in lieu of a range"
|
|
2053
|
+
],
|
|
2054
|
+
"signature_motion": "JobCard hover: 12px-radius lift with bookmark icon outline→filled transition; brand blue used only on interactive states.",
|
|
2055
|
+
"has_personas": true,
|
|
2056
|
+
"category_raw": "HR / Career Marketplace"
|
|
2057
|
+
},
|
|
2058
|
+
{
|
|
2059
|
+
"id": "zigbang",
|
|
2060
|
+
"primary_color_hex": "#0066ff",
|
|
2061
|
+
"category": "Real Estate",
|
|
2062
|
+
"visual_theme": "Near-monochrome real-estate map tool — near-black #171719 type at weight 400, functional blue #0066ff for action only, brand orange reserved for wordmark, disabled-by-transparency neutrals so the map carries the surface.",
|
|
2063
|
+
"voice_fingerprint": {
|
|
2064
|
+
"register": "regional-analyst",
|
|
2065
|
+
"sentence_length": "short",
|
|
2066
|
+
"metaphor_density": "sparse",
|
|
2067
|
+
"vocabulary_register": "korean-dominant"
|
|
2068
|
+
},
|
|
2069
|
+
"tone_keywords": [
|
|
2070
|
+
"trustworthy",
|
|
2071
|
+
"data-rich",
|
|
2072
|
+
"neutral",
|
|
2073
|
+
"evidence-based",
|
|
2074
|
+
"quiet",
|
|
2075
|
+
"vision-forward"
|
|
2076
|
+
],
|
|
2077
|
+
"antipatterns": [
|
|
2078
|
+
"No 지금 바로!/놓치지 마세요!/최저가 보장 urgency",
|
|
2079
|
+
"No exclamation marks on routine CTAs",
|
|
2080
|
+
"No stacked superlatives (최고의 프리미엄 매물)",
|
|
2081
|
+
"No 혁신적인 as UI dressing",
|
|
2082
|
+
"No orange on functional UI (brand-mark only)"
|
|
2083
|
+
],
|
|
2084
|
+
"signature_motion": "Map-floating chrome: 8/10px-radius chips fade to rgba(55,56,60,0.16) on disabled; bookmark toggle is 50% circular outline→filled.",
|
|
2085
|
+
"has_personas": true,
|
|
2086
|
+
"category_raw": "Real Estate / Map-First Proptech"
|
|
2087
|
+
},
|
|
2088
|
+
{
|
|
2089
|
+
"id": "zigzag",
|
|
2090
|
+
"primary_color_hex": "#fa6ee3",
|
|
2091
|
+
"category": "Commerce",
|
|
2092
|
+
"visual_theme": "Mobile-as-canvas fashion playground locked to 600px max-width even on desktop — off-white #f5f6f6 surface, ZIGZAG brand pink #fa6ee3 for wordmark + favorites, interactive pink #f55dd6 for CTAs, coral #fb4333 for alerts.",
|
|
2093
|
+
"voice_fingerprint": {
|
|
2094
|
+
"register": "stylish-friend",
|
|
2095
|
+
"sentence_length": "short",
|
|
2096
|
+
"metaphor_density": "moderate",
|
|
2097
|
+
"vocabulary_register": "korean-dominant"
|
|
2098
|
+
},
|
|
2099
|
+
"tone_keywords": [
|
|
2100
|
+
"energetic",
|
|
2101
|
+
"fashion-fluent",
|
|
2102
|
+
"memorable",
|
|
2103
|
+
"effortless",
|
|
2104
|
+
"inspiring",
|
|
2105
|
+
"contextual"
|
|
2106
|
+
],
|
|
2107
|
+
"antipatterns": [
|
|
2108
|
+
"No 불편을 드려 죄송합니다",
|
|
2109
|
+
"No 혁신적인/세상에 없던 ad clichés",
|
|
2110
|
+
"No 약 ~원 commerce price approximations",
|
|
2111
|
+
"No desktop multi-column reflow (mobile centred is the brand)"
|
|
2112
|
+
],
|
|
2113
|
+
"signature_motion": "찜 heart: outline → filled brand pink with brief pulse; primary CTA uses pink-400 fill, darkening to pink-450/550 on hover/press.",
|
|
2114
|
+
"has_personas": true,
|
|
2115
|
+
"category_raw": "Commerce / Women's Fashion Discovery"
|
|
1827
2116
|
}
|
|
1828
2117
|
]
|
|
1829
2118
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-design-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
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": {
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"skills/omd-learn",
|
|
16
16
|
"skills/omd-remember",
|
|
17
17
|
"skills/omd-sync",
|
|
18
|
+
"skills/omd-reference-capture",
|
|
18
19
|
"agents",
|
|
19
20
|
"data",
|
|
20
21
|
"web/references/*/DESIGN.md",
|
|
@@ -40,7 +40,7 @@ DESIGN.md를 모든 UI/디자인 작업의 권위 있는 컨텍스트로 사용
|
|
|
40
40
|
| "이 인터랙션 / 모션 / 포커스 / 모바일 / 지각 성능 / 섹션별 UX 약점" | dispatch `omd-ux-engineer` | 코드 레벨 인터랙션 감사 + fix |
|
|
41
41
|
| "랜딩 / 메인 화면 / 페이지 *전체*를 전문가 의견으로 개선" | dispatch `omd-ux-writer` + `omd-ux-engineer` (병렬) | 두 트랙 동시 — writing + engineering |
|
|
42
42
|
| "이게 왜 안 좋은지 critique / postmortem / root cause" | dispatch `omd-critic` | 비판적 분석 |
|
|
43
|
-
| "DESIGN.md 만들어 / reference 골라 /
|
|
43
|
+
| "DESIGN.md 만들어 / reference 골라 / 카탈로그에서 추천" | dispatch `omd-init` skill (또는 omd-add-reference) | reference 매칭 |
|
|
44
44
|
| "preference 정리 / 누적된 교정 반영 / DESIGN.md 업데이트" | dispatch `omd-learn` skill | fold-in 로직 |
|
|
45
45
|
| "이 한 줄 / 이 컬러 / 이 spacing 좀" 단발 명확 | **인라인 처리** | 분명한 단일 변경 |
|
|
46
46
|
| 위 어디에도 안 맞는 자유로운 디자인 작업 | 인라인 처리 후 Phase 3 (교정 캡처) | 일반 케이스 |
|
|
@@ -128,7 +128,7 @@ test -d "${RUN_DIR}" && test -f "${RUN_DIR}/task.md" && echo "OK" || echo "FAIL"
|
|
|
128
128
|
|
|
129
129
|
다음 파일을 Read 툴로 전체 로드:
|
|
130
130
|
|
|
131
|
-
- `.claude/data/reference-fingerprints.json` —
|
|
131
|
+
- `.claude/data/reference-fingerprints.json` — reference fingerprint (tone keywords, visual theme, antipatterns, signature motion, has_personas, category)
|
|
132
132
|
- `.claude/data/reference-tags.md` — 사람-읽기용 keyword 매트릭스
|
|
133
133
|
- `.claude/data/vocabulary.json` — controlled vocab
|
|
134
134
|
|
|
@@ -160,16 +160,30 @@ DESIGN.md가 없어서 reference 한 개를 골라 부트스트랩할게요. <ta
|
|
|
160
160
|
|
|
161
161
|
이대로 가시려면 go (또는 <top1.id>).
|
|
162
162
|
다른 후보: <top2.id> (한 줄 이유) · <top3.id> (...) · <top4.id> (...) · <top5.id> (...)
|
|
163
|
-
본인이 아는 다른 reference면 한 줄로 id만 (예: vercel) —
|
|
163
|
+
본인이 아는 다른 reference면 한 줄로 id만 (예: vercel) — reference 카탈로그에 없으면 알려드립니다.
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
### 3.6 사용자 응답 처리
|
|
167
167
|
|
|
168
168
|
- `go` 또는 reference id (top-5 안) → 그 id로 master spawn
|
|
169
169
|
- 다른 reference id (top-5 밖이지만 카탈로그 안) → 동일하게 진행
|
|
170
|
-
- 카탈로그에 없는 id → "해당 id는
|
|
170
|
+
- 카탈로그에 없는 id → "해당 id는 reference 카탈로그에 없어요. top-5 중에서 골라주세요."
|
|
171
171
|
- `중단` → 종료
|
|
172
172
|
|
|
173
|
+
### 3.7 (선택) 라이브 reference capture 권유
|
|
174
|
+
|
|
175
|
+
선택된 reference의 라이브 사이트에서 디자인 토큰 + 시각 reference를 가져오면 master phase 정확도가 올라간다 (특히 Components / Microcopy 단계). 사용자에게 한 줄로 묻기:
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
선택하신 <id>의 라이브 사이트(예: <homepage>)에서 디자인 토큰 + 로고 + hero screenshot을 가져올까요? assets/_reference/<id>/ 에 저장됩니다 (reference 용도, 사용자 product에 직접 ship 금지).
|
|
179
|
+
yes/no/skip-this-time
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
`yes` → omd:reference-capture skill 호출 (Skill 툴) → 끝나면 Step 4로
|
|
183
|
+
`no/skip` → 바로 Step 4
|
|
184
|
+
|
|
185
|
+
omd:reference-capture는 자체적으로 LICENSE-NOTE.md / attribution.md를 작성하며 brand IP 가드레일을 가지고 있다. 자세한 동작은 `skills/omd-reference-capture/SKILL.md` 참조.
|
|
186
|
+
|
|
173
187
|
## Step 4 — Master 호출 (handoff loop)
|
|
174
188
|
|
|
175
189
|
Subagent (master)는 AskUserQuestion 직접 호출 불가 (main-thread 전용). file-based handoff 패턴으로 돌린다.
|