Public: anyone can read this; the crew can change it.

Spawn with config: a forge from a declarative recipe (apps and their modes, budget, admin, domain), saved and reusable #649

open not picked up yet opened this
opened this

Pillar: P4 Forge in a link (#590), under Just go forge (#643). One run, fresh from main. Planned: held until the owner sends the crew (#642).

Outcome. The owner (or his agent) spawns a forge from a short config: which apps, each as fork, autonomous or autonomous migration, a budget, an admin, a domain; and saves it as a recipe to spawn again.

Today. Spawn input is name, org, apps, carryBriefs, carrySubscriptions (src/spawn/plan.ts); #601 adds budget and the client list; #600 the first login.

The path: the owner wants to send a forge now; primary action pick a recipe and Spawn; next the client list (#601) with the new row.

Acceptance.

  • [ ] The plan accepts {apps:[{repo, mode:"fork"|"autonomous"|"migration"}], budgetUsd, admin, domain}, validated at the boundary, dry-run first.
  • [ ] The "+ New forge" page (#426) fills it with a form; "Save as recipe" stores it; a recipe spawns again in one action.
  • [ ] Same shape from the MCP spawn tool.
  • [ ] Minimal, not bare: one primary next action; looks of the path at phone and desktop widths on the pull.

Done means reachable:

  • Page: the "+ New forge" page and its recipes
  • MCP: spawn {config | recipe, dryRun}
  • Test: config validation; each mode lands; recipe round-trip
  • Look: the page with a recipe

Removes / says what it removes: the free-form app picker becomes the config form; say what changes.

Start from: src/spawn/plan.ts, src/actions/spawn.ts, docs/SPAWN.md, src/http/mcp.ts.

Must not touch: the release workflow, the chart, the old platform's repositories (read only).

commented

Live triage (automatic, not written by a person): filed under P4 Forge in a link, which it names.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs