
A precondition gate that verifies your Butterbase setup before any platform operation runs. It checks four things: account access via a test API call, MCP server connectivity, API key presence in your environment, and whether an app_id exists for the project. Results get written to a timestamped markdown file that auto-expires after 24 hours, forcing a recheck. The nice part is it won't let you proceed on failures instead of failing halfway through a deploy, and it handles the app provisioning conversation upfront rather than assuming you want to burn API quota. If you're chaining multiple Butterbase operations, this runs once at the start and caches the validated state.
$ npx -y skills add butterbase-ai/butterbase-skills --skill journey-preflight --agent claude-codeInstalls into .claude/skills of the current project.
Gate that ensures the user can actually talk to the Butterbase platform before any stage tries to. Writes results to docs/butterbase/03-preflight.md and stamps app_id + api_base into 00-state.md.
journey-* build stage when 03-preflight.md is missing, older than 24 hours, or 00-state.md's app_id is null./butterbase-skills:journey-preflight when the user wants to re-verify.For each check, write a one-line result to 03-preflight.md (<check> ✓/✗ <note>). Ask the user to fix any ✗ before continuing — do not auto-skip failures.
Butterbase account. Call mcp__butterbase__list_regions (cheapest call). Success → ✓. Auth error → ✗ with "Sign up at https://butterbase.ai, then run npx @butterbase/cli mcp install and complete the OAuth flow in your client (e.g. /mcp in Claude Code).". If MCP tool is not visible at all, jump to step 2.
MCP server connected. Check whether mcp__butterbase__* tools are listed in the agent's available tools. Absent → ✗ with "Install the Butterbase MCP server: npx @butterbase/cli mcp install. See https://butterbase.ai/docs/mcp.". Present → ✓.
MCP OAuth complete. Auth for mcp__butterbase__* calls is OAuth, not an env var — step 1 already proved it works if list_regions succeeded. If step 1 failed with auth error, retry after the user runs /mcp (or claude mcp login butterbase) and completes browser consent. BUTTERBASE_API_KEY (bb_sk_…) is still relevant for runtime app code (functions, server-side @butterbase/sdk) — check separately at deploy time, not here.
App provisioned. Read 00-state.md front-matter for app_id.
mcp__butterbase__manage_app (action get_config) succeeds → ✓."No app yet. Create one now? (yes/no — if no, you can paste an existing app_id)". On yes, call mcp__butterbase__init_app (ask for app name and region — recommend us-east-1 as default). Capture app_id and api_base from the response. Update 00-state.md front-matter.manage_app get_config; on success update 00-state.md.CLI installed. Run butterbase --version. If "command not found":
02-plan.md. If CLI usage: yes (default), prompt: "Install @butterbase/cli globally now? (yes / skip)". On yes, run npm install -g @butterbase/cli. On skip, note in 03-preflight.md that the CLI is not installed and which workflows will require dashboard fallback.CLI usage: no, skip this check.03-preflight.md format# Preflight — <ISO date>
- account ✓
- mcp_connected ✓
- api_key ✓
- app_provisioned ✓ app_id=app_abc123 region=us-east-1
Re-run with /butterbase-skills:journey-preflight.
docs/butterbase/03-preflight.md.00-state.md front-matter app_id, api_base, last_updated, and ticks - [x] preflight.init_app without confirming with the user — apps cost money on paid plans.Sponsors