axiomatic-induction
The project constitution AND the reasoning method. Apply it in ALL planning and execution of non-trivial work: reason like a proof system — hold the axioms…
Run the full verification battery and block on red before any commit/PR. Use before committing, before claiming a task done, or when the user says "run the tests", "is it green?", "verify before commit", or mentions "/test-gate". Discovers the commands from CLAUDE.md and
$ npx -y skills add gabrieldabbah/genesis --skill test-gate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/test-gateContext preview
The summary Claude sees to decide when to auto-load this skill.
Run the full verification battery and block on red before any commit/PR. Use before committing, before claiming a task done, or when the user says "run the tests", "is it green?", "verify before commit", or mentions "/test-gate". Discovers the commands from CLAUDE.md and
name: test-gate description: 'Run the full verification battery and block on red before any commit/PR. Use before committing, before claiming a task done, or when the user says "run the tests", "is it green?", "verify before commit", or mentions "/test-gate". Discovers the commands from CLAUDE.md and docs/TESTING.md, brings up hermetic Docker infra if a compose file exists, runs lint → typecheck → unit → property → contract → integration (→ e2e) fail-fast, reads the real output, and refuses to proceed on any failure. Reports what it ran and what it printed; never prints secrets from env or logs.' license: MIT allowed-tools: Bash, Read
Run the project's full Tier-B battery, **read the real output**, and **stop the moment anything is red** — never commit a red tree, never claim "passing" you did not watch pass. The strategy this enforces is the project's `docs/TESTING.md`. **Invocation is the authorization** — run end-to-end without a confirm prompt.
This is the project's concrete runner, built from its own commands and infra. Closing ritual: `test-gate` green, then commit, then `/generate-pr`.
feedback cycle. *`fast` green is not sufficient to commit — run `full` before committing.*
Read the source of truth; do not invent commands:
sed -n '/## Commands/,/^## /p' CLAUDE.md # the canonical command list cat docs/TESTING.md # tiers, kinds, the Docker infra block, the gate order ls docker-compose*.y*ml 2>/dev/null # is there hermetic infra to bring up?
Map what you find to the gate stages and set a shell var per stage from the **real** discovered command — `$LINT`, `$TYPECHECK`, `$TEST` (the Tier-B suite), `$E2E`, and `$MIGRATE` / `$SEED` for infra. If a stage has no command in this project, leave its var empty, skip it, and **say so** in the report (an honest "no e2e configured" — never a silent pass). **Never read or print `.env` or secrets**: to check a needed var, test presence only (`[ -n "$VAR" ] && echo set`).
COMPOSE=$(ls docker-compose.test.y*ml docker-compose.y*ml 2>/dev/null | head -1) if [ -n "$COMPOSE" ]; then docker compose -f "$COMPOSE" up -d --wait # wait for healthchecks; don't race startup trap 'docker compose -f "$COMPOSE" down -v' EXIT # ALWAYS tear down + drop volumes, even on failure [ -n "$MIGRATE" ] && eval "$MIGRATE"; [ -n "$SEED" ] && eval "$SEED" # deterministic schema + fixtures fi
Infra is **ephemeral, seeded, isolated** — never point integration tests at a shared or staging database. If Docker is unavailable, run unit+property, and **report integration as not-run** (do not pretend it passed).
Order (a red stage **stops** the rest — fix the earliest failure first):
lint → typecheck → unit → property → contract/schema → integration → e2e (if wired)
Run each present stage with the discovered command; capture and **read** its output and exit code:
run () { [ -z "$2" ] && { echo "── $1: skipped (no command) ──"; return; }; echo "── $1 ──"; eval "$2"; rc=$?; echo "exit=$rc"; [ $rc -eq 0 ] || { echo "RED at: $1"; exit $rc; }; }
run lint "$LINT"
run typecheck "$TYPECHECK"
run tests "$TEST" # unit + property + contract + integration per TESTING.md Tier B
run e2e "$E2E" # only if configuredmalformed and adversarial inputs. If the suite has none for a function with a stateable law, flag it as a gap.
ground, generate, verify, degrade — with the fallback actually run.
safe to commit. Only now may a `todo` item's `→ verify:` be marked passed.
and stop there. Do not continue the battery and do not commit. Fix the earliest failure first; a later stage failing because an earlier one did is noise, not a second problem.
passed check.
Ultimate Opus 5 builder. Genesis creates and transforms any setup into the ultimate setup for generation 5 models. Genesis turns an empty folder into a working SaaS, web app, API, or CLI, running autonomously on your machine in Claude Code.
Repo: gabrieldabbah/genesis
The project constitution AND the reasoning method. Apply it in ALL planning and execution of non-trivial work: reason like a proof system — hold the axioms…
Generate a complete pull request when the user asks to create/open a PR, fill the PR template, or mentions "/generate-pr". Fills every section of…
Build a new project from an empty folder, or bring an existing repository up to standard. Use when the user says \"/genesis\", \"start a new project\",…
Stage, write a Conventional Commits message from the actual diff, commit, and push. Use when the user asks to commit, save work to git, or mentions…
Rules for working in a repository where other Claude sessions are editing at the same time — no git writes, no process kills, strict scope, and verification…
Set a repository up so it cannot merge broken code and cannot quietly rot: continuous integration, automated dependency updates, a protected default branch,…