Onboarding that reaches a first result
Keep setup short, make optional steps explicit, and define how someone resumes.
Jan Arvin Mito · Version 1.0.0 · Updated
Decisions to make
- User task
purpose - Name the person, the task they need to finish, and the observable outcome. Keep one primary task.
- Primary action
primaryAction - Specify the action label, when it is available, what it changes, and how success is confirmed.
- Loading
loading - Describe what stays visible during a request, how progress is communicated, and how repeated actions are prevented.
- Empty state
empty - Distinguish a first visit, no results, and unavailable data where relevant. Give a useful next step.
- Error and recovery
error - State where errors appear, which input is preserved, and how someone retries or recovers without repeating completed work.
- Keyboard and focus
keyboard - Define native controls, tab order, focus visibility, focus after updates, and any Escape or arrow-key behavior.
- Labels and feedback
accessibility - Name controls and errors clearly, describe screen-reader announcements, and keep meaning available without relying only on color.
- Narrow and wide layouts
responsive - Describe how content reflows at 320px, what remains visible, and the maximum reading width on wide screens. Do not shrink text to make it fit.
- Completion
success - Specify the visible result, whether focus moves, and how the user continues or undoes the action when supported.
- Steps and required information
steps - List the smallest sequence needed to reach a useful result. Explain why each required input is needed and identify optional steps.
- Back, exit, and resume
resume - Specify what is saved, for how long, where it is stored, and what happens on Back, reload, or exit. Do not imply persistence that does not exist.
- First useful result
firstValue - Name the first useful outcome and the exact destination after setup. Avoid ending on a generic success screen without a next action.
Check the result
- Skip every optional step: the person can still reach the first useful result.
- Go back a step: entered values remain available according to the documented persistence policy.
- Reload halfway through: either resume correctly or clearly explain that the setup must restart.
- Finish with a keyboard: focus lands on a meaningful destination and the result is announced.
These are starting requirements, not a certification or a substitute for testing with people. Record a reason when a behavior does not apply.
Use with an agent
Connect Amito to your AI assistant, fetch spec:onboarding, and describe the behavior for each decision above. Ask the agent to run validate_design_spec to find missing decisions and placeholders.
Specification starter
{
"pattern": "onboarding",
"decisions": {
"purpose": "",
"primaryAction": "",
"loading": "",
"empty": "",
"error": "",
"keyboard": "",
"accessibility": "",
"responsive": "",
"success": "",
"steps": "",
"resume": "",
"firstValue": ""
}
}