| name | Init |
| description | Initialize Genesis Spec-Kit in a project — scaffold .genesis/ and determine the project mode (greenfield, brownfield, lowfield). Use when setting up the kit for the first time. |
| argument-hint | [project-path] [--mode greenfield|brownfield|lowfield] |
Init — Scaffold Genesis Spec-Kit
Set up the kit's file-backed scaffolding in a project and establish its mode. Everything the kit does afterward reads from the files this step creates.
Process
-
Check for an existing install. If .genesis/ already exists, ask whether to reinitialize (overwrite kit system files, preserve all user artifacts) or stop. On reinitialize, preserve: constitution/, project-state.md, discovery/, design/, features/.
-
Determine the mode. If --mode is given, use it. Otherwise scan the directory and recommend:
- Empty (only
.git) → Greenfield — a new project from scratch.
- Files present → Brownfield — an existing codebase needing structure.
- Lowfield — a content or creative project (novel, research corpus, knowledge base). Lowfield is always an explicit choice, never auto-detected.
Present all three and let the user confirm.
-
Resolve the project name from package.json / Cargo.toml / pyproject.toml / etc., or ask.
-
Create the directory structure:
.genesis/
├── constitution/ # supreme law (populated by /genesis-constitute)
├── discovery/ # project profile (populated by /genesis-discover)
├── design/ # project-level design docs
│ ├── technical/
│ ├── user-journeys/
│ ├── systems/
│ └── decisions/ # ADRs
├── features/ # per-feature artifacts
├── templates/ # copied from the kit
├── hooks/ # optional git hooks
├── furnace.json # deferred-idea backlog (starts empty)
└── project-state.md # the live state file
-
Copy the kit templates into .genesis/templates/ (constitution, spec, micro-spec, feature-design, north-star, discovery-{greenfield,brownfield,lowfield}, design-inputs).
-
Seed furnace.json: { "entries": [] }.
-
Write project-state.md from the template: project name, mode, init date, current phase Initialized, and empty sections for Active Features, Completed Features, Key Decisions, Constitutional Amendments, Open Questions, Blockers.
-
Generate or update CLAUDE.md with: the project name, the mode, an instruction to read the constitution and project-state.md at session start, and a one-line command reference pointing at /genesis-help.
-
Git: if no repo exists, git init and write a .gitignore. Stage only the kit scaffolding and commit: genesis: initialize spec-kit scaffolding.
-
Print a mode-specific welcome with next steps (constitute → discover → brainstorm).
Mode additions
- Brownfield: run the codebase scan from
discovery-brownfield.md and pre-populate the discovery findings; note brownfield audit-scoping rules (audits scoped to changed files; findings classified inherited vs introduced).
- Lowfield: use the content-oriented templates; the work-unit registry is built later by
/genesis-discover.
Constraints
- MUST NOT modify any existing non-kit files (no edits to
package.json, source files, etc.).
- MUST NOT run builds, tests, or install dependencies.
- MUST NOT create files outside
.genesis/, .claude/, and CLAUDE.md.
- MUST preserve all user artifacts on reinitialize.
- MUST commit only kit scaffolding, never unrelated changes.
Next step
Run /genesis-constitute to establish the project's constitution.
Natural language triggers
- "initialize genesis"
- "set up the spec kit"
- "start a new project"
- "onboard this project"