Parent
What to build
Add an --output json flag to both init and add commands. When provided (alongside --yes), the command runs the full pipeline silently (no interactive prompts, no terminal rendering), writes files to disk, and returns a structured ApplyResult as JSON on stdout.
This is the deterministic execution path for LLMs — used for greenfield scaffolding where conflicts aren't expected and the LLM just wants the CLI to do its thing and report back.
Output Shape (example)
{
"ok": true,
"created": ["src/db/index.ts", "src/server/main.ts"],
"modified": [],
"skipped": [],
"failed": [],
"finalize": [
{ "label": "Install dependencies", "command": "bun install" }
]
}
LLM Workflow Context
schema (#109) → construct Selection → plan (#102) → apply with own judgment
OR
schema (#109) → construct Selection → add --yes --output json (this) → done
Acceptance criteria
Blocked by
Parent
What to build
Add an
--output jsonflag to bothinitandaddcommands. When provided (alongside--yes), the command runs the full pipeline silently (no interactive prompts, no terminal rendering), writes files to disk, and returns a structured ApplyResult as JSON on stdout.This is the deterministic execution path for LLMs — used for greenfield scaffolding where conflicts aren't expected and the LLM just wants the CLI to do its thing and report back.
Output Shape (example)
{ "ok": true, "created": ["src/db/index.ts", "src/server/main.ts"], "modified": [], "skipped": [], "failed": [], "finalize": [ { "label": "Install dependencies", "command": "bun install" } ] }LLM Workflow Context
Acceptance criteria
--output jsonflag accepted on bothinitandadd--yes, runs full pipeline with no interactive prompts--trustalso passed)Blocked by