acta:init
The entry point for a new project. It produces one file — <PROJECT>_BRIEF.md — that captures the human's
intent as a starting point. It writes nothing else. Once filled, /acta:build turns it into real docs + a brain.
Shared resources live at ${CLAUDE_PLUGIN_ROOT}/acta/ (sibling of the skills/ folder). This skill reads
${CLAUDE_PLUGIN_ROOT}/acta/brief-template.md.
Language — two decisions start here
- Brief language. If
/acta:init opens the conversation, or the user is writing in another language, ask
which language the brief should be written in — propose the language they're already using, and confirm. Default
English. Write the brief in that language and talk to the user in it.
- Documentation language. The brief's final question (template section 11) asks what language the generated
docs should be in — it may differ from the brief. You don't answer it; the user does, and
/acta:build reads it.
Always English regardless of either choice: the <PROJECT>_BRIEF.md filename, acta: markers, and paths.
See ${CLAUDE_PLUGIN_ROOT}/acta/principles.md.
Flow
Determine the project name.
- Default: the basename of the current working directory.
- If it's generic (
project, app, src, code, new) or the user gave a name, prefer that.
- The brief file is
<PROJECT>_BRIEF.md at the project root: project token slugged (spaces → -), then
the whole filename UPPERCASED, e.g. HABIT-TRACKER_BRIEF.md.
Overwrite guard. If a *_BRIEF.md already exists, do NOT clobber it. Ask once:
merge / overwrite / open existing / pick a different name. Default to open existing (show its path).
Write the brief. Render ${CLAUDE_PLUGIN_ROOT}/acta/brief-template.md in the chosen brief language (translate the
template's prompts/labels; keep the section numbers and the sign-language header), replacing {{PROJECT_NAME}}
with the human project name. Write it to <project>/<PROJECT>_BRIEF.md. Do not fill any answers — the human does
that, including section 11 (documentation language).
Tell the user, briefly (in the brief language), the moves and the next step:
Created <PROJECT>_BRIEF.md. Fill in what you know; for any field you can instead put:
? → suggest one for me
- → skip / unknown / not applicable
Leave blanks for anything you want me to ask about. When ready, run /acta:build.
Rules
- Create only the brief file. No
docs/, no CLAUDE.md, no registry — those belong to /acta:build.
- Never invent answers. The template ships empty. The sign language is explained once, at the top of the file —
do not repeat symbol hints inside individual fields.
- Idempotent by guard: re-running never silently overwrites an existing brief.
- If the project already has substantial code (detect
package.json, pyproject.toml, src/, .git), mention
that /acta:adopt may fit better (it reverse-engineers docs from code), but still create the brief if asked —
the "why/product" side is worth capturing even for existing code.
1---2name: init3description: Start a new project — create <PROJECT>_BRIEF.md for you to fill (? = suggest, - = skip); asks the doc language. Writes no docs itself. Trigger on /acta:init, "start a project", "create a project brief".4---56# acta:init78The **entry point** for a new project. It produces one file — `<PROJECT>_BRIEF.md` — that captures the human's9intent as a starting point. It writes nothing else. Once filled, `/acta:build` turns it into real docs + a brain.1011Shared resources live at `${CLAUDE_PLUGIN_ROOT}/acta/` (sibling of the `skills/` folder). This skill reads12`${CLAUDE_PLUGIN_ROOT}/acta/brief-template.md`.1314## Language — two decisions start here15161. **Brief language.** If `/acta:init` opens the conversation, or the user is writing in another language, **ask17 which language the brief should be written in** — propose the language they're already using, and confirm. Default18 English. Write the brief in that language and talk to the user in it.192. **Documentation language.** The brief's **final question** (template section 11) asks what language the *generated20 docs* should be in — it may differ from the brief. You don't answer it; the user does, and `/acta:build` reads it.2122Always English regardless of either choice: the `<PROJECT>_BRIEF.md` filename, `acta:` markers, and paths.23See `${CLAUDE_PLUGIN_ROOT}/acta/principles.md`.2425## Flow26271. **Determine the project name.**28 - Default: the basename of the current working directory.29 - If it's generic (`project`, `app`, `src`, `code`, `new`) or the user gave a name, prefer that.30 - The brief file is `<PROJECT>_BRIEF.md` at the project root: project token slugged (spaces → `-`), then31 the whole filename UPPERCASED, e.g. `HABIT-TRACKER_BRIEF.md`.32332. **Overwrite guard.** If a `*_BRIEF.md` already exists, do NOT clobber it. Ask once:34 `merge / overwrite / open existing / pick a different name`. Default to **open existing** (show its path).35363. **Write the brief.** Render `${CLAUDE_PLUGIN_ROOT}/acta/brief-template.md` **in the chosen brief language** (translate the37 template's prompts/labels; keep the section numbers and the sign-language header), replacing `{{PROJECT_NAME}}`38 with the human project name. Write it to `<project>/<PROJECT>_BRIEF.md`. Do not fill any answers — the human does39 that, including section 11 (documentation language).40414. **Tell the user, briefly** (in the brief language), the moves and the next step:42 ```43 Created <PROJECT>_BRIEF.md. Fill in what you know; for any field you can instead put:44 ? → suggest one for me45 - → skip / unknown / not applicable46 Leave blanks for anything you want me to ask about. When ready, run /acta:build.47 ```4849## Rules5051- Create **only** the brief file. No `docs/`, no `CLAUDE.md`, no registry — those belong to `/acta:build`.52- Never invent answers. The template ships empty. The sign language is explained once, at the top of the file —53 do not repeat symbol hints inside individual fields.54- Idempotent by guard: re-running never silently overwrites an existing brief.55- If the project already has substantial code (detect `package.json`, `pyproject.toml`, `src/`, `.git`), mention56 that `/acta:adopt` may fit better (it reverse-engineers docs from code), but still create the brief if asked —57 the "why/product" side is worth capturing even for existing code.