MemPalace Task Handoff
MemPalace/mempalace
Creates, hands off, claims, executes and closes agent tasks through the MemPalace logstream, with approval of the exact task before it is recorded.
Completes or cancels a whole feature subtree, a named list of items, or a batch of stale work items at once, previewing the impact and warning before force-completing anything active.
$ npx skills add jpicklyk/task-orchestrator --skill batch-complete -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jpicklyk/task-orchestrator batch-complete --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jpicklyk/task-orchestrator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/claude-plugins/task-orchestrator/skills/batch-complete .claude/skills/batch-complete && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "batch-complete" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/batch-complete into .claude/skills/batch-complete/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "batch-complete", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/batch-completeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jpicklyk/task-orchestrator --skill batch-complete -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jpicklyk/task-orchestrator batch-complete --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jpicklyk/task-orchestrator.git skills-src && mkdir -p .agents/skills && cp -r skills-src/claude-plugins/task-orchestrator/skills/batch-complete .agents/skills/batch-complete && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "batch-complete" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/batch-complete into .agents/skills/batch-complete/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "batch-complete", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jpicklyk/task-orchestrator --skill batch-complete -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jpicklyk/task-orchestrator batch-complete --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jpicklyk/task-orchestrator.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/claude-plugins/task-orchestrator/skills/batch-complete .cursor/skills/batch-complete && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "batch-complete" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/batch-complete into .cursor/skills/batch-complete/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "batch-complete", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jpicklyk/task-orchestrator.git --path claude-plugins/task-orchestrator/skills/batch-complete--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jpicklyk/task-orchestrator --skill batch-complete -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jpicklyk/task-orchestrator batch-complete --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jpicklyk/task-orchestrator.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/claude-plugins/task-orchestrator/skills/batch-complete .gemini/skills/batch-complete && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "batch-complete" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/batch-complete into .gemini/skills/batch-complete/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "batch-complete", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jpicklyk/task-orchestrator batch-completeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jpicklyk/task-orchestrator --skill batch-complete -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jpicklyk/task-orchestrator.git skills-src && mkdir -p .github/skills && cp -r skills-src/claude-plugins/task-orchestrator/skills/batch-complete .github/skills/batch-complete && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "batch-complete" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/batch-complete into .github/skills/batch-complete/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "batch-complete", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jpicklyk/task-orchestrator --skill batch-complete -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jpicklyk/task-orchestrator batch-complete --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jpicklyk/task-orchestrator.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/claude-plugins/task-orchestrator/skills/batch-complete .opencode/skills/batch-complete && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "batch-complete" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/batch-complete into .opencode/skills/batch-complete/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "batch-complete", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
batch-completeCompletes or cancels a whole feature subtree, a named list of items, or a batch of stale work items at once, previewing the impact and warning before force-completing anything active.
The skill first resolves what is in scope: a feature's full subtree found by searching for the named root item, an explicit list of item IDs the user named, or a cleanup sweep found by searching on status or a title fragment, falling back to asking the user directly when the scope cannot be determined from the request. Before executing anything, it previews the impact by fetching child-item counts grouped by role and showing a table labeled either will be completed or will be cancelled depending on which action was requested.
When any items in scope are already in active work or review, it warns that those will be force-completed or force-cancelled, with gate checks still applying, and asks the user to choose explicitly between proceeding with everything, skipping the active items, or stopping. The skill reports exactly what succeeded and what was skipped once the operation runs, rather than assuming every targeted item completed cleanly.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b688ea0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Bulk Task Completion loads about 2.6k tokens when it runs. Until then it costs about 80 tokens; SKILL.md has 890 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jpicklyk/task-orchestrator at commit b688ea0, republished under its MIT licence (© jpicklyk). 890 words, ~2,625 tokens.
.claude/skills/batch-complete/SKILL.md (or your agent's skills folder).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.
Resolve $ARGUMENTS to a UUID via query_items search (operation="search", query=$ARGUMENTS, limit=5); if ambiguous, present matches via AskUserQuestion.
If $ARGUMENTS is empty, classify the request from conversation context:
rootIditemIdsitemIdsIf 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."
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", itemId="<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-isWait for the user's choice before continuing. Record whether to use trigger="complete" or trigger="cancel".
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 2If 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: session-tracking (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 completeCall get_context(itemId=...) to retrieve guidanceKey for items with missing notes, then resolve its text via query_items(operation="schema", itemId=...). 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.
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 skipUse these symbols:
✓ — applied: true (completed or cancelled)⊘ — gate failure (gateErrors present)— — skipped due to dependency on a failed itemIf 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 stateIf confirmed, delete with:
manage_items(operation="delete", itemIds=["<root-uuid>"], recursive=true)Report what was deleted:
✓ Deleted: "Auth System Feature" and all 5 descendantsProblem: 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: Fix the upstream gate failure first (fill required notes), then run complete_tree again. Only the previously-failed items need to be processed — items already in terminal are skipped silently on subsequent runs.
Problem: rootId not found or complete_tree returns an error
Cause: The UUID provided does not match any existing item, or the item has already been deleted.
Solution: Verify the UUID with query_items(operation="get", itemId="<uuid>"). If not found, search by title fragment: query_items(operation="search", query="<title>"). Use the returned UUID.
FAQ: All items reported as skipped with "already terminal"
This is expected behavior, not an error. Items already in terminal role are intentionally skipped — they were completed or cancelled in a prior run. If the summary shows all items skipped with "already terminal", the workstream is already closed. No further action is needed.
All items are ready; notes are filled; clean completion with no skips.
Step 2 preview shows:
◆ Impact Preview — "Payment Integration"
○ queue: 3 items (will be completed)
◉ work: 0 items
◉ review: 0 items
✓ terminal: 1 item (already done — will be skipped)No active items — no warning needed. Gate check shows all required notes filled. Proceed directly.
Step 4 execute:
complete_tree(rootId="pay-uuid", trigger="complete")Result:
✓ Batch Complete — "Payment Integration"
✓ Design payment schema — completed
✓ Implement Stripe API — completed
✓ Write payment tests — completed
✓ Payment Integration — completed (cascade from last child)
Summary: 4/4 completed | 0 gate failures | 0 dependency skipsThe feature was scoped out. Force-cancel everything without filling notes.
User says: "Cancel the 'Legacy API Migration' feature — we're not doing it."
Step 2 preview shows active items in work. User is warned and chooses option 2 (cancel active items).
Step 3 gate check — user chooses option 2 (use cancel trigger) to avoid filling notes.
Step 4 execute:
complete_tree(rootId="legacy-uuid", trigger="cancel")Result:
✓ Batch Cancel — "Legacy API Migration"
— Audit legacy endpoints — cancelled
— Map replacement routes — cancelled
— Update client libraries — cancelled
— Legacy API Migration — cancelled
Summary: 4/4 cancelled | 0 gate failures | 0 dependency skipsNo gates enforced. All items reach terminal with statusLabel="cancelled".
Some items complete cleanly; others are missing required notes.
Step 4 execute:
complete_tree(rootId="auth-uuid", trigger="complete")Result:
✓ Batch Complete — "Auth System"
✓ Design auth schema — completed
✓ Set up user table — completed
⊘ Implement login — skipped (gate: missing implementation-notes)
— Write integration tests — skipped (dependency on "Implement login")
✓ Write unit tests — completed
Summary: 3/5 completed | 1 gate failure | 1 dependency skipFollow up: fill implementation-notes on "Implement login" with manage_notes(operation="upsert"), then rerun complete_tree. The two remaining items will be processed on the next run.
© jpicklyk, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in claude-plugins/task-orchestrator/skills/batch-complete of jpicklyk/task-orchestrator.
Open the folder on GitHubat commit b688ea0
Bulk Task Completion next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Bulk Task Completion this skilljpicklyk/task-orchestrator | 207 | — | ~2.6k | Automated safety check: Pass | MIT | |
| MemPalace Task HandoffMemPalace/mempalace | 59k | — | ~1.9k | Automated safety check: Pass | MIT | |
| agtx One-Shot Project Runnerfynnfluegge/agtx | 1.7k | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| Agtx Task Sweepfynnfluegge/agtx | 1.7k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| OMA Multi-Agent Orchestratorfirst-fluke/oh-my-agent | 1.3k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Long Horizon ExecutionRoboClaw-Robotics/RoboClaw | 165 | — | ~1.9k | Automated safety check: Pass | None |
MemPalace/mempalace
Creates, hands off, claims, executes and closes agent tasks through the MemPalace logstream, with approval of the exact task before it is recorded.
fynnfluegge/agtx
Runs a whole project unattended on an agtx kanban board, decomposing the goal, starting tasks, unblocking workers and merging each result.
fynnfluegge/agtx
Breaks a conversation's results into feature-level tasks and pushes them to the agtx kanban board, where each task gets its own worktree and agent session.
first-fluke/oh-my-agent
Splits a complex feature into prioritized tasks, spawns specialist CLI subagents in parallel, tracks them through shared memory and verifies each result.
RoboClaw-Robotics/RoboClaw
Long-horizon robot task execution workflow for multi-step manipulation tasks.
RoboClaw-Robotics/RoboClaw
Monitored single-subtask execution workflow. An agent skill from RoboClaw-Robotics/RoboClaw.
jpicklyk/task-orchestrator
Walks through how to launch and reach the MCP Task Orchestrator server container: transport, REST API, port publishing, config mounts and config-sync.
jpicklyk/task-orchestrator
Resolves ready MCP work items into a run plan, shows it to you, then executes it through the Workflow tool or direct subagent dispatch, with post-run verification.
jpicklyk/task-orchestrator
Migrates an existing unscoped Task Orchestrator database to the project-scoping convention in place, creating one project anchor root and re-parenting work trees under it after a mandatory dry run.
jpicklyk/task-orchestrator
Creates an MCP work item from conversation context, anchoring it under the right container, inferring type and priority and pre-filling the required notes.
jpicklyk/task-orchestrator
Views, creates, deletes and diagnoses BLOCKS, IS_BLOCKED_BY and RELATES_TO links between MCP work items, including why an item cannot start.
jpicklyk/task-orchestrator
Guides the full lifecycle of a feature-implementation tagged MCP item (the feature container) — from queue through review.
Works with
Categories
Completes or cancels a whole feature subtree, a named list of items, or a batch of stale work items at once, previewing the impact and warning before force-completing anything active. The skill first resolves what is in scope: a feature's full subtree found by searching for the named root item, an explicit list of item IDs the user named, or a cleanup sweep found by searching on status or a title fragment, falling back to asking the user directly when the scope cannot be determined from the request. Before executing anything, it previews the impact by fetching child-item counts grouped by role and showing a table labeled either will be completed or will be cancelled depending on which action was requested.
Bulk Task Completion fits situations like: closing out every item under a finished feature in one operation; cancelling an abandoned workstream and its remaining items; cleaning up a batch of stale or old work items at once.
Run `npx skills add jpicklyk/task-orchestrator --skill batch-complete -a claude-code`. Or copy the skill folder (claude-plugins/task-orchestrator/skills/batch-complete in jpicklyk/task-orchestrator) into .claude/skills/batch-complete in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jpicklyk/task-orchestrator --skill batch-complete -a codex`. Or copy the skill folder (claude-plugins/task-orchestrator/skills/batch-complete in jpicklyk/task-orchestrator) into .agents/skills/batch-complete in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jpicklyk/task-orchestrator --skill batch-complete -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/batch-complete, .gemini/skills/batch-complete, .github/skills/batch-complete and .opencode/skills/batch-complete in your project.
SKILL.md names no scripts, command-line tools or credentials: Bulk Task Completion is instructions for the agent only. Our summary lists: A connected task-orchestrator MCP server.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Bulk Task Completion is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Bulk Task Completion: MemPalace Task Handoff (MemPalace/mempalace, 59k stars), agtx One-Shot Project Runner (fynnfluegge/agtx, 1.7k stars), Agtx Task Sweep (fynnfluegge/agtx, 1.7k stars) and OMA Multi-Agent Orchestrator (first-fluke/oh-my-agent, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jpicklyk (a GitHub user) maintains it in jpicklyk/task-orchestrator, which has 207 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 6, 2026.
Source: jpicklyk/task-orchestrator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.