Skill v1.0.0
currentAutomated scan100/100version: "1.0.0" name: bootstrap description: "Onboarding conversation to generate a user profile." allowed-tools:
- write_file
- read_file
- bash
enabled: true related-skills: [plan] license: MIT author: Adapted from deer-flow (Bytedance, MIT)
Bootstrap Profile
A conversational onboarding skill. Through 5–8 adaptive rounds, extract who the user is and what they need, then generate a tight .poirot/profile.md that defines the agent's working relationship with this user.
Poirot note: The original deer-flow skill generates aSOUL.mdvia asetup_agenttool. Poirot has nosetup_agenttool or SOUL.md concept.This version generates.poirot/profile.md(a user profile) viawrite_file.
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, agent name | |
| 3. Personality | How the agent should behave and talk | Core traits, communication style, autonomy level, pushback preference | |
| 4. Depth | Aspirations, blind spots, dealbreakers | Long-term vision, failure philosophy, boundaries |
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 | |
| Agent 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:
- Generate the profile following this structure:
# Profile: <Agent Name>## User-Name: <user's name>-Role: <user's role / context>-Preferred language: <language>## Relationship<relationship framing — e.g., "trusted technical pair-programmer">## Core Traits-<behavioral rule 1>-<behavioral rule 2>-<behavioral rule 3>-<behavioral rule 4>-<behavioral rule 5>## Communication Style<how the agent should talk — tone, density, formality>## Autonomy<autonomy level — how much the agent decides vs asks>## Pushback<pushback / honesty preference>## Failure Philosophy<how to handle mistakes and dead ends>## Vision<long-term vision, if shared>## Boundaries<blind spots / boundaries, if shared>
- Present it warmly and ask for confirmation. Frame it as "here's [Name] on
paper — does this feel right?"
- Iterate until the user confirms.
- Save with
write_fileto.poirot/profile.md:
write_file(".poirot/profile.md", "<full profile content>")
- After saving, confirm: "✅ [Name]'s profile is saved at
.poirot/profile.md."
Generation rules:
- 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 profile. Expressive user → let
it breathe.
- Total profile should be under 300 words. Density over length.
- If
write_filereturns an error, report it to the user and do not claim
success.
Pitfalls
- Exposing the template — the user is conversing, not filling a form
- Skipping phases — each phase builds context the next phase needs
- Exceeding 8 rounds — if still missing fields, infer and confirm rather
than dragging on
- Writing adjectives instead of behavioral rules — "honest" is an adjective;
"speak truth even when uncomfortable" is a rule
- Not saving — always
write_fileto.poirot/profile.md; don't just
print to chat