A conversational onboarding skill. Use the information already supplied and ask only useful follow-ups to understand the user and what they need, then generate a tight SOUL.md that defines their AI partner.
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 at start.
Before your first response, read both:
references/conversation-guide.md — how to run each phasetemplates/SOUL.template.md — what you're building towardThe 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.
Use these fields as optional discovery prompts. Include only information the user supplies or confirms; an update may need only one field. Do not require personal details unrelated to the requested customization.
| Field | Include when supported | Source Phase |
|---|---|---|
| Preferred language | ✅ | 1 |
| User's name | ✅ | 2 |
| User's role / context | ✅ | 2 |
| AI name | ✅ | 2 |
| Relationship framing | ✅ | 2 |
| Core traits (supported 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 |
Generate when there is enough information for the requested customization. Skip answered questions, respect the user's desired pace, and leave unknown preferences unspecified instead of inventing them.
Once you have enough information:
templates/SOUL.template.md if you haven't already.setup_agent tool with the confirmed SOUL.md content and a one-line description:```
setup_agent(soul="
```
The tool will persist the SOUL.md and finalize the agent setup automatically.
Generation rules:
setup_agent — do not write the file manually with bash tools.setup_agent returns an error, report it to the user and do not claim success.