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.
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.
$ npx skills add jpicklyk/task-orchestrator --skill adopt-project-scope -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jpicklyk/task-orchestrator adopt-project-scope --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/adopt-project-scope .claude/skills/adopt-project-scope && 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 "adopt-project-scope" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/adopt-project-scope into .claude/skills/adopt-project-scope/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adopt-project-scope", 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/adopt-project-scopeType 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 adopt-project-scope -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jpicklyk/task-orchestrator adopt-project-scope --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/adopt-project-scope .agents/skills/adopt-project-scope && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "adopt-project-scope" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/adopt-project-scope into .agents/skills/adopt-project-scope/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adopt-project-scope", 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 adopt-project-scope -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jpicklyk/task-orchestrator adopt-project-scope --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/adopt-project-scope .cursor/skills/adopt-project-scope && 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 "adopt-project-scope" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/adopt-project-scope into .cursor/skills/adopt-project-scope/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adopt-project-scope", 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/adopt-project-scope--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 adopt-project-scope -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jpicklyk/task-orchestrator adopt-project-scope --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/adopt-project-scope .gemini/skills/adopt-project-scope && 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 "adopt-project-scope" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/adopt-project-scope into .gemini/skills/adopt-project-scope/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adopt-project-scope", 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 adopt-project-scopeInstalls 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 adopt-project-scope -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/adopt-project-scope .github/skills/adopt-project-scope && 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 "adopt-project-scope" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/adopt-project-scope into .github/skills/adopt-project-scope/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adopt-project-scope", 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 adopt-project-scope -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 adopt-project-scope --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/adopt-project-scope .opencode/skills/adopt-project-scope && 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 "adopt-project-scope" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/adopt-project-scope into .opencode/skills/adopt-project-scope/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adopt-project-scope", 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.
adopt-project-scopeMigrates 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.
The skill takes a database with many depth-0 roots and no project anchor and converts it to a single type=project root that owns the workspace's work trees, writing that root's UUID back into .taskorchestrator/config.yaml under a project block. Global containers such as retrospectives and observations stay at depth 0, and test artifacts are only flagged for cleanup, never moved or deleted automatically. The only item the skill ever deletes outright is its own throwaway server-probe tree used during preflight checks.
Because the execute step re-parents real items, the skill defaults to a dry run and never mutates the database without explicit confirmation; passing --dry-run forces an early exit after the plan is shown. Preflight checks run as an ordered series of abort gates: it first checks config.yaml for an existing project block and stops if the workspace is already adopted, then searches the database for an existing depth-0 anchor of type project. It explicitly does not merge a second database into this one, consolidate multiple existing anchors, or enforce scoping on the server side, and a brand-new workspace with no unscoped work should use /task-orchestrator:init instead.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3e83170. 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.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
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.
Adopt Project Scope Migration loads about 3.7k tokens when it runs. Until then it costs about 114 tokens; SKILL.md has 1,567 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 3e83170, republished under its MIT licence (© jpicklyk). 1,567 words, ~3,737 tokens.
.claude/skills/adopt-project-scope/SKILL.md (or your agent's skills folder).Take an existing, unscoped database (many depth-0 roots, no project anchor) and migrate it in place to the project-scoping convention: one type=project root that owns the workspace's work trees, with its UUID written back to .taskorchestrator/config.yaml under a project: block. Global containers (retrospectives, observations) stay at depth 0; test artifacts are flagged for cleanup, never moved or deleted.
This is a destructive-by-execution skill: the EXECUTE step re-parents real items. It defaults to a dry run and never mutates anything without an explicit confirmation. The only thing it ever deletes is its own throwaway server-probe tree.
For a fresh workspace with no existing unscoped work, use /task-orchestrator:init instead; this skill is for databases that already hold unscoped work trees.
Non-goals: cross-DB consolidation (merging items from a second database); merging multiple existing project anchors into one; any server-side enforcement of scope. This skill adopts a single workspace's single database.
$ARGUMENTS. If absent, do not guess; ask for it in Step 3 (the dry-run plan) via AskUserQuestion before any mutation.--dry-run — if present, the skill stops after Step 3 (the plan) and performs zero mutations regardless of confirmation. The dry run is ALSO always rendered before execution even without the flag; the flag only forces an early exit.Run these checks in order. Each abort prints a clear, user-facing reason and stops.
Read .taskorchestrator/config.yaml. If it contains a project: block with a non-empty rootId:, the workspace is already scoped:
◆ Workspace already adopted — config.yaml already points at project root <rootId>.
Nothing to do. Use /work-summary to inspect the existing project tree.Stop. (If the file is missing entirely, that is fine — a fresh unscoped DB has no config project: block. Continue.)
query_items(operation="search", type="project", depth=0)(list mode — query omitted, filtering by type and depth.) Drop any result tagged personal-root: a personal root is not a project anchor and must never be adopted as one.
No results → continue to 1c.
One or more results → do NOT silently create a second anchor. Offer, via AskUserQuestion:
config.yaml (skip anchor creation in EXECUTE; still re-parent MOVE roots under it) and continue.If the user picks "attach", record the existing anchor UUID as ANCHOR_ID and note that EXECUTE step (a) is skipped.
Bulk re-parenting is exactly the scenario that a pre-fix server corrupts: on a pre-#219/#220 server, re-parenting a subtree does NOT recompute descendant depths (bug 99a3e642), so this skill would silently leave the moved trees with wrong depths. Verify the fix is deployed with a disposable probe, then delete it.
Build a probe where a grandchild's depth MUST change when a middle node is re-parented deeper:
manage_items(operation="create", items=[
{ title: "zzprobe-root", type: "container", priority: "low" }
])P.manage_items create has no ref/parentRef
mechanism (only create_work_tree does), so a sibling's UUID does not exist until its own create
call returns — M and G cannot be created in the same batch since G's parentId needs M's real UUID:manage_items(operation="create", items=[
{ title: "zzprobe-A", parentId: P, priority: "low" } → capture as A (depth 1)
])manage_items(operation="create", items=[
{ title: "zzprobe-M", parentId: P, priority: "low" } → capture as M (depth 1, sibling of A)
])manage_items(operation="create", items=[
{ title: "zzprobe-G", parentId: "<M's real UUID>", priority: "low" } → capture as G (depth 2, child of M)
])manage_items(operation="update", items=[{ itemId: M, parentId: A }])query_items(operation="get", itemId=G)manage_items(operation="delete", itemIds=[P], recursive=true)depth == 3 → fix is present. Continue.depth == 2 (stale) → abort (probe already deleted):⊘ Server is missing the reparent depth-sweep fix (bug 99a3e642).
Bulk re-parenting on this server would corrupt subtree depths.
Upgrade the Task Orchestrator server (PR #219/#220 or later) and retry.--dry-run skips this probe entirely — no execution will happen, so the capability check is unnecessary and the dry run stays genuinely mutation-free. The probe runs only on the real-execution path, after the user confirms in Step 3.
manage_project_config may be absent on older servers. Do not probe it destructively here — just remember to attempt the push in EXECUTE step (d) and, if the tool is unavailable, skip it with a note rather than failing the whole adoption. The local config.yaml write (step c) is the source of truth; the server push is a convenience sync.
Full depth-0 census:
query_items(operation="overview", excludeTerminal=false, includeChildren=true, limit=<total>)If the response reports truncated: true, re-issue with limit set to the reported total so no root is missed.
Classify every depth-0 root into exactly one bucket:
| Bucket | Rule | Action |
|---|---|---|
| KEEP-GLOBAL | Title matches a global container — Session Retrospectives, Improvement Proposals; OR the root itself is tagged/typed agent-observation (these are standalone depth-0 items, each its own root — never children of a container); OR a depth-0 type=project item tagged personal-root (never MOVE it). | Stays at depth 0. |
| MOVE | Any work container or work tree (a root with work/queue/review children), and any standalone work item. Everything that is real project work. | Re-parented under the new anchor. |
| CLEANUP-CANDIDATE | Evident test artifacts: titles containing probe, smoke, depth-test, zzprobe; or tags matching mtest-*. | Flagged only — never moved, never deleted. Recommend /batch-complete. |
Ambiguous roots (no clear rule match — e.g., an untagged standalone item that could be work or a stray container): do NOT guess. Collect them and present via AskUserQuestion (multiSelect) asking which should MOVE vs stay KEEP-GLOBAL. Test-artifact-looking items always go to CLEANUP-CANDIDATE without asking.
--dry-run stops here)Render the full plan before any mutation. Require explicit confirmation to proceed.
◆ Adopt Project Scope — Plan [project: "<name>"]
| Root | ID | Classification | Action |
|------|----|----------------|--------|
| Auth System | `a1b2c3d4` | MOVE | re-parent under new anchor |
| Payments | `e5f6a7b8` | MOVE | re-parent under new anchor |
| Session Retrospectives | `c9d0e1f2` | KEEP-GLOBAL | stays at depth 0 |
| Improvement Proposals | `13243546` | KEEP-GLOBAL | stays at depth 0 |
| zzprobe-smoke-tree | `5768798a` | CLEANUP-CANDIDATE | flag for /batch-complete (not moved) |
Summary: 2 move · 2 stay global · 1 cleanup candidate
Execution will create a "<name>" project anchor and re-parent 2 tree(s) under it.AskUserQuestion before showing the final counts.--dry-run: stop here. State plainly: "Dry run — no changes made. Re-run without --dry-run to execute."AskUserQuestion:◆ Proceed with adoption? This re-parents <N> tree(s) under a new project anchor.
1. Yes — execute
2. No — abort, make no changesPerform in this order. Record pre-execution counts first (used by Step 5): the depth-0 root count, the MOVE count, and the KEEP-GLOBAL count from Step 2.
(a) Create the project anchor — skip if attaching to an existing anchor (Step 1b):
manage_items(operation="create", items=[{
title: "<project name>",
type: "project",
summary: "Project anchor — subtree scope for <project name>",
priority: "low"
}])Capture the new UUID as ANCHOR_ID.
(b) Batch re-parent the MOVE roots — one call, items array (never a sequential call per root):
manage_items(operation="update", items=[
{ itemId: "<move-root-1>", parentId: ANCHOR_ID },
{ itemId: "<move-root-2>", parentId: ANCHOR_ID },
...
])This relies on the depth-sweep fix verified in Step 1c — each moved subtree's descendant depths and root_id are recomputed server-side.
(c) Write the project: block into config.yaml at the main checkout root (the parent of git rev-parse --path-format=absolute --git-common-dir, so it is correct from a linked worktree; refuse a home directory, as /task-orchestrator:init does) — read-modify-write, preserving ALL existing content:
<main>/.taskorchestrator/config.yaml text (create the file with just the block if it does not exist).work_item_schemas:, traits:, actor_authentication:, comments, and formatting byte-for-byte intact):project:
rootId: "<ANCHOR_ID>"
name: "<project name>"project: key somehow already exists (it should not — Step 1a would have aborted), update its rootId/name in place rather than adding a duplicate key.(d) Push the config server-side (tolerant — skip if the tool is absent):
manage_project_config(operation="push", rootId=ANCHOR_ID, configYaml="<full config.yaml text>")warning field about the root's type is only returned when the anchor's type is not project; since step (a) sets type: "project", none is expected. Report it if present but treat it as non-fatal.manage_project_config is unavailable on this server, skip this step and note: "Config pushed locally only — server does not support manage_project_config; the local config.yaml is authoritative."Confirm the migration landed correctly. On ANY mismatch, report loudly and do NOT auto-rollback (say the remedy explicitly).
query_items(operation="overview", anchorId=ANCHOR_ID)N move.query_items(operation="overview", excludeTerminal=false, limit=<total>)query_items(operation="get", itemId="<grandchild-of-a-moved-tree>")Render a before/after table:
✓ Adoption Complete — "<project name>" (anchor `<8-char-id>`)
| | Before | After |
|---------------------|--------|-------|
| Depth-0 roots | 5 | 4 |
| Under project anchor| 0 | 2 |
| Global containers | 2 | 2 |
| Cleanup candidates | 1 | 1 (flagged, not moved) |
↳ Config: project.rootId written to .taskorchestrator/config.yaml
↳ Server push: applied | skipped (tool absent)
↳ Cleanup candidates flagged for /batch-complete: <titles>On mismatch (e.g., anchored child count ≠ MOVE count):
⚠ Reconciliation mismatch — expected <X> children under the anchor, found <Y>.
No rollback was performed. To undo: re-parent the affected roots back to depth 0
with manage_items(operation="update", items=[{ itemId, parentId: null }]) for each,
then delete the anchor. Investigate before retrying.Finish by seeding the bundled process rules for the new anchor: run /task-orchestrator:init (a re-run is idempotent and resumes at rule seeding), or rely on the next session's config-sync.
Remind the user that schema changes / new config require an MCP reconnect (/mcp) to take effect if they rely on per-root schema resolution immediately.
AskUserQuestion "Yes".project: block is surgically inserted; all other content is preserved verbatim.Per the specification, exercise the skill against a COPY of a production-shaped DB:
Only after the copy passes should the skill be run against the real database.
© 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/adopt-project-scope of jpicklyk/task-orchestrator.
Open the folder on GitHubat commit 3e83170
Adopt Project Scope Migration 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 |
|---|---|---|---|---|---|---|
| Adopt Project Scope Migration this skilljpicklyk/task-orchestrator | 207 | — | ~3.7k | 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 | 166 | — | ~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
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.
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
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. yaml under a project block. Global containers such as retrospectives and observations stay at depth 0, and test artifacts are only flagged for cleanup, never moved or deleted automatically.
Adopt Project Scope Migration fits situations like: converting an existing Task Orchestrator database to support multiple projects; creating a project anchor root for a workspace that already has unscoped work trees; previewing what a project-scope migration would change before committing to it.
Run `npx skills add jpicklyk/task-orchestrator --skill adopt-project-scope -a claude-code`. Or copy the skill folder (claude-plugins/task-orchestrator/skills/adopt-project-scope in jpicklyk/task-orchestrator) into .claude/skills/adopt-project-scope in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jpicklyk/task-orchestrator --skill adopt-project-scope -a codex`. Or copy the skill folder (claude-plugins/task-orchestrator/skills/adopt-project-scope in jpicklyk/task-orchestrator) into .agents/skills/adopt-project-scope 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 adopt-project-scope -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/adopt-project-scope, .gemini/skills/adopt-project-scope, .github/skills/adopt-project-scope and .opencode/skills/adopt-project-scope in your project.
Going by SKILL.md and its folder, Adopt Project Scope Migration needs the command-line tools its instructions call (git). Our summary lists: An existing Task Orchestrator MCP server and database.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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.
Adopt Project Scope Migration is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k 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 Adopt Project Scope Migration: 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 8, 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.