oliver-kriska/codex-ab
Run an A/B codex review experiment — holistic codex review vs 3 focused dimension passes (security, ecto, liveview) on the branch diff, classify findings, report a panel-value verdict. Use when the branch is fresh, before any codex review runs.
npx skills add https://github.com/oliver-kriska/claude-elixir-phoenix --skill codex-ab
Answer one question with evidence: **do dimension-focused codex passes find
real issues that one holistic codex exec review misses?** Runs both on the
same diff, then classifies every focused finding against the holistic pass.
> DECIDED 2026-07-10 after 4 runs (2 fresh): panel KILLED. Fresh-only
> 1 real miss / 1 false positive plus one zero-value run at 4× cost —
> real misses did not outnumber FPs. Kept as contributor tooling (NOT
> distributed) for one possible retest: a UI-heavy diff with a single
> extra liveview-focused pass (2× cost). Scoreboard:
> .claude/research/2026-07-03-codex-review-integration.md §7.
/codex-ab # A/B against main (~5 min, 4 codex runs)
/codex-ab develop # explicit base branch
codex-reviewed yet (cloud or /phx:codex-loop). A drained diff returns
NO FINDINGS everywhere and proves nothing — wasted quota
finding only scores if the issue actually exists at that file:line
.md files — streams are diverted to .logfiles; never cat a log into context (10k+ lines each)
Run command -v codex — missing → STOP with install hint. Then:
git status --short dirty → warn (codex flags local dirt as findings)If yes → STOP, explain the fresh-diff requirement (Iron Law 1)
bash ${CLAUDE_SKILL_DIR}/scripts/codex-panel-ab.sh {base} \
.claude/reviews/codex-ab-$(date +%Y-%m-%d-%H%M)
Use run_in_background — it runs 1 holistic codex exec review + 3
focused codex exec workers (security / ecto / liveview) in parallel,
all streams redirected. Do other work or wait; never poll.
Read the 4 findings files (holistic.md, security.md, ecto.md,
liveview.md — small). For EACH focused finding:
| Class | Meaning | Test |
|-------|---------|------|
| DUPLICATE | Holistic already found it | Same file + same defect |
| REAL MISS | Genuine issue holistic missed | Read the code at file:line — defect confirmed (Iron Law 2) |
| FALSE POSITIVE | Manufactured, pre-existing, or wrong | Code check fails, or issue exists on base branch too |
Present:
## Codex Panel A/B — {branch} vs {base}
| dimension | findings | duplicate | real miss | false positive |
Holistic-only findings: {n}
Verdict this run: {REAL MISS count} real miss vs {FP count} false positive
Decision rule: build --codex-panel only if real misses outnumber false
positives across 2-3 fresh branches.
Write the verdict table to .claude/reviews/codex-ab-{date}/VERDICT.md.
Suggest repeating on the next 1–2 fresh branches before deciding.
fresh branch → /codex-ab (YOU ARE HERE) → verdict logged
├─ real misses win across runs → build /phx:review --codex-panel
└─ duplicates/FPs win → keep holistic /phx:codex-loop, drop panel idea
└─ OUTCOME 2026-07-10: this branch won — panel dropped
${CLAUDE_SKILL_DIR}/scripts/codex-panel-ab.sh — the 4-run harness/phx:codex-loop (holistic fix loop), /phx:review --codexTake oliver-kriska/codex-ab from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.