Skip to content

Moira User Onboarding

Moira User Onboarding teaches directives, completion conditions, input schemas, and verified progression while helping a first-time user choose from the complete current authorized public catalog.

Terminal window
mcp__moira__start({
action: "prepare",
workflowId: "moira/user-onboarding",
parentExecutionId: "none"
})
mcp__moira__start({ action: "execute", startAttemptId: "<Start attempt ID from prepare>" })

The onboarding flow paginates list() until every reported workflow has been observed. It treats catalog names and descriptions as data, presents every observed identity exactly once, and explains each purpose, deliverable, cost or durability profile, authority boundary, and closest alternatives. It never relies on a frozen catalog.

The user selects an exact qualified owner/slug or the create/edit path through moira/workflow-management-flow, then explicitly chooses start or defer. Start creates exactly that workflow as a child of onboarding and accepts only the actual Process ID from a successful MCP response. It uses skipNotificationCheck: true only to bypass optional ordinary-notification preflight; the flag does not authorize notification, change the child’s authority, or bypass trusted PIN delivery for lock nodes.

When the selected workflow contains a lock node, execute requires a valid Telegram bot token and chat ID for the current user before it creates the child execution. Its stable setup receipt has no Process ID and leaves the handoff incomplete. Onboarding does not configure settings or start a substitute workflow; it prepares the exact selection again only after the relevant external state changes. Defer performs no external mutation.

Onboarding creates no durable artifacts and does not configure settings, publish, deploy, mutate production, or continue the child’s substantive work. Users who already know their goal should start the matching workflow directly.

The execution card shows the run as three blocks: Welcome (greet the user and learn what they want to do) → Choose (point to a matching workflow or suggest creating one) → Launch (start the chosen workflow now or finish). An unclear answer returns to Welcome until the user makes a valid choice. The blocks are derived from the executable graph and add no routes.