axiomatic-induction
The project constitution AND the reasoning method. Apply it in ALL planning and execution of non-trivial work: reason like a…
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
Claude Code
$ npx -y skills add gabrieldabbah/genesis --skill test-gate --agent claude-code
Codex
$ npx skills add gabrieldabbah/genesis --skill test-gate -a codex -y
Cursor
$ npx skills add gabrieldabbah/genesis --skill test-gate -a cursor -y
Gemini CLI
$ npx skills add gabrieldabbah/genesis --skill test-gate -a gemini-cli -y
GitHub Copilot
$ npx skills add gabrieldabbah/genesis --skill test-gate -a github-copilot -y
OpenCode
$ npx skills add gabrieldabbah/genesis --skill test-gate -a opencode -y
Windsurf
$ npx skills add gabrieldabbah/genesis --skill test-gate -a windsurf -y
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.
The project constitution AND the reasoning method. Apply it in ALL planning and execution of non-trivial work: reason like a…
Generate a complete pull request when the user asks to create/open a PR, fill the PR template, or mentions "/generate-pr". Fills…
Build a new project from an empty folder, or bring an existing repository up to standard. Use when the user says \"/genesis\",…
Stage, write a Conventional Commits message from the actual diff, commit, and push. Use when the user asks to commit, save work…
Rules for working in a repository where other Claude sessions are editing at the same time — no git writes, no process kills,…
Set a repository up so it cannot merge broken code and cannot quietly rot: continuous integration, automated dependency updates,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.