Interactive first-time setup wizard — asks the user 10 questions and auto-writes all personal config files
Runs a conversational interview with the user. Collects their profile, pillars, and brand details through simple questions. Then writes all 6 personal config files automatically — no manual editing required.
context/profile.md does not exist (first-time setup)/setup (re-configure)Before asking anything, check if context/profile.md already exists.
/setup will overwrite your current config. Continuing..." then proceed.Ask these questions ONE AT A TIME. Wait for each answer before asking the next. Do not ask all at once.
Present each question as a short, friendly prompt. After each answer, acknowledge it briefly (one line) then ask the next.
Q1 — Who are you?
"First — are you setting this up for yourself (individual creator) or for a company/brand?"
Q2 — Name and role
"What's your name and title? (e.g., Jane Smith, ML Engineer)"
Capture: name, title
Q3 — Company and location
"Where do you work and where are you based? (e.g., Stripe, Berlin, Germany)"
Capture: company, location
Q4 — Your specialization
"What's your technical or professional specialization? In 1-2 sentences — what do you actually work on day to day?"
Example answers:
Capture: specialization (rewrite into a clean 1-liner)
Q5 — Your positioning (the most important question)
"What makes you different from everyone else with your job title? Think: what have you SHIPPED or BUILT that most people in your role haven't? Give me one specific thing."
Example answers:
Capture: positioning_statement
Rewrite it into a strong positioning statement in first person:
"I am one of the few [title] who has [specific achievement] — not just [what most people do]."
Show the rewritten version to the user and ask: "Does this sound like you? Say yes or tweak it."
Q6 — Proof points
"Give me 2-3 specific projects or results with real numbers. Format: [Project name] — [what it does] — [result/metric]"
Example:
Capture: proof_points[] (list of 2-3 items)
Q7 — Content pillars
"What 3-4 topics do you want to post about? These become your content pillars. List them — e.g., 'Healthcare AI, Python tutorials, Career in tech, Industry news'"
For each pillar, automatically assign a percentage split:
Capture: pillars[] (list of pillar names)
Q8 — Target audience
"Who are you trying to reach? List 2-3 types of people — e.g., 'recruiters in healthcare AI, other ML engineers, startup founders who need AI help'"
Capture: audience[]
Q9 — Timezone and posting schedule
"What timezone are you in, and what time works best for you to post? LinkedIn's best window is usually 8-10 AM your local time."
Example: "PKT, 8-10 AM" or "EST, 9 AM"
Capture: timezone, post_time
Q10 — Brand color (optional)
"One last thing — do you have a brand accent color you prefer? (e.g., #00D4AA teal, #FF6B35 orange, #6C63FF purple). Or just say 'default' to keep teal."
Capture: accent_color (default: #00D4AA)
After collecting all 10 answers, show a brief summary:
Here's what I'll set up for you:
Name: [name]
Title: [title]
Company: [company], [location]
Positioning: "[positioning_statement]"
Pillars: [pillar 1] (35%) · [pillar 2] (25%) · [pillar 3] (20%) · [pillar 4] (20%)
Audience: [audience summary]
Post time: [post_time] [timezone]
Accent color: [accent_color]
Writing 6 config files... (type 'wait' to change anything first)
Pause for 3 seconds conceptually — if user says nothing or says "go", proceed.
Write these files using the collected answers. Use the template files as structural reference but populate them fully — no [PLACEHOLDER] strings should remain in the output.
context/profile.md# Profile — [name]
## Identity
- **Name:** [name]
- **Title:** [title]
- **Company:** [company]
- **Location:** [location]
- **Specializations:** [specialization — split into 2-3 bullet tags]
- **Mission:** [1-line mission derived from positioning]
## Unique Positioning Statement
> "[positioning_statement]"
This is the moat. Every piece of content should reinforce this positioning, directly or indirectly.
## Key Projects & Technical Proof Points
[For each proof point in proof_points[]:
- **[Project Name]** — [description and result]
]
## Voice & Tone
- **Conversational and direct** — write like talking to a smart friend
- **Technical but accessible** — deep expertise, no jargon for jargon's sake
- **Specific over vague** — real numbers, real systems, real challenges
- **Honest** — share failures and what they taught, not just wins
- **Confident but not preachy** — share what's working, acknowledge what isn't
- **Simple English** — short sentences, short paragraphs
- **No corporate speak** — banned: synergy, leverage, ecosystem, excited to announce, game-changer
## Social Profiles
- LinkedIn: [ADD YOUR LINKEDIN URL]
- GitHub: [ADD YOUR GITHUB URL]
config/brand.jsonPopulate with:
brand_name: "[name] — [title]"tagline: derive a 1-line tagline from the positioning statementcolors.accent: [accent_color]linkedin_profile.headline: derive from title + specializationslinkedin_profile.cta: "DM me about [specialization]"carousel.cta_slide_text: "Follow for more [pillar 1] content"config/content-pillars.jsonFor each pillar the user gave:
goal and tone for each pillarcontext/strategy.mdWrite a full strategy doc using the pillar structure. For topics under each pillar, generate specific ideas grounded in the user's actual proof points — not generic examples.
config/audience-personas.jsonFor each audience the user listed, generate a full persona with:
description (2 sentences)pain_points relevant to their rolewhat_they_want_from_you — specific to the user's positioningcontent_that_resonates — which post types work for themresearch/hooks-bank.mdGenerate 5-7 starter hooks per pillar, grounded in:
After writing all files, say:
✓ Setup complete. 6 files written:
• context/profile.md
• context/strategy.md
• config/brand.json
• config/content-pillars.json
• config/audience-personas.json
• research/hooks-bank.md
You're ready to start. Run /prime to initialize your session,
then /research to scan this week's trends.
[PLACEHOLDER] string in any output file — fully populate everything from the answers