Bootstrap Profile

SkillDev tools

Onboarding conversation to generate a user profile.

Available today. Use it from your connected AI after setup.

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.md via a setup_agent tool. Poirot has no setup_agent tool or SOUL.md concept. This version generates .poirot/profile.md (a user profile) via write_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.

PhaseGoalKey Extractions
1. HelloLanguage + first impressionPreferred language
2. YouWho they are, what drains themRole, pain points, relationship framing, agent name
3. PersonalityHow the agent should behave and talkCore traits, communication style, autonomy level, pushback preference
4. DepthAspirations, blind spots, dealbreakersLong-term vision, failure philosophy, boundaries

Extraction Tracker

Mentally track these fields as the conversation progresses. You need all required fields before generating.

FieldRequiredSource Phase
Preferred language1
User's name2
User's role / context2
Agent name2
Relationship framing2
Core traits (3–5 behavioral rules)3
Communication style3
Pushback / honesty preference3
Autonomy level3
Failure philosophy4
Long-term visionnice-to-have4
Blind spots / boundariesnice-to-have4

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:

  1. 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>
  1. Present it warmly and ask for confirmation. Frame it as "here's [Name] on paper — does this feel right?"
  2. Iterate until the user confirms.
  3. Save with write_file to .poirot/profile.md:
write_file(".poirot/profile.md", "<full profile content>")
  1. 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_file returns 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_file to .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