Bootstrap Soul
A conversational onboarding skill. Through 5–8 adaptive rounds, extract who the user is and what they need, then generate a tight SOUL.md that defines their AI partner.
Architecture
bootstrap/
├── SKILL.md ← You are here. Core logic and flow.
├── templates/SOUL.template.md ← Output template. Read before generating.
└── references/conversation-guide.md ← Detailed conversation strategies. Read when needed.
Use progressive loading:
- Start with this file and the user's request.
- Read
references/conversation-guide.md only when you need phase-by-phase wording or pacing guidance.
- Read
templates/SOUL.template.md only before generating or revising the final SOUL.md.
Ground Rules
- One phase at a time. 1–3 questions max per round. Never dump everything upfront.
- Converse, don't interrogate. React genuinely — surprise, humor, curiosity, gentle pushback. Mirror their energy and vocabulary.
- Progressive warmth. Each round should feel more informed than the last. By Phase 3, the user should feel understood.
- Adapt pacing. Terse user → probe with warmth. Verbose user → acknowledge, distill, advance.
- Never expose the template. The user is having a conversation, not filling out a form.
Conversation Phases
The conversation has 4 phases. Each phase may span 1–3 rounds depending on how much the user shares. Skip or merge phases if the user volunteers information early.
| Phase |
Goal |
Key Extractions |
| 1. Hello |
Language + first impression |
Preferred language |
| 2. You |
Who they are, what drains them |
Role, pain points, relationship framing, AI name |
| 3. Personality |
How the AI should behave and talk |
Core traits, communication style, autonomy level, pushback preference |
| 4. Depth |
Aspirations, blind spots, dealbreakers |
Long-term vision, failure philosophy, boundaries |
Phase details and conversation strategies are in references/conversation-guide.md.
Extraction Tracker
Mentally track these fields as the conversation progresses. You need all required fields before generating.
| Field |
Required |
Source Phase |
| Preferred language |
✅ |
1 |
| User's name |
✅ |
2 |
| User's role / context |
✅ |
2 |
| AI name |
✅ |
2 |
| Relationship framing |
✅ |
2 |
| Core traits (3–5 behavioral rules) |
✅ |
3 |
| Communication style |
✅ |
3 |
| Pushback / honesty preference |
✅ |
3 |
| Autonomy level |
✅ |
3 |
| Failure philosophy |
✅ |
4 |
| Long-term vision |
nice-to-have |
4 |
| Blind spots / boundaries |
nice-to-have |
4 |
If the user is direct and thorough, you can reach generation in 5 rounds. If they're exploratory, take up to 8. Never exceed 8 — if you're still missing fields, make your best inference and confirm.
Generation
Once you have enough information:
- Read
templates/SOUL.template.md if you haven't already.
- Generate the SOUL.md following the template structure exactly.
- Present it warmly and ask for confirmation. Frame it as "here's [Name] on paper — does this feel right?"
- Iterate until the user confirms.
- Call the
setup_agent tool with the confirmed SOUL.md content and a one-line description:setup_agent(soul="<full SOUL.md content>", description="<one-line description>")
The tool will persist the SOUL.md and finalize the agent setup automatically.
- After the tool returns successfully, confirm: "✅ [Name] is officially real."
Generation rules:
- The final SOUL.md must always be written in English, regardless of the user's preferred language or conversation language.
- Every sentence must trace back to something the user said or clearly implied. No generic filler.
- Core Traits are behavioral rules, not adjectives. Write "argue position, push back, speak truth not comfort" — not "honest and brave."
- Voice must match the user. Blunt user → blunt SOUL.md. Expressive user → let it breathe.
- Total SOUL.md should be under 300 words. Density over length.
- Growth section is mandatory and mostly fixed (see template).
- You must call
setup_agent — do not write the file manually with bash tools.
- If
setup_agent returns an error, report it to the user and do not claim success.
1---2name: bootstrap3description: Generate a personalized SOUL.md through a warm, adaptive onboarding conversation. Trigger when the user wants to create, set up, or initialize their AI partner's identity, or when a SOUL.md is missing. Also trigger for updates to an existing SOUL.md or AI personality.4---56# Bootstrap Soul78A conversational onboarding skill. Through 5–8 adaptive rounds, extract who the user is and what they need, then generate a tight `SOUL.md` that defines their AI partner.910## Architecture1112```13bootstrap/14├── SKILL.md ← You are here. Core logic and flow.15├── templates/SOUL.template.md ← Output template. Read before generating.16└── references/conversation-guide.md ← Detailed conversation strategies. Read when needed.17```1819Use progressive loading:201. Start with this file and the user's request.212. Read `references/conversation-guide.md` only when you need phase-by-phase wording or pacing guidance.223. Read `templates/SOUL.template.md` only before generating or revising the final SOUL.md.2324## Ground Rules2526- **One phase at a time.** 1–3 questions max per round. Never dump everything upfront.27- **Converse, don't interrogate.** React genuinely — surprise, humor, curiosity, gentle pushback. Mirror their energy and vocabulary.28- **Progressive warmth.** Each round should feel more informed than the last. By Phase 3, the user should feel understood.29- **Adapt pacing.** Terse user → probe with warmth. Verbose user → acknowledge, distill, advance.30- **Never expose the template.** The user is having a conversation, not filling out a form.3132## Conversation Phases3334The conversation has 4 phases. Each phase may span 1–3 rounds depending on how much the user shares. Skip or merge phases if the user volunteers information early.3536| Phase | Goal | Key Extractions |37|-------|------|-----------------|38| **1. Hello** | Language + first impression | Preferred language |39| **2. You** | Who they are, what drains them | Role, pain points, relationship framing, AI name |40| **3. Personality** | How the AI should behave and talk | Core traits, communication style, autonomy level, pushback preference |41| **4. Depth** | Aspirations, blind spots, dealbreakers | Long-term vision, failure philosophy, boundaries |4243Phase details and conversation strategies are in `references/conversation-guide.md`.4445## Extraction Tracker4647Mentally track these fields as the conversation progresses. You need **all required fields** before generating.4849| Field | Required | Source Phase |50|-------|----------|-------------|51| Preferred language | ✅ | 1 |52| User's name | ✅ | 2 |53| User's role / context | ✅ | 2 |54| AI name | ✅ | 2 |55| Relationship framing | ✅ | 2 |56| Core traits (3–5 behavioral rules) | ✅ | 3 |57| Communication style | ✅ | 3 |58| Pushback / honesty preference | ✅ | 3 |59| Autonomy level | ✅ | 3 |60| Failure philosophy | ✅ | 4 |61| Long-term vision | nice-to-have | 4 |62| Blind spots / boundaries | nice-to-have | 4 |6364If the user is direct and thorough, you can reach generation in 5 rounds. If they're exploratory, take up to 8. Never exceed 8 — if you're still missing fields, make your best inference and confirm.6566## Generation6768Once you have enough information:69701. Read `templates/SOUL.template.md` if you haven't already.712. Generate the SOUL.md following the template structure exactly.723. Present it warmly and ask for confirmation. Frame it as "here's [Name] on paper — does this feel right?"734. Iterate until the user confirms.745. Call the `setup_agent` tool with the confirmed SOUL.md content and a one-line description:75 ```76 setup_agent(soul="<full SOUL.md content>", description="<one-line description>")77 ```78 The tool will persist the SOUL.md and finalize the agent setup automatically.796. After the tool returns successfully, confirm: "✅ [Name] is officially real."8081**Generation rules:**82- The final SOUL.md **must always be written in English**, regardless of the user's preferred language or conversation language.83- Every sentence must trace back to something the user said or clearly implied. No generic filler.84- Core Traits are **behavioral rules**, not adjectives. Write "argue position, push back, speak truth not comfort" — not "honest and brave."85- Voice must match the user. Blunt user → blunt SOUL.md. Expressive user → let it breathe.86- Total SOUL.md should be under 300 words. Density over length.87- Growth section is mandatory and mostly fixed (see template).88- You **must** call `setup_agent` — do not write the file manually with bash tools.89- If `setup_agent` returns an error, report it to the user and do not claim success.