This adapter provides the harness's optional deploy phase: the deploy-time SQL migration round (STATE PD-* in the orchestrator). It is a pluggable capability under the optionality model:
- The phase exists iff
harness.config.jsonhas adeployblock whoseadapterissupabase. Remove that block and a schema-free feature runs end to end with no PD state and no migration mention (the orchestrator terminates at promotion;pending-deploys.mjsshort-circuits to "nothing to deploy"). - What the adapter provides is declared in
manifest.json: the detection script, the generate skill, the apply script, the review mode, the write-guard hook, and the e2e-smoke script.
config.deploy.relevantGlobs (supabase/**) is the single definition of a
deploy-relevant path, shared by pending-deploys.mjs, the orchestrator's
SIMPLE-review gate, and the planner's schema wording. A real migration always
requires a change under these globs (that is where the declarative DDL lives, and
supabase db diff only fires on it), so the globs are both necessary and
sufficient to decide whether to offer the migration round.
The adapter's files still live at their discoverable locations
(.claude/skills/writing-migrations, .claude/scripts/*, .claude/hooks/block-migration-writes.mjs)
because Claude Code discovers skills only under .claude/skills/. manifest.json
declares the boundary by pointing at them.