craft-prompt
Advanced surface, separate from Foreman's core roadmap job — a standalone prompt builder for work that has no roadmap entry…
Bootstraps a project's ROADMAP.jsonl and .foreman/config.json from the user's goals and the repository, or appends to an existing roadmap. Asks only what the request leaves open — what the project is, its near-term goals, and whether an inferred draft looks right — then writes
Claude Code
$ npx -y skills add V-Songbird/foreman --skill init --agent claude-code
Codex
$ npx skills add V-Songbird/foreman --skill init -a codex -y
Cursor
$ npx skills add V-Songbird/foreman --skill init -a cursor -y
Gemini CLI
$ npx skills add V-Songbird/foreman --skill init -a gemini-cli -y
GitHub Copilot
$ npx skills add V-Songbird/foreman --skill init -a github-copilot -y
OpenCode
$ npx skills add V-Songbird/foreman --skill init -a opencode -y
Windsurf
$ npx skills add V-Songbird/foreman --skill init -a windsurf -y
name: init description: "Bootstraps a project's ROADMAP.jsonl and .foreman/config.json from the user's goals and the repository, or appends to an existing roadmap. Asks only what the request leaves open — what the project is, its near-term goals, and whether an inferred draft looks right — then writes and commits only the files it changes, leaving every optional behavior at its built-in default. Checkpoint policy is never asked here; it is asked the first time it could actually matter. Use for Foreman setup or an explicitly requested reinitialization; existing history and settings are preserved unless replacement was authorized." when_to_use: "Trigger when the user wants to set up Foreman's roadmap for a project, says \"init foreman\", \"set up the roadmap\", \"initialize foreman\", \"start a roadmap\", or invokes /foreman:init. Usually a one-time-per-project action." argument-hint: "<project description — optional seed>" allowed-tools: AskUserQuestion, Read, Write, Bash, PowerShell
Foreman runs in Claude Code, Codex and Antigravity. Every step applies to every host unless it names one. Read [the shared runtime](../foreman/runtime.md) first: it covers plugin paths, JSON payloads, questions and authorization for every host.
Creates `ROADMAP.jsonl` and `.foreman/config.json` at the project root. Both are committed to git — they're a shared project artifact, not personal state — unless the project git-ignores them to keep a private roadmap; then init writes both and commits neither (step 4 of the write phase). All reads/writes go through `${CLAUDE_PLUGIN_ROOT}/scripts/roadmap.js` (see "Write phase" below) — it enforces the write invariants (id computation, parse-before/after-write) mechanically, so you don't have to. Run it as `roadmap.js <subcommand> --help` (for example `roadmap.js add --help`) for that subcommand's shape; read the **Fields** section of [the schema](../../roadmap-schema.md) (`${CLAUDE_PLUGIN_ROOT}/roadmap-schema.md`) if you need field semantics beyond what's obvious from the names (`why`/`what`/`depends_on`/`planned_touches`).
---
<!-- [Foreman: 209] --> **Trial log.** Setup is one of the flows no script can see from outside, so these lines are the only record it left. A valid call records nothing unless the project set `trialLog`, so it needs no check first; a malformed one fails in every project. Either way it never blocks the flow.
At the **first question actually put to the user** — or as the write phase starts, when no question is asked — one line:
node ${CLAUDE_PLUGIN_ROOT}/scripts/trial-log.js init_started '{}'and, after each question interaction the user actually sees — one `AskUserQuestion` call in Claude Code, however many questions it batches; one picker call or one plain-text question in Codex; one `ask_question` call in Antigravity — one event:
node ${CLAUDE_PLUGIN_ROOT}/scripts/trial-log.js question_asked '{"flow":"init"}'A skipped question is never logged. A cancelled or blocked setup leaves an `init_started` with no `init_completed`. That is the correct record of an unfinished setup, not a gap to paper over.
---
If `ROADMAP.jsonl` already exists at the project root, an explicit user instruction to append or to replace selects that branch. Otherwise ask before doing anything else — `AskUserQuestion` in Claude Code; in Codex, the picker in [questions.md](../foreman/questions.md). With no usable question tool, ask each question in this skill as one self-contained plain-text question.
**Q1** — "ROADMAP.jsonl already exists. What do you want to do?" Options: `Overwrite it (start fresh — discards done entries and their accumulated notes)`, `Keep it, just add to it`, `Cancel`
before replacing it.
replacing; don't touch `.foreman/config.json` if it already exists.
---
Read [call-1.md](call-1.md) (`${CLAUDE_PLUGIN_ROOT}/skills/init/call-1.md`) and follow it.
---
There is no policy interview, and there is no settings file to compose. Every optional behavior already has a safe default in the code that reads it, so init writes `.foreman/config.json` as an empty object `{}` and lets those defaults stand: finished work waits for the user's confirmation, nothing blocks a task's completion, handoffs open with a persona sentence, and no prompt section is omitted.
Writing those values out would only create a second copy that can drift from the readers. Checkpoint policy stays absent for a second reason too: an absent key is the record that the user was never asked, so it gets asked once, the first time it could matter, at the first split run.
Any of it can be set by hand later — see [the README's settings table](../../README.md#settings).
---
Read [draft.md](draft.md) (`${CLAUDE_PLUGIN_ROOT}/skills/init/draft.md`) and follow it.
---
Read [call-2.md](call-2.md) (`${CLAUDE_PLUGIN_ROOT}/skills/init/call-2.md`) and follow it.
---
Read [write.md](write.md) (`${CLAUDE_PLUGIN_ROOT}/skills/init/write.md`) and follow it.
Project continuity for Claude Code and Codex: a roadmap beside your code, grounded handoffs, and clear task status.
Advanced surface, separate from Foreman's core roadmap job — a standalone prompt builder for work that has no roadmap entry…
The one entrance to Foreman, which keeps a project's plan and task history. Say what you want in plain language and this routes…
Picks the next task from a project's ROADMAP.jsonl and crafts its handoff prompt, or adds, corrects, accepts, resumes, defers,…
Advanced surface, normally reached through the `foreman` entrance's Reconcile and pick mode, which hands it a near-term set of…
Shape output for a reader with ADHD: lead with the next action, number multi-step work, restate state across turns, suppress…
Set up the owner profile so a personal agent knows who it works for (first-run setup, \"get to know me\"), or distill colleague,…