From quiver
Execute a work plan or specification systematically -- read the plan, set up a branch, implement tasks with continuous testing, commit incrementally, and ship a PR. Use when you have a plan file, spec, or task list ready to execute.
npx claudepluginhub yagizdo/quiver --plugin quiverThis skill uses the workspace's default tool permissions.
```
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.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
!`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.
.claude/plans/ (created by /quiver:plan)/quiver:plan instead/quiver: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.
Check the current branch:
git branch --show-current
If already on a feature branch (not main/master):
AskUserQuestion:
You're on
{branch}. Continue here or create a new branch? Buttons:["Continue on {branch}", "Create new branch"]
If on the default branch, choose how to proceed:
| Option | When to use |
|---|---|
| New branch | Default. git checkout -b <meaningful-name> from latest default branch. |
| Worktree | Parallel development or keeping default branch workspace clean. Use the using-git-worktrees skill if available. |
| Stay on default | Only with explicit user confirmation. Never commit to default branch without permission. |
Use a descriptive branch name based on the task (e.g., feat/user-auth, fix/email-validation).
After setting up the environment, determine the execution strategy.
Count tasks. Parse the plan and count top-level work units. A "task" is any top-level section that describes a discrete, independently completable piece of work -- regardless of heading format or label. Plans from other tools (e.g., superpowers, ce-plan, custom specs) use varied formats: numbered steps, heading sections, YAML lists, or markdown checklists. Count by semantic intent (one deliverable = one task), not by a specific markup convention.
Announce the decision to the user before proceeding:
Strategy: {sequential | parallel orchestration} ({N} tasks found)
Reason: {why -- e.g., "2 tasks, below parallel threshold" or "4 tasks with 2 independent groups"}
| Task Count | Strategy | Action |
|---|---|---|
| 1-2 | Sequential | Proceed to Phase 3 (Build) as normal. No subagents. |
| 3+ | Parallel orchestration | Follow the orchestration procedure below. Skip Phase 3 entirely -- orchestration replaces it. |
skills/work/orchestrator.md for the full procedure. In brief: parse tasks,
resolve dependencies (explicit + file overlap), report the execution plan, dispatch
one worktree-isolated subagent per task, collect results, merge in topological order,
run post-merge tests, then proceed to Phase 4.Break the plan into actionable tasks using TodoWrite. Each task should be:
For each task in priority order:
in_progress in TodoWrite.completed in TodoWrite.- [ ] to - [x] for the completed item.After completing each task, decide whether to create a commit:
| Commit when... | Wait when... |
|---|---|
| A logical unit is complete (model, service, component) | Only a partial unit is done |
| Tests pass and the change is meaningful | Tests are failing |
| Switching contexts (backend to frontend, model to controller) | Change is pure scaffolding with no behavior |
| About to attempt risky or uncertain changes | Commit message would be "WIP" |
Heuristic: "Can I write a commit message that describes a complete, valuable change?" If yes, commit. If the message would say "WIP" or "partial", wait.
git add <specific files for this logical unit>
git commit -m "feat(scope): description of this unit"
Stage specific files -- avoid git add . to prevent accidental inclusions.
If you encounter a blocker (missing dependency, unclear requirement, failing infrastructure):
Before shipping, verify the work meets standards.
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.
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. For each finding, identify whether the plan had a corresponding task:
Check addressed status. For each in-scope finding:
git diff for changes to that file).completed.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:
## Review Finding Verification
| ID | Severity | Finding | Status | Notes |
|----|----------|---------|--------|-------|
| C1 | Critical | SQL injection in auth.py:42 | Addressed | File modified, task completed |
| H1 | High | Missing input validation | Addressed | File modified, task completed |
| M1 | Medium | Inconsistent error handling | Not in scope | No plan step for this finding |
| L1 | Low | Naming convention | Not addressed | File not modified |
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, verify each criterion:
AskUserQuestion:
Acceptance criterion not met: {criterion text} Buttons:
["Fix it now", "Skip -- criterion is outdated", "Mark as met (I've verified manually)"]
Convergence verdict. After gates and acceptance criteria:
review_iteration >= 2: the cycle is COMPLETE regardless of remaining Low/Medium warnings. Only unaddressed Critical findings can block. Proceed to Phase 5.## Review-Fix Cycle Status
Iteration: {review_iteration} of 2 (max)
Findings addressed: {addressed}/{total_in_scope}
Acceptance criteria met: {met}/{total_criteria}
Status: COMPLETE -- ready to ship
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. Keep them clean. 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 .):
git add <relevant files>
Delegate to /quiver:commit. This skill generates a Conventional Commits message, presents it to the user via AskUserQuestion with Commit / Commit & Push / Edit / Cancel options, and only executes after the user explicitly chooses. It handles the full commit (and optional push) flow with built-in confirmation.
If the user cancelled the commit, respect that -- do not re-ask or proceed to 5b.
After committing (or if all commits were already made during Phase 3), ask the user what to do next. Do NOT push or create a PR without asking.
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. It handles push, title generation, body formatting, and confirmation.If the work document has YAML frontmatter with a status field, update it:
status: active --> status: completed
Summarize:
Get clarification once at the start, then execute. The goal is to finish the feature, not create perfect process. A shipped feature beats a perfect feature that does not ship.
The plan references similar code and patterns for a reason. Read those references. Match what exists. Do not reinvent.
Run tests after each change, not at the end. Fix failures immediately. Continuous testing prevents compounding surprises.
Follow existing patterns. Write tests for new code. Run linting before pushing. Do not bolt quality on at the end.
Small, focused commits are easier to review, easier to revert, and easier to debug with git bisect. Each commit should tell a coherent story.
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.BLOCKING (fix before shipping):
WARNING (review but do not block):
Trigger: /work [plan-path | plan-name | task description] (and /quiver:work should also work)
Setup:
.claude/plans/ or a related plans/ directory.review_source frontmatter pointing at an existing .claude/reports/review-*.md file.Expected behavior:
.claude/plans/ and **/plans/*.md.Strategy: sequential for 1-2 tasks or parallel orchestration for 3+ tasks before continuing.## Filtered Findings), runs the verification table, applies the BLOCKING/WARNING gates, and prints the convergence verdict; Phase 4d is skipped automatically./quiver:commit and /quiver:create-pr, gating each git action with AskUserQuestion and never adding AI attribution.Verification checklist:
/work.> Executing plan: <name>).AskUserQuestion; the 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 in addition to it.git add . is banned anywhere in this skill; agents reading the plan must stage explicit file paths.