Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Onboarding conversation to generate a user profile.
.claude/skills/hezaohezao-bootstrap/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 74% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 192% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 120% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 37% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 105% | 0% |
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.
gentle pushback. Mirror their energy and vocabulary.
Phase 3, the user should feel understood.
distill, advance.
out a form.
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 |
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.
Once you have enough information:
markdown# 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>
paper — does this feel right?"
write_file to .poirot/profile.md:write_file(".poirot/profile.md", "<full profile content>").poirot/profile.md."Generation rules:
No generic filler.
push back, speak truth not comfort" — not "honest and brave."
it breathe.
write_file returns an error, report it to the user and do not claimsuccess.
than dragging on
"speak truth even when uncomfortable" is a rule
write_file to .poirot/profile.md; don't justprint to chat
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 8,494 | 5,269 | -38% | 1 | 1 | 0% | 1,104 | 1,921 | +74% | 0 | 0 | — |
case-02 | fail→pass | 18,998 | 3,736 | -80% | 1 | 1 | 0% | 537 | 1,569 | +192% | 0 | 0 | — |
case-03 | fail→pass | 5,763 | 7,161 | +24% | 1 | 1 | 0% | 793 | 1,743 | +120% | 0 | 0 | — |
case-04 | pass→fail | 8,330 | 14,439 | +73% | 1 | 1 | 0% | 1,104 | 2,685 | +143% | 0 | 0 | — |
case-05 | pass→pass | 8,566 | 39,171 | +357% | 1 | 1 | 0% | 1,219 | 3,204 | +163% | 0 | 0 | — |
case-06 | pass→fail | 4,882 | 12,791 | +162% | 1 | 1 | 0% | 785 | 3,641 | +364% | 0 | 0 | — |
case-07 | fail→pass | 12,602 | 3,824 | -70% | 1 | 1 | 0% | 1,269 | 1,740 | +37% | 0 | 0 | — |
case-08 | fail→pass | 10,238 | 9,869 | -4% | 1 | 1 | 0% | 1,379 | 2,831 | +105% | 0 | 0 | — |
case-09 | fail→pass | 6,545 | 10,331 | +58% | 1 | 1 | 0% | 961 | 2,298 | +139% | 0 | 0 | — |
case-10 | fail→pass | 6,931 | 9,188 | +33% | 1 | 1 | 0% | 966 | 2,572 | +166% | 0 | 0 | — |
case-11 | fail→fail | 7,966 | 3,192 | -60% | 1 | 1 | 0% | 1,123 | 1,620 | +44% | 0 | 0 | — |
case-12 | fail→pass | 5,973 | 2,122 | -64% | 1 | 1 | 0% | 844 | 1,503 | +78% | 0 | 0 | — |
case-13 | pass→pass | 10,489 | 5,017 | -52% | 1 | 1 | 0% | 1,626 | 1,939 | +19% | 0 | 0 | — |
case-14 | fail→pass | 9,250 | 3,761 | -59% | 1 | 1 | 0% | 1,057 | 1,711 | +62% | 0 | 0 | — |
case-15 | pass→pass | 14,815 | 7,217 | -51% | 1 | 1 | 0% | 1,138 | 2,210 | +94% | 0 | 0 | — |
case-16 | fail→pass | 19,354 | 11,877 | -39% | 1 | 1 | 0% | 1,595 | 2,253 | +41% | 0 | 0 | — |
case-17 | pass→pass | 7,822 | 7,797 | -0% | 1 | 1 | 0% | 1,039 | 1,969 | +90% | 0 | 0 | — |
case-18 | pass→pass | 10,140 | 8,486 | -16% | 1 | 1 | 0% | 1,369 | 2,419 | +77% | 0 | 0 | — |
case-19 | fail→fail | 132,056 | 8,001 | -94% | 1 | 1 | 0% | 1,852 | 2,321 | +25% | 0 | 0 | — |
case-20 | fail→pass | 6,342 | 4,570 | -28% | 1 | 1 | 0% | 817 | 1,923 | +135% | 0 | 0 | — |
case-21 | fail→pass | 9,853 | 124,607 | +1165% | 1 | 1 | 0% | 1,275 | 1,652 | +30% | 0 | 0 | — |
case-22 | fail→fail | 4,118 | 2,428 | -41% | 1 | 1 | 0% | 533 | 1,494 | +180% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +45 percentage points is the difference between those two pass rates over the 22 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.