factory-fix · git:20260908.31d25b9 · 2026-09-08 · sha256 1d19182a6385b569

factory-fix git:20260908.31d25b9A

Immutable. This exact content is served forever at /api/v1/blob/1d19182a6385b569.

---
name: factory-fix
description: Repair the findings on an existing pull request, in place, without replacing it.
argument-hint: the pull request, e.g. `gh:pr:14`
---

# factory-fix

**The repair is `archon-revise-pr`'s, not ours.** It checks the pull request out COLD --
a fresh clone and an engine-created worktree, with no artifacts from the run that built
it -- reuses the same implementation workflow the build path uses, and pushes the repair
to the SAME head without force. It never creates a replacement pull request and never
merges.

```bash
archon workflow run archon-revise-pr --branch factory/fix-pr-14 --base main \
  --input target_pr=14 \
  --input work_order=/absolute/path/outside/the/checkout/work-order.txt \
  --input findings=/absolute/path/outside/the/checkout/findings.json \
  --input publication_policy=/absolute/path/outside/the/checkout/publication.json
```

## The one rule that is not about the code

**Read the findings. Do not re-derive them.**

The findings are the record of an independent judge that has already run and whose
working copy no longer exists. A repair handed nothing does not crash: it re-reads the
diff, invents an objection, and produces a confident commit addressing something nobody
asked about, having spent one of two attempts. The factory passes the `findings` array
straight out of the acceptance receipt, and refuses to dispatch at all unless the
recorded verdict is `request_changes`. By hand, that is on you.

## What the factory adds around it

- **the attempt cap** (FACTORY_RULES 8), checked before anything is spent and counted in
  append-only `factory:attempt-N` labels, so the count survives the worktree.
- **the transition.** A repaired pull request goes back to `factory:needs-review`, never
  to `factory:approved`. The node that made the change does not get to decide it worked.
- **the identity refusal.** A returned pull request that is not the one we asked to
  repair is refused rather than adopted.

`delivered` here means the repaired head was published to the same pull request. It does
not mean acceptance passed; the factory validates it again, independently.

## The holdout

It matters more here than anywhere. A fixer that has already been told what is wrong,
and can also read the assertions it is measured against, is optimising directly against
the answer key.