diff --git a/.storkit/README.md b/.storkit/README.md index d3e6481b..d78af5ef 100644 --- a/.storkit/README.md +++ b/.storkit/README.md @@ -9,7 +9,11 @@ When you start a new session with this project: -1. **Check Setup Wizard:** Call `wizard_status` to check if project setup is complete. If the wizard is not complete, guide the user through the remaining steps conversationally using `wizard_generate`, `wizard_confirm`, `wizard_skip`, and `wizard_retry`. Do not expose tool names or step numbers to the user — just ask about their project and generate files behind the scenes. +1. **Check Setup Wizard:** Call `wizard_status` to check if project setup is complete. If the wizard is not complete, guide the user through the remaining steps. Important rules for the wizard flow: + - **Be conversational.** Don't show tool names, step numbers, or raw wizard output to the user. + - **On projects with existing code:** Read the codebase and generate each file, then show the user what you wrote and ask if it looks right. + - **On bare projects with no code:** Ask the user what they want to build, what language/framework they plan to use, and generate files from their answers. + - Use `wizard_generate` to create content, show it to the user, then call `wizard_confirm` (they approve), `wizard_retry` (they want changes), or `wizard_skip` (they want to skip this step). 2. **Check for MCP Tools:** Read `.mcp.json` to discover the MCP server endpoint. Then list available tools by calling: ```bash curl -s "$(jq -r '.mcpServers["storkit"].url' .mcp.json)" \ diff --git a/server/src/io/wizard.rs b/server/src/io/wizard.rs index 3f35acc9..4718e4a1 100644 --- a/server/src/io/wizard.rs +++ b/server/src/io/wizard.rs @@ -236,11 +236,11 @@ pub fn format_wizard_state(state: &WizardState) -> String { lines.push(format!("**Current:** {}", current.step.label())); let hint = match current.status { StepStatus::Pending => { - "Run `wizard_generate` to generate content for this step.".to_string() + "Ready to generate. Proceed by calling wizard_generate.".to_string() } - StepStatus::Generating => "Agent is generating content…".to_string(), + StepStatus::Generating => "Generating content…".to_string(), StepStatus::AwaitingConfirmation => { - "Content ready for review. Run `wizard_confirm` to write to disk, `wizard_retry` to regenerate, or `wizard_skip` to skip.".to_string() + "Content ready for review. Show it to the user and ask if they're happy with it. Then call wizard_confirm, wizard_retry, or wizard_skip based on their response.".to_string() } StepStatus::Confirmed | StepStatus::Skipped => String::new(), };