$npx -y skills add butterbase-ai/butterbase-skills --skill journey-ideaUse as stage 1 of the Butterbase journey, when the user has only a rough idea ("I want to build something that..."). Conducts a concrete, one-question-at-a-time brainstorm that surfaces who the user is, what they do first, what the must-haves are, and inline-tags Butterbase capab
| 1 | # Journey: Idea brainstorm |
| 2 | |
| 3 | Stage 1 of the guided journey. Turn a vague idea into a written brief with capability tags. |
| 4 | |
| 5 | ## When to use |
| 6 | |
| 7 | - Dispatched by `journey` when `current_stage: idea`. |
| 8 | - Directly via `/butterbase-skills:idea`. |
| 9 | |
| 10 | ## Inputs |
| 11 | |
| 12 | None required. Optionally reads any existing `01-idea.md` to resume. |
| 13 | |
| 14 | ## Procedure — questioning discipline |
| 15 | |
| 16 | Follow the cross-cutting rules from the spec: |
| 17 | - **One question at a time.** Never batch. |
| 18 | - **Multiple-choice preferred**, with 2–4 concrete options. |
| 19 | - **Concrete, not abstract.** |
| 20 | - **Recommend** when a Butterbase primitive is obvious. |
| 21 | - **Tag inline.** When a feature surfaces, append the capability tag immediately (`→ manage_schema`, `→ deploy_function`, `→ manage_storage`, `→ manage_oauth`, `→ manage_rag_content`, `→ manage_realtime`, `→ manage_durable_objects`, `→ manage_ai`, `→ create_agent`). |
| 22 | - **Write as you go.** After each answered question, append the decision to `01-idea.md` so progress survives a crash. |
| 23 | |
| 24 | Walk through these questions in order. Do not skip — but adapt the wording. |
| 25 | |
| 26 | 1. `"In one sentence, what is the painful thing your user does today that this replaces?"` |
| 27 | 2. `"Who is the first user? ① solo creator ② small team ③ end customers of a business ④ Other"` |
| 28 | 3. `"What is the first action they take in the app?"` |
| 29 | 4. `"If we could ship only ONE screen, which one?"` |
| 30 | 5. `"Do two different users see different data when they log in? (yes → user-scoped data → manage_rls; no → shared → simpler)"` |
| 31 | 6. `"Are there files/images involved? (yes → manage_storage; no → skip)"` |
| 32 | 7. `"Does anything happen on a schedule or in response to an external event? (yes → deploy_function cron/webhook; no → skip)"` |
| 33 | 8. `"Is there a knowledge base / search-over-documents feature? (yes → manage_rag_content; no → skip)"` |
| 34 | 9. `"Does the UI need live updates or presence? (yes → manage_realtime; no → skip)"` |
| 35 | 10. `"Any chat rooms / multiplayer / per-user-actor state? (yes → manage_durable_objects; no → skip)"` |
| 36 | 11. `"Any LLM features (chat, embeddings, summarisation)? (yes → manage_ai; no → skip)"` |
| 37 | 12. `"Any multi-step LLM+tool workflows the user triggers (e.g. 'summarise my orders', 'auto-tag a doc', 'research and reply')? (yes → create_agent; no → skip)"`. If yes, also ask: `"Will the agent need external MCP servers (e.g. GitHub, Slack, custom MCP)?"` and `"Visibility: ① only the developer ② any logged-in user ③ unauthenticated public — note: public + write tools requires explicit safety acknowledgement."` |
| 38 | 13. `"Are you planning to publish this app as a public template others can clone? (yes / unlisted-public / no)"`. Set `publish_as_template: <yes|unlisted|no>` in `00-state.md` front-matter. Public templates require a README with clone instructions and `butterbase repo push` to sync the source tree — flag this so `plan` and the publish stage know to plan for it. |
| 39 | |
| 40 | If `hackathon_mode: true` in `00-state.md`: after question 4, also ask: |
| 41 | - `"Hackathon deadline (ISO date/time)?"` — write to `00-state.md` front-matter. |
| 42 | - After each subsequent feature ask `"Can this ship in time, or move to a 'post-hackathon' section?"` |
| 43 | |
| 44 | ## `01-idea.md` format |
| 45 | |
| 46 | ```markdown |
| 47 | # Idea |
| 48 | |
| 49 | **One-liner:** <user's answer to Q1> |
| 50 | |
| 51 | **First user:** <Q2> |
| 52 | **First action:** <Q3> |
| 53 | **One screen:** <Q4> |
| 54 | |
| 55 | ## Must-haves |
| 56 | - <feature> → <capability tag> |
| 57 | - ... |
| 58 | |
| 59 | ## Post-hackathon (nice-to-have) |
| 60 | - ... |
| 61 | |
| 62 | ## Capability map |
| 63 | | Capability | Used? | Why | |
| 64 | |---|---|---| |
| 65 | | manage_schema | yes | core data model | |
| 66 | | manage_rls | yes | user-scoped data | |
| 67 | | manage_oauth | yes | Google sign-in | |
| 68 | | manage_storage | no | no files | |
| 69 | | deploy_function | yes | daily-digest cron | |
| 70 | | manage_ai | no | | |
| 71 | | manage_rag_content | no | | |
| 72 | | manage_realtime | no | | |
| 73 | | manage_durable_objects | no | | |
| 74 | | create_agent | no | | |
| 75 | | publish_as_template | no | set true if user plans to share this app publicly | |
| 76 | ``` |
| 77 | |
| 78 | ### Toolchain note |
| 79 | |
| 80 | At the end of the idea write-up, also note in one line that the build will use: |
| 81 | - `@butterbase/sdk` for any frontend / Node app code |
| 82 | - `@butterbase/cli` for the local dev loop (scaffolding, logs, key generation) |
| 83 | - The MCP tools (this plugin) for orchestrating provisioning, deployments, integrations |
| 84 | |
| 85 | This sets expectations before `plan` makes specific package choices. |
| 86 | |
| 87 | ## Outputs |
| 88 | |
| 89 | - Writes `docs/butterbase/01-idea.md`. |
| 90 | - Ticks `- [x] idea` and bumps `current_stage: plan`, `last_updated` in `00-state.md`. |
| 91 | |
| 92 | ## Anti-patterns |
| 93 | |
| 94 | - ❌ "Tell me more about your app." Use the concrete questions above. |
| 95 | - ❌ Asking 3 questions at once. |
| 96 | - ❌ Accepting "all of the above" in hackathon mode — force prioritisation. |
| 97 | - ❌ Moving on before writing `01-idea.md` to |