oliver-kriska/claude-elixir-phoenix-opencode-phx-full
Run a portable sequential plan-work-verify-review-compound lifecycle. Use optional generic workers only when the runtime supports them.
npx skills add https://github.com/oliver-kriska/claude-elixir-phoenix --skill phx-full
Run the portable lifecycle: discover → plan → work → verify → read-only review →
compound. The filesystem is the state machine; no task API or named orchestrator
is required.
/phx-full Add user authentication with magic links
/phx-full Background email jobs --max-cycles 5 --max-retries 2
If input is an existing .claude/plans/*/plan.md, do not re-plan. Ask for the
native phx-work workflow or execute its portable behavior in this session.
Defaults are --max-cycles 10, --max-retries 3, and --max-blockers 5.
Tidewave evidence. Tidewave is optional; local files, logs, and mix commands
are the complete fallback. Record complexity and proposed depth, then wait for
the user's plan/implementation gate. Never auto-select a path that bypasses it.
phx-plan skill when available, orexecute its portable research checklist and artifact format in this session.
Require .claude/plans/{slug}/plan.md. Present it and wait for approval before
implementation unless the user already explicitly authorized the full run.
The full-run limits override any baseline workflow retry defaults. Before every
attempt persist cycle, task retry, and blocker counters; if the next attempt
exceeds a limit, do not run it. --max-retries N means at most N retries after
the initial attempt (N+1 total attempts for that task). Mark [BLOCKED] and
stop at --max-blockers.
mix format --check-formatted, compile with warnings aserrors, focused tests during work, and the full relevant suite at this gate.
A failed gate appends FAIL and returns to WORKING only within the cycle limit.
phx-review, or perform the same read-only,changed-file review sequentially. Generic workers are optional. Review never
edits. Findings or failures become plan tasks and return to WORKING.
invoke phx-compound. Inline contract: write a solution artifact under
.claude/solutions/ only when the run produced a non-obvious, reusable learning,
including problem, root cause, solution, and verification. Otherwise append
COMPOUNDING SKIPPED: no reusable learning to progress. Never edit CLAUDE.md.
Track `INITIALIZING → DISCOVERING → PLANNING → WORKING → VERIFYING → REVIEWING →
COMPOUNDING → COMPLETED, with BLOCKED` reachable from every phase. A cycle is
one WORKING → VERIFYING → REVIEWING pass; increment and persist it before
entering VERIFYING. At --max-cycles, do not begin another pass: stop INCOMPLETE with remaining tasks,
failed evidence, and a concrete resume command for this runtime.
progress.md is the sole state authority. It is append-only: never overwrite or
maintain a competing authoritative current-state record. Every event has monotonic
seq, phase_visit, phase, cycle, task, task_attempt, cumulative
blockers, outcome, and an evidence or artifact path. On resume, validate the
last valid event against evidence, plan checkboxes, artifacts, and git state, then
enter only its legal successor. Any WORKING edit after a VERIFYING or REVIEWING
pass invalidates both passes; the next legal phase is VERIFYING.
Completion requires all required plan tasks checked, no unresolved [BLOCKED],
the latest VERIFYING PASS after the last edit, the latest accepted REVIEWING after
that verify, and COMPOUNDING passed or explicitly skipped.
references/execution-steps.md — portable phase gates and outputsreferences/example-run.md — example lifecyclereferences/safety-recovery.md — resume and blocker recoveryreferences/cycle-patterns.md — bounded cycle patternsTake oliver-kriska/claude-elixir-phoenix-opencode-phx-full 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.