batch-complete
Completes or cancels multiple items at once — closes out features, cleans up old work, and archives completed workstreams. Use when a user says: close out this feature, complete everything under X, cancel this workstream, clean up old items, bulk complete, finish this feature, or archive completed work.
What this skill does
# batch-complete — Bulk Complete or Cancel Items Close out a feature subtree, cancel an abandoned workstream, or clean up stale items in one operation. Handles gate checks, active-item warnings, and reports exactly what succeeded and what was skipped. --- ## Step 1 — Identify Scope Determine what to complete before calling anything else. **If `$ARGUMENTS` looks like a UUID** (8-4-4-4-12 hex pattern), use it directly as the root item ID in Step 2. **If `$ARGUMENTS` is a text string** (title fragment or keyword), search for it: ``` query_items(operation="search", query="$ARGUMENTS", limit=5) ``` If the search returns exactly one result, use that item ID. If multiple results match, present them via `AskUserQuestion`: ``` ◆ Multiple items matched "$ARGUMENTS" — which did you mean? 1. "Auth System Feature" (queue) — uuid-1 2. "Auth Token Refresh" (work) — uuid-2 ``` **If `$ARGUMENTS` is empty**, classify the request from conversation context: - **Feature subtree**: user mentions completing "everything under" a named item → search for that item, use `rootId` - **Specific items**: user lists names or IDs → collect each UUID, use `itemIds` - **Cleanup**: user wants to clear old/stale items → search by status or title fragment, collect UUIDs, use `itemIds` If scope still cannot be determined, ask via `AskUserQuestion`: "Which item (or items) do you want to complete? Provide a root UUID, a title fragment, or a list of item IDs." --- ## Step 2 — Preview Impact Before executing, show the user what will happen. Call: ``` query_items(operation="overview", itemId="<rootId>") ``` Parse the child counts by role and present a preview table. Use the trigger chosen (or likely to be chosen) to set the action label — `trigger="complete"` shows "will be completed"; `trigger="cancel"` shows "will be cancelled": ``` ◆ Impact Preview — "Auth System Feature" [trigger: complete] ○ queue: 3 items (will be completed) ◉ work: 1 item (active — will be force-completed) ◉ review: 1 item (active — will be force-completed) ✓ terminal: 2 items (already done — will be skipped) ``` ``` ◆ Impact Preview — "Auth System Feature" [trigger: cancel] ○ queue: 3 items (will be cancelled) ◉ work: 1 item (active — will be force-cancelled) ◉ review: 1 item (active — will be force-cancelled) ✓ terminal: 2 items (already done — will be skipped) ``` **For `itemIds` path** (no root item): call `query_items(operation="get", id="<uuid>")` on each item and build the same role-grouped preview table from the individual results. For large lists (10+ items), use `query_items(operation="search")` with filters instead of individual get calls. **If any items are in `work` or `review`**, warn the user that active work will be force-completed (gate checks still apply). Use `AskUserQuestion` with three options: ``` ◆ 2 items are currently active (work or review). How would you like to proceed? 1. Proceed — complete everything including active items 2. Cancel active items instead — use trigger="cancel" (bypasses gates) 3. Abort — leave everything as-is ``` Wait for the user's choice before continuing. Record whether to use `trigger="complete"` or `trigger="cancel"`. --- ## Step 3 — Gate Check **Skip this step if `trigger="cancel"` was already chosen in Step 2** — cancel bypasses all gates, so gate checking is unnecessary. For `trigger="complete"`, gate previewing is best-effort. `complete_tree` performs the definitive gate check during execution and reports any failures in its response. A lightweight pre-check is still useful to surface issues before committing — call `get_context` on each child from Step 2's results rather than on the root item (the root itself is not completed by `complete_tree`, only its descendants are): ``` get_context(itemId="<child-uuid>") ← repeat for each child listed in Step 2 ``` If any child's gate status shows missing required notes, display them: ``` ⊘ Gate Warnings (preview — definitive check runs at execution): "Implement login" — missing: implementation-notes (work, required) "Write tests" — missing: test-results (work, required) ``` Then offer three options via `AskUserQuestion`: ``` ◆ Some items have unfilled required notes and will be skipped by the gate. What would you like to do? 1. Fill notes first — use manage_notes(operation="upsert") to fill each item's required notes, then return here 2. Use cancel trigger — bypasses all gates, marks items as "cancelled" 3. Proceed anyway — gated items will be skipped, others will complete ``` Call `get_context(itemId=...)` to retrieve `guidancePointer` for items with missing notes. Use the guidance as authoring instructions before filling. Wait for the user's choice. If they choose option 2, switch to `trigger="cancel"` for the execution step. If `complete_tree` reports gate failures in Step 4, fill the missing notes and rerun `complete_tree` — items already in terminal are silently skipped on subsequent runs. --- ## Step 4 — Execute Call `complete_tree` with the chosen trigger: **Feature subtree (rootId):** ``` complete_tree(rootId="<uuid>", trigger="complete") ``` **Specific items (itemIds):** ``` complete_tree(itemIds=["<uuid-1>", "<uuid-2>", "<uuid-3>"], trigger="complete") ``` **Cancel variant (bypasses gates):** ``` complete_tree(rootId="<uuid>", trigger="cancel") ``` Parse the response and present results: ``` ✓ Batch Complete — "Auth System Feature" ✓ Design API schema — completed ✓ Set up database — completed ⊘ Implement login — skipped (gate: missing implementation-notes) ✓ Write unit tests — completed — Integration tests — skipped (dependency on "Implement login") Summary: 3/5 completed | 1 gate failure | 1 dependency skip ``` Use these symbols: - `✓` — applied: true (completed or cancelled) - `⊘` — gate failure (gateErrors present) - `—` — skipped due to dependency on a failed item --- ## Step 5 — Cleanup (Optional) If the user wants to delete the completed items after finishing (to fully archive a workstream), confirm via `AskUserQuestion`: ``` ◆ Delete all items under "Auth System Feature" after completing? This cannot be undone. 1. Yes, delete them 2. No, keep them in terminal state ``` If confirmed, delete with: ``` manage_items(operation="delete", ids=["<root-uuid>"], recursive=true) ``` Report what was deleted: ``` ✓ Deleted: "Auth System Feature" and all 5 descendants ``` --- ## Complete vs Cancel Reference | Aspect | trigger="complete" | trigger="cancel" | |--------|-------------------|-----------------| | Gate enforcement | All required notes across all phases must be filled | None — bypasses all gates | | Final role | terminal | terminal | | statusLabel | (not set) | "cancelled" | | Use when | Work is genuinely done and notes are filled | Abandoning, discarding, or force-closing | | Skips items | Yes — gate failures and dependency skips | No gate skips; dependency order still respected | ## complete_tree Response Fields | Field | Meaning | |-------|---------| | `applied: true` | Item was transitioned to terminal | | `skipped: true` | Item was not transitioned (see skippedReason) | | `skippedReason` | "already terminal", "dependency gate failed", or "gate failed" | | `gateErrors` | Array of missing required note keys that blocked completion | --- ## Troubleshooting **Problem: Items are skipped due to gate failures** Cause: The item has required notes that have not been filled. Gate enforcement runs before each transition and blocks completion. Solution: Fill each item's missing required notes with `manage_notes(operation="upsert")`, then rerun `complete_tree`. Alternatively, switch to `trigger="cancel"` to bypass all gates and force-close the items. --- **Problem: Items are skipped due to dependency ordering** Cause: An upstream item in the tree failed its gate check. Any item that depends on it (via BLOCKS edges) is automatically skipped in the same run. Solution: Fi
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.