templates/agents/contrarian.md and its engine-owned twin .claude/agents/contrarian.md were byte-identical before PR #174. #174 (issue #164) reworded all three persona anchors in the distribution template — Core Principle, the Recommendation bullet, and the anti-pattern list — to drop the unconditional "every finding must include a recommendation" demand, matching the schema relaxation in workflows/ticketmill.js. The engine-owned copy .claude/agents/contrarian.md was deliberately left untouched (out of scope for #164, per the repo's engine-owned-paths rule), so this repo's own live contrarian persona still carries the retired "every finding must include a recommendation, even if it's 'investigate further'" anti-pattern line and the old unconditional "you never object without ... a proposed alternative or mitigation" Core Principle line.
Note this pair is not covered by scripts/lint-engine.js's LOCKSTEP_PAIRS byte-compare (that only checks workflows/ticketmill.js and setup-worktree.sh), so nothing currently catches or enforces this drift.
Ask: resync .claude/agents/contrarian.md to templates/agents/contrarian.md (copy the three reworded anchors) so this repo's own runtime contrarian persona reflects the same "recommendation is welcome, not required" rule the schema and prompts now enforce.
Refs #174, #164.
templates/agents/contrarian.mdand its engine-owned twin.claude/agents/contrarian.mdwere byte-identical before PR #174. #174 (issue #164) reworded all three persona anchors in the distribution template — Core Principle, the Recommendation bullet, and the anti-pattern list — to drop the unconditional "every finding must include a recommendation" demand, matching the schema relaxation inworkflows/ticketmill.js. The engine-owned copy.claude/agents/contrarian.mdwas deliberately left untouched (out of scope for #164, per the repo's engine-owned-paths rule), so this repo's own live contrarian persona still carries the retired "every finding must include a recommendation, even if it's 'investigate further'" anti-pattern line and the old unconditional "you never object without ... a proposed alternative or mitigation" Core Principle line.Note this pair is not covered by
scripts/lint-engine.js'sLOCKSTEP_PAIRSbyte-compare (that only checksworkflows/ticketmill.jsandsetup-worktree.sh), so nothing currently catches or enforces this drift.Ask: resync
.claude/agents/contrarian.mdtotemplates/agents/contrarian.md(copy the three reworded anchors) so this repo's own runtime contrarian persona reflects the same "recommendation is welcome, not required" rule the schema and prompts now enforce.Refs #174, #164.