Flow Swarm
LeoYeAI/openclaw-master-skills
Multi-agent swarm orchestration via RuFlo + Claude Code. An agent skill from LeoYeAI/openclaw-master-skills.
Views, creates, deletes and diagnoses BLOCKS, IS_BLOCKED_BY and RELATES_TO links between MCP work items, including why an item cannot start.
$ npx skills add jpicklyk/task-orchestrator --skill dependency-manager -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jpicklyk/task-orchestrator dependency-manager --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/dependency-manager .claude/skills/dependency-manager && 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 "dependency-manager" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/dependency-manager into .claude/skills/dependency-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dependency-manager", 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/dependency-managerType 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 dependency-manager -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jpicklyk/task-orchestrator dependency-manager --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/dependency-manager .agents/skills/dependency-manager && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dependency-manager" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/dependency-manager into .agents/skills/dependency-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dependency-manager", 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 dependency-manager -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jpicklyk/task-orchestrator dependency-manager --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/dependency-manager .cursor/skills/dependency-manager && 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 "dependency-manager" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/dependency-manager into .cursor/skills/dependency-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dependency-manager", 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/dependency-manager--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 dependency-manager -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jpicklyk/task-orchestrator dependency-manager --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/dependency-manager .gemini/skills/dependency-manager && 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 "dependency-manager" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/dependency-manager into .gemini/skills/dependency-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dependency-manager", 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 dependency-managerInstalls 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 dependency-manager -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/dependency-manager .github/skills/dependency-manager && 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 "dependency-manager" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/dependency-manager into .github/skills/dependency-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dependency-manager", 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 dependency-manager -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 dependency-manager --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/dependency-manager .opencode/skills/dependency-manager && 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 "dependency-manager" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/dependency-manager into .opencode/skills/dependency-manager/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dependency-manager", 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.
dependency-managerViews, creates, deletes and diagnoses BLOCKS, IS_BLOCKED_BY and RELATES_TO links between MCP work items, including why an item cannot start.
The agent first sorts the request into view, create, delete or diagnose, resolves the item argument to a UUID through a search or asks you to choose among matches, and handles compound requests, such as showing blockers and then removing one, by taking the view path first. Signal words map to paths: what blocks this leads to view, link leads to create, unlink leads to delete, and why can't this start leads to diagnose.
Viewing queries the dependency edges for an item in the outgoing, incoming or both directions and draws them as an ASCII tree with symbols for terminal, work or review, queue and blocked items, with a full chain view available beyond immediate neighbors. It relies on the tools of the task-orchestrator MCP server, such as query_items and query_dependencies, and uses AskUserQuestion when the intent or item is ambiguous.
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.
Work Item Dependency Manager loads about 3.5k tokens when it runs. Until then it costs about 66 tokens; SKILL.md has 1,447 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). 1,447 words, ~3,500 tokens.
.claude/skills/dependency-manager/SKILL.md (or your agent's skills folder).Manage BLOCKS, IS_BLOCKED_BY, and RELATES_TO edges between work items. Handles all four paths: view existing dependencies, create new edges, delete edges, and diagnose why items cannot start.
Classify the user request before making any tool calls.
Resolve $ARGUMENTS to a UUID via query_items search (operation="search", query=$ARGUMENTS, limit=5); if ambiguous, present matches via AskUserQuestion. If $ARGUMENTS is already a UUID, default intent to VIEW for that item.
If $ARGUMENTS is empty, infer intent from the surrounding conversation. If intent is still unclear, ask via AskUserQuestion: "What would you like to do with dependencies? Options: view, create, delete, diagnose."
Compound requests (e.g., "show what blocks this and remove the dependency"): handle the VIEW path first, then proceed to the second action using the results.
Intent signal words:
| Signal words | Path |
|---|---|
| "show", "view", "graph", "what blocks", "what depends on", "visualize" | VIEW (Step 2) |
| "add", "create", "link", "connect", "chain", "depend on" | CREATE (Step 3) |
| "remove", "delete", "unlink", "disconnect" | DELETE (Step 4) |
| "why can't this start", "why is this blocked", "diagnose", "show blockers", "unblock" | DIAGNOSE (Step 5) |
Once you have an item ID and intent is VIEW, query its dependency edges:
query_dependencies(operation="get", itemId="<uuid>", direction="all", includeItemInfo=true)Format the result as an ASCII tree:
◉ Design API schema (work)
↳ BLOCKS → ○ Implement data models (queue)
↳ BLOCKS → ○ Build REST endpoints (queue)
← BLOCKED BY → ◉ Finalize data contract (work)Use the visual symbols to indicate role at a glance:
| Symbol | Role |
|---|---|
| ✓ | terminal |
| ◉ | work or review |
| ○ | queue |
| ⊘ | blocked |
Direction parameter meanings:
| Value | Returns |
|---|---|
outgoing | Edges where this item is the source (things this item blocks) |
incoming | Edges where this item is the target (things that block this item) |
all | Both directions combined |
For a full chain view (ancestors and descendants beyond immediate neighbors), add neighborsOnly=false:
query_dependencies(operation="get", itemId="<uuid>", direction="all", includeItemInfo=true, neighborsOnly=false)This performs BFS traversal and returns the full dependency graph. Use it when the user asks to "show the full chain" or "trace all blockers."
After displaying the tree, note any items in ⊘ blocked state and offer to run DIAGNOSE (Step 5) on them.
Identify the structure from what the user described, then select the right creation pattern.
Decision tree:
Two specific items to link → single edge (dependencies array)
Three or more items in a sequence (A then B then C) → linear pattern
One item that blocks many others → fan-out pattern
Many items that all block one item → fan-in patternPattern reference:
| Pattern | Key parameter | When to use |
|---|---|---|
| Single edge | dependencies=[{fromItemId, toItemId}] | Link exactly two items |
linear | itemIds=[A, B, C, D] | Sequential chain: A→B→C→D |
fan-out | fromItemId=A, toItemIds=[B, C, D] | One item blocks many |
fan-in | fromItemIds=[A, B, C], toItemId=D | Many items block one |
Confirm the derived edges with the user before creating. Show them what you're about to create in a readable way, for example:
About to create: A → B → C → D as a linear chain. Proceed?Adjust the format to fit the actual pattern (single edge, fan-out, fan-in, etc.).
Then call manage_dependencies(operation="create") with the selected pattern:
manage_dependencies(
operation="create",
pattern="linear",
itemIds=["<uuid-a>", "<uuid-b>", "<uuid-c>", "<uuid-d>"]
)For a single edge or custom edges, use the dependencies array directly:
manage_dependencies(
operation="create",
dependencies=[
{ fromItemId: "<uuid-a>", toItemId: "<uuid-b>", type: "BLOCKS" }
]
)After creation, show the edges created:
✓ Created 3 dependency edges:
A → BLOCKS → B
B → BLOCKS → C
C → BLOCKS → DTo set a partial unblock threshold (so the blocked item unblocks before the blocker is terminal), include unblockAt in the dependency spec. See the unblockAt reference table below.
Query existing edges first so the user knows what can be deleted:
query_dependencies(operation="get", itemId="<uuid>", direction="all", includeItemInfo=true)Present the edges to the user:
Existing edges for "Implement data models":
[1] ◉ Design API schema → BLOCKS → this item (dep-uuid-1)
[2] this item → BLOCKS → ○ Build REST endpoints (dep-uuid-2)
Which edge(s) would you like to remove?Confirm before deleting. Then call manage_dependencies(operation="delete") using the appropriate mode:
manage_dependencies(operation="delete", dependencyId="<dep-uuid>")Delete parameter modes:
| Mode | Parameters | When to use |
|---|---|---|
| By dependency ID | id="<dep-uuid>" | Delete one specific edge (most precise) |
| By relationship | fromItemId="<uuid>", toItemId="<uuid>" | Delete the edge between two known items |
| By relationship + type | fromItemId, toItemId, type="BLOCKS" | When multiple edge types exist between same pair |
| All edges for item | fromItemId="<uuid>", deleteAll=true | Remove all outgoing edges from an item |
| All edges for item | toItemId="<uuid>", deleteAll=true | Remove all incoming edges to an item |
After deletion, confirm:
✓ Removed: Design API schema → BLOCKS → Implement data modelsFor DIAGNOSE intent, identify why a specific item cannot start or is stuck in blocked state.
Path A — User provided an item ID:
query_dependencies(operation="get", itemId="<uuid>", direction="incoming", includeItemInfo=true)Path B — User wants a broad view of all blocked work:
get_blocked_items(includeDetails=true)For each blocker returned, show:
⊘ "Build REST endpoints" cannot start because:
Blocker 1: ◉ Design API schema (work)
Must reach: terminal (unblockAt: terminal)
Action: advance Design API schema to terminal first
Blocker 2: ○ Write OpenAPI spec (queue)
Must reach: terminal (unblockAt: terminal)
Action: start and complete Write OpenAPI spec firstFor each blocker, determine what must happen:
| Blocker's current role | unblockAt threshold | What needs to happen |
|---|---|---|
| queue | terminal | Start and complete the blocker |
| work | terminal | Complete the blocker (already started) |
| work | review | Advance the blocker to review |
| review | terminal | Advance the blocker to terminal |
| blocked | any | The blocker itself is stuck — recurse diagnosis |
If any blocker is itself blocked, offer to recurse: "The blocker is also blocked. Would you like to diagnose that item too?"
Not every "why can't this start" is a dependency. This skill diagnoses BLOCKED-role items
and unsatisfied BLOCKS edges only. A separate, unrelated cause can produce a similar symptom:
advance_item rejecting a start/resume transition with errorCode: "resource_unavailable"
(errorKind: "transient") — a shared resource the item declares via a resources: trait is
currently held by another item. That item's role does not change to blocked; it stays in
its current role (typically queue) and the transition simply fails transiently. If
query_dependencies shows no incoming edges yet the item still won't advance, suspect resource
contention instead — check the advance_item error for errorCode/contendedResources, or
inspect get_context(itemId=...) → resourceLeases for the item's declared/held keys. Do not
treat this as a dependency problem; retrying the dependency diagnosis will not help.
After the diagnosis, link to the resolution path:
/status-progression with its UUIDmanage_notes(operation="upsert") to fill required notes| Type | Meaning | Effect |
|---|---|---|
BLOCKS | A must complete before B can proceed | B appears as blocked until A reaches its unblockAt threshold |
IS_BLOCKED_BY | Reverse of BLOCKS — same edge, opposite direction | Equivalent to creating BLOCKS from B to A |
RELATES_TO | Informational link only — no blocking behavior | Item appears in dependency queries but does not affect role transitions |
unblockAt Threshold Reference| Value | When the dependent item unblocks | Use case |
|---|---|---|
terminal (default) | Blocker must finish entirely | Standard sequential dependency |
review | Unblocks when blocker enters review phase | Start next step while review is in progress |
work | Unblocks when blocker starts work | Parallel work that just needs the prior item started |
queue | Unblocks immediately (tracks ordering only) | Soft ordering constraint with no actual blocking |
Problem: Cycle detection error when creating a dependency
Cause: The proposed edge would create a circular dependency chain (A blocks B, B blocks C, C blocks A). The server detects this and rejects the entire batch atomically.
Solution: Review the dependency direction. One of the edges is backwards. Identify which item actually depends on the other, flip the fromItemId and toItemId on that edge, and retry.
Problem: "dependency not found" error on delete
Cause: The dependency UUID or relationship does not exist. The edge may have already been deleted, or the IDs are from a different environment.
Solution: Re-query to confirm current state:
query_dependencies(operation="get", itemId="<uuid>", direction="all", includeItemInfo=true)Use a dependency UUID from the fresh query result for the delete call. If the edge is not present, it was already removed.
Problem: Item is still blocked after the blocker reached terminal
Cause: Either the unblockAt threshold is set to a role the blocker has not yet reached (e.g., unblockAt: "review" but the blocker went straight to terminal via complete), or there are additional incoming edges from other items that are not yet satisfied.
Solution: Query incoming edges to check all blockers:
query_dependencies(operation="get", itemId="<uuid>", direction="incoming", includeItemInfo=true)Check each blocker's role. If all blockers are terminal and the item is still in blocked role, use advance_item(transitions=[{itemId: "<uuid>", trigger: "resume"}]) to manually return it to its previous role via /status-progression.
Problem: Pattern shortcut creates wrong edges
Cause: The wrong parameter name was used for the pattern. linear uses itemIds (an ordered array). fan-out uses fromItemId (single UUID) and toItemIds (array). fan-in uses fromItemIds (array) and toItemId (single UUID). Mixing these up creates edges in the wrong direction or fails silently.
Solution: Double-check the parameter names against the pattern table in Step 3. Re-query the item after creation to verify edge direction, and delete any incorrect edges using Step 4.
User: "Show me what blocks the REST endpoints task."
Search → one match uuid-rest. Query incoming deps:
query_dependencies(operation="get", itemId="uuid-rest", direction="incoming", includeItemInfo=true)Display:
○ Build REST endpoints (queue)
← BLOCKED BY ◉ Design API schema (work)
← BLOCKED BY ○ Write OpenAPI spec (queue)
Both blockers must reach terminal. Use /status-progression on each.User: "Set up A → B → C → D as a chain." Resolve UUIDs, confirm, then:
manage_dependencies(operation="create", pattern="linear",
itemIds=["uuid-a", "uuid-b", "uuid-c", "uuid-d"])Result:
✓ Created 3 edges: A → B → C → DUser: "Why can't 'Write integration tests' start?" Search → uuid-tests. Query incoming:
query_dependencies(operation="get", itemId="uuid-tests", direction="incoming", includeItemInfo=true)Display:
⊘ "Write integration tests" cannot start:
Blocker 1: ○ Build REST endpoints (queue) — must reach terminal
Blocker 2: ◉ Implement data models (work) — must reach terminal
Recommended: complete both blockers via /status-progression| Situation | Action |
|---|---|
| User asks what blocks an item | Step 2 — query incoming with includeItemInfo=true |
| User asks what an item blocks | Step 2 — query outgoing with includeItemInfo=true |
| User wants full chain visualization | Step 2 — add neighborsOnly=false |
| User wants to link two items | Step 3 — single edge via dependencies array |
| User has a sequential list of items | Step 3 — pattern="linear" with itemIds |
| One item must precede many | Step 3 — pattern="fan-out" |
| Many items must precede one | Step 3 — pattern="fan-in" |
| User wants to remove a link | Step 4 — query first, confirm, delete by dep ID |
| Item is stuck and user does not know why | Step 5 — diagnose incoming edges |
| Blocker analysis complete, need to advance | Use /status-progression on the blocker |
© 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/dependency-manager of jpicklyk/task-orchestrator.
Open the folder on GitHubat commit b688ea0
Work Item Dependency Manager 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 |
|---|---|---|---|---|---|---|
| Work Item Dependency Manager this skilljpicklyk/task-orchestrator | 207 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Flow SwarmLeoYeAI/openclaw-master-skills | 2.2k | — | ~5.3k | Automated safety check: Pass | MIT | |
| Vibe Kanbanaiskillstore/marketplace | 430 | — | ~4.4k | Automated safety check: Notes | None | |
| Retinuejklthinking/retinue | 112 | — | ~279 | Automated safety check: Pass | MIT | |
| Minimal Web Baas DemoTencentCloudBase/CloudBase-AI-Toolkit | 1.1k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| MCP Server Builderanthropics/skills | 180k | 62 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 |
LeoYeAI/openclaw-master-skills
Multi-agent swarm orchestration via RuFlo + Claude Code. An agent skill from LeoYeAI/openclaw-master-skills.
aiskillstore/marketplace
Manage AI coding agents on a visual Kanban board. An agent skill from aiskillstore/marketplace.
jklthinking/retinue
Coordinate work through a local Retinue workspace using its MCP tools.
TencentCloudBase/CloudBase-AI-Toolkit
Fast path for a minimal CloudBase Web + database demo (最小前后端 / 最小可用 fullstack / Lovable-like BaaS).
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
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
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
Guides the full lifecycle of a feature-implementation tagged MCP item (the feature container) — from queue through review.
Works with
Categories
Views, creates, deletes and diagnoses BLOCKS, IS_BLOCKED_BY and RELATES_TO links between MCP work items, including why an item cannot start. The agent first sorts the request into view, create, delete or diagnose, resolves the item argument to a UUID through a search or asks you to choose among matches, and handles compound requests, such as showing blockers and then removing one, by taking the view path first. Signal words map to paths: what blocks this leads to view, link leads to create, unlink leads to delete, and why can't this start leads to diagnose.
Work Item Dependency Manager fits situations like: seeing what blocks a work item or what it blocks; linking work items with a blocking dependency; removing a dependency that is no longer needed; finding out why an item cannot start.
Run `npx skills add jpicklyk/task-orchestrator --skill dependency-manager -a claude-code`. Or copy the skill folder (claude-plugins/task-orchestrator/skills/dependency-manager in jpicklyk/task-orchestrator) into .claude/skills/dependency-manager in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jpicklyk/task-orchestrator --skill dependency-manager -a codex`. Or copy the skill folder (claude-plugins/task-orchestrator/skills/dependency-manager in jpicklyk/task-orchestrator) into .agents/skills/dependency-manager 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 dependency-manager -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dependency-manager, .gemini/skills/dependency-manager, .github/skills/dependency-manager and .opencode/skills/dependency-manager in your project.
SKILL.md names no scripts, command-line tools or credentials: Work Item Dependency Manager is instructions for the agent only. Our summary lists: The task-orchestrator MCP server with its item and dependency tools.
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.
Work Item Dependency Manager 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.5k tokens (SKILL.md is roughly 14k 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 Work Item Dependency Manager: Flow Swarm (LeoYeAI/openclaw-master-skills, 2.2k stars), Vibe Kanban (aiskillstore/marketplace, 430 stars), Retinue (jklthinking/retinue, 112 stars) and Minimal Web Baas Demo (TencentCloudBase/CloudBase-AI-Toolkit, 1.1k 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.