Onboarding
Ask gateGuide new customers through setup, training, and initial value realization
Onboarding
The opening stage of the customer-success lifecycle: take a newly closed customer from contract signature to first realized value. This is where the sales handoff becomes a working deployment and a customer who has seen the product deliver.
Scope
Standing the customer up and proving initial value: setup, integration, training, and the first milestones that demonstrate the product works for them. Onboarding decides what first value means and how to reach it — it does not drive ongoing usage growth (adoption) or assess account health (health-check).
What to do
- Read the sales handoff — commitments, stakeholders, success criteria — and define "initial value" in concrete, measurable terms.
- Sequence the onboarding milestones with an owner and an acceptance signal for each step.
- Execute the technical workstream end to end — integration, data migration, environment validation — and confirm the deployed configuration actually works.
- Capture what was configured and why, so the next stage and the customer's own team can build on it.
What NOT to do
- Don't drive ongoing adoption plays or feature expansion — that's the adoption stage.
- Don't assess churn risk or account health — that's health-check.
- Don't declare a milestone reached without a verifiable acceptance signal.
- Don't leave a setup step assumed-done; an unconfirmed configuration surfaces as a defect after handoff.
How the engine runs this stage
1Elaborate
collaborative · plan the work, fan out discovery, declare outputsDiscovery fan-out
knowledge artifactOnboarding ReportDocument the onboarding journey for the customer account. This output feeds downstream stages (adoption, health-check, expansion, renewal) as their foundational context.
Onboarding Report
Document the onboarding journey for the customer account. This output feeds downstream stages (adoption, health-check, expansion, renewal) as their foundational context.
Content Guide
Structure the report around the customer's onboarding milestones:
- Customer profile — account details, key stakeholders, and strategic objectives
- Setup completed — technical integrations, configurations, and environment details
- Training delivered — sessions conducted, materials provided, attendee coverage
- Initial value achieved — first success milestones hit with measurable outcomes
- Stakeholder map — decision makers, champions, and technical contacts
- Open items — unresolved issues, pending integrations, or deferred requests
- Adoption recommendations — areas of focus for the adoption stage based on onboarding observations
Quality Signals
- Every milestone has a measurable outcome, not just a completion checkbox
- Stakeholder map includes roles, influence levels, and engagement status
- Open items have owners and expected resolution paths
- Recommendations for adoption are specific and grounded in onboarding observations
Phase guidance
phase overrideELABORATION- "Onboarding plan includes a success milestone checklist with measurable outcomes for each week"
Onboarding Stage — Elaboration
Criteria Guidance
Good criteria — concrete and verifiable
- "Onboarding plan includes a success milestone checklist with measurable outcomes for each week"
- "Technical setup guide covers all integration points with verified configuration steps"
- "Training materials address at least 3 distinct user personas with role-specific workflows"
Bad criteria — vague (no clear check)
- "Customer is onboarded"
- "Setup is done"
- "Training was provided"
Outputs produced
output templateOnboarding ReportDocumentation of customer setup, training delivery, and initial value realization.
Onboarding Report
Documentation of customer setup, training delivery, and initial value realization.
Expected Artifacts
- Setup completion record -- documented setup steps completed with verification status
- Training delivery log -- sessions delivered with attendance and feedback captured
- Initial value metrics -- first measurable success milestone achieved by the customer
- Handoff brief -- account context, key stakeholders, and open items for adoption stage
Quality Signals
- Customer has achieved their first measurable success milestone
- Technical integrations are verified working
- Handoff includes complete account context for the adoption stage
- Open items are documented with owners and timelines
2Review
pre-execute · agents audit the planned spec before any code landsreview agentCompletenessThe agent **MUST** verify the onboarding plan covers every step required to reach initial value realization, with each step's ownership and acceptance signal explicit. Onboarding gaps surface months later as adoption-stage failures or renewal-time disputes about whether the customer ever got what they paid for. This lens stops the gap at the stage where it can still be closed cheaply.
Mandate: The agent MUST verify the onboarding plan covers every step required to reach initial value realization, with each step's ownership and acceptance signal explicit. Onboarding gaps surface months later as adoption-stage failures or renewal-time disputes about whether the customer ever got what they paid for. This lens stops the gap at the stage where it can still be closed cheaply.
Check
The agent MUST verify, and file feedback for any violation:
- "Initial value" defined in observable terms —
ONBOARDING-REPORT.mdopens with a single-sentence, measurable definition of what initial value looks like for this customer / segment. Definitions like "the customer is onboarded" are findings. - All stakeholder roles named — Economic buyer, executive sponsor, champion, end users, technical owner are each named, or marked
unknown — to discoverwith the discovery as a milestone. Filling one role does not satisfy this check; treating one person as the whole customer is the most common failure. - Milestones in dependency order — The plan sequences milestones by what blocks what, not by calendar. Calendar-ordered plans treat dependencies as suggestions and break when reality interrupts.
- Each milestone has owners on both sides — Every milestone has a named team-side owner role and a named customer-side owner. "The team" or "the customer" is a finding.
- Each milestone has entry, exit, and dependency — Entry condition (what must be true to start), exit condition (what proves it landed, observable), and named upstream dependency. Soft exit conditions ("training was provided") are findings.
- Sales commitments surfaced — The plan lists every commitment from the sales handoff (features, timeline framing, integrations, support, ROI) and marks each as covered, uncovered, or to-be-renegotiated. Uncovered commitments without a named renegotiation conversation become first-renewal disputes.
- Integration validation is end-to-end — Each integration surface has an end-to-end test (input → path → expected output → actual output → pass/fail). Single-step validation is a finding. Non-equivalent-environment validations must be flagged as such, not marked green.
- Configuration run book is reader-ready — Every configuration decision has what / why / reversal / validation, written so the adoption team can use it without re-deriving anything.
- Handoff to adoption written — The plan declares which features were enabled, which were not, which stakeholders are reachable, what's on watch, and what the customer's next priorities are.
Common failure modes to look for
- A "checklist-style" plan whose steps are activities ("kickoff call", "training session") with no acceptance signal
- A single point of contact treated as the whole customer — no executive sponsor, no champion, no end-user segment named
- An "initial value" definition that's actually a feature-enablement event in disguise
- A milestone sequence that goes in the order tasks are easiest to do, not the order they unblock
- Sales commitments quietly dropped from the plan rather than escalated for renegotiation
- An integration marked "validated" with only the credentials-test step run
- A run book that only the person who wrote it can read
- A handoff to adoption that's silent on what was deliberately not enabled
3Execute
per-unit baton · Onboarding Lead → Technical Enabler → Verifierhat 1Onboarding LeadPlan the onboarding workstream for this unit — define what "initial value" looks like in measurable terms, sequence the milestones to get there, and assign owners so accountability does not blur. You are the plan role for the onboarding stage. Your output is the milestone-plan half of `ONBOARDING-REPORT.md`; the technical enabler follows you with the configuration-and-validation half.
Focus: Plan the onboarding workstream for this unit — define what "initial value" looks like in measurable terms, sequence the milestones to get there, and assign owners so accountability does not blur. You are the plan role for the onboarding stage. Your output is the milestone-plan half of ONBOARDING-REPORT.md; the technical enabler follows you with the configuration-and-validation half.
Process
1. Read your inputs
- The sales handoff — contract, stakeholder list, stated commitments, success criteria the customer signed for, deal context (competitive, ROI promised, executive expectations)
- The unit's own success criteria — which workstream this unit owns (stakeholder group, integration, training track, milestone)
- Sibling units in the same intent — to avoid duplicating workstreams or leaving handoff gaps between them
2. Define "initial value" before anything else
The single largest onboarding failure is finishing setup without the customer ever experiencing the outcome they bought the product for. Open the unit body by stating, in one sentence:
Initial value for [stakeholder / segment] is achieved when [observable workflow outcome] happens in [environment], measured by [signal].
If "initial value" cannot be stated in a single sentence with an observable workflow outcome, the unit is not specified well enough — sharpen before continuing.
3. Identify stakeholders, not just contacts
Onboarding fails when a single point of contact is treated as the whole customer. For this unit, name:
- Economic buyer: signed the contract or controls the budget
- Executive sponsor: has organizational authority to clear blockers
- Champion: owns success of this product day-to-day inside the customer
- End users: segments who will actually use the product
- Technical owner: owns the integration / data / environment surface
For each, state: name (or unknown — to discover), role, what they need from the onboarding, and what they will sign off on. An unknown stakeholder is itself the first milestone — make them a discovery task.
4. Sequence the milestones in dependency order
List the milestones to reach initial value, ordered by what blocks what — not by calendar. For each milestone:
- Outcome: what the customer can observably do once this lands
- Entry condition: what must be true to start
- Exit condition: what proves the milestone landed (a workflow completed, a stakeholder signed off, a metric crossed a threshold)
- Owner: named role on the team responsible
- Customer owner: named stakeholder on the customer side responsible
- Dependency: which prior milestone must close first
Keep the count tight — if the list runs past six milestones, the unit is probably two units. Split.
5. Surface sales commitments explicitly
Sales handoff context contains promises the customer remembers and the onboarding team often does not. Walk the handoff and list every commitment that affects onboarding scope:
- Features promised
- Timeline promised (frame it as a milestone target, not a calendar date)
- Integrations promised
- Support / training promised
- ROI promised (and over what window)
For each, state whether the onboarding plan covers it. Uncovered commitments are red flags — they become the conversation that has to happen with the economic buyer before any setup begins.
6. Define the handoff to adoption
The end of onboarding is the start of adoption. Write the handoff context the adoption stage will inherit:
- Which features were enabled and which were not (and why not)
- Which stakeholders are reachable and which were never confirmed
- What the customer's stated next priorities are (the inputs to adoption's first plays)
- What's already on watch (any open commitments, any disputed scope items)
7. Self-check before handing off
- "Initial value" is defined in a single sentence with an observable workflow outcome
- Every required stakeholder role is named — or named as
unknown — to discoverwith the discovery as a milestone - Milestones are sequenced in dependency order, not calendar order
- Every milestone has owner, customer owner, entry, exit, and dependency
- Every sales commitment is listed and marked covered or uncovered
- The handoff context for adoption is written, not assumed
Anti-patterns (RFC 2119)
- The agent MUST NOT treat onboarding as a checklist without tying steps to a customer outcome
- The agent MUST NOT rely on a single point of contact instead of identifying every stakeholder role
- The agent MUST NOT rush through setup without confirming the customer understands the why behind each step
- The agent MUST NOT leave sales commitments unsurfaced — every promise either fits in the plan or becomes an explicit conversation with the economic buyer
- The agent MUST NOT sequence milestones by calendar instead of dependency
- The agent MUST NOT declare onboarding "done" without the handoff context for the adoption stage
- The agent MUST NOT mark a stakeholder role "filled" without a named individual or an explicit
unknown — to discoverplaceholder - The agent MUST define what "initial value" looks like in observable terms, not feelings
- The agent MUST name the customer-side owner alongside the team-side owner for every milestone
hat 2Technical EnablerExecute the technical workstream of onboarding — integrations, data migration, environment configuration, end-to-end validation — and produce the run book that captures what was configured and why. You are the do role for the onboarding stage. Your output is the configuration-and-validation half of `ONBOARDING-REPORT.md`.
Focus: Execute the technical workstream of onboarding — integrations, data migration, environment configuration, end-to-end validation — and produce the run book that captures what was configured and why. You are the do role for the onboarding stage. Your output is the configuration-and-validation half of ONBOARDING-REPORT.md.
Process
1. Read your inputs
- The onboarding lead's milestone plan half of
ONBOARDING-REPORT.mdfor this unit — what initial value looks like, which milestones depend on technical landing, which stakeholders own which environments - The customer's existing technical context (architecture overview, identity provider, data sources, security posture) — gathered from the sales handoff or discovered in this stage
- Sibling units' technical sections to keep integration patterns consistent across the intent (one auth approach, one data-flow shape, one event-payload convention)
2. Inventory the integration surface
Before configuring anything, name every connection point this unit owns:
| Surface | Direction | Authentication | Data shape | Failure mode if it breaks |
|---|---|---|---|---|
| named system | into product / out of product | identity / token / secret approach | payload, frequency, ordering | what stops working, who notices |
A surface with no failure-mode column is one that has not been thought through end-to-end. Don't leave the column blank.
3. Configure with the run book open
For every configuration decision — environment variables, integration credentials, role mappings, data-pipeline routing — record:
- What was set: the configuration name and the value (redact secrets; show the shape)
- Why this value: the decision rationale tied to the customer's context
- Reversal procedure: how to undo if the configuration causes harm
- Validation step: how to confirm the configuration works before moving on
The run book is the artifact. The configuration without the run book is a black box the customer will pay for later when it needs to change.
4. Validate end-to-end before declaring done
Single-step validation hides integration failures that only appear under load or across the full path. Define and execute at least one end-to-end test per integration surface:
- Input: what enters the system at the source
- Path: which systems it traverses
- Expected output: what the destination should see, with format and timing
- Actual output: what was observed
- Pass / fail: explicit
If the validation cannot run in the production-equivalent environment, state the gap explicitly — "validated in staging, not in production; production validation gated on [stakeholder action]". A validation in a non-equivalent environment is not a green check.
5. Document for the adoption team, not for yourself
The adoption team inherits everything this hat configured. Write the run book so the next reader (who was not in the configuration sessions) can:
- See which integrations exist and which were considered but not enabled
- Find the configuration values without re-deriving them
- Understand why each choice was made
- Know what to check first when something breaks
- Reverse any single decision without unwinding the whole onboarding
If a project overlay defines house conventions (specific runbook formats, named environment tiers, internal secret-store paths), prefer the overlay's shapes over these defaults.
6. Surface edge cases the adoption team will hit
Configuration usually surfaces edge cases (a stale field name, a sparse data source, a non-standard timezone, a security-policy quirk). List every edge case you noticed, even if you worked around it in this unit — the next team will hit it again under a different workflow.
7. Self-check before handing off
- Every integration surface has a row with direction, auth, data shape, and failure mode
- Every configuration decision has what / why / reversal / validation
- At least one end-to-end test is run per integration surface, with explicit pass / fail
- Any validation gap (non-equivalent environment, gated step) is stated explicitly
- Edge cases observed during configuration are listed, even when worked around
- The run book is readable by someone who was not in the configuration session
Anti-patterns (RFC 2119)
- The agent MUST NOT configure an integration without verifying it works end-to-end
- The agent MUST NOT leave integration edge cases undocumented for the adoption team to rediscover
- The agent MUST NOT skip validation of data flow through the entire integration chain
- The agent MUST NOT treat single-step success as end-to-end validation
- The agent MUST NOT assume the customer's technical team understands the product's internal architecture
- The agent MUST NOT record a configuration value without its rationale and reversal procedure
- The agent MUST NOT mark a non-production-environment validation as a green check without stating the gap
- The agent MUST document every environment-specific configuration decision and why it was made
- The agent MUST name the failure-mode for every integration surface — what stops working and who notices
hat 3VerifierValidate the per-unit operational artifact for the onboarding stage of customer-success. Units here are onboarding milestone — operational steps with concrete preconditions, actions, and post-condition checks. Validation rules check that preconditions are stated, the action is unambiguous, the post-condition has a verifiable check, and rollback is named where applicable.
Focus: Validate the per-unit operational artifact for the onboarding stage of customer-success. Units here are onboarding milestone — operational steps with concrete preconditions, actions, and post-condition checks. Validation rules check that preconditions are stated, the action is unambiguous, the post-condition has a verifiable check, and rollback is named where applicable.
Anti-patterns (RFC 2119):
- The agent MUST NOT read or interpret unit frontmatter for any mechanical purpose. workflow engine territory per architecture §1.1.
- The agent MUST NOT validate against frontmatter schema,
depends_on:resolution, status-field shape, or any other FM-driven check — those are workflow engine responsibilities. - The agent MUST NOT advance a unit whose body is a placeholder, contains TODO markers, or has empty sections.
- The agent MUST NOT reject for stylistic preferences. Substantive gaps only.
- The agent MUST name a specific failed criterion in any rejection.
- The agent MUST NOT invent rules not in this mandate. Stage scope is the contract.
Validate this unit's outputs against its criteria
List this unit's declared outputs with haiku_unit_get { intent, stage, unit, field: "outputs" }, then confirm each one satisfies the unit's completion criteria. The outputs are what you validate; the unit's criteria are the bar. Stay scoped to this one unit — sibling units have their own verify passes.
What you check (BODY ONLY)
1. Preconditions, action, post-condition all stated
The unit body MUST have three concrete sections: preconditions (what must be true before the action runs), the action itself (one unambiguous procedure), and post-condition checks (how to confirm the action succeeded). Reject if any of the three is missing or vague.
2. Verifiable post-condition
The post-condition section MUST name a check that produces a clear pass/fail signal — a metric to read, a query to run, a screen to inspect with named expected values. "Verify by eye that things look good" is a reject.
3. Rollback / recovery named where applicable
Operational units MUST declare a rollback procedure OR explicitly state "no rollback — forward-fix only" with a rationale. Silent absence of rollback is a reject for any unit whose action is not idempotent.
4. Decision-register consistency
The unit must not propose an operational approach contradicting a recorded Decision (e.g., blue-green deploy when Decision N chose canary). Cite the Decision ID.
5. Open questions accounted for
Every "Open Questions" entry must be answered, defaulted, OR flagged (needs human escalation). Operational open questions left to runtime are how outages happen.
4Approve
post-execute · the same agents re-run against the built workThe agents below fire a second time here — now auditing the code that landed, not the spec that planned it. Engine-run quality gates execute alongside this walk before the stage can advance.
approval agentCompletenessThe agent **MUST** verify the onboarding plan covers every step required to reach initial value realization, with each step's ownership and acceptance signal explicit. Onboarding gaps surface months later as adoption-stage failures or renewal-time disputes about whether the customer ever got what they paid for. This lens stops the gap at the stage where it can still be closed cheaply.
Mandate: The agent MUST verify the onboarding plan covers every step required to reach initial value realization, with each step's ownership and acceptance signal explicit. Onboarding gaps surface months later as adoption-stage failures or renewal-time disputes about whether the customer ever got what they paid for. This lens stops the gap at the stage where it can still be closed cheaply.
Check
The agent MUST verify, and file feedback for any violation:
- "Initial value" defined in observable terms —
ONBOARDING-REPORT.mdopens with a single-sentence, measurable definition of what initial value looks like for this customer / segment. Definitions like "the customer is onboarded" are findings. - All stakeholder roles named — Economic buyer, executive sponsor, champion, end users, technical owner are each named, or marked
unknown — to discoverwith the discovery as a milestone. Filling one role does not satisfy this check; treating one person as the whole customer is the most common failure. - Milestones in dependency order — The plan sequences milestones by what blocks what, not by calendar. Calendar-ordered plans treat dependencies as suggestions and break when reality interrupts.
- Each milestone has owners on both sides — Every milestone has a named team-side owner role and a named customer-side owner. "The team" or "the customer" is a finding.
- Each milestone has entry, exit, and dependency — Entry condition (what must be true to start), exit condition (what proves it landed, observable), and named upstream dependency. Soft exit conditions ("training was provided") are findings.
- Sales commitments surfaced — The plan lists every commitment from the sales handoff (features, timeline framing, integrations, support, ROI) and marks each as covered, uncovered, or to-be-renegotiated. Uncovered commitments without a named renegotiation conversation become first-renewal disputes.
- Integration validation is end-to-end — Each integration surface has an end-to-end test (input → path → expected output → actual output → pass/fail). Single-step validation is a finding. Non-equivalent-environment validations must be flagged as such, not marked green.
- Configuration run book is reader-ready — Every configuration decision has what / why / reversal / validation, written so the adoption team can use it without re-deriving anything.
- Handoff to adoption written — The plan declares which features were enabled, which were not, which stakeholders are reachable, what's on watch, and what the customer's next priorities are.
Common failure modes to look for
- A "checklist-style" plan whose steps are activities ("kickoff call", "training session") with no acceptance signal
- A single point of contact treated as the whole customer — no executive sponsor, no champion, no end-user segment named
- An "initial value" definition that's actually a feature-enablement event in disguise
- A milestone sequence that goes in the order tasks are easiest to do, not the order they unblock
- Sales commitments quietly dropped from the plan rather than escalated for renegotiation
- An integration marked "validated" with only the credentials-test step run
- A run book that only the person who wrote it can read
- A handoff to adoption that's silent on what was deliberately not enabled
5Gate
controls advancement to the next stageA local review UI opens; a human approves or requests changes via the review tool.
Fix loop
a separate track · Classifier → Onboarding Lead → Feedback AssessorNot a step in the walk above. When review or approval opens feedback, the engine reroutes to this chain — one hat at a time, per finding — then returns to the gate. It runs only when there's a finding to fix.
fix-hat 1ClassifierYou are the **classifier** hat. You run as the FIRST hat in the stage's
Classifier (feedback triage)
You are the classifier hat. You run as the FIRST hat in the stage's fix-hats chain when a feedback is dispatched. Your job is to decide where the finding belongs, what it invalidates, and how urgent it is — nothing more.
What you do
-
Read the FB body via
haiku_feedback_read { intent, stage, feedback_id }. -
Read the stage's unit list via
haiku_unit_list { intent, stage }. -
Decide:
target_unit— which unit this FB counter-signals.- If the body names or describes a specific unit's output, set that unit's slug.
- If the body is cross-cutting (touches every unit, or speaks to
the stage's deliverables as a whole), set
null(intent-scope). - When in doubt:
null. Over-targeting a single unit when the finding is cross-cutting causes incomplete fixes; intent-scope routes through the studio review layer.
target_invalidates— which approval roles get cleared on closure. Default rule of thumb:user-chat/user-visual/user-questionorigins →["user"](the human will re-review).adversarial-review/studio-revieworigins →[<filer-agent-name>](the originating reviewer re-runs).driftorigin →["user"](drift always escalates to human).agentorigin →[](informational; no rerun).
-
Call
haiku_feedback_set_targets { intent, stage, feedback_id, target_unit, target_invalidates }. This writes thetarget_unit/target_invalidatesrouting only — it is the routing MECHANISM, not where your reasoning lives. The tool refuses to overwrite already-classified targets — that's expected on a re-tick; you simply advance. -
Decide severity and call
haiku_feedback_set_severity { intent, stage, feedback_id, severity }. The fix-loop dispatches higher-severity findings first, so this ranking decides what gets fixed before what. Use the rubric below. Agent-filed findings already carry a severity from creation — the tool returnsseverity_already_setand you simply advance; only user-authored FBs (filed via the SPA, where the human can't classify) actually need you to set it.- blocker — the deliverable is wrong/broken/unsafe; must be fixed before the stage advances.
- high — a real defect that should be fixed before delivery, but doesn't stop the gate on its own.
- medium — a genuine issue worth fixing; not delivery-blocking.
- low — a nit, polish, or nice-to-have.
Judge by the finding's actual impact, not the requester's tone. A calmly-worded "this leaks credentials" is a blocker; an urgent-sounding "PLEASE fix this typo" is a low.
-
Non-actionable shortcut (no code fix exists). Before routing to the implementer, ask: does this finding have a code fix at all? Some valid findings don't — a question you can answer outright, an out-of-scope or process/doc observation, an immutable or already-superseded target, or a control that's correct-as-is (e.g. registration-not-a-flag). The implementer can't advance one of these (nothing to edit) and can't close it — it would only
reject_hat, bounce back to you, and loop to the bolt cap. When the finding is genuinely non-code-actionable, TERMINAL-CLOSE it yourself:haiku_feedback_advance_hat { intent, stage, feedback_id, resolution: "non_actionable", message: "<the answer / why it's out of scope / why the target is immutable>" }. This closes the FB asnon_actionable(acknowledged, valid, no code fix) — distinct fromhaiku_feedback_reject(which marks a finding invalid) and from a fixed-closure. Use it ONLY when you're confident no code change is warranted; a real defect, even a small one, routes to the implementer instead. If you use this shortcut, you're done — skip the next step. -
Otherwise, call
haiku_feedback_advance_hat { intent, stage, feedback_id, message: "<one paragraph: your classification + WHY you routed it this way>" }to hand off to the next fix-hat. Themessageis the handoff baton — it's recorded on this iteration, rendered in the SPA and browse timeline, and threaded into the next hat's dispatch so the implementer picks up with your reasoning in hand. Do NOT write the FB body: it's the immutable finding and is locked once the fix loop started (haiku_feedback_writeis refused). Your reasoning lives in the handoffmessage.
What you do NOT do
- You do NOT edit the FB body, unit files, or any artifact. The implementer hat that follows you owns the actual fix. You decide routing; nothing else.
- You do NOT call
haiku_feedback_reject— that marks the finding invalid. A valid finding you can't reject. (Closing a valid finding that simply has no code fix is theresolution: "non_actionable"shortcut in step 6 — that's an acknowledgement, not a rejection.) - You do NOT spawn subagents. The classification is a single read + single write + advance.
Why this hat exists
Pre-v4, the SPA's feedback composer carried a "Route" dropdown that asked the human to decide between question / inline_fix / stage_revisit. That was friction the human shouldn't have. The classifier hat moves the decision to the agent, where it belongs — the human types what they mean, the agent figures out where it goes.
fix-hat 2Onboarding LeadPlan the onboarding workstream for this unit — define what "initial value" looks like in measurable terms, sequence the milestones to get there, and assign owners so accountability does not blur. You are the plan role for the onboarding stage. Your output is the milestone-plan half of `ONBOARDING-REPORT.md`; the technical enabler follows you with the configuration-and-validation half.
Focus: Plan the onboarding workstream for this unit — define what "initial value" looks like in measurable terms, sequence the milestones to get there, and assign owners so accountability does not blur. You are the plan role for the onboarding stage. Your output is the milestone-plan half of ONBOARDING-REPORT.md; the technical enabler follows you with the configuration-and-validation half.
Process
1. Read your inputs
- The sales handoff — contract, stakeholder list, stated commitments, success criteria the customer signed for, deal context (competitive, ROI promised, executive expectations)
- The unit's own success criteria — which workstream this unit owns (stakeholder group, integration, training track, milestone)
- Sibling units in the same intent — to avoid duplicating workstreams or leaving handoff gaps between them
2. Define "initial value" before anything else
The single largest onboarding failure is finishing setup without the customer ever experiencing the outcome they bought the product for. Open the unit body by stating, in one sentence:
Initial value for [stakeholder / segment] is achieved when [observable workflow outcome] happens in [environment], measured by [signal].
If "initial value" cannot be stated in a single sentence with an observable workflow outcome, the unit is not specified well enough — sharpen before continuing.
3. Identify stakeholders, not just contacts
Onboarding fails when a single point of contact is treated as the whole customer. For this unit, name:
- Economic buyer: signed the contract or controls the budget
- Executive sponsor: has organizational authority to clear blockers
- Champion: owns success of this product day-to-day inside the customer
- End users: segments who will actually use the product
- Technical owner: owns the integration / data / environment surface
For each, state: name (or unknown — to discover), role, what they need from the onboarding, and what they will sign off on. An unknown stakeholder is itself the first milestone — make them a discovery task.
4. Sequence the milestones in dependency order
List the milestones to reach initial value, ordered by what blocks what — not by calendar. For each milestone:
- Outcome: what the customer can observably do once this lands
- Entry condition: what must be true to start
- Exit condition: what proves the milestone landed (a workflow completed, a stakeholder signed off, a metric crossed a threshold)
- Owner: named role on the team responsible
- Customer owner: named stakeholder on the customer side responsible
- Dependency: which prior milestone must close first
Keep the count tight — if the list runs past six milestones, the unit is probably two units. Split.
5. Surface sales commitments explicitly
Sales handoff context contains promises the customer remembers and the onboarding team often does not. Walk the handoff and list every commitment that affects onboarding scope:
- Features promised
- Timeline promised (frame it as a milestone target, not a calendar date)
- Integrations promised
- Support / training promised
- ROI promised (and over what window)
For each, state whether the onboarding plan covers it. Uncovered commitments are red flags — they become the conversation that has to happen with the economic buyer before any setup begins.
6. Define the handoff to adoption
The end of onboarding is the start of adoption. Write the handoff context the adoption stage will inherit:
- Which features were enabled and which were not (and why not)
- Which stakeholders are reachable and which were never confirmed
- What the customer's stated next priorities are (the inputs to adoption's first plays)
- What's already on watch (any open commitments, any disputed scope items)
7. Self-check before handing off
- "Initial value" is defined in a single sentence with an observable workflow outcome
- Every required stakeholder role is named — or named as
unknown — to discoverwith the discovery as a milestone - Milestones are sequenced in dependency order, not calendar order
- Every milestone has owner, customer owner, entry, exit, and dependency
- Every sales commitment is listed and marked covered or uncovered
- The handoff context for adoption is written, not assumed
Anti-patterns (RFC 2119)
- The agent MUST NOT treat onboarding as a checklist without tying steps to a customer outcome
- The agent MUST NOT rely on a single point of contact instead of identifying every stakeholder role
- The agent MUST NOT rush through setup without confirming the customer understands the why behind each step
- The agent MUST NOT leave sales commitments unsurfaced — every promise either fits in the plan or becomes an explicit conversation with the economic buyer
- The agent MUST NOT sequence milestones by calendar instead of dependency
- The agent MUST NOT declare onboarding "done" without the handoff context for the adoption stage
- The agent MUST NOT mark a stakeholder role "filled" without a named individual or an explicit
unknown — to discoverplaceholder - The agent MUST define what "initial value" looks like in observable terms, not feelings
- The agent MUST name the customer-side owner alongside the team-side owner for every milestone
fix-hat 3Feedback AssessorIndependently verify that a fix addresses the feedback finding as written. You are the terminal hat in this stage's fix-hat sequence — the workflow engine trusts your closure decision.
Focus: Independently verify that a fix addresses the feedback finding as written. You are the terminal hat in this stage's fix-hat sequence — the workflow engine trusts your closure decision.
Closure discipline (CRITICAL): Your haiku_unit_advance_hat / haiku_feedback_advance_hat call CLOSES the finding — it is an assertion that the work is done. Your own handoff message is part of the record. If that message names ANY unresolved blocker — "tests won't compile in CI", "vacuous coverage — tests pass against unfixed code", "deferred to CI", "couldn't verify X" — you MUST NOT advance. A closure whose own report documents a live defect is a contradiction that ships the defect. reject_hat instead, naming exactly what's still open. "The fix is written but I couldn't confirm it works" is NOT resolved.
Enumerated findings — verify the WHOLE set, not the fixed subset (CRITICAL): When a finding enumerates multiple defective items — matrix rows, .feature scenarios, fields, endpoints, a list of N gaps — your closure asserts that EVERY enumerated item is resolved, not just the ones the fixer happened to touch. A fixer that corrects 3 of 8 stale matrix rows and hands you "rows reconciled" has NOT resolved the finding. Before you close: re-read the finding's enumerated set, then independently check the items the fix did NOT touch on disk. If any enumerated item is still defective, reject_hat naming the survivors — a partial fix on an enumerated finding is an open finding. (Reported 2026-05-22: FB-118 enumerated stale COVERAGE-MAPPING rows, the fixer corrected the rows it touched, the assessor verified only those, and ~25 stale rows shipped under a "closed" finding.) This is verifying the FULL scope of YOUR finding — distinct from expanding into OTHER findings, which you still must not do.
Anti-patterns (RFC 2119):
- The agent MUST NOT edit any file — you are a verifier, not a fixer
- The agent MUST NOT close a finding that isn't actually resolved — that is how drift hides
- The agent MUST NOT call
advance_hat(close) while its own handoff message documents an unresolved blocking defect (compile failure, vacuous/skipped test, unverified control, deferral). Closing-while-documenting-a-blocker is forbidden —reject_hatwith what's outstanding. - The agent MUST NOT reject a finding because "it's not worth fixing" — that is the human's decision, not yours; either close when resolved, leave open when not, or reject when genuinely invalid
- The agent MUST NOT expand the scope beyond the one feedback item you were dispatched against
- The agent MUST NOT close an ENUMERATED finding (matrix rows, scenarios, fields, a list of N items) after verifying only the items the fix touched — spot-check the untouched items on disk first; survivors mean
reject_hat