{"slug":"work","title":"work","summary":"Execute Elixir/Phoenix plan tasks with progress tracking. Use after /phx:plan to implement features with mix compile and mix test verification after each step, or --continue to resume interrupted work.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-10-04T15:14:17.977682Z","repo":{"url":"https://github.com/oliver-kriska/claude-elixir-phoenix","stars":560,"forks":44,"license":"MIT","updatedAt":"2026-10-02T04:11:38Z"},"bodyHtml":"<hr>\n<h2>name: work\ndescription: Execute Elixir/Phoenix plan tasks with progress tracking. Use after /phx:plan to implement features with mix compile and mix test verification after each step, or --continue to resume interrupted work.\neffort: high\nargument-hint: </h2>\n<h1>Work</h1>\n<p>Execute tasks from a plan file with checkpoint tracking and verification.</p>\n<h2>Usage</h2>\n<pre><code>/phx:work .claude/plans/user-auth/plan.md\n/phx:work .claude/plans/user-auth/plan.md --from P2-T3\n/phx:work --skip-blockers\n/phx:work  # Resumes most recent plan\n</code></pre>\n<h2>Arguments</h2>\n<ul>\n<li><code>&lt;plan-file&gt;</code> -- Path to plan file (optional, auto-detects recent)</li>\n<li><code>--from &lt;task-id&gt;</code> -- Resume from specific task (e.g., <code>P2-T3</code>)</li>\n<li><code>--skip-blockers</code> -- Continue past blocked tasks</li>\n<li><code>--continue</code> -- Resume IN_PROGRESS plan from checkboxes</li>\n</ul>\n<h2>Iron Laws (NON-NEGOTIABLE)</h2>\n<ol>\n<li><strong>NEVER auto-proceed</strong> to /phx:review or any next workflow\nphase -- always ask the user what to do next</li>\n<li><strong>AUTO-CONTINUE between plan phases</strong> -- when Phase N completes,\nimmediately start Phase N+1. Do NOT stop or ask for permission\nbetween phases. Only stop at BLOCKERS or when ALL phases are done.</li>\n<li><strong>Plan checkboxes ARE the state</strong> -- <code>[x]</code> = done, <code>[ ]</code> = pending.\nNo separate JSON state files. Resume by reading the plan.</li>\n<li><strong>Verify after EVERY task</strong> -- never skip verification</li>\n<li><strong>Max 3 retries then BLOCKER</strong> -- don't keep retrying forever</li>\n<li><strong>Stage specific files</strong> -- never use <code>git add -A</code> or <code>git add .</code></li>\n<li><strong>Read scratchpad BEFORE implementing</strong> -- scratchpad has dead-ends\nand decisions that prevent rework. Step 2 is not optional.</li>\n<li><strong>Clarify ambiguous tasks</strong> -- ask the user rather than guessing\nwhen a plan task's intent is unclear</li>\n</ol>\n<h2>Step 1: Research Decision</h2>\n<p>Ask the user for plans with &gt;3 tasks:</p>\n<blockquote>\n<p>This plan has  remaining tasks across  phases.</p>\n<ol>\n<li><strong>Start working</strong> -- Begin immediately (familiar patterns)</li>\n<li><strong>Quick research</strong> -- Read source files first (~10 min)</li>\n<li><strong>Extensive research</strong> -- Web search + docs (~30 min)</li>\n</ol>\n</blockquote>\n<p>Skip for plans with 3 or fewer simple tasks -- just start.</p>\n<blockquote>\n<p><strong>Split warning</strong>: Plans with &gt;10 tasks risk 2-3 context\ncompactions. Suggest splitting via <code>/phx:plan</code> if not already.</p>\n</blockquote>\n<h2>Step 2: Check Context (MANDATORY)</h2>\n<p>Read scratchpad and compound docs before writing any code — skipping\nthis causes rework. Read <code>.claude/plans/{slug}/scratchpad.md</code> (short,\ncritical context) for dead-ends and decisions, then Grep <code>.claude/solutions/</code>\nfor solved patterns. Apply findings: skip dead-ends, follow decisions,\nreuse patterns. Ask the user when a task's intent is ambiguous — never\nguess, corrections are expensive.</p>\n<h2>Step 3: Load, Create Task List, and Resume</h2>\n<p>Read plan file, count <code>[x]</code> (completed) vs <code>[ ]</code> (remaining).\nFind first unchecked task by <code>[Pn-Tm]</code> ID.</p>\n<p><strong>Create Claude Code tasks</strong> only if <code>TaskCreate</code> is in your tool list (Sonnet 5+ and Opus 4.8+\nomit it unless <code>CLAUDE_CODE_ENABLE_TODO_TOOLS=1</code>; never ToolSearch for it). Without it, skip every\n<code>TaskCreate</code>/<code>TaskUpdate</code> step in this skill — plan checkboxes and <code>progress.md</code> are the state:</p>\n<pre><code>For each unchecked `- [ ] [Pn-Tm] Description`:\n  TaskCreate({\n    subject: \"[Pn-Tm] Description\",\n    description: \"Full task details from plan\",\n    activeForm: \"Implementing: Description\"\n  })\n</code></pre>\n<p>Skip already-checked items (<code>[x]</code>). Set <code>blockedBy</code> between phases\n(Phase 2 tasks blocked by Phase 1 tasks).</p>\n<p>With <code>--from P2-T3</code>: Skip to that specific task.</p>\n<p><strong>Stale-plan check</strong>: if the plan predates this session (file mtime), spot-check\n2-3 files it references before executing — assumptions may have drifted.</p>\n<p>See <code>${CLAUDE_SKILL_DIR}/references/resume-strategies.md</code> for all resume modes.</p>\n<h2>Step 4: Execute Tasks</h2>\n<p>Execute each unchecked task (<code>- [ ] [Pn-Tm][agent] Description</code>):</p>\n<ol>\n<li><strong>Start task</strong>: <code>TaskUpdate({taskId, status: \"in_progress\"})</code></li>\n<li><strong>Route</strong> by <code>[agent]</code> annotation (see <code>${CLAUDE_SKILL_DIR}/references/execution-guide.md</code>)</li>\n<li><strong>Implement</strong> the task</li>\n<li><strong>Verify</strong>: <code>mix format</code> + <code>mix compile --warnings-as-errors</code>\n(at phase end, also run <code>mix test &lt;affected&gt;</code> — see tiers below)</li>\n<li><strong>Complete task</strong>: Mark checkbox <code>[x]</code> on pass, <strong>append\nimplementation note</strong> inline, AND\n<code>TaskUpdate({taskId, status: \"completed\"})</code>. Example:\n<code>- [x] [P1-T3] Add user schema — citext for email, composite index on [user_id, status]</code>\nThis survives context compaction; the plan is re-read on resume.</li>\n<li><strong>On failure</strong>: retry up to 3 times, then create BLOCKER\nand write DEAD-END to scratchpad (see error-recovery.md)</li>\n</ol>\n<p><strong>Parallel groups</strong>: Tasks under <code>### Parallel:</code> header spawn\nas background subagents. See <code>${CLAUDE_SKILL_DIR}/references/execution-guide.md</code>\nfor spawning pattern, prompt template, and checkpoint flow.</p>\n<p><strong>Verification tiers</strong> (scoped to minimize redundant runs):</p>\n<ul>\n<li>Per-task: <code>mix compile --warnings-as-errors</code> only\n(format is checked by PostToolUse hook automatically)</li>\n<li>Per-phase: <code>mix compile --warnings-as-errors</code> + <code>mix test &lt;affected_files&gt;</code> + <code>mix credo --strict</code>\n(scope tests: <code>mix test test/path/to_affected_test.exs</code> — NOT full suite)</li>\n<li>Per-feature (Tidewave): behavioral smoke test via <code>project_eval</code>\n(create record, fetch, verify -- see execution-guide.md)</li>\n<li>Final gate: <code>mix test</code> (full suite — run ONCE at the end, not per-phase)</li>\n</ul>\n<p><strong>Token efficiency</strong>: Write user-facing text for non-obvious decisions\nand failures; routine verification passes need no commentary. When\nseveral checkboxes complete together (parallel groups, resume catch-up),\nbatch them into ONE edit pass — never one Edit call per checkbox.\nThe PostToolUse hook checks formatting but does NOT modify files —\nrun <code>mix format</code> explicitly during verification or before committing.</p>\n<h2>Step 5: Completion</h2>\n<p>Summarize results with <code>AskUserQuestion</code>:</p>\n<blockquote>\n<p>Implementation complete! / tasks finished.\n files modified across  phases.</p>\n</blockquote>\n<p>Options: 1. <strong>Run review</strong> (<code>/phx:review</code>) (Recommended),\n2. <strong>Get a briefing</strong> (<code>/phx:brief</code> — understand what was built),\n3. <strong>Commit changes</strong> (<code>/commit</code>), 4. <strong>Continue manually</strong>.\nIf any task fixed a non-obvious bug, also mention <code>/phx:compound</code>\nto capture the solution.</p>\n<p>With blockers: list them, offer <strong>Replan</strong> (<code>/phx:plan</code>),\n<strong>Review first</strong> (<code>/phx:review</code>), or <strong>Handle myself</strong>.</p>\n<p><strong>If blockers remain</strong>, auto-write HANDOFF to scratchpad:</p>\n<pre><code>### [HH:MM] HANDOFF: {plan name}\nStatus: {done}/{total} tasks. Blockers: {list}.\nNext: {first unchecked task ID and description}.\nKey decisions: {brief list from this session}.\n</code></pre>\n<p>Include context beyond checkboxes for fresh session resume.</p>\n<p>Wait for the user's choice before starting /phx:review or any other phase.</p>\n<h2>Step 6: Check for Additional Plans</h2>\n<p>After completion, use Glob to find other plan files matching\n<code>.claude/plans/*/plan.md</code>. If pending plans exist, inform the\nuser. Do NOT auto-start.</p>\n<h2>Integration</h2>\n<pre><code>/phx:plan → /phx:work (YOU ARE HERE) → /phx:review → /phx:compound\n                 ↑ ASK USER before each transition\n</code></pre>\n<h2>References</h2>\n<ul>\n<li><code>${CLAUDE_SKILL_DIR}/references/execution-guide.md</code> -- Task routing, parallel execution, verification</li>\n<li><code>${CLAUDE_SKILL_DIR}/references/resume-strategies.md</code> -- Resume modes and state persistence</li>\n<li><code>${CLAUDE_SKILL_DIR}/references/file-formats.md</code> -- Plan and progress file formats</li>\n<li><code>${CLAUDE_SKILL_DIR}/references/error-recovery.md</code> -- Error handling and blockers</li>\n<li><code>${CLAUDE_SKILL_DIR}/references/harness-patterns.md</code> -- Critic-refiner pattern for debugging loops</li>\n</ul>\n","files":[{"path":"references/error-recovery.md","sizeBytes":1785,"isText":true},{"path":"references/execution-guide.md","sizeBytes":10223,"isText":true},{"path":"references/file-formats.md","sizeBytes":1407,"isText":true},{"path":"references/harness-patterns.md","sizeBytes":3108,"isText":true},{"path":"references/resume-strategies.md","sizeBytes":1913,"isText":true},{"path":"SKILL.md","sizeBytes":7515,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-10-04T15:15:33.06382Z","sha256":"D84C4E8074556AF3CD98F7152208825D0B2FDA1DF0DD97C7A5031BC1766BE432","sizeBytes":12471},"review":null,"source":{"repositoryUrl":"https://github.com/oliver-kriska/claude-elixir-phoenix","path":"plugins/elixir-phoenix/skills/work","license":"MIT","commit":"9767a82d24ddddad553e85f88efc2869a7fd7d88","subtreeSha":"CAAF81A702C01D5911FF9BD9EA3CA860E9A0B349E4C2E4BFCB9CA70B592DE96A","lastSyncedAt":"2026-10-04T15:14:09.139242Z"},"reviewedAt":"2026-10-04T15:17:38.453042Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/plugins/elixir-phoenix/skills/work"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install oliver-kriska-claude-elixir-phoenix@llmmart"},{"target":"git","command":"git clone https://github.com/oliver-kriska/claude-elixir-phoenix.git"}]}