setup · git:20260911.59d31e5 · 2026-09-11 · sha256 92e94104304766a1
setup git:20260911.59d31e5B
Immutable. This exact content never changes and is served at /api/v1/blob/92e94104304766a1.
---
description: First run after cloning the engine — create and fill CLAUDE.local.md and identities.local.md by interview, set the session model (Fable), offer the global git identity guard; never overwrites, runs no git operation
disable-model-invocation: true
---
Prepare this instance of the forge (POS.1050). Run after cloning the
engine, before any other work. Two files in the engine — plus, on the
user's word, the git identity configuration outside it; the command
runs no git operation.
The conversation language is not configured yet on a true first run:
speak whatever language the user speaks to you.
1. **`CLAUDE.local.md`** at the engine root.
- If it already exists: report briefly what it holds and do not
touch it.
- Otherwise copy `templates/CLAUDE.local.md` to the root and fill
it by elicitation interview, one question at a time:
- **Principal** — the role, whose thinking is being forged (the
template's placeholder);
- **Conversation language** — the language the working
conversation runs in (chain artefacts follow their project's
language, briefs verbatim, everything else English);
- **Git identities** — name and e-mail per git host the user
will push to (e.g. github.com, a company host), written to
`identities.local.md` beside it from
`templates/identities.local.md` (POS.0950).
This is the roster from which per-repository identities are
proposed at every project creation or import. May be left
empty and added later; say so.
- Keep the templates' format; both files are gitignored and never
committed.
- Close the git-identities part with an offer (POS.1050,
POS.0950): the global guard `user.useConfigOnly = true` under
`[user]` in `~/.gitconfig`, appended on the user's word — read
the file first, never overwrite existing content. With it, a
commit in a repository with no local identity fails aloud
instead of silently taking a default; the identity itself is
set per repository at creation or import, proposed from the
roster above. Where `~/.gitconfig` carries a global `user.name`
or `user.email`, say the guard only bites once that identity is
removed, and offer the removal — again only on the user's word.
Declined: print the lines for the user to apply by hand. This
is the one edit outside the engine; it is a configuration text
file, not a git operation.
2. **`.claude/settings.local.json`**.
- If it already exists: report the model it names and do not touch
it.
- Otherwise create it with `{ "model": "fable" }` and tell the
user in one sentence: the session is set to Fable — the
strongest available model, which the whole forge including the
blind reviewers runs on — and it can be changed at any time with
`/model` or by editing this file. A notice, not a question.
3. Finish by pointing at the next step from the Quickstart: start a
new project with `/new-project <slug>`, or bring an existing one
with `/import-project <git-url>`.