cc-changelog
CONTRIBUTOR TOOL - Track CC changelog, extract new versions since last check, analyze impact on plugin (breaking changes, opportunities, deprecations). Run…
Fix Elixir/Phoenix code until Codex CLI review comes back clean — bounded review, fix, verify loop before opening a PR. Use when codex is installed and you want an external cross-model critic on your changes before pushing.
$ npx -y skills add oliver-kriska/claude-elixir-phoenix --skill codex-loop --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/codex-loopContext preview
The summary Claude sees to decide when to auto-load this skill.
Fix Elixir/Phoenix code until Codex CLI review comes back clean — bounded review, fix, verify loop before opening a PR. Use when codex is installed and you want an external cross-model critic on your changes before pushing.
name: codex-loop description: Fix Elixir/Phoenix code until Codex CLI review comes back clean — bounded review, fix, verify loop before opening a PR. Use when codex is installed and you want an external cross-model critic on your changes before pushing. effort: medium argument-hint: "[--base <branch>] [--uncommitted] [--auto] [--max-rounds N]"
Critic→Refiner loop with the Codex CLI as external critic: review → fix approved findings → verify → re-review, until codex is clean or rounds run out. Codex reviews; Claude fixes. Complements `/phx:review` (Claude panel) — run either or both before a PR.
/phx:codex-loop # diff vs default branch, interactive /phx:codex-loop --uncommitted # staged + unstaged + untracked /phx:codex-loop --base develop # explicit base branch /phx:codex-loop --auto # auto-approve P0/P1/P2, skip P3 /phx:codex-loop --max-rounds 2 # default 3
1. **BOUNDED rounds — never exceed --max-rounds (default 3)** — each round costs codex quota; report remaining findings instead of looping on 2. **Verify BEFORE re-review** — `mix compile --warnings-as-errors` + tests must pass before burning a codex round on broken code 3. **NEVER commit or push** — leave git to the user 4. **Codex findings get Iron Law scrutiny** — decline suggestions that violate an Iron Law, with explanation in the round report 5. **Skipped findings are reported, never dropped** — every finding ends as fixed, declined (with reason), or deferred-by-user 6. **Missing CLI stops the skill with an install hint** — suggest `/phx:review` as the codex-free alternative; never crash
Run `command -v codex`. If missing: STOP. Show the install hint (`brew install codex` or `npm i -g @openai/codex`, then `codex login`; `codex doctor` to diagnose) and suggest `/phx:review`.
Then two cheap checks that save review rounds:
inspects working-tree state too and WILL flag local dirt (stray edits, dirty submodules) as findings. Surface the dirt and ask: clean/stash first, or proceed knowing round 1 may spend findings on it.
section, note once that `/phx:init` installs the Elixir rubric that steers codex priorities — then proceed (it works without, on defaults).
1. **Review** — ONE foreground Bash call, explicit `timeout: 600000` (large diffs run 10+ min). On timeout with the process alive: ONE `until [ -f {out} ]; do sleep 5; done` wait — never poll-spam or `pkill` a running review (quota is spent either way). ALWAYS silence the streams — only the `-o` file matters (10k+ lines otherwise):
codex exec review --base {branch} --ephemeral \
-o /tmp/codex-round-{n}.md > /tmp/codex-round-{n}.log 2>&1NEVER pass custom instructions with a diff-mode flag — the CLI rejects the combination; the rubric comes from AGENTS.md `## Review guidelines` (`/phx:init`). Parse the output file, NOT the exit code (0 even with findings). Recipes: `${CLAUDE_SKILL_DIR}/references/codex-cli.md`.
2. **Clean check** — parse the output file; no `- [P{n}]` bullets means CLEAN → go to Step 4.
3. **Triage** — emit the findings table (`# | P | file:line | title | proposed action`) as **visible response text BEFORE any `AskUserQuestion` call** — a table composed only in thinking never renders. Then ask approve-or-skip per finding (`AskUserQuestion`). With `--auto`: approve P0/P1/P2, skip P3 (list skipped in the round report).
4. **Fix** — apply approved fixes with user-visible diffs. Check each against Iron Laws first (Law 4).
5. **Verify** — scoped, before the next round:
mix format {changed_files} && \
mix compile --warnings-as-errors && mix test {affected_tests}If verification fails 3 times, STOP with a BLOCKER report — do not burn another codex round on broken code.
6. Next round (n+1).
## Codex Loop Report — {CLEAN | MAX ROUNDS REACHED | BLOCKED}
Rounds: {n}/{max} | Fixed: {n} | Declined (Iron Law): {n} | Deferred: {n}
{per-round: findings → outcome}
{remaining findings if not CLEAN}On CLEAN: suggest `/phx:compound` for non-obvious fixes, then commit/PR. On MAX ROUNDS: list remaining findings; offer `/phx:plan` to convert them into a follow-up plan.
implement → /phx:codex-loop (YOU ARE HERE) → clean → commit/PR → /phx:watch-pr --codex
↑ or arrive from /phx:review --codex verdict REQUIRES CHANGESpatterns, verified gotchas (CLI 0.142.5)
Docs: phxagents.dev -- install guides per runtime, the runtime compatibility matrix, all 26 Iron Laws, and a browsable skill and agent catalog. Claude Code is great.
Repo: oliver-kriska/claude-elixir-phoenix
CONTRIBUTOR TOOL - Track CC changelog, extract new versions since last check, analyze impact on plugin (breaking changes, opportunities, deprecations). Run…
Run an A/B codex review experiment — holistic codex review vs 3 focused dimension passes (security, ecto, liveview) on the branch diff, classify findings,…
CONTRIBUTOR TOOL - Validate plugin against latest Claude Code documentation. Catches breaking changes, deprecations, discovers new features. Run before…
Guide plugin development workflow — editing skills, agents, hooks, or eval framework in this repo. Use when modifying files in plugins/elixir-phoenix/,…
Generate X/Twitter release promotion posts with ASCII tables and CodeSnap rendering. Use when writing release posts, promotion tweets, plugin announcements, or…
CONTRIBUTOR TOOL - Cut a plugin release: bump plugin.json version, finalize CHANGELOG, update README if needed, gate on make ci, commit, tag vX.Y.Z, and create…