From c2d8514befb4594222c6ebdfbc70a68dfb309e92 Mon Sep 17 00:00:00 2001 From: Dave Date: Tue, 24 Feb 2026 14:10:19 +0000 Subject: [PATCH] story-kit: create 148_story_interactive_onboarding_guides_user_through_project_setup_after_init --- ...it_init_command_scaffolds_a_new_project.md | 28 +++++-------------- ...s_user_through_project_setup_after_init.md | 22 +++++++++++++++ 2 files changed, 29 insertions(+), 21 deletions(-) create mode 100644 .story_kit/work/1_upcoming/148_story_interactive_onboarding_guides_user_through_project_setup_after_init.md diff --git a/.story_kit/work/1_upcoming/116_story_story_kit_init_command_scaffolds_a_new_project.md b/.story_kit/work/1_upcoming/116_story_story_kit_init_command_scaffolds_a_new_project.md index 413c76c..0354b77 100644 --- a/.story_kit/work/1_upcoming/116_story_story_kit_init_command_scaffolds_a_new_project.md +++ b/.story_kit/work/1_upcoming/116_story_story_kit_init_command_scaffolds_a_new_project.md @@ -1,12 +1,12 @@ --- -name: "New project init scaffolds structure and guides user through setup" +name: "Init command scaffolds deterministic project structure" --- -# Story 116: New project init scaffolds structure and guides user through setup +# Story 116: Init command scaffolds deterministic project structure ## User Story -As a new Story Kit user, I want to point at an empty directory and have everything I need scaffolded automatically, then be guided through the project-specific setup (goals, tech stack), so that I can start writing stories immediately without manual configuration. +As a new Story Kit user, I want to point at a directory and have the `.story_kit/` workflow structure scaffolded automatically, so that I have a working pipeline without manual configuration. ## Context @@ -18,37 +18,23 @@ Currently `scaffold_story_kit()` in `server/src/io/fs.rs`: - Does not run `git init` - The embedded `STORY_KIT_README` constant is a stale copy that diverges from the actual `.story_kit/README.md` checked into this repo -There are two categories of work: -1. **Deterministic** — things that are the same for every project and can be done by `scaffold_story_kit()` without user input -2. **Interactive** — things that depend on the user's project (goals, tech stack, language) and need a guided conversation - ## Acceptance Criteria -### Deterministic scaffold (`scaffold_story_kit`) - - [ ] Creates the `work/` pipeline: `work/1_upcoming/`, `work/2_current/`, `work/3_qa/`, `work/4_merge/`, `work/5_archived/` - [ ] Removes creation of the old `stories/` and `stories/archive/` directories - [ ] Creates `specs/`, `specs/tech/`, `specs/functional/` (unchanged) - [ ] Creates `script/test` with the existing stub (unchanged) -- [ ] Writes `.story_kit/README.md` — should be the canonical workflow doc (sync with or embed the real README.md from this repo, not the stale `STORY_KIT_README` constant) +- [ ] Writes `.story_kit/README.md` using `include_str!` to embed the canonical README.md at build time (replacing the stale `STORY_KIT_README` constant) - [ ] Writes `.story_kit/project.toml` with a sensible default agent config (one coder agent, one qa agent, one mergemaster — using `sonnet` model aliases) -- [ ] Writes `.mcp.json` in the project root pointing to the running server's MCP endpoint (reuse `write_mcp_json` from `worktree.rs`) +- [ ] Writes `.mcp.json` in the project root with the default port (reuse `write_mcp_json` from `worktree.rs`) - [ ] Writes `specs/00_CONTEXT.md` as a blank template with section headings (High-Level Goal, Core Features, Domain Definition, Glossary) and placeholder instructions — NOT content about Story Kit itself - [ ] Writes `specs/tech/STACK.md` as a blank template with section headings (Core Stack, Coding Standards, Quality Gates, Libraries) and placeholder instructions — NOT content about Story Kit itself - [ ] Runs `git init` if the directory is not already a git repo -- [ ] Makes an initial commit with the scaffolded files - -### Interactive onboarding (chat agent guides the user) - -- [ ] After scaffold completes and the user lands in the chat UI, the system prompt or first message tells the agent it is in "new project onboarding" mode -- [ ] The agent asks the user what the project is about (goal, domain) and writes a populated `specs/00_CONTEXT.md` based on their answers -- [ ] The agent asks the user what tech stack they want (language, framework, build tools, test runner, linter) and writes a populated `specs/tech/STACK.md` based on their answers -- [ ] The agent updates `script/test` to invoke the project's actual test runner (e.g. `cargo test`, `pytest`, `pnpm test`) -- [ ] The agent updates `project.toml` component setup commands to match the chosen stack (e.g. `pnpm install` for a JS project, `cargo check` for Rust) -- [ ] After onboarding completes, the agent commits the populated specs and tells the user they're ready for Story #1 +- [ ] Makes an initial commit with the scaffolded files (only on fresh `git init`, not into an existing repo) ## Out of Scope +- Interactive onboarding (guided conversation to populate specs) — see Story 139 - Generating actual application code or project boilerplate (e.g. `cargo init`, `create-react-app`) — Story Kit is stack-agnostic, it only scaffolds the `.story_kit/` workflow layer - Template galleries or presets for common stacks (future enhancement) - Migrating existing projects that already have a `.story_kit/` directory diff --git a/.story_kit/work/1_upcoming/148_story_interactive_onboarding_guides_user_through_project_setup_after_init.md b/.story_kit/work/1_upcoming/148_story_interactive_onboarding_guides_user_through_project_setup_after_init.md new file mode 100644 index 0000000..d197ebe --- /dev/null +++ b/.story_kit/work/1_upcoming/148_story_interactive_onboarding_guides_user_through_project_setup_after_init.md @@ -0,0 +1,22 @@ +--- +name: "Interactive onboarding guides user through project setup after init" +--- + +# Story 148: Interactive onboarding guides user through project setup after init + +## User Story + +As a new Story Kit user, after the project structure has been scaffolded, I want a guided conversation that asks me about my project goals and tech stack, so that the specs are populated and I'm ready to write Story #1. + +## Acceptance Criteria + +- [ ] After scaffold completes and the user opens the chat UI, the agent detects empty/template specs and enters onboarding mode +- [ ] The agent asks the user what the project is about (goal, domain) and writes a populated specs/00_CONTEXT.md based on their answers +- [ ] The agent asks the user what tech stack they want (language, framework, build tools, test runner, linter) and writes a populated specs/tech/STACK.md based on their answers +- [ ] The agent updates script/test to invoke the project's actual test runner (e.g. cargo test, pytest, pnpm test) +- [ ] The agent updates project.toml component setup commands to match the chosen stack (e.g. pnpm install for a JS project, cargo check for Rust) +- [ ] After onboarding completes, the agent commits the populated specs and tells the user they're ready for Story #1 + +## Out of Scope + +- TBD