Deterministic AI-SDLC scaffolding for repositories and AI coding agents.
npx ai-catapult init .
test -f .ai/matrix.json && test -f .ai/handoff/NEXT-STEPS.mdExpected result: the command exits 0 and both generated files exist; .ai/matrix.json identifies the repository and .ai/handoff/NEXT-STEPS.md names the in-harness completion step.
- Node.js 18 or newer and Bash.
Use one pinned contract to create reviewable governance files from the CLI and complete repository-specific decisions in Claude Code or Codex.
Use the CLI for deterministic, no-LLM setup:
npx ai-catapult init [target]Use a plugin when the mechanical scaffold exists and an agent needs to complete topology, ADR, cascade, or traceability decisions:
npx ai-catapult install- Claude Code: reload the host, then run
/ai-catapult-init. - Codex: enable the installed local plugin, then invoke the
ai-catapult-initskill.
The installer detects Claude Code and Codex by default. Pass --harness claude, --harness codex, or --harness all to choose explicitly. It prints registration instructions and does not mutate Claude Code internal state or Codex config.toml.
Primary command surface: ai-catapult init creates deterministic mechanical state; the Claude Code and Codex plugins run the same pinned ai-catapult-init skill for judgment-laden work.
Mental model: Generated files are reviewable outputs, not hidden runtime state. The CLI copies pinned templates and invokes the canonical README generator; plugins bundle that same source contract.
.ai/matrix.jsonrecords repository identity and topology inputs.AGENTS.md,CLAUDE.md, andGEMINI.mdexpose the agent-facing contract..ai/handoff/NEXT-STEPS.mdrecords what was generated and what still needs the plugin..ai/,.github/,ci/, andgraph-automation/contain deterministic governance and automation artifacts selected by the pinned boundary manifest.
The same inputs, including --date, produce byte-identical output. No runtime LLM or npm dependency is used to render the scaffold.
- A second
initrefuses before writing when generated files orREADME.mdalready exist. - Pass
--forceonly when replacing generated state is intentional. ExistingREADME.mdcontent is SHA-checked, backed up under.ai/drift/readme-backups/, and recorded in an audit manifest before replacement. - Plugin builds and packaged CLI artifacts copy the generator and template from the SHA pinned in
skills.lock.json; they do not maintain a second README generator. installrefuses to replace a foreign plugin directory unless--forceis supplied. Use--dry-runto inspect installation paths without writing.
Run npx ai-catapult init --help or npx ai-catapult install --help for the full option lists.
npx resolves the requested package when it runs. For a global installation, update explicitly:
npm install -g ai-catapult@latestSource checkouts refresh the pinned skill and rebuild artifacts with:
bash setup.sh
bash scripts/prepare-dist.shinit would overwrite existing file— inspect the existing scaffold first; rerun with--forceonly when replacement is intended.canonical README contract not found— in a source checkout, runbash setup.shandbash scripts/stage-readme-contract.sh. Reinstall the npm package if the error comes fromnpx.- Plugin installed but not visible — reload the host and complete its printed registration steps. Codex registration details are in docs/codex-install.md.
- Vendor SHA mismatch — run
bash setup.sh, thenbash scripts/verify-vendor.sh. The checkout must matchskills.lock.jsonexactly.
- Codex installation and registration
- Agent operating contract
- Pinned upstream skill source
- Run
npx ai-catapult --helpfor CLI commands andnpx ai-catapult <command> --helpfor command-specific options.
MIT — see LICENSE.
Repository governance and traceability: see AGENTS.md, .ai/traceability/.