
Third stage of the Butterbase journey that takes your table definitions from the plan doc and pushes them live. It calls schema-design to build the declarative schema, shows you a dry-run diff via manage_schema, then applies it after you approve. If you're in hackathon mode it also folds in the RLS step inline so you can move faster. Logs everything to build-log.md and updates state.md with checkboxes. The main guardrail here is that you always see the diff before anything destructive happens, which matters because drops require explicit confirmation. Use this when journey orchestrates to the schema stage or call it directly if you know your preflight is fresh.
$ npx -y skills add butterbase-ai/butterbase-skills --skill journey-schema --agent claude-codeInstalls into .claude/skills of the current project.
Stage 3a of the guided journey. Apply the declarative table definitions from the plan.
journey when current_stage: schema./butterbase-skills:journey-schema.If docs/butterbase/03-preflight.md is missing, older than 24 hours, or 00-state.md has app_id: null, invoke butterbase-skills:journey-preflight first. Wait for it to return successfully before proceeding.
docs/butterbase/02-plan.md — the Tables section.docs/butterbase/00-state.md — for app_id, hackathon_mode.Refresh docs. Call butterbase_docs with topic: "schema". If the plan calls for advanced schema features (vectors, partial indexes, generated columns), also WebFetch https://docs.butterbase.ai/schema. Skip this step if docs/butterbase/03b-docs-cache.md was written less than 30 minutes ago and already covers schema.
Read the Tables section of 02-plan.md. Print it back: "About to apply schema: <N tables>. Proceed?". Wait for yes.
Invoke butterbase-skills:schema-design via the Skill tool, passing the Tables section and app_id. The wrapped skill will build the declarative schema, dry-run it with manage_schema action: dry_run, then apply with action: apply after user approval of the diff.
After it returns, optionally run a sanity manage_schema action: get and show the user the live shape.
Hackathon mode only: if 00-state.md has hackathon_mode: true, also invoke butterbase-skills:journey-rls inline now. After it returns, mark the rls checkbox as (folded) in 00-state.md rather than leaving it unchecked.
Append one line to docs/butterbase/04-build-log.md (create if absent):
<ISO timestamp> schema manage_schema ok
Tick - [x] schema in 00-state.md, set current_stage: to the next unchecked stage (typically rls outside hackathon mode, otherwise the stage after rls), bump last_updated.
Return to journey orchestrator (or, if invoked directly, ask: "Continue to the next stage? (yes/no)").
04-build-log.md.00-state.md.manage_schema action: apply without showing the user the dry-run diff._drop: / _dropColumns: are needed for destructive changes — never set them without explicit user confirmation.Sponsors