analyze
免费Analyze a legacy app in any language before rewriting it in Elixir: inventory, features as goals, why each mechanism exists, runtime topology, external contracts. Use to start or refresh a rewrite.
中文简介正在准备中。当前显示原文说明。
Fix Elixir/Phoenix code until Codex CLI review comes back clean; Use when codex is installed and you want an external…
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
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 $elixir-phoenix:phx-review (Claude panel)
— run either or both before a PR.
$elixir-phoenix:phx-codex-loop # diff vs default branch, interactive
$elixir-phoenix:phx-codex-loop --uncommitted # staged + unstaged + untracked
$elixir-phoenix:phx-codex-loop --base develop # explicit base branch
$elixir-phoenix:phx-codex-loop --auto # auto-approve P0/P1/P2, skip P3
$elixir-phoenix:phx-codex-loop --max-rounds 2 # default 3
mix compile --warnings-as-errors + tests
must pass before burning a codex round on broken code$elixir-phoenix:phx-review as the codex-free alternative; never crashRun 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 $elixir-phoenix:phx-review.
Then two cheap checks that save review rounds:
git status --short, only when using --base): codex
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.AGENTS.md has no ## Review guidelines
section, note once that $elixir-phoenix:phx-init installs the Elixir rubric that
steers codex priorities — then proceed (it works without, on defaults).--base/--uncommitted) → use as given--base {default}--uncommitted--max-rounds, default 3)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>&1
NEVER pass custom instructions with a diff-mode flag — the CLI rejects
the combination; the rubric comes from AGENTS.md ## Review guidelines
($elixir-phoenix:phx-init). Parse the output file, NOT the exit code (0 even with
findings). Recipes: references/codex-cli.md.
Retired model (exit 1, no -o file, log: model is not supported
/ Model not found): resolve the account default — MODEL=$(codex debug models | jq -r '.models | map(select(.visibility == "list")) | sort_by(.priority) | .[0].slug') — retry once with -m "$MODEL" -c review_model="$MODEL" (both: a pinned review_model beats -m),
reuse it every round, never hardcode a slug. Tell the user once to set
model/review_model = "$MODEL" in ~/.codex/config.toml.
Clean check — parse the output file; no - [P{n}] bullets means
CLEAN → go to Step 5.
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).
Fix — apply approved fixes with user-visible diffs. Check each against Iron Laws first (Law 4).
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.
Next round (n+1) — back to Step 3.
## 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 $elixir-phoenix:phx-compound for non-obvious fixes, then commit/PR.
On MAX ROUNDS: list remaining findings; offer $elixir-phoenix:phx-plan to convert them
into a follow-up plan.
implement → $elixir-phoenix:phx-codex-loop (YOU ARE HERE) → clean → commit/PR → $elixir-phoenix:phx-watch-pr --codex
↑ or arrive from $elixir-phoenix:phx-review --codex verdict REQUIRES CHANGES
references/codex-cli.md — invocation recipes, parse
patterns, verified gotchas (CLI 0.142.5; model fallback 0.162.1)还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Analyze a legacy app in any language before rewriting it in Elixir: inventory, features as goals, why each mechanism exists, runtime topology, external contracts. Use to start or refresh a rewrite.
中文简介正在准备中。当前显示原文说明。
Design the idiomatic Elixir architecture for a rewrite: set the compatibility bar (ADR-000), consult phx specialists on open questions, then build contexts, ledger and ADRs. Use after /rewrite:analyze.
中文简介正在准备中。当前显示原文说明。
Ash Framework — resources, actions, policies, aggregates; Use when generating resources via mix ash.codegen, editing…
中文简介正在准备中。当前显示原文说明。
Ash Framework — resources, actions, policies, aggregates, calculations, AshPhoenix.Form, LiveView, migrations. Use when generating resources via mix ash.codegen, editing changes, checks, types, validations, or domain code interfaces.
中文简介正在准备中。当前显示原文说明。
Compatibility alias for the Elixir/Phoenix plugin's LiveView assigns audit. Invoke explicitly with /lv:assigns.
中文简介正在准备中。当前显示原文说明。
Inspect LiveView socket assigns for memory bloat — missing temporary_assigns, unused assigns, unbounded lists needing streams, memory estimates. Use when LiveView memory grows or you need to add temporary_assigns.
中文简介正在准备中。当前显示原文说明。