Bootstrap Profile
SkillDev toolsOnboarding conversation to generate a user profile.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Bootstrap Profile skill
What this skill tells your AI
The instructions your AI receives, as published by hezaohezao/poirot in poirot/backend/agents/skill/builtin_skills/core/bootstrap/SKILL.md and read by ahel’s review.
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 a
SOUL.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
Signals
- GitHub stars
- 220
- Forks
- 19
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
bootstrap-hezaohezao- Source
- github.com/hezaohezao/poirot