snapshot of https://github.com/marmelab/atomic-crm.git (main, 2026-09-18; blobs > 131072B omitted)
Some checks failed
✅ Check / 🔬 ESLint (push) Failing after 21s
✅ Check / 🏷️ Typecheck (push) Failing after 11s
✅ Check / 🔎 Test (push) Failing after 11s
✅ Check / e2e-test (push) Failing after 11s
✅ Check / 🔨 Build (push) Failing after 11s
🚀 Deploy / 🚀 Deploy (doc) (push) Failing after 12s
🚀 Deploy / 🚀 Deploy (demo) (push) Failing after 12s
🚀 Deploy / 🚀 Deploy (supabase) (push) Failing after 18s

This commit is contained in:
upstream-mirror
2026-09-18 01:48:50 +05:00
commit 93ecc1a6f8
787 changed files with 75240 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
# Supabase deploy adapter
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.json` has a `deploy` block whose
`adapter` is `supabase`. 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.mjs` short-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.
## Deploy-relevance
`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.
## File locations (Phase B)
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.

View File

@@ -0,0 +1,30 @@
{
"adapter": "supabase",
"provides": "deploy",
"description": "Supabase deploy adapter: the deploy-time SQL migration round. Active iff harness.config.json has a `deploy` block with adapter=supabase.",
"detection": {
"relevantGlobsFrom": "harness.config.json:deploy.relevantGlobs",
"pendingDeploysScript": ".claude/scripts/pending-deploys.mjs"
},
"generate": {
"skill": "writing-migrations",
"note": "developer-dispatched skill that generates SQL under supabase/migrations/ from the session-branch schema diff"
},
"apply": {
"script": ".claude/scripts/apply-migrations.mjs"
},
"review": {
"mode": "migration-review",
"agent": "quality-reviewer",
"note": "single-shot migration-review mode gates the generated SQL before merge"
},
"writeGuard": {
"hook": ".claude/hooks/block-migration-writes.mjs",
"note": "blocks migration SQL writes outside the deploy-time round"
},
"e2eSmoke": {
"script": ".claude/scripts/e2e-smoke.sh"
},
"locations": "in-place",
"note": "Files are referenced at their current discoverable locations (.claude/skills, .claude/scripts, .claude/hooks)."
}