Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 58 additions & 15 deletions DOCS.md

Large diffs are not rendered by default.

22 changes: 13 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@ npx impactus
```

One command stamps your project with the **agent harness** plus the **FIA**,
running entirely inside the AI subscriptions you already have (Claude Pro/Max
and ChatGPT Plus/Pro) — no API keys, no per-token billing.
running entirely inside the AI subscriptions you already have (Claude Pro/Max,
ChatGPT Plus/Pro and — when you have it — Grok Build on xAI) — no API keys,
no per-token billing.

## What the names mean

Expand Down Expand Up @@ -123,7 +124,9 @@ imp stop # the stop button: halts FDA runs cleanly before
imp handoff # continue the newest Pi conversation in `claude`
# (Codex outage? your work keeps moving)
imp llm # numbered list of the FDA agents + the LLM each runs on;
# switch by number or name (`imp llm set 1 fable`)
# switch by number or name (`imp llm set 1 fable`,
# `imp llm set builder grok-4.6 --effort high`);
# one run only: node imp/fda_*.mjs … --llm "grok-4.6 high"
imp defer # postpone a task blocked on something external (API keys,
# a decision): sealed probes quarantined reversibly;
# `imp defer resume <n>` brings it back
Expand Down Expand Up @@ -183,7 +186,7 @@ clear it.
| `/grill [target]` | Stress-tests the PRD one question at a time, recording every decision. |
| `/prd [focus]` | Quick reviewer opinion on the PRD. |
| `/map` | Conditional architecture checkpoint → map + screens + tasks + milestones; opens the plan in the browser when done. Simple plans skip the checkpoint automatically. |
| `/task [n]` | Runs ONE task end to end via FDA. A brief explicitly marked `Mode: prototype` uses the guarded lint/typecheck-only prototype flow. |
| `/task [n] [--llm "<model> [level]"]` | Runs ONE task end to end via FDA. A brief explicitly marked `Mode: prototype` uses the guarded lint/typecheck-only prototype flow. `--llm "grok 4.6 high"` (or `"builder=opus xhigh"`) runs THAT task on another LLM without touching the roster — same flag on `/goal`, `/quick`, `/bug`. |
| `/goal [--light]` | Runs ALL tasks until done. `Mode: prototype` applies per brief; otherwise `--light` skips review+document phases. A completed milestone automatically runs blocking browser QA before the next one. |
| `/feature "what you want"` | New feature in an existing system: delta interview → delta spec + new tasks. |
| `/bug "the symptom"` | Records the defect, runs proportional RCA when ambiguity/risk requires it, proves a valid failing test first (RED), then fixes it. |
Expand All @@ -197,7 +200,7 @@ clear it.
| `/launch` | Go live — public beta and production, with readiness gates. |
| `/qa [scope?]` | Browser QA at milestone/spec/task — Playwright e2e, responsive check, design audit, durable report. |
| `/agents` | Visual roster editor: engine, model and fallbacks per FDA agent — with automatic mid-run relay when an engine dies. |
| `/llm ["1 → fable"?]` | Quick model switch: numbered list of the FDA agents with the LLM each one runs on — answer by number or name and it's applied (same safe write path as `/agents`; also `imp llm` in a terminal). |
| `/llm ["1 → fable"?]` | Quick model switch: numbered list of the FDA agents with the LLM each one runs on — answer by number or name and it's applied (same safe write path as `/agents`; also `imp llm` in a terminal). Engines: Claude Code, Codex/any Pi provider, Cursor and Grok Build (`grok-4.6`). |
| `/defer [n \| resume n]` | Postpone a task that cannot proceed right now (missing API keys, a pending decision): status → deferred, sealed holdout probes quarantined reversibly; `resume` brings everything back (also `imp defer` in a terminal). The launch check warns about every open deferral. |
| `/status` | Progress + latest runs. |
| `/evolve --run <id>` / `--since <period>` | Evidence-backed retrospective of a finished FDA run or project-history window; writes local reports and never changes the system automatically. |
Expand Down Expand Up @@ -256,7 +259,7 @@ npx impactus --update-runtime --dir . # 3. imp/ + .pi/ outdated? re-stamp from
imp update # 4. update the CLI itself, Pi and the pinned extensions
```

`imp doctor` checks your subscriptions (Claude/Codex/Cursor), the core CLIs,
`imp doctor` checks your subscriptions (Claude/Codex/Cursor/Grok Build), the core CLIs,
Pi and — inside a project — the install itself, and every finding ends in the
command that repairs it. `imp fix` only ever **restores what disappeared**
(deleted harness/runtime/skill files, the `AGENTS.md` block) and never
Expand Down Expand Up @@ -384,9 +387,10 @@ the agent harness (skills, commands, gates) and the FIA runtime:
- Recommended, **not required** (the installer only warns and keeps going):
**Claude Code** with a Claude **Pro/Max** subscription, and/or — for FIA's
Codex roles — a **ChatGPT Plus/Pro** subscription (login at the end via
`/login openai-codex` in Pi). With neither, everything still installs; you
get the best results with one of these, and other providers/models can be
added later inside Pi with `/login`.
`/login openai-codex` in Pi). **Grok Build** (`grok login`, xAI
subscription) is picked up automatically as a third engine when present.
With none, everything still installs; you get the best results with one of
these, and other providers/models can be added later inside Pi with `/login`.

Everything runs inside these subscriptions — no API keys, no per-token
billing.
Expand Down
10 changes: 6 additions & 4 deletions bin/imp.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Usage:
all impactus flags work — see \`imp init --help\`)
imp update Update impactus, Pi and the Pi extension packages
imp tui Terminal dashboard — tasks, specs and runs (same as npm run tui)
imp doctor Read-only checkup: subscriptions (Claude/Codex/Cursor),
imp doctor Read-only checkup: subscriptions (Claude/Codex/Cursor/Grok),
CLIs, Pi and this project (--json for machine output).
--gates additionally self-tests the FIA gates: injects
deliberate defects against throwaway fixtures and
Expand All @@ -78,9 +78,11 @@ Usage:
(works while Codex is down; --list picks a session)
imp llm List the FDA agents (phase owners) numbered, each with
the LLM it runs on, and switch any by number or name:
\`imp llm set 1 fable\`. Interactive on a TTY; --json
for machines; same rules as /agents (comments kept,
backup first, locked while a run is live)
\`imp llm set 1 fable\`, \`imp llm set builder grok-4.6
--effort high\`. Interactive on a TTY; --json for
machines; same rules as /agents (comments kept, backup
first, locked while a run is live). One run only:
node imp/fda_*.mjs "<prompt>" --llm "grok-4.6 high"
imp defer Postpone a task that cannot proceed now (missing API
keys, a pending decision): \`imp defer <n>\` quarantines
its sealed holdout probes (rename only — reversible),
Expand Down
25 changes: 24 additions & 1 deletion fia-templates/fia.config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,31 @@
# `cursor-agent login`. Models: `cursor-agent --list-models`
# (e.g. sonnet-4.5, gpt-5, composer-1…). Cursor's "effort"
# lives in the model id itself (e.g. sonnet-4.5-thinking).
# grok → Grok Build (`grok` CLI) — xAI subscription. Install:
# curl -fsSL https://grok.com/install.sh | bash, then
# `grok login` (OAuth; the token in ~/.grok/auth.json refreshes
# itself — that login is what the FIA detects). Models:
# grok-4.6 (default), grok-4.5 (`grok models` lists them).
# `effort`: low | medium | high | xhigh (no max/ultracode).
# NEVER set XAI_API_KEY for this engine — that turns the CLI
# into per-token API billing; the FIA strips it from grok runs.
# The first grok run trusts the project folder once
# (~/.grok/trusted_folders.toml) so the FIA hooks apply —
# untrusted, grok would skip them in silence.
#
# Effort/reasoning per engine:
# claude_code → `effort` field (low…ultracode)
# grok → `effort` field (low|medium|high|xhigh)
# pi → `thinking` field (minimal|low|medium|high) — on Codex this
# is the model's reasoning effort
# cursor → model-id variant (…-thinking)
#
# ONE RUN on another LLM (this file untouched): every FDA takes
# --llm "<model> [<level>]" e.g. --llm "grok-4.6 high" (every agent)
# --llm "<agent>[,<agent>]=<model> [<level>]" e.g. --llm "builder=opus xhigh"
# The choice is printed, traced (llm_override) and saved with the run, so
# `--resume` keeps it. Inside Pi: `/task 12 --llm "grok 4.6 high"`.
#
# WARNING: Claude INSIDE Pi bills as per-token "extra usage" — to stay on the
# Pro/Max plan, always use coding_agent: claude_code.
#
Expand Down Expand Up @@ -61,7 +79,12 @@
# model: fable
# effort: xhigh
#
# - name: builder # Grok 4.5 straight on xAI
# - name: builder # Grok 4.6 on the xAI subscription (Grok Build)
# coding_agent: grok
# model: grok-4.6
# effort: high
#
# - name: builder # Grok 4.5 through the xAI API key (per token)
# coding_agent: pi
# model: xai/grok-4.5
#
Expand Down
Loading
Loading