plugins/specweave/skills/close-all/SKILL.md
Batch-close all increments at 100% completion. Discovers "ready for review" and "active" increments with all tasks done, then closes each via sw-closer subagent (Claude Code) or sw:done (non-cloud). Use when saying "close all", "close stuck increments", "batch close".
npx skillsauth add anton-abyzov/specweave close-allInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Close all increments that are at 100% task completion but have not been formally closed via sw:done.
echo "=== Scanning for closeable increments ==="
for meta in $(find .specweave/increments -maxdepth 2 -name "metadata.json" 2>/dev/null | sort); do
st=$(jq -r '.status' "$meta" 2>/dev/null)
# Only consider active/in-progress/ready_for_review
[ "$st" != "active" ] && [ "$st" != "in-progress" ] && [ "$st" != "ready_for_review" ] && continue
d=$(dirname "$meta")
id=$(basename "$d")
# Check for pending tasks
tasks_file="$d/tasks.md"
[ ! -f "$tasks_file" ] && continue
pending=$(grep -c '\[ \]' "$tasks_file" 2>/dev/null || echo "0")
total=$(grep -c '\[x\]' "$tasks_file" 2>/dev/null || echo "0")
if [ "$pending" -eq 0 ] && [ "$total" -gt 0 ]; then
echo "CLOSEABLE: $id (status: $st, tasks: $total/$total)"
fi
done
If no closeable increments found, report "No increments ready for closure" and stop.
If the user passed --dry-run, print the list of closeable increments and stop. Do not close anything.
For each closeable increment, spawn an sw-closer subagent in a fresh context:
Agent({
subagent_type: "sw:sw-closer",
prompt: "Close increment <ID>. Increment path: .specweave/increments/<ID>/",
description: "Close increment <ID>"
})
Close sequentially (one at a time) to respect dependency order and avoid race conditions.
Wait for each sw-closer to return before spawning the next. If a closer fails, log the failure and continue to the next increment.
For each closeable increment, invoke closure directly:
Skill({ skill: "sw:done", args: "<increment-id>" })
Non-cloud tools have fresh context per skill invocation, so inline closure works without overflow.
Print a summary table of results:
BATCH CLOSURE SUMMARY
═══════════════════════════════════════════
ID Status Reason
────────────────────────────── ──────── ──────
0593-fix-refresh-plugins CLOSED All gates passed
0589-cli-complete-improvements FAILED Gate 1: grill BLOCKER found
0587-fix-github-sync-dedup CLOSED All gates passed
═══════════════════════════════════════════
Closed: 2 | Failed: 1 | Total: 3
tools
Generate AI videos from text prompts or images. Supports Google Veo 3.1 and Pollinations.ai (free). Use when generating video, creating animations, text-to-video, AI video, video generation, make clip, animate.
tools
Validate increment with rule-based checks and AI quality assessment. Use when saying "validate", "check quality", or "verify increment".
tools
Create and manage umbrella workspaces for multi-repo projects. Activate when the user wants to: create umbrella, umbrella init, wrap in umbrella, create workspace, setup multi-repo, migrate repos to umbrella, umbrella create, new workspace, restructure into umbrella, "wrap this repo", "create umbrella for these repos", "setup workspace with repos", "move repos into umbrella". Do NOT activate for: add a repo to existing umbrella (use sw:get), add a feature, add an increment, clone a repo (use sw:get).
tools
--- description: Merge completed parallel agent work and trigger GitHub sync per increment. Activates for: team merge, merge agents, combine work, team finish. --- # Team Merge **Verify all teammates completed, run quality gates, close increments, and trigger sync.** ## Usage ```bash sw:team-merge sw:team-merge --dry-run # Preview merge plan sw:team-merge --skip-sync # Merge without GitHub/JIRA sync ``` ## What This Skill Does 1. **Verify all teammates completed** -- bl