factory-plan · git:20260908.fe9b83c · 2026-09-08 · sha256 9217054472e3a0d7
factory-plan git:20260908.fe9b83cA
Immutable. This exact content is served forever at /api/v1/blob/9217054472e3a0d7.
--- name: factory-plan description: Plan one issue the way the factory plans it, using Archon's sdlc planner. argument-hint: the issue to plan, as gh:issue:<n> --- # factory-plan **The planner is Archon's, not ours.** ```bash archon workflow run archon-plan "Plan gh:issue:<n>. Read MISSION.md and FACTORY_RULES.md first." ``` `archon-plan` ships bundled in the engine. It grounds itself against the current repository, writes `plan.md`, returns `ready`, and refuses to mutate the checkout while it does. **The automatic path does not call this.** `archon-ship` decides for itself whether an item needs planning, investigation or neither, and routes accordingly -- so running the planner on its own is what you do when you want that judgement separately, or when you want to read a plan before spending a delivery on it. ## If you want a different planner Put a workflow named `archon-plan` in your own `.archon/workflows/`. Project scope beats bundled, so yours wins with nothing here to change. That is the seam, not a fork. The same seam reaches the workflow that JUDGES. The factory dispatches `archon-accept` by name and does not pin where the definition comes from, so an `archon-accept` in your own `.archon/workflows/` is what evaluates your candidates. That is your call to make -- `factory doctor` names any of the six it finds defined here so it is never invisible. What a *candidate* cannot do is supply its own judge: the gate acceptance runs is rebuilt from the base branch, and the guard rejects any pull request that touches it. ## The one rule that outlives any planner Nobody reads the diff before it merges. A planner should declare `ready: false` rather than plan around an ambiguity it would normally raise in review, because there is no review to raise it in.