← ClaudeAtlas

app_deploy_setuplisted

Admin-run, one-time scaffold — turn the shipped deploy template into this repo's own project-local `deploy` skill (migration dirs, DB backup, ff-only sync, apply + move migrations, restart), then grant it to every shell.
jedbjorn/subfloor · ★ 14 · DevOps & Infrastructure · score 76
Install: claude install-skill jedbjorn/subfloor
# app_deploy_setup — scaffold this app's deploy ritual (once, admin) The engine deploys itself (`sc update`); the host app's deploy — app process, app DB, app migrations — is the fork's own. Fill the template below with this app's specifics and save it as a NEW project-local `deploy` skill. NEVER save the result by editing this skill: engine skills self-heal on every `sc update` — a fork edit to any skill named in `assets/skills/` is detected as stale and reverted to the shipped body. A project-local name (one the engine doesn't ship) is never touched and persists through rebuilds via `sc snapshot` -> `.sc-state/content.sql`. Leave this scaffold as shipped. ## 1. Scaffold the migration dirs ```bash mkdir -p migrations_app/pending migrations_app/completed touch migrations_app/pending/.gitkeep migrations_app/completed/.gitkeep ``` Commit them. Renaming to fit the repo's layout (`db/migrations/…`, `deploy/migrations/…`) is fine -> keep `pending/` + `completed/` as siblings and use the same paths in the template. These hold the APP's schema migrations — NOT `.super-coder/migrations/` (engine DB, ledger-tracked, owned by `sc update`). ## 2. Fill the template Every `⟨ADMIN: …⟩` slot is app-specific — get it from the operator or the repo. Run each command once by hand before writing it in; an untested command does not enter a deploy skill. ```markdown # deploy — ⟨ADMIN: app name⟩ post-merge deploy ritual Run from the repo root on the host. Every step aborts loudly rather th