| name | scopi:setup |
| description | Brand identity interview โ deep setup wizard that captures your voice, audience, visual identity, and generates a unique theme |
| user_invocable | true |
/scopi:setup โ Brand Identity Interview
You are running the Scopi Card News setup. This is NOT a simple form โ it's an interview designed to capture the user's creative identity so every card news feels uniquely theirs.
Step 1: Welcome + Language
Display this banner:
____ ____ ___ ____ ___
/ ___| / ___|/ _ \| _ \|_ _|
\___ \| | | | | | |_) || |
___) | |___| |_| | __/ | |
|____/ \____|\___/|_| |___|
Card News ยท Agent Teams ยท VS Methodology
v2.5 ยท 7 Expert Agents ยท VS Anti-Mode-Collapse
github.com/HosungYou/scopi-cardnews
Use AskUserQuestion:
์ธ์ด๋ฅผ ์ ํํด ์ฃผ์ธ์ / Choose your language:
- ํ๊ตญ์ด
- English
Store as language. All subsequent questions should be in the chosen language.
Step 2: Content Type
Use AskUserQuestion:
Korean:
์ด๋ค ์ข
๋ฅ์ ์ฝํ
์ธ ๋ฅผ ๋ง๋์๋์?
- ํ์ /์ฐ๊ตฌ โ ๋
ผ๋ฌธ, ์ฐ๊ตฌ ๊ฒฐ๊ณผ, ๊ต์ก ์ฝํ
์ธ
- ๋น์ฆ๋์ค โ ์ ํ ์๊ฐ, ์ผ์ด์ค ์คํฐ๋, ์ฐ์
์ธ์ฌ์ดํธ
- ํผ์ค๋ ๋ธ๋๋ โ ์ง์ ๊ณต์ , ํํ ๋ฆฌ์ผ, ํ
- ๊ธฐํ โ ์ง์ ์ค๋ช
ํด ์ฃผ์ธ์
English:
What type of content do you create?
- Academic โ research, papers, educational content
- Business โ products, case studies, industry insights
- Personal Brand โ thought leadership, tutorials, tips
- Other โ tell me more
Store as identity.contentType.
Step 3: Audience Deep-Dive
Use AskUserQuestion (free-text):
Korean:
๋น์ ์ ์ฝํ
์ธ ๋ฅผ ์ฃผ๋ก ๋๊ฐ ์ฝ๋์?
(์: "๊ต์กํ ๋ฐ์ฌ๊ณผ์ ํ์๋ค, ์ด์ ๊ต์, AI์ ๊ด์ฌ ์๋ ๊ต์ก ์ฐ๊ตฌ์๋ค")
English:
Who reads your content?
(e.g., "PhD students in education, early-career faculty, researchers interested in AI")
Store as identity.audience.
Then use AskUserQuestion (free-text):
Korean:
๊ทธ ๋
์๋ค์ด ๊ฒช๋ ๊ฐ์ฅ ํฐ ์ด๋ ค์์ ๋ฌด์์ธ๊ฐ์?
(์: "๋ฌธํ ๋ฆฌ๋ทฐ์ ๋๋ฌด ์ค๋ ๊ฑธ๋ฆผ, APA ํฌ๋งทํ
์ด ๋ณต์ก, AI ๋๊ตฌ๋ฅผ ์จ๋ณด๊ณ ์ถ์๋ฐ ๋ญ ์จ์ผ ํ ์ง ๋ชจ๋ฆ")
English:
What's their biggest pain point?
(e.g., "Literature reviews take forever, APA formatting is complex, want to use AI tools but don't know which ones")
Store as identity.audiencePainPoints.
Step 4: Voice & Tone
Use AskUserQuestion:
Korean:
๋น์ ์ ์ํต ์คํ์ผ์ ์ด๋ค๊ฐ์?
- ์ ๋ฌธ์ + ๋ฐ๋ปํ โ ์ค๋งํธํ ๋๋ฃ์๊ฒ ์ปคํผ ๋ง์๋ฉฐ ์ค๋ช
ํ๋ ๋๋
- ์ ๋ฌธ์ + ๊ถ์์ โ ํํ ๋ฐํ์ฒ๋ผ ์ ํํ๊ณ ์ฒด๊ณ์
- ์บ์ฃผ์ผ + ์น๊ทผํ โ ํ๋ฐฐ์๊ฒ ํ ์๋ ค์ฃผ๋ ๋๋
- ์ง์ ์ค๋ช
ํ ๊ฒ์ (์์ ์
๋ ฅ)
English:
How would you describe your communication style?
- Professional + warm โ like explaining to a smart colleague over coffee
- Professional + authoritative โ precise, systematic, conference-level
- Casual + friendly โ like giving tips to a junior colleague
- I'll describe it myself (free input)
If they choose 4, ask for a free-text description.
Store as identity.voice.
Step 5: Visual Identity
Use AskUserQuestion:
Korean:
์๊ฐ์ ์ผ๋ก ์ด๋ค ๋๋์ ์ํ์๋์?
- ๋ฐ๋ปํ๊ณ ํ์ ์ โ ์์ด๋ณด๋ฆฌ, ํ
๋ผ์ฝํ, ์ธ๋ฆฌํ ์์ฒด. ๋
ผ๋ฌธ ๋๋์ด์ง๋ง ํ๋์
- ๋คํฌ + ํ๋ฆฌ๋ฏธ์ โ ๋ค์ด๋น/๋ธ๋, ๊ณจ๋ ํฌ์ธํธ. ๋ฐค์ ์ฝ๋ ํ์ ์ง ๋๋
- ๋ฏธ๋๋ฉ + ํด๋ฆฐ โ ํ์ดํธ, ๋ธ๋, ๋จ์ผ ํฌ์ธํธ ์ปฌ๋ฌ. ์ค์์ค ๋์์ธ
- ํ
ํฌ + ๋ชจ๋ โ ๋คํฌ ๋ฐฐ๊ฒฝ, ๋ค์จ ํฌ์ธํธ. ์ฝ๋/ํฐ๋ฏธ๋ ๋ฏธํ
- ์ง์ ์ค๋ช
ํ ๊ฒ์ โ ์ํ๋ ๋ถ์๊ธฐ, ์ปฌ๋ฌ, ๋ ํผ๋ฐ์ค ์๋ ค์ฃผ์ธ์
If they choose 5, ask: "์ํ๋ ๋ถ์๊ธฐ, ๋ํ ์ปฌ๋ฌ, ์ฐธ๊ณ ๋ธ๋๋ ๋ฑ์ ์์ ๋กญ๊ฒ ์๋ ค์ฃผ์ธ์."
Store as identity.visualStyle.
Step 6: Content Priority
Use AskUserQuestion:
Korean:
์นด๋๋ด์ค์์ ๊ฐ์ฅ ์ค์ํ๊ฒ ์๊ฐํ๋ ๊ฒ์? (๋ณต์ ์ ํ ๊ฐ๋ฅ, ์ผํ๋ก ๊ตฌ๋ถ)
- ์ ๋ณด ์ ๋ฌ โ ์ ํํ๊ณ ์ฒด๊ณ์ ์ธ ๋ด์ฉ
- ๊ฐ์ฑ/์คํ ๋ฆฌ โ ๊ณต๊ฐ๊ณผ ๊ฐ์ ์ ์ฐ๊ฒฐ
- ๋น์ฃผ์ผ ์ํฉํธ โ ์คํฌ๋กค์ ๋ฉ์ถ๋ ์๊ฐ์ ์ถฉ๊ฒฉ
- ๋ธ๋๋ฉ โ ์ผ๊ด๋ ๋ธ๋๋ ์ธ์ ๊ตฌ์ถ
Store as identity.priority.
Step 7: Capture Targets
Use AskUserQuestion (free-text):
Korean:
์์ฃผ ์๊ฐํ๊ฑฐ๋ ๋ฆฌ๋ทฐํ๋ ์๋น์ค/๋๊ตฌ/์น์ฌ์ดํธ๊ฐ ์๋์?
์ค์ ํ๋ฉด ์บก์ฒ๋ฅผ ํตํด ์นด๋๋ด์ค์ ํฌํจํ ์ ์์ต๋๋ค.
(์: "elicit.com, consensus.app, claude.ai")
์์ผ๋ฉด "์์"์ด๋ผ๊ณ ์
๋ ฅํด ์ฃผ์ธ์.
English:
Do you frequently feature or review specific tools/services/websites?
We can capture real screenshots to include in your card news.
(e.g., "elicit.com, consensus.app, claude.ai")
Type "none" if not applicable.
Parse URLs and store as identity.captureTargets array.
Step 8: Brand Basics
Use AskUserQuestion:
Korean:
๋ธ๋๋ ๊ธฐ๋ณธ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ์ธ์:
- ๋ธ๋๋ ์ด๋ฆ (์: Scopi Lab)
- ์์
ํธ๋ค (์: @scopi.lab)
- ์ ์ ์ด๋ฆ (์ฌ๋ผ์ด๋์ ํ์๋จ)
- ํ๊ทธ๋ผ์ธ (์ ํ, ์: "AI ร Academia")
ํ์: ์ด๋ฆ, ํธ๋ค, ์ ์, ํ๊ทธ๋ผ์ธ
English:
Brand basics:
- Brand name (e.g., Scopi Lab)
- Social handle (e.g., @scopi.lab)
- Author name (shown on slides)
- Tagline (optional, e.g., "AI ร Academia")
Format: name, handle, author, tagline
Parse and store as brand.
Step 9: Platform
Use AskUserQuestion:
Korean:
์ฃผ ํ๊ฒ ํ๋ซํผ์?
- Instagram (1080ร1350, 4:5 ์ธ๋ก)
- LinkedIn (1920ร1080, 16:9 ๊ฐ๋ก)
- Twitter/X (1600ร900)
- ๋ฉํฐํ๋ซํผ (๊ธฐ๋ณธ 1080ร1350)
English: Same options in English.
Set dimensions accordingly. Store as platform and dimensions.
Step 10: Agent Teams (Optional)
Use AskUserQuestion:
Korean:
์์ด์ ํธ ํ ๋ชจ๋๋ฅผ ํ์ฑํํ ๊น์?
ํ์ฑํํ๋ฉด ์นด๋๋ด์ค ์์ฑ ์ ์์ด์ ํธ๋ค์ด ์ค์๊ฐ์ผ๋ก ํ ๋ก ํ๋ฉฐ ํ์ง์ ๋์
๋๋ค.
(์: GYEOL์ด ๋์์ธํ๋ฉด JURI๊ฐ ์ฆ์ ์ ์๊ถ ํ์ธ, MARU๊ฐ ๋
์ ๋ฐ์ ์์ธก)
-
ํ ํฐ ๋น์ฉ ~3-5๋ฐฐ ์ฆ๊ฐ
-
ํ์ /์ฐ๊ตฌ ์ฝํ
์ธ ์ ํนํ ์ ์ฉ
-
Claude Code v2.1.32+ ํ์
- ํ์ฑํ (์ถ์ฒ: ํ์ ์ฝํ
์ธ )
- ๊ฑด๋๋ฐ๊ธฐ (์ผ๋ฐ ์์ฐจ ํ์ดํ๋ผ์ธ ์ฌ์ฉ)
English:
Enable Agent Teams mode?
When enabled, agents debate and refine each other's work in real-time.
(e.g., GYEOL designs โ JURI checks copyright immediately โ MARU predicts audience reaction)
- Enable (recommended for academic content)
- Skip (use standard sequential pipeline)
If the user chooses 1:
- Check if
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS is already set in ~/.claude/settings.json
- If NOT set, ask: "settings.json์ Agent Teams ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ ๊น์? (ํ ๋ฒ๋ง ์ค์ ํ๋ฉด ๋ฉ๋๋ค)"
- If user agrees, read
~/.claude/settings.json, add "env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" } to it, and write back
- Store
pipeline.teamMode = true in config
If the user chooses 2:
- Store
pipeline.teamMode = false in config
- The pipeline will always use sequential subagent mode
Note: Even with teamMode = true, /scopi:generate auto-detects the best mode per content. Simple topics still use the faster sequential pipeline.
Step 11: Dynamic Theme Generation (GYEOL)
Now, based on ALL the interview answers, dispatch GYEOL (Visual Architect) to generate a unique theme.
GYEOL should consider:
identity.contentType โ academic = warm/serif, business = clean/sans, tech = dark/mono
identity.visualStyle โ user's stated preference
identity.voice โ formal = structured palette, casual = playful accents
identity.priority โ visual impact = bolder contrasts, information = cleaner hierarchy
brand โ brand name/personality influences color choices
GYEOL generates a complete color palette and font pairing:
{
"name": "[Generated theme name]",
"description": "[One-line description reflecting the brand]",
"colors": {
"warmBg": "#...",
"accent": "#...",
"accentBg": "#...",
"accentText": "#...",
"accentTextSoft": "rgba(...)",
"textPrimary": "#...",
"textSecondary": "#...",
"textTertiary": "#...",
"cardBg": "#...",
"accentSoft": "rgba(...)",
"accentMedium": "rgba(...)",
"accentBorder": "rgba(...)",
"termBg": "#...",
"termHeader": "#...",
"termPrompt": "#...",
"termText": "#...",
"termGreen": "#...",
"termYellow": "#...",
"termComment": "#..."
},
"fonts": {
"heading": "...",
"body": "...",
"code": "..."
}
}
Present the generated theme to the user with a brief description:
๐จ GYEOL์ด ๋น์ ์ ๋ธ๋๋ ํ
๋ง๋ฅผ ์์ฑํ์ต๋๋ค:
[Theme Name] โ [description]
๋ฐฐ๊ฒฝ: [warmBg] ยท ์ก์ผํธ: [accent] ยท ํ
์คํธ: [textPrimary]
ํค๋ฉ: [heading font] ยท ๋ณธ๋ฌธ: [body font]
๋ง์์ ๋์๋์? (yes / ์์ ํ ๋ถ๋ถ์ ์๋ ค์ฃผ์ธ์)
If user wants changes, GYEOL adjusts. If yes, proceed.
Step 12: Generate Config
Write scopi.config.json with the FULL interview data:
{
"language": "ko",
"brand": { "name": "...", "handle": "...", "author": "...", "tagline": "..." },
"identity": {
"contentType": "...",
"audience": "...",
"audiencePainPoints": "...",
"voice": "...",
"visualStyle": "...",
"priority": "...",
"captureTargets": ["..."]
},
"theme": {
"name": "...",
"description": "...",
"colors": { ... },
"fonts": { ... }
},
"dimensions": { "width": 1080, "height": 1350 },
"platform": "instagram",
"agents": {
"active": ["nara", "gyeol", "gana", "dari", "binna", "juri", "maru"],
"custom": []
},
"series": [],
"pipeline": {
"retina": true,
"format": ["png", "pdf"],
"capture": true,
"teamMode": false,
"teamDisplay": "auto",
"teamDebate": true,
"strictQA": true,
"minQAScore": 3.0
}
}
Step 13: Confirmation
Korean:
โ
๋ธ๋๋ ์ค์ ์๋ฃ!
๐ ์์ฝ:
๋ธ๋๋: [name] ([handle])
์ธ์ด: [ํ๊ตญ์ด/English]
ํ
๋ง: [theme name] โ [description]
ํ๋ซํผ: [platform] ([width]ร[height])
์์ด์ ํธ: 7๋ช
ํ์ฑ
ํ ๋ชจ๋: [ํ์ฑ/๋นํ์ฑ] โ [ํ์ฑ ์: "์์ด์ ํธ ์ค์๊ฐ ํ ๋ก "]
์บก์ฒ ๋์: [count]๊ฐ ๋ฑ๋ก
๐ ์์ํ ์ค๋น๊ฐ ๋์ต๋๋ค!
/scopi:content โ ์ฝํ
์ธ ์์ด๋์ด ๋ธ๋ ์ธ์คํ ๋ฐ
/scopi:generate โ ์นด๋๋ด์ค ์์ฑ (์๋ ๋ชจ๋ ๊ฐ์ง)
/scopi:help โ ์ ์ฒด ๋ช
๋ น์ด ๋ณด๊ธฐ
English: Same in English.