From quiver
Executes a work plan or specification systematically: reads the plan, sets up a branch, implements tasks with continuous testing, commits incrementally, and ships a PR.
How this skill is triggered — by the user, by Claude, or both
Slash command
/quiver:work <plan file path or task description>When to use
user wants to execute a saved plan or implement tasks step by step -- '/work', 'start implementation', 'execute the plan', 'work through these tasks'
<plan file path or task description>The summary Claude sees in its skill listing — used to decide when to auto-load this skill
```
!`git rev-parse --is-inside-work-tree 2>/dev/null || echo "NO_GIT"`
!`git branch --show-current 2>/dev/null || echo "NO_GIT"`
!`git log --oneline -5 2>/dev/null || echo "NO_GIT"`
!`git status --short 2>/dev/null || echo "NO_GIT"`
Execute a work plan, specification, or task list systematically. The focus is on shipping complete features by understanding requirements quickly, following existing patterns, and maintaining quality throughout.
Announce: "Using the work skill to execute the plan."
Before starting Phase 1, use the Glob tool to gather plan context silently (do not show results to the user):
.claude/plans/*.md -- existing plans**/plans/*.md (max depth 4) -- plans in other locationsTreat empty Glob results as "no plans found". Proceed regardless.
Use when: a plan file exists, the user provides a spec or task list, or the user says "execute", "build this", "implement the plan". Use /quiver:plan first if no plan exists yet. Use /quiver:review for code review.
+----------+ +---------+ +---------+ +---------+ +--------+
| 1. LOAD | --> | 2. SETUP| --> | 3. BUILD| --> | 4. CHECK| --> | 5. SHIP|
| Read plan| | Branch | | Execute | | Quality | | PR |
+----------+ +---------+ +---------+ +---------+ +--------+
If any gather-context block above returned NO_GIT, this directory is not a git repository.
Print: > No git repository detected -- skipping branch/commit context.
Proceed to Phase 1. Treat all git-sourced fields (branch, log, diff, status) as empty. Skip branch creation in Phase 2, commit steps in Phase 3, and git-dependent actions in Phase 5.
Case A: Path provided. If $ARGUMENTS is a file path (ends in .md or contains /):
> Executing plan: {plan filename} ({step count} steps) on branch {branch}Case B: No arguments. If $ARGUMENTS is empty, collect all .md files from every plans/ directory discovered by the Glob block above, plus the .claude/plans/ listing.
AskUserQuestion:
Found one plan:
{relative path}(in{directory}) Goal: {goal from plan} Steps: {step count} Buttons:["Execute this plan", "Other -- I'll provide a path or description"]
AskUserQuestion with full relative paths as buttons (most recent first), plus an "Other -- I'll provide a path or description" option. Show the directory in each label so the user can distinguish plans in different locations.If no plans found:
No plans found in any
plans/directory. Usage:
/work <path-to-plan.md>-- execute a specific plan/work <plan-name>-- search for a plan by name/work <task description>-- work on a task directly/plan <task>-- create a plan first
Stop here.
Case C: Name or description provided. If $ARGUMENTS is not a file path and is not empty:
plans/ directory discovered by the Glob block. Combine with .claude/plans/ listing.$ARGUMENTS against each plan file's stem (without .md extension):
$ARGUMENTS (case-insensitive).$ARGUMENTS as a substring (case-insensitive).> Executing plan: {filename} from {directory}, proceed to Phase 1b. No confirmation needed.AskUserQuestion to present candidates with full relative paths as button labels. Add a "None of these -- treat as task description" button.$ARGUMENTS as an inline task description. Print > No matching plan found for "{$ARGUMENTS}". Treating as task description. Proceed to Phase 1b with the description as the work specification.If the plan links to files, patterns, or prior research -- read those now. Understanding context before coding prevents rework.
Check if this is a plan created to address review findings:
review_source field (e.g., review_source: .claude/reports/review-2026-03-10_14-30-00.md)..claude/reports/review-*.md or review-*_*-*-*.md.review_iteration frontmatter field (default: 1 if absent). If review_iteration >= 2, this is the final iteration -- Phase 4c verification is the only quality gate, and Phase 4d agent review is skipped unconditionally.If the plan contains genuine contradictions (e.g., two steps that conflict, a referenced file that does not exist), note them. If the plan is clear, skip this step entirely -- do not invent ambiguities.
/work with a plan -- that IS the approval. Summarizing the plan back and asking to continue is wasted time.If git is NOT available (Phase 0 detected NO_GIT): Skip this phase entirely -- proceed to Phase 2.5.
If already on a feature branch (not main/master), use AskUserQuestion:
You're on
{branch}. Continue here or create a new branch? Buttons:["Continue on {branch}", "Create new branch"]If continuing, move to Phase 2.5.
If on the default branch, create a new branch by default: git checkout -b <meaningful-name> using a descriptive name (e.g., feat/user-auth, fix/email-validation). For parallel development, use the using-git-worktrees skill. Never commit to the default branch without explicit user confirmation.
Parse the plan and count top-level tasks (one deliverable = one task, regardless of markup format). Announce before proceeding:
Strategy: {sequential | parallel orchestration} ({N} tasks found)
Reason: {why}
skills/work/orchestrator.md. Skip Phase 3 entirely -- orchestration replaces it.Break the plan into TodoWrite tasks (specific, dependency-ordered, with testing tasks included). For each task: mark in_progress, read referenced files, match existing patterns, implement, run tests immediately (fix failures before moving on), mark completed, update plan checkboxes if present.
Commits: After each logical unit, commit if tests pass and the change is meaningful (git add <specific files> -- never git add .). Wait if tests fail or the message would say "WIP". Heuristic: "Can I write a message describing a complete, valuable change?"
Blockers: Stop immediately. Note in TodoWrite. Ask the user. Do not proceed until resolved.
Before shipping, verify the work meets standards.
These are BLOCKING -- fix all before proceeding to Phase 5.
For non-trivial changes, pause and consider:
| Question | Action |
|---|---|
| What else fires when this runs? (callbacks, middleware, observers, hooks) | Trace two levels out from your change. Read the actual code. |
| Do tests exercise the real chain? | If every dependency is mocked, add at least one integration test using real objects. |
| Can failure leave orphaned state? | If state is persisted before an external call, test the failure path. |
| What other interfaces expose this? | Grep for the method/behavior in related classes. Add parity if needed. |
Skip this check for: leaf-node changes with no callbacks, no state persistence, no parallel interfaces. Purely additive changes (new helper, new partial) need only a quick scan.
WARNING (review but do not block): linting warnings present; no integration tests for changes touching callbacks or middleware; plan acceptance criteria not explicitly verified (NOTE: for review-fix plans, acceptance criteria are BLOCKING per Phase 4c step 6).
If Phase 1 identified this as a review-fix plan and the review report was successfully loaded:
Parse findings. Extract all non-filtered findings from the review report, grouped by severity (Critical, High, Medium, Low). Skip the ## Filtered Findings section entirely.
Map findings to plan steps. Match each finding to a plan task by file path or title/description. Findings with no matching plan step are marked "Not in scope."
Check addressed status. For each in-scope finding, verify the referenced file was modified (git diff) and the corresponding TodoWrite task is completed. Both conditions met = Addressed; otherwise = Not addressed.
Cross-reference check. Flag when a file modified to fix finding A is also referenced by finding B (potential regression area). Present these as notes, not blockers.
Present verification summary as a table with columns: ID, Severity, Finding, Status, Notes. Then apply gates:
AskUserQuestion:
Critical review finding not addressed: {finding title} Original finding: {finding text} Buttons:
["I've verified this is fixed", "Fix it now", "Skip -- not applicable"]
Acceptance criteria check. If the plan has an Acceptance Criteria section, mark each criterion as Met or Not met. If any are Not met, use AskUserQuestion:
Acceptance criterion not met: {criterion text} Buttons:
["Fix it now", "Skip -- criterion is outdated", "Mark as met (I've verified manually)"]All criteria must be Met to proceed to Phase 5.
Convergence verdict. If all in-scope findings are Addressed AND all acceptance criteria are Met, the review-fix cycle is COMPLETE -- proceed to Phase 5, do NOT trigger another review. If review_iteration >= 2, the cycle is COMPLETE regardless of remaining Low/Medium warnings; only unaddressed Critical findings can block. Print:
Review-Fix Cycle Status: Iteration {review_iteration} | Findings {addressed}/{total_in_scope} | Criteria {met}/{total_criteria} | COMPLETE
SKIP this phase entirely if this is a review-fix plan. The Phase 4c verification is the quality gate for review-fix work. Dispatching review agents on review-fix changes creates infinite loops -- the agents will always find new issues that weren't in the original scope.
For non-review-fix plans with large, risky, or security-sensitive changes, consider dispatching review agents. Discover available review agents by scanning agents/review/*.md and dispatch them using the orchestrate-agents skill patterns.
Do not use review agents by default. Tests + linting + pattern-following is sufficient for most work. Reserve agent reviews for:
If git is NOT available (Phase 0 detected NO_GIT): Skip commit and PR steps. Summarize what was completed and remaining follow-ups, then stop.
CRITICAL: Every git action in this phase requires explicit user confirmation via AskUserQuestion. NEVER commit, push, or create a PR without asking first.
NO ATTRIBUTION: Do not add Co-Authored-By, Generated with Claude, Built with AI, or any similar attribution lines to commit messages or PR descriptions. Only add attribution if the user explicitly requests it.
If there are uncommitted changes after Phase 4, stage the relevant files (specific files only -- never git add .) then delegate to /quiver:commit. If the user cancels, do not re-ask or proceed to 5b.
After committing (or if all commits were already made during Phase 3), use AskUserQuestion:
All work is committed on
{branch_name}. What would you like to do next? Buttons:["Create a pull request", "Done -- I'll handle the rest"]
/quiver:create-pr.If the work document has YAML frontmatter with a status field, update it:
status: active --> status: completed
Summarize:
git add . -- stage specific files to avoid accidental inclusions.AskUserQuestion -- every git action in Phase 5 requires explicit confirmation.Co-Authored-By, Generated with Claude, etc.) unless the user explicitly asks for it.blockedBy and file overlap before dispatching parallel agents; stop dispatching dependent tasks when a dependency fails.Trigger: /work [plan-path | plan-name | task description] (and /quiver:work should also work)
Setup: Git repo with at least one plan in .claude/plans/ or a plans/ directory. For the review-fix path: a plan with review_source frontmatter pointing at an existing .claude/reports/review-*.md file.
Expected behavior:
.claude/plans/ and **/plans/*.md./quiver:commit and /quiver:create-pr, gating each action with AskUserQuestion.Verification checklist:
/work; plan banner printed before code changes.AskUserQuestion; skill never auto-pushes.Known gotchas:
skills/review/SKILL.md.skills/work/orchestrator.md) replaces Phase 3; do not run Phase 3's TodoWrite loop alongside it.git add . is banned; always stage explicit file paths.Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub yagizdo/quiver --plugin quiver