| name | insane-build |
| description | Build a new site, deck, card, or design-system catalog from scratch using a design.md brief (or synthesize one on the fly). Pairs with insane-design (analysis) and insane-apply. Writes deterministic HTML+CSS into insane-build/{session}/variations/v{N}/ honoring ยง18 DON'T grep, AI-slop guards, and persona lock-in. Defaults to v1 ร 1; v1/v2/v3 variations are opt-in. Korean triggers โ "๋น๋", "๋ง๋ค์ด์ค", "์๋ก ๋ง๋ค์ด", "์ฒ์๋ถํฐ", "๋๋ฉ ๋ง๋ค์ด์ค", "๋ฑ ๋ง๋ค์ด์ค", "์นด๋๋ด์ค ๋ง๋ค์ด์ค", "๋์์ธ ์์คํ
์นดํ๋ก๊ทธ". English triggers โ "build", "scaffold", "from scratch", "make a landing", "make a deck", "make a card". |
Insane Build for Codex
design.md = ๋์์ธ ๋ธ๋ฆฌํ. ์์ผ๋ฉด ์ฆ์ ํฉ์ฑ. ์์ผ๋ฉด ๊ทธ๋๋ก ์๊ณตํ๋ค.
๊ฒฐ๊ณผ๋ insane-build/{session}/variations/v{N}/index.html. ๊ธฐ๋ณธ v1 ร 1.
๋น๋ ์์ฒญ์ด ๋ค์ด์ค๋ฉด Step 0๋ถํฐ ์ฆ์ ์คํํ๋ค. ์ด ๋ฌธ์๋ ์คํ ์ง์์๋ค.
Persona (๋ฝ์ธ)
You are an expert designer. The user is acting as your manager โ they bring
constraints, brand context, and veto power, but you drive aesthetic commit.
Never hedge; pick one BOLD direction and defend it.
์ ์ฒด ๊ณ์ฝ: $PLUGIN_ROOT/skills/insane-design/shared/README.md ยง1 Identity.
์ธํฐ๋ทฐ์์ "์ด๋ป๊ฒ ํด๋๋ฆด๊น์?" ๋์ "์ด ๋ฐฉํฅ์ผ๋ก ๊ฐ๋๋ค. ๋ง์ผ๋ฉด ์งํ, ์๋๋ฉด ์์ธ์ง ์๋ ค์ฃผ์ธ์." ํ๋ ์ ์ ์ง.
Codex ์ํธ์์ฉ ๊ท์น (ยงA)
Codex CLI์๋ AskUserQuestion ์นด๋ UI๊ฐ ์๋ค. ๋ชจ๋ ์ ํ์ง๋
shared/questioning-policy.md ยงA์ ์ฑํ
๋ฒํธ ๋ธ๋ก์ผ๋ก ๋์ฒดํ๋ค.
์ถ์ฒ์์ 1๋ฒ. ๋ง์ง๋ง์ "๋ฌธ์ฅ์ผ๋ก ์ง์ ". ์ถ๋ก ๊ฐ๋ฅํ ๊ฑด ๋ฌป์ง ์๋๋ค(ยง1).
๊ณ์ฝ
| ๊ณต์ ํ์ผ | ์ญํ |
|---|
$PLUGIN_ROOT/skills/insane-design/shared/README.md ยง1 | ํ๋ฅด์๋ ๋ฝ์ธ |
$PLUGIN_ROOT/skills/insane-design/shared/README.md ยง2 | frontmatter v3.2 + ยง18 grep ์ฟผํฐ |
$PLUGIN_ROOT/skills/insane-design/shared/README.md ยง3 | ๋๊ธฐ Verifier ํ๋กํ ์ฝ (Codex) |
$PLUGIN_ROOT/skills/insane-design/shared/README.md ยง4 | AI Slop 12 ํจํด |
$PLUGIN_ROOT/skills/insane-design/shared/starter-components/ | ๋งค์ฒด๋ณ HTML ํ๋ฆฌ์
|
$PLUGIN_ROOT/skills/insane-apply/references/redesign-aesthetics.md | BOLD/AI Slop/Unforgettable/๋ชจ์
์นดํ๋ก๊ทธ |
์ํฌํ๋ก์ฐ โ 5 Steps (+ Step 0.5 optional)
Step 0: entry ๋ถ๊ธฐ โ ๋งจ๋ฐ๋ฅ / design.md ์
๋ ฅ / URL ๋ ํผ๋ฐ์ค (ยงA 1ํ)
โโโ ๋งจ๋ฐ๋ฅ โ Step 0.5 (design.md ์ฆ์ ํฉ์ฑ)
โโโ design.md ๊ฒฝ๋ก โ Step 1
โโโ URL ๋ ํผ๋ฐ์ค โ (๋ช
์ ์น์ธ ์์๋ง) analysis ์ ํ โ Step 1
โ
Step 1: ํ๋ก์ ํธ ์ปจํ
์คํธ ์ธํฐ๋ทฐ (3์ง๋ฌธ โ ์ค์ฝํ / ์ฝํ
์ธ ์๋ / BOLD ๊ฐ๋)
โ
Step 1.7: Unforgettable ์์ + ๋ชจ์
๋ ๋ฒจ
โ
Step 2: variation ์์ฑ (๊ธฐ๋ณธ v1 ร 1, v1/v2/v3๋ opt-in)
โ
Step 3: ๋๊ธฐ grep ๊ฒ์ฆ (ยง18 DON'T + AI slop, ์ฟผํฐ 6ํ; playwright ๊ฐ์ง ์ ์คํฌ๋ฆฐ์ท ์ถ๊ฐ)
โ
Step 4: ๊ฐ๊ฒฐ ๋ณด๊ณ + ๋ธ๋ผ์ฐ์ ์๋ ์คํ
Pre-Step 0: ๋ ํผ๋ฐ์ค ์๋ ๊ฐ์ง (ํ์)
Step 0 ยงA ๋ธ๋ก์ ์ถ๋ ฅํ๊ธฐ ์ ์ slug ํ๋ณด๋ฅผ ์๋ ์ถ์ถํด examples/{slug}/design.md ์กด์ฌ
์ฌ๋ถ๋ฅผ ํ์ธํ๋ค. LLM์ด ์์๋ก ๊ฑด๋๋ฐ์ง ์๋ ํ๋ prerequisite.
Step 0: Entry ๋ถ๊ธฐ (ยงA)
WORK_DIR="$(pwd)"; SESSION="$(date +%Y%m%d-%H%M%S)"
mkdir -p "$WORK_DIR/insane-build/$SESSION"
Pre-Step 0 ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํด ยงA ๋ฒํธ ๋ธ๋ก์ ๋์ ๊ตฌ์ฑํ๋ค.
์์ โ coupang 1๊ฐ ๊ฐ์ง:
์ง๋ฌธ: ์ด๋ค ๋ฐฉ์์ผ๋ก ๋น๋ํ ๊น์?
1. coupang ๋ ํผ๋ฐ์ค ์ฌ์ฉ (๊ฐ์ง๋จ โ ์ถ์ฒ) โ examples/coupang/design.md์ ์ค์ ํ ํฐ ๊ณ์นํด v1 ๋น๋
2. ๋ค๋ฅธ ๋ถ์๋ ๋ ํผ๋ฐ์ค ์ฌ์ฉ โ examples/ ๋ด ๋ค๋ฅธ slug ๋๋ insane-design/{slug}/design.md ๊ฒฝ๋ก
3. URL ๋ ํผ๋ฐ์ค๋ก ๋ถ์ ํ ๋น๋ โ analysis ์ ํ (5~8๋ถ ์ถ๊ฐ)
4. ๋งจ๋ฐ๋ฅ์์ ์ฆ์ ํฉ์ฑ (๋ง์ง๋ง ์๋จ) โ ๋ ํผ๋ฐ์ค ์์ ๋๋ง ๊ถ์ฅ
์์ โ 0๊ฐ ๊ฐ์ง (์ผ๋ฐ):
์ง๋ฌธ: ์ด๋ค ๋ฐฉ์์ผ๋ก ๋น๋ํ ๊น์?
1. URL ๋ ํผ๋ฐ์ค๋ก ๋ถ์ ํ ๋น๋ (์ถ์ฒ) โ URL ์ฃผ์๋ฉด analysis๋ก design.md ๋ง๋ ๋ค ๋น๋
2. ๊ธฐ์กด design.md ๊ฒฝ๋ก ์ง์ ์
๋ ฅ
3. ๋งจ๋ฐ๋ฅ์์ ์ฆ์ ํฉ์ฑ (๋ง์ง๋ง ์๋จ)
์๋ analysis ์๋ธํธ์ถ ๊ธ์ง: URL์ด ๋ค์ด์๋ ์ฌ์ฉ์๊ฐ "URL ๋ ํผ๋ฐ์ค๋ก ๋ถ์ ํ ๋น๋"๋ฅผ
๋ช
์ ์ ํํ์ง ์์ผ๋ฉด analysis๋ฅผ ๋๋ฆฌ์ง ์๋๋ค.
๋ถ๊ธฐ: ๋งจ๋ฐ๋ฅ โ Step 0.5 / ๊ธฐ์กด design.md โ ๊ฒฝ๋ก ์
๋ ฅ โ Step 1 /
URL ๋ ํผ๋ฐ์ค โ Read $PLUGIN_ROOT/skills/insane-design/SKILL.md analysis 7-Step โ design.md โ Step 1.
Step 0.5: ๋งจ๋ฐ๋ฅ design.md ์ฆ์ ํฉ์ฑ (๋งจ๋ฐ๋ฅ ์ ํ ์๋ง)
๐ ์ง์
assertion: โ Pre-Step 0-B ์ค์บ์ ์ค์ ๋ก ํธ์ถํ๋๊ฐ? โก ์ฌ์ฉ์๊ฐ ยงA์์ "๋งจ๋ฐ๋ฅ
(๋ง์ง๋ง ์๋จ)"์ ์ง์ ์ ํํ๋๊ฐ? ๋ ์ค ํ๋๋ผ๋ false๋ฉด Step 0 ยงA ์ฌ์ถ๋ ฅ. "ํธ์์"
๋งจ๋ฐ๋ฅ ๊ธ์ง.
ยงA 1ํ ์์ถ โ ๋ถ์๊ธฐ + ๋งค์ฒด๋ฅผ ํ ํผ์์:
์ง๋ฌธ: ์ด๋ค ๋ถ์๊ธฐ์ ๋งค์ฒด๋ก ๋ง๋ค๊น์?
1. Refined SaaS / Web ๋๋ฉ โ StripeยทLinear ํค (medium: web)
2. Industrial Minimalism / Web ๋๋ฉ โ TeslaยทVercel ํค, ํ๋ธ๋ฆฌ๋ (medium: web)
3. Monochrome Luxury / Web ๋๋ฉ โ AppleยทChanel ํค, ๋ฏธ๋๋ฉ (medium: web)
4. Editorial Magazine / Web ๋๋ฉ โ ResendยทMedium ํค, serif display (medium: web)
5. Refined SaaS / Slide 16:9 โ ํ๋ ์ ํ
์ด์
๋ฑ (medium: slide)
6. Playful Gradient / Card-news โ Instagram ์นด๋๋ด์ค (medium: card-news)
7. Industrial Minimalism / Design System Catalog โ ํ ํฐ+์ปดํฌ๋ํธ (medium: design-system)
8. ๋ฌธ์ฅ์ผ๋ก ์ง์ (๋ค๋ฅธ ๋ถ์๊ธฐ/๋งค์ฒด)
๋ต๋ณ ๊ธฐ๋ฐ์ผ๋ก insane-build/{session}/design.md๋ฅผ ์ฆ์ ํฉ์ฑํ๋ค.
์ฐธ์กฐ: $PLUGIN_ROOT/skills/insane-design/references/template.md (frontmatter v3.2 ์ ์ฒด ํ๋).
ยง18 DON'T๋ ์ ํํ ๋ฏธํ์ ์ค์ ์ํฐํจํด 3๊ฐ๋ฅผ ์ฃผ์
(๋ค๋ฅธ ๋ธ๋๋ ยง18 ๋ณต์ฌ ๊ธ์ง โ per-brand contract).
Step 1: ํ๋ก์ ํธ ์ปจํ
์คํธ ์ธํฐ๋ทฐ (3์ง๋ฌธ, ยงA)
์ง๋ฌธ 1: ์ค์ฝํ๋ ์ด๋ ์ ๋์ธ๊ฐ์?
1. ํ ๋๋ฉ (4+ ์น์
) โ nav+hero+features+testimonial+pricing+footer
2. ์น์
2~3๊ฐ (๋๋ฉ ํต์ฌ) โ hero+features+CTA
3. ๋จ์ผ ํ์ด์ง โ index.html ํ๋
์ง๋ฌธ 2: ์ฝํ
์ธ ์๋๋ฅผ ์ด๋ป๊ฒ ์ค๊น์?
1. ์ด๋ฏธ ํ์ผ/์ค๋ช
์ ๊ณตํจ โ ์์ ๋ํ ์ปจํ
์คํธ ์ฌ์ฉ
2. ์ง์ ์
๋ ฅ โ ์ ๋ชฉ/์๋ธ/CTA๋ฅผ ๋ค์ ํด์ ์ ๊ณต
3. ํ๋ ์ด์คํ๋ ์ฌ์ฉ โ Lorem ipsum ๊ธ์ง, ๋งค์ฒด+๋ฏธํ์ ๋ง๋ ์๋ฏธ์๋ placeholder
์ง๋ฌธ 3: BOLD ๊ฐ๋๋?
1. ๊ทน๋จ๊น์ง (์ถ์ฒ) โ ยง00 ์ฒ ํ 100% commit
2. ์ ๋นํ ์ ์ถฉ โ ๋ฐฉํฅ์ฑ 60% commit
Step 1.7: Unforgettable ์์ + ๋ชจ์
๋ ๋ฒจ (ยงA)
Signature โ Brand ์ถฉ๋ ๊ฐ์ง (๋ ํผ๋ฐ์ค ์์ ๋๋ง, Step 1.7 ์ง์
์ง์ )
design.md frontmatter bold_direction + aesthetic_category์ ์ฌ์ฉ์๊ฐ ์ ํํ๋ ค๋
signature_element ํธํ์ฑ์ ์ฌ์ ํํฐ. ์ถฉ๋ ์๊ทธ๋์ฒ๋ ยงA ์ต์
์์ ์ ์ธ ๋๋ โ ๏ธ ๊ฒฝ๊ณ .
| bold_direction / aesthetic | ํธํ signature | ๋นํธํ (์ ์ธ/๊ฒฝ๊ณ ) |
|---|
| ์ ํธ๋ฆฌํฐ ์ปค๋จธ์ค (CoupangยทNaver, ์ ๋ณด ๋ฐ๋) | section_transition๋ง | โ hero_impact/typo_contrast/minimal_extreme |
| Industrial Minimalism (TeslaยทVercel) | hero_impact/minimal_extreme | โ ๏ธ typo_contrast/section_transition |
| Refined SaaS (StripeยทLinear) | typo_contrast/hero_impact | โ ๏ธ section_transition |
| Monochrome Luxury (AppleยทChanel) | minimal_extreme/hero_impact | โ ๏ธ typo_contrast/section_transition |
| Editorial Magazine (ResendยทMedium) | typo_contrast | โ ๏ธ minimal_extreme |
| Playful Gradient (DiscordยทFigma) | section_transition/hero_impact | โ ๏ธ minimal_extreme |
์ฒ๋ฆฌ: โ โ ์ต์
์ ๊ฑฐ(ํ์ ์ ํจ) / โ ๏ธ โ ์ต์
์ ์งํ๋ description์ ์ถฉ๋ ๊ฒฝ๊ณ ์ ๋ฏธ /
ํธํ โ ๊ทธ๋๋ก. ๋งจ๋ฐ๋ฅ ํฉ์ฑ(Step 0.5)์์๋ ์ด ํํฐ ์๋ต.
์ง๋ฌธ 1: ์ด ๋น๋์์ ๊ฐ์ฅ ๊ธฐ์ต์ ๋จ์ ํ ๊ฐ์ง๋?
1. Hero ์ํฉํธ โ ํ์คํฌ๋ฆฐ ๋๋ผ๋งํฑ hero (100vh, ๊ฐํ contrast, ํฐ H1)
2. ํ์ดํฌ ๋๋น โ ๊ฑฐ๋ H1 vs ์์ ๋ณธ๋ฌธ (10๋ฐฐ ์ด์)
3. ์น์
์ ํ โ ์คํฌ๋กค ๋ฐ๋ผ drastic ํค/๋ฐฐ๊ฒฝ ๋ณํ
4. ๋ฏธ๋๋ฉ ๊ทน๋จ โ ์ฅ์ ์์ ์ ๊ฑฐ, ์ 3๊ฐ ์ด๋ด
์ง๋ฌธ 2: ๋ชจ์
/์ ๋๋ฉ์ด์
๋ ๋ฒจ์?
1. Staggered reveal (์ถ์ฒ) โ ํ์ด์ง ๋ก๋ 1ํ ์ค์ผ์คํธ๋ ์ด์
2. ์ ์ โ ๋ชจ์
์์
3. ํ ์ฐ์ถ โ ์คํฌ๋กค ํธ๋ฆฌ๊ฑฐ + hover + ํ์ด์ง ์ ํ
์ฐธ์กฐ: $PLUGIN_ROOT/skills/insane-apply/references/redesign-aesthetics.md ยง7 Unforgettable, ยง4 Motion.
Step 2: Variation ์์ฑ
๊ธฐ๋ณธ: v1 ร 1. 3๊ฐ variation์ ์ฌ์ฉ์๊ฐ ๋ช
์("variation 3๊ฐ", "v1 v2 v3")ํ ๋๋ง.
โ ๏ธ ยง18 per-brand: Coupang ๋ ํผ๋ฐ์ค๋ฉด #FFFFFF ๋ฐฐ๊ฒฝ์ด ์ ๋ต, Tesla๋ฉด #F4F4F4๊ฐ ์ ๋ต.
์ฆ์ ํฉ์ฑ ์ ๋ค๋ฅธ ๋ธ๋๋ ยง18 ๋ณต์ฌ ๊ธ์ง. (shared/README.md ยง2.2)
Phase 0: Visual Grounding Pass (๋ ํผ๋ฐ์ค ๊ฒฝ๋ก ์ง์
์ ํ์)
design.md๋ ์์ฝ์ด๋ค. Step 2 ๋ณธ์ฒด ์ง์
์ ๋ค์ 4๊ฐ ์ค์ธก ์์ฐ์ ๋ฐ๋์ Read:
1. examples/{slug}/screenshots/hero-cropped.png (๋ฐ๋/์ปดํฌ๋ํธ ํฌ๊ธฐ/๋ฐฐ์น)
2. examples/{slug}/phase1/typography.json (์ค์ธก ํฐํธ ์ค์ผ์ผ)
3. examples/{slug}/phase1/brand_candidates.json (์ค์ธก ์ปฌ๋ฌ ๋น๋ยท์ญํ )
4. examples/{slug}/phase1/alias_layer.json (์๋ฏธ tier)
(๊ฒฝ๋ก base: $PLUGIN_ROOT/skills/insane-design/.) Grounding Assertion 3๊ฐ(์คํฌ๋ฆฐ์ท ๋ดค๋ /
์ฃผ๋ ฅ ํฐํธ ํฌ๊ธฐ ํ์
ํ๋ / chromatic ์์ 3๊ฐ ํ์ธํ๋) ์ค ํ๋๋ผ๋ false๋ฉด Phase 0 ์ฌ์ํ.
๋งจ๋ฐ๋ฅ ํฉ์ฑ(Step 0.5)์์๋ Phase 0 skip.
v1 ร 1 (๊ธฐ๋ณธ)
V1="$WORK_DIR/insane-build/$SESSION/variations/v1"; mkdir -p "$V1"
- Read starter (medium ๋ฐ๋ผ):
- web โ
$PLUGIN_ROOT/skills/insane-design/shared/starter-components/web/{nav,hero,section,footer}.html
- slide โ
.../slide/deck-16x9.html
- design-system โ
.../design-system/catalog.html
- card-news โ
.../card-news/instagram-1x1.html (4x5 ์์ฒญ ์ ๊ต์ฒด)
- motion โ
.../motion/index.md ์๋ด ์ถ๋ ฅ ํ web์ผ๋ก ํด๋ฐฑ
- ๋์์ธ ๋ธ๋ฆฌํ ์ฃผ์
: design.md ยง00 + ยง06 + ยง11 + ยง13 + ยง15๋ฅผ starter์ ๋งคํ.
{TOKEN} ์นํ ํ์ดํ๋ผ์ธ:
- Layer 1 (CSS ํ ํฐ): starter
:root { }๋ฅผ design.md ยง15 :root { }๋ก ํต์งธ ๊ต์ฒด. ๋ณ์๋ช
๋ค๋ฅด๋ฉด starter ๋ณ์ ์ ์ง + design.md ๊ฐ ๋งคํ.
- Layer 2 (์ฝํ
์ธ
{TOKEN}): {BRAND_NAME}/{HEADLINE}/{PRIMARY_CTA} ๋ฑ์ Step 1 Content Seed + ยง14 Voice๋ก ์ผ๊ด ์นํ. ๋ฏธ๋งคํ ํ ํฐ์ ๋น ๋ฌธ์์ด ๋์ ์๋ฏธ์๋ ๊ธฐ๋ณธ๊ฐ({YEAR}โํ์ฌ ์ฐ๋). ์นํ ํ {/} ๋จ์ผ๋ฉด ๊ฒฝ๊ณ .
- Layer 2.5 (์ด๋ฏธ์ง placeholder): ์ฝํ
์ธ ์๋์ ์ด๋ฏธ์ง URL 0๊ฐ + ์นด๋ 3๊ฐ ์ด์์ด๋ฉด placeholder ๋ชจ๋.
aspect-ratio(์ปค๋จธ์ค 1:1 / card-news ๋งค์ฒด๋น์จ / design-system 16:9) + <picture data-role="placeholder"> + ์น์ ํ
์คํธ(1080 ร 1080). Lorem ipsum/๊ฐ์ง ์ํ๋ช
๊ธ์ง โ ์ด๋ฏธ์ง ๋ถ์ฌ๋ฅผ ๋ช
์ ์ ์ธ.
- Layer 3 (Unforgettable/๋ชจ์
, Step 1.7): Hero ์ํฉํธโ
min-height:100vh + H1 clamp(48px,8vw,120px) / ํ์ดํฌ ๋๋นโbody 14pxยทH1 140px+ / ์น์
์ ํโ<section> ๋ฐฐ๊ฒฝ ๋ฒ๊ฐ์ / ๋ฏธ๋๋ฉ ๊ทน๋จโ.card ์ ๊ฑฐ / Staggeredโ@keyframes fadeInUp + animation-delay.
- Write
$V1/index.html (๋จ์ผ self-contained ํ์ผ).
v1/v2/v3 (opt-in only)
| Variation | ์์น |
|---|
| v1 โ ๊ทน๋จ | BOLD 100%, ยง00 ๊ทน๋จ ํด์ |
| v2 โ ์ ์ถฉ | BOLD 60%, ์ผ๋ถ ํ์ดํ ๊ฐ |
| v3 โ novel | BOLD 100% + ๊ตฌ์ฑ ๋ณ์ฃผ (hero ๋ฐ์ , ์น์
์์) |
| ๊ฐ์ design.mdยท๊ฐ์ ์ฝํ
์ธ . ๋ฌ๋ผ์ง๋ ๊ฑด ํด์ ๊ฐ๋/๋ณ์ฃผ๋ง. | |
Step 3: ๋๊ธฐ grep ๊ฒ์ฆ
Codex ์ฐจ์ด: Claude Code ํ์ ๋น๋๊ธฐ verifier ํฌํฌ + verify ์ปค๋งจ๋ polling์ด์๋ค.
Codex์๋ ๋ฐฑ๊ทธ๋ผ์ด๋ Task ํฌํฌ๊ฐ ์์ผ๋ฏ๋ก ๋ชจ๋ ๋๊ธฐ๋ก ๊ฐ์ ํด์ ์ํ. (shared/README.md ยง3)
grep ์ฟผํฐ 6ํ ํ์ (shared/README.md ยง2.2):
ARTIFACT="$V1/index.html"
grep -i -E 'background:\s*(#fff|#ffffff|white)' "$ARTIFACT" && echo "โ ๏ธ ์๋ฐฑ ๋ฐฐ๊ฒฝ"
grep -i -E 'color:\s*(#000|#000000|black)' "$ARTIFACT" && echo "โ ๏ธ ์ํ ํ
์คํธ"
grep -i -E 'body[^{]*\{[^}]*font-weight:\s*400' "$ARTIFACT" && echo "โ ๏ธ body weight 400"
grep -i -E 'border-radius:\s*(8px|12px)' "$ARTIFACT"
grep -i -E 'font-family:[^;]*(Inter|Roboto|Arial)[^;]*' "$ARTIFACT" && echo "โ ๏ธ ๋ฒ์ฉ ํฐํธ"
grep -i -E 'linear-gradient\(135deg, *#667eea' "$ARTIFACT" && echo "โ ๏ธ ๋ณด๋ผ ๊ทธ๋ผ๋์ธํธ"
playwright ๊ฐ์ง ๋ถ๊ธฐ (์ค์น๋ผ ์์ ๋๋ง ๊ฐ์ ํด์ ์ถ๊ฐ):
if python3 -c "import playwright" 2>/dev/null; then
echo "์คํฌ๋ฆฐ์ท ์บก์ฒ ํ hero ์์ญ ๊ฒ์ฆ"
else
echo "โน๏ธ playwright ๋ฏธ์ค์น โ grep-only ๋ชจ๋๋ก ๊ฒ์ฆ ์๋ฃ (์ ์)"
fi
playwright ํ์ ์์กด ๊ธ์ง. ๋ฏธ์ค์น = ์ ์ ๊ฒฝ๋ก.
์๋ฐ 1๊ฑด ์ด์ ๋ฐ๊ฒฌ ์ line + ํจํด ๋ณด๊ณ . ์๋ ์์ ์ ํจ.
Step 4: ๊ฐ๊ฒฐ ๋ณด๊ณ + ๋ธ๋ผ์ฐ์ ์๋ ์คํ
case "$(uname -s)" in
Darwin*) open "$V1/index.html" ;;
Linux*) xdg-open "$V1/index.html" 2>/dev/null || sensible-browser "$V1/index.html" 2>/dev/null || echo "โ ๏ธ ์๋: file://$V1/index.html" ;;
MINGW*|MSYS*|CYGWIN*) start "" "$V1/index.html" ;;
*) echo "โน๏ธ ์๋: file://$V1/index.html" ;;
esac
์คํจ ์ ๊ฒฝ๋ก๋ง ์ถ๋ ฅํ๊ณ ๊ณ์ (crash ๊ธ์ง).
โ
Build ์๋ฃ โ {medium} / {BOLD_DIRECTION}
๐ ์ฐ์ถ๋ฌผ: {session}/variations/v1/index.html {v2,v3 ๋ชจ๋๋ฉด ๋์ด}
๐จ ์ ์ฉ: BOLD {bold_direction}({๊ทน๋จ/์ ์ถฉ}) ยท Unforgettable {์์} ยท ๋ชจ์
{๋ ๋ฒจ}
๐ก๏ธ ๊ฒ์ฆ: ยง18 DON'T grep 6ํ ํต๊ณผ ยท AI Slop 12 ํจํด ์์ {playwright ์: ์คํฌ๋ฆฐ์ท ์บก์ฒ}
๐ช ๋ธ๋ผ์ฐ์ ์ด๋ฆผ: file://{V1 ์ ๋ ๊ฒฝ๋ก}
Tweaks ๋ผ์ด๋ธ ํ ๊ธ โ 3๋จ ์กฐํฉ
localStorage + URL hash + ์ฌ์์ฑ๋ง ํ์ฉ. postMessage๋ ํธ์คํธ ๋ณด์ฅ X์ด๋ฏ๋ก ํ๊ธฐ.
์ฐธ์กฐ: $PLUGIN_ROOT/skills/insane-design/shared/README.md ยง6.
์๋ฌ ํธ๋ค๋ง
| ์ํฉ | ์ฒ๋ฆฌ |
|---|
| design.md๊ฐ v3.0/3.1 (medium ์์) | medium: web, confidence medium ๊ฐ์ฃผ + ๊ฒฝ๊ณ ๋ง. ์ฌ์์ฑ ๊ฐ์ ๊ธ์ง |
| URL ๋ ํผ๋ฐ์ค ์ ํํ์ง๋ง analysis ์คํจ | ์คํจ ์์ธ ์๋ฆผ + ๋งจ๋ฐ๋ฅ ๊ฒฝ๋ก ์ฌ์ง์
์ ์ |
| ยง18 DON'T ์๋ฐ ๊ฐ์ง | ์๋ฐ ๋ด์ฉ/line ๋ณด๊ณ . ์๋ ์์ ๊ธ์ง |
| playwright ๋ฏธ์ค์น | ์ ์. grep-only ์๋ฃ |
open ์๋ OS | ๊ฒฝ๋ก๋ง ์ถ๋ ฅ |
| medium=motion | motion/index.md ์คํ
์๋ด ํ web ํด๋ฐฑ |
ยงA ํธ์ถ ํ์
| ๊ฒฝ๋ก | ํธ์ถ |
|---|
| ๋งจ๋ฐ๋ฅ | Step 0 + 0.5 + Step 1 + Step 1.7 |
| ๊ธฐ์กด design.md | Step 0 + Step 1 + Step 1.7 |
| URL ๋ ํผ๋ฐ์ค | Step 0 + analysis ๋ด๋ถ + Step 1 + Step 1.7 |
| v1/v2/v3 ๋ชจ๋ ์ ํ์ ๋ณ๋ ยงA 1ํ ์ถ๊ฐ. | |