Claude Code Agent Development
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
Internal, invoked from the orchestration context: tier classification, delegation model table, and phase-owner dispatch rules for sizing and dispatching implementation work.
$ npx skills add jpicklyk/task-orchestrator --skill orchestrate -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jpicklyk/task-orchestrator orchestrate --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/orchestrate .claude/skills/orchestrate && 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 "orchestrate" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/orchestrate into .claude/skills/orchestrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrate", 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/orchestrateType 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 orchestrate -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jpicklyk/task-orchestrator orchestrate --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/orchestrate .agents/skills/orchestrate && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "orchestrate" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/orchestrate into .agents/skills/orchestrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrate", 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 orchestrate -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jpicklyk/task-orchestrator orchestrate --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/orchestrate .cursor/skills/orchestrate && 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 "orchestrate" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/orchestrate into .cursor/skills/orchestrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrate", 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/orchestrate--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 orchestrate -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jpicklyk/task-orchestrator orchestrate --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/orchestrate .gemini/skills/orchestrate && 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 "orchestrate" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/orchestrate into .gemini/skills/orchestrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrate", 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 orchestrateInstalls 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 orchestrate -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/orchestrate .github/skills/orchestrate && 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 "orchestrate" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/orchestrate into .github/skills/orchestrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrate", 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 orchestrate -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 orchestrate --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/orchestrate .opencode/skills/orchestrate && 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 "orchestrate" agent skill from https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/orchestrate into .opencode/skills/orchestrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchestrate", 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.
orchestrateInternal, invoked from the orchestration context: tier classification, delegation model table, and phase-owner dispatch rules for sizing and dispatching implementation work.
Orchestrate is an agent skill from jpicklyk/task-orchestrator. Internal, invoked from the orchestration context: tier classification, delegation model table, and phase-owner dispatch rules for sizing and dispatching implementation work.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering Subagents. The repository describes itself as: Server-enforced workflow discipline for AI agents. An MCP server providing persistent work items, dependency graphs, quality gates, and actor attribution. Schemas define what… The licence is MIT.
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.
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.
Orchestrate loads about 2.6k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 1,336 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,336 words, ~2,562 tokens.
.claude/skills/orchestrate/SKILL.md (or your agent's skills folder).On-demand depth for sizing work and dispatching agents. The tier table and the delegation model table apply when orchestration.mode is workflow. In schema mode the schema alone governs process, so skip the tier and model-table content — but the phase-owner dispatch rules and the explicit-model rule below still apply, with the model chosen by judgment.
Classify every piece of work into a tier before starting — the tier determines how much process to apply.
<!-- BEGIN GENERATED:tier-classification | source: claude-plugins/task-orchestrator/_fragments/tier-classification.md · regen: node claude-plugins/task-orchestrator/_fragments/generate.mjs -->
| Criteria | Tier | Pipeline |
|---|---|---|
| 1-2 files, known fix, no migration/new API | Direct | Orchestrator edits, tests, reviews inline |
| 3-10 files, single logical unit, clear or explorable scope | Delegated | Single subagent, separate review agent |
| 11+ files, multiple independent work streams, dependency edges | Parallel | Worktree agents, full pipeline |
Force-UP signals (bump tier regardless of file count):
Force-DOWN signals:
default or absent → eligible for Direct<!-- END GENERATED:tier-classification -->
| Step | Direct | Delegated | Parallel |
|---|---|---|---|
| Plan mode | skip | optional | required |
| Queue notes | none required | fill per schema | fill per schema |
| Implementation | orchestrator inline — no subagent, no delegation table | single subagent | parallel worktree agents |
| Review | inline (orchestrator) | separate agent | separate agent |
Review applies only when the item's schema declares review-phase notes; otherwise work advances straight to terminal — detect via newRole and skip review dispatch.
Multi-item dispatch: when post-plan-workflow's four-part condition holds (two or more unblocked leaf items, a resolvable rootId, filled queue notes, protocol rules listed), dispatch goes through /task-orchestrator:run-wave; otherwise hand-dispatch.
Project convention, not a plugin requirement. The specific model assignments and the MCP-write batching threshold below are tuned for this repository. Projects using this skill should treat them as sensible defaults and adjust to their own model availability and tooling — what transfers is the principle (match model to task weight; keep the orchestrator's context lean), not the exact table values.
| Task type | Model |
|---|---|
| MCP bulk ops, materialization, simple queries | haiku |
| Code reading, implementation, test writing | sonnet |
| Architecture, complex tradeoffs, multi-file synthesis | opus |
Always set model explicitly on every Agent dispatch — defaulting wastes opus tokens or under-powers complex work.
Applies only to the agent that OWNS the phase being entered — the implementer entering work, the reviewer entering review — never test author, planning seats, or the docs seat (those keep the Delegation table above).
Read the profile for the phase you are dispatching INTO, not the item's current phase:
dispatch off that advance_item call's success result — it reports the profile for newRole, the phase being dispatched into.advance_item(start) itself to enter work), get_context(itemId=...) returns only the profile for the item's CURRENT role (queue) — not the work-phase profile needed for dispatch. Read query_items(operation="schema", itemId=...)'s per-phase dispatch.work map instead.When that profile names an agent, dispatch with subagent_type set to that dispatch.agent. Regardless of whether agent is set, ALWAYS still pass model explicitly: dispatch.model if the profile sets one, otherwise the Delegation table's value above (or your own judgment in schema mode) — both shipped agents (task-orchestrator:implementer, task-orchestrator:reviewer) ship model: inherit, and Claude Code resolves the per-invocation Agent-tool model first, then the agent's own frontmatter, where inherit means the main conversation's model — omitting model silently runs the phase owner on the orchestrator's own model instead of the intended assignment.
effort has no Agent-tool parameter of its own. In Claude Code it is honored only through the dispatched agent definition's own frontmatter effort field, so a profile's effort is advisory unless agent also names a definition carrying that effort — to change effort, point agent at a definition with that effort. (A client that calls the model API directly may apply a profile's effort field itself.) This rule is for the phase OWNER only — auxiliary dispatches on the same item (test author under needs-test-author, planning seats, the docs seat) keep the Delegation table; a work-phase dispatch profile names the phase owner, not every work-phase dispatch.
For a seat-aware item (its schema declares seats:), read every seat's profile — including the test author and planning seats — from the resolved dispatchBySeat, which supersedes the Delegation table for those seats. When a resolved profile pins a model, change it through the project's config traits, not by overriding it at dispatch time.
Project convention (workflow mode only; in schema mode batch by ordinary judgment): avoid 3+ MCP write calls in a single turn. Parallelized reads (e.g., get_context + query_items overview) are fine and encouraged. Delegate bulk MCP write work to the Agent tool with model: "haiku" to keep the orchestrator context clean.
Delegation prompts must include entity IDs and full context — subagents start fresh.
Parallel-tier dispatches follow a dispatch contract. Where the project's /implement skill ships a dispatch-contract template, generate the run's plan file from it; otherwise write one plan file for the wave that pins branch, worktree, file ownership, commit form, build self-check and review scoping. Either way, point every dispatch prompt at that file by absolute path instead of restating those rules inline. Under a run plan (/task-orchestrator:run-wave) seat prompts are generated and never reference this file; the contract then serves the orchestrator (fallback hand-dispatches, the post-run commit map) and the reviewers, and anything a seat must know goes in the item's specification/task-scope note.
/task-orchestrator:run-wave reads the project's .taskorchestrator/run-profile.json and a project dispatch contract pins its own build self-check. A seat you dispatch by hand, outside both of those, gets neither unless you put it there. When that file exists:
verify entry whose seats lists the seat you are dispatching (implementer, test-author, ...), paste its command into the seat's prompt verbatim, substituting <worktree> and <scratchpad>, as the check the seat runs before committing. If the command calls a wrapper that a wave's setup creates (a lock script in the scratchpad, say) and that file is absent, give the seat the same tasks through the build tool directly: the task list is what matters, not the wrapper.seats lists orchestrator yourself, on the item's worktree, before dispatching the reviewer and again before pushing. A failure there goes back to the owning seat before review, not to the reviewer.Do not delegate verification. Do not dispatch subagents to verify or double-check your own work. Verification belongs to the schema's review phase (a separate reviewer) or to inline review on Direct tier. Current models self-verify well, so a redundant verification agent adds cost without catching more. This does not cover independent test authoring under the needs-test-author trait — dispatching a separate test author is production work the trait requires, not re-verification; the separation between writing code and writing its tests is the point. Redundant double-checking of your own edits remains discouraged.
Subagents write findings into their work item's notes; their final message back is 1-2 lines (item ID, outcome, note keys filled). Never ask agents to restate note content in replies.
If your project defines a delegated trait (see your schema config), applying it is recommended for Delegated/Parallel items: apply the trait at item creation (traits: "delegated" — it appears in availableTraits on create responses) or via manage_items update before dispatch (per-item form: items: [{itemId, traits: "delegated"}]), so the note below is schema-visible rather than convention-only. Then, after each subagent returns, fill its delegation-metadata work note — model · isolation · one-line rationale · one-line outcome. The orchestrator fills this, not the subagent (only the orchestrator knows the dispatch details). It feeds /session-retrospective's delegation-alignment scoring; projects that don't define the trait simply skip it.
© 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/orchestrate of jpicklyk/task-orchestrator.
Open the folder on GitHubat commit 3e83170
Orchestrate 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 |
|---|---|---|---|---|---|---|
| Orchestrate this skilljpicklyk/task-orchestrator | 207 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Claude Code Agent Developmentanthropics/claude-plugins-official | 38k | 8 repos | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Subagent Driven DevelopmentAsvarox/allkaraoke | 261 | 38 repos | ~1.2k | Automated safety check: Pass | None | |
| Dispatching Parallel Agentsultralisp/ultralisp | 258 | 41 repos | ~1.5k | Automated safety check: Pass | None | |
| Paseo Advisor Second Opiniongetpaseo/paseo | 20k | 1 repos | ~756 | Automated safety check: Pass | Custom licence | |
| Task Observerrebelytics/one-skill-to-rule-them-all | 3.2k | 1 repos | ~12k | Automated safety check: Pass | CC-BY-4.0 |
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
Asvarox/allkaraoke
A skill your agent uses when executing implementation plans with independent tasks in the current session
ultralisp/ultralisp
A skill your agent uses when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
getpaseo/paseo
Launches one separate agent through Paseo to give a second opinion on the current task, with a self-contained briefing and no permission to edit files.
rebelytics/one-skill-to-rule-them-all
Monitors task execution for skill improvement opportunities.
openobserve/openobserve
Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.
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
Views, creates, deletes and diagnoses BLOCKS, IS_BLOCKED_BY and RELATES_TO links between MCP work items, including why an item cannot start.
Categories
Internal, invoked from the orchestration context: tier classification, delegation model table, and phase-owner dispatch rules for sizing and dispatching implementation work. Orchestrate is an agent skill from jpicklyk/task-orchestrator. Internal, invoked from the orchestration context: tier classification, delegation model table, and phase-owner dispatch rules for sizing and dispatching implementation work.
Orchestrate fits situations like: tasks that involve Subagents.
Run `npx skills add jpicklyk/task-orchestrator --skill orchestrate -a claude-code`. Or copy the skill folder (claude-plugins/task-orchestrator/skills/orchestrate in jpicklyk/task-orchestrator) into .claude/skills/orchestrate in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jpicklyk/task-orchestrator --skill orchestrate -a codex`. Or copy the skill folder (claude-plugins/task-orchestrator/skills/orchestrate in jpicklyk/task-orchestrator) into .agents/skills/orchestrate 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 orchestrate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/orchestrate, .gemini/skills/orchestrate, .github/skills/orchestrate and .opencode/skills/orchestrate in your project.
SKILL.md names no scripts, command-line tools or credentials: Orchestrate is instructions for the agent only.
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.
Orchestrate 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 10k 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 Orchestrate: Claude Code Agent Development (anthropics/claude-plugins-official, 38k stars), Subagent Driven Development (Asvarox/allkaraoke, 261 stars), Dispatching Parallel Agents (ultralisp/ultralisp, 258 stars) and Paseo Advisor Second Opinion (getpaseo/paseo, 20k 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.