Summary
codev/protocols/bugfix/consult-types/pr-review.md and impl-review.md are byte-identical (pr-review) or near-identical (impl-review) to their SPIR equivalents. Codex (and any consult model) correctly follows the SPIR-flavored instructions in those files, producing REQUEST_CHANGES verdicts on legitimate bugfix PRs for criteria that don't apply to the BUGFIX protocol.
This is a content bug, not a routing bug — the --protocol bugfix flag already routes correctly to the bugfix-specific templates. Those templates just contain SPIR text.
Reporter
Shannon architect (cross-project Codev consumer). Reported 2026-05-14 ~20:30 PDT via team channel. Observed 4× the same evening on Shannon PRs #1357, #1358, #1359, #1370 — all BUGFIX-protocol.
Symptoms
Codex returns REQUEST_CHANGES on bugfix PRs citing three recurring objections:
- "Missing codev/specs/plans/reviews artifacts" — the SPIR three-document trinity. BUGFIX produces reproduction-target + verification-receipt instead.
- "status.yaml
build_complete: false" — porch keeps this false for every bugfix project; only flips for SPIR. Strict-mode rules forbid the builder from editing status.yaml manually. The check treats it as a builder-fixable issue.
- "Commit format should be
[Spec NNNN] not Fix #NNNN" — codev/protocols/bugfix/prompts/fix.md explicitly mandates Fix #{{issue.number}}:. The [Spec NNNN] format is SPIR-only per AGENTS.md.
Each REQUEST_CHANGES triggers 2-3 iter cycles of the builder writing rebuttals defending protocol-mandated behavior. ~10-15 min per PR; ~50 min total architect+builder time burned per evening on this single issue.
Root cause (verified)
$ diff codev/protocols/bugfix/consult-types/pr-review.md \
codev/protocols/spir/consult-types/pr-review.md
$ # (empty — files are byte-identical)
The bugfix pr-review.md literally asks:
- "Are all spec requirements implemented?" → BUGFIX has no spec
- "Is the review document written (
codev/reviews/XXXX-name.md)?" → BUGFIX has no review doc
- "Are all commits properly formatted (
[Spec XXXX][Phase])?" → BUGFIX uses Fix #NNNN:
impl-review.md has the same problem: "Spec Adherence", "Plan Alignment", and a whole "Scoping (Multi-Phase Plans)" section that doesn't apply to bugfix.
Files to fix
Both pairs (kept in sync — codev/ is our self-hosted instance, packages/codev/skeleton/ is the template shipped to other projects):
codev/protocols/bugfix/consult-types/pr-review.md
codev/protocols/bugfix/consult-types/impl-review.md
packages/codev/skeleton/protocols/bugfix/consult-types/pr-review.md
packages/codev/skeleton/protocols/bugfix/consult-types/impl-review.md
Fix shape
Rewrite each template to reflect what BUGFIX actually produces:
- Inputs: GitHub issue + reproduction
- Outputs: code fix + verification-receipt (test that fails-then-passes)
- Commit format:
Fix #NNNN: <description>
- No spec/plan/review trinity
- No phase-scoping (BUGFIX is single-phase)
- Status check: pass if issue's symptom is verified-resolved, not based on porch state
Keep the verdict format (APPROVE | REQUEST_CHANGES | COMMENT) — only the focus-areas content changes.
Adjacent (out of scope for this issue, worth noting)
Shannon's architect suggested Codex's BUGFIX reviewer prompt should weight "live verification receipt" higher than "spec/plan trinity." Once the templates accurately reflect BUGFIX outputs, this falls out naturally — Codex follows the template.
Acceptance criteria
Protocol
Use BUGFIX protocol (afx spawn <id> --protocol bugfix).
Summary
codev/protocols/bugfix/consult-types/pr-review.mdandimpl-review.mdare byte-identical (pr-review) or near-identical (impl-review) to their SPIR equivalents. Codex (and any consult model) correctly follows the SPIR-flavored instructions in those files, producingREQUEST_CHANGESverdicts on legitimate bugfix PRs for criteria that don't apply to the BUGFIX protocol.This is a content bug, not a routing bug — the
--protocol bugfixflag already routes correctly to the bugfix-specific templates. Those templates just contain SPIR text.Reporter
Shannon architect (cross-project Codev consumer). Reported 2026-05-14 ~20:30 PDT via team channel. Observed 4× the same evening on Shannon PRs #1357, #1358, #1359, #1370 — all BUGFIX-protocol.
Symptoms
Codex returns
REQUEST_CHANGESon bugfix PRs citing three recurring objections:build_complete: false" — porch keeps thisfalsefor every bugfix project; only flips for SPIR. Strict-mode rules forbid the builder from editingstatus.yamlmanually. The check treats it as a builder-fixable issue.[Spec NNNN]notFix #NNNN" —codev/protocols/bugfix/prompts/fix.mdexplicitly mandatesFix #{{issue.number}}:. The[Spec NNNN]format is SPIR-only per AGENTS.md.Each REQUEST_CHANGES triggers 2-3 iter cycles of the builder writing rebuttals defending protocol-mandated behavior. ~10-15 min per PR; ~50 min total architect+builder time burned per evening on this single issue.
Root cause (verified)
The bugfix
pr-review.mdliterally asks:codev/reviews/XXXX-name.md)?" → BUGFIX has no review doc[Spec XXXX][Phase])?" → BUGFIX usesFix #NNNN:impl-review.mdhas the same problem: "Spec Adherence", "Plan Alignment", and a whole "Scoping (Multi-Phase Plans)" section that doesn't apply to bugfix.Files to fix
Both pairs (kept in sync —
codev/is our self-hosted instance,packages/codev/skeleton/is the template shipped to other projects):codev/protocols/bugfix/consult-types/pr-review.mdcodev/protocols/bugfix/consult-types/impl-review.mdpackages/codev/skeleton/protocols/bugfix/consult-types/pr-review.mdpackages/codev/skeleton/protocols/bugfix/consult-types/impl-review.mdFix shape
Rewrite each template to reflect what BUGFIX actually produces:
Fix #NNNN: <description>Keep the verdict format (
APPROVE | REQUEST_CHANGES | COMMENT) — only the focus-areas content changes.Adjacent (out of scope for this issue, worth noting)
Shannon's architect suggested Codex's BUGFIX reviewer prompt should weight "live verification receipt" higher than "spec/plan trinity." Once the templates accurately reflect BUGFIX outputs, this falls out naturally — Codex follows the template.
Acceptance criteria
bugfix/consult-types/*-review.mdfiles incodev/rewritten for bugfix concernspackages/codev/skeleton/protocols/bugfix/consult-types/updated identically[Spec NNNN]commit format in bugfix templatesProtocol
Use BUGFIX protocol (
afx spawn <id> --protocol bugfix).