journey-deploy
Use as the deploy-verification stage of the Butterbase journey, after journey-frontend (or after any build stage if there is no frontend). Smoke-tests the deployed app — hits the live URL, invokes any deployed functions, checks auth round-trip. Writes results to docs/butterbase/04-build-log.md. Blocks journey-submit if smoke fails.
SKILL.md
Full skill instructions
Journey: Deploy verification
Stage 4 of the guided journey. Verify the deployed app actually works end-to-end.
When to use
- Dispatched by
journeywhencurrent_stage: deploy. - Directly via
/butterbase-skills:journey-deploy.
Preflight
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.
Inputs
docs/butterbase/00-state.md— forapp_id,deployed_url.docs/butterbase/02-plan.md— for the function list to smoke.docs/butterbase/04-build-log.md— to know what shipped.
Procedure
- Refresh docs. Call
butterbase_docswithtopic: "frontend". For end-to-end smoke patterns, also WebFetchhttps://docs.butterbase.ai/deploy. Skip if cache is fresh.
For each check, log a one-line result to 04-build-log.md. Halt on the first ✗ and ask the user to fix or skip.
-
Frontend reachable. If
deployed_urlis set, fetch it via Bashcurl -sS -o /dev/null -w "%{http_code}" <url>. Expect200. Log<ISO> deploy curl 200 okor... <code> fail. -
Functions respond. For each function in the plan with HTTP trigger, call
mcp__butterbase__invoke_functionwith a representative payload. Expect 2xx. Log per function. -
Auth round-trip (if configured). If the plan included OAuth, prompt the user:
"Open <deployed_url>, click 'Sign in with <provider>', and confirm you land logged-in. Did it work? (yes/no)". Log the answer. -
Function logs clean. Call
mcp__butterbase__manage_function action: get_logsfor the most recent invocations. Show the user any error-level lines. Ask:"Anything concerning here? (no → continue, yes → fix and re-run)". -
If all checks pass, tick
- [x] deployin00-state.md, setcurrent_stage: submit(ifhackathon_mode: true) orcurrent_stage: done(otherwise). -
Return to
journeyorchestrator.
Outputs
- Multiple lines in
04-build-log.md. - Updated
00-state.md.
Anti-patterns
- ❌ Treating a 200 from the frontend root as proof the app works — actually invoke a function.
- ❌ Skipping the auth round-trip check just because OAuth is configured server-side — judges will try to log in.
