Init assistant CLI (eai-supinit)
PyPI package eai-supinit ships a contract-first greenfield assistant for new
multi-repo / superbuild workspaces. Import package: eai_supinit.
It shares eai-supcore with eai-supmig so steady-state scaffolding (layout,
tools/ai-rules, Cursor adapters) stays consistent. After init sign-off or migration
completion, day-to-day handling of the multi-repo should feel the same.
Install
pip install eai-supcore eai-supinit
# from this clone:
pip install -e packages/eai-supcore -e packages/eai-supinit
Commands
| Command | Purpose |
|---|---|
eai-supinit assess | Inspect workspace; write .tools/esys/eai-supinit/workspace-contract.yaml |
eai-supinit plan | Write .tools/esys/eai-supinit/workspace-plan.md |
eai-supinit bootstrap | Steady-state dirs, consumer rails (hooks/gitignore/manifest/CHANGELOG.md), optional AI-rules + Cursor |
eai-supinit extension / ext | List/add/status workspace extensions (e.g. cmake) |
eai-supinit reset | Remove journey artifacts (tools/ai-rules/ never deleted) |
eai-supinit prompt | Write prompts/01-scaffold-workspace.md (+ optional follow-up) |
eai-supinit doctor | Validate layout, rails, and init artifacts |
eai-supinit workflow | Gates, deliverables, next milestone |
eai-supinit workflow preferences | Auto-commit preference |
eai-supinit workflow sign-off | Human approval that init is complete |
eai-supinit workflow complete <gate> | Manual gate mark (non-auto gates) |
All commands accept --workspace PATH. Mutating commands support --auto-commit /
--no-auto-commit.
Tool state vs steady-state
| Path | Git | Role |
|---|---|---|
.tools/esys/eai-supinit/ | Committed | Journey tool state (contract, journal, workflow) |
.tools_local/ | Not committed | Local installs (gitignored; reserved) |
tools/ai-rules/ | Committed submodule | Shared method / policy tree |
src/, libs/, docs/adr/, AGENTS.md | Committed | Steady-state layout |
Typical flow
eai-supinit assess
eai-supinit plan
eai-supinit bootstrap --with-ai-rules --with-cursor --yes
python scripts/setup-dev.py
# optional when the multi-repo uses CMake:
eai-supinit extension add cmake
eai-supinit prompt
eai-supinit doctor
eai-supinit workflow sign-off
After bootstrap (fill before sign-off)
Bootstrap already writes the governance pack. Humans (or the scaffold agent chat) should:
- Fill placeholders in root
AGENTS.mdandREADME.md(workspace name is pre-filled) - Review
docs/adr/0000-adopt-superbuild-workflow.md, set Status: Accepted, date, and deciders; pin thetools/ai-rulesrevision in ADR-0000 /.gitmodules/ manifest - Curate
CHANGELOG.md[Unreleased]as release-relevant work starts - Start a new agent chat with
@prompts/01-scaffold-workspace.mdaftereai-supinit prompt
Bootstrap rails (defaults on)
| Flag | Default | Effect |
|---|---|---|
--with-dev-hooks / --no-dev-hooks | on | .pre-commit-config.yaml, .gitlint, scripts/setup-dev.py, expanded .gitignore |
| (always) | — | CHANGELOG.md, requirements-dev.txt, .gitattributes, .dockerignore, ADR pack, AGENTS.md, README.md |
--with-esysrepo-manifest / --no-esysrepo-manifest | on | Basic .esysrepo.manifest.xml (includes tools/ai-rules) |
--with-ai-rules | off | Mount tools/ai-rules submodule; ADR-0000 uses submodule variant |
--with-cursor | off | Materialize shared .cursor/rules/ + 90-<slug>-local.mdc overlay |
--install-hooks | off | Run scripts/setup-dev.py during bootstrap |
Stack extras are not bootstrap flags — use extension / ext:
eai-supinit extension list
eai-supinit extension add cmake
eai-supinit extension licenses # SPDX menu for license extension
eai-supinit extension add license # interactive index (default: 1 = MIT)
eai-supinit extension add license -i 2 # Apache-2.0
eai-supinit ext status # short alias
Applied extensions are recorded in .tools/esys/eai-supcore/extensions.yaml.
Version control
Commit .tools/esys/eai-supinit/ and prompts/ at checkpoints. See CLI Commit checkpoint
output. Do not hand-edit workflow-state.yaml.
Related
- Migration entry (same steady-state): migration-assistant.md
- Layout roles: repository-layout.md
- Family ADR: adr/0001-eai-family-tool-state-and-supcore.md
- Consumer rails + extensions: adr/0002-consumer-rails-and-workspace-extensions.md
- Changelog: changelog-conventions.md