{"id":"678e608d-fc45-49e8-acd1-cb84ec867c9a","shortId":"35uzCb","kind":"skill","title":"multi-agent-task-orchestrator","tagline":"Route tasks to specialized AI agents with anti-duplication, quality gates, and 30-minute heartbeat monitoring","description":"# Multi-Agent Task Orchestrator\n\n## Overview\n\nA production-tested pattern for coordinating multiple AI agents through a single orchestrator. Instead of letting agents work independently (and conflict), one orchestrator decomposes tasks, routes them to specialists, prevents duplicate work, and verifies results before marking anything done. Battle-tested across 10,000+ tasks over 6 months.\n\n## When to Use This Skill\n\n- Use when you have 3+ specialized agents that need to coordinate on complex tasks\n- Use when agents are doing duplicate or conflicting work\n- Use when you need audit trails showing who did what and when\n- Use when agent output quality is inconsistent and needs verification gates\n\n## How It Works\n\n### Step 1: Define the Orchestrator Identity\n\nThe orchestrator must know what it IS and what it IS NOT. This prevents it from doing work instead of delegating:\n\n```\nYou are the Task Orchestrator. You NEVER do specialized work yourself.\nYou decompose tasks, delegate to the right agent, prevent conflicts,\nand verify quality before marking anything done.\n\nWHAT YOU ARE NOT:\n- NOT a code writer — delegate to code agents\n- NOT a researcher — delegate to research agents\n- NOT a tester — delegate to test agents\n```\n\nThis \"NOT-block\" pattern reduces task drift by ~35% in production.\n\n### Step 2: Build a Task Registry\n\nBefore assigning work, check if anyone is already doing this task:\n\n```python\nimport sqlite3\nfrom difflib import SequenceMatcher\n\ndef check_duplicate(description, threshold=0.55):\n    conn = sqlite3.connect(\"task_registry.db\")\n    c = conn.cursor()\n    c.execute(\"SELECT id, description, agent, status FROM tasks WHERE status IN ('pending', 'in_progress')\")\n    for row in c.fetchall():\n        ratio = SequenceMatcher(None, description.lower(), row[1].lower()).ratio()\n        if ratio >= threshold:\n            return {\"id\": row[0], \"description\": row[1], \"agent\": row[2]}\n    return None\n```\n\n### Step 3: Route Tasks to Specialists\n\nUse keyword scoring to match tasks to the best agent:\n\n```python\nAGENTS = {\n    \"code-architect\": [\"code\", \"implement\", \"function\", \"bug\", \"fix\", \"refactor\", \"api\"],\n    \"security-reviewer\": [\"security\", \"vulnerability\", \"audit\", \"cve\", \"injection\"],\n    \"researcher\": [\"research\", \"compare\", \"analyze\", \"benchmark\", \"evaluate\"],\n    \"doc-writer\": [\"document\", \"readme\", \"explain\", \"tutorial\", \"guide\"],\n    \"test-engineer\": [\"test\", \"coverage\", \"unittest\", \"pytest\", \"spec\"],\n}\n\ndef route_task(description):\n    scores = {}\n    for agent, keywords in AGENTS.items():\n        scores[agent] = sum(1 for kw in keywords if kw in description.lower())\n    return max(scores, key=scores.get) if max(scores.values()) > 0 else \"code-architect\"\n```\n\n### Step 4: Enforce Quality Gates\n\nAgent output is a CLAIM. Test output is EVIDENCE.\n\n```\nAfter agent reports completion:\n1. Were files actually modified? (git diff --stat)\n2. Do tests pass? (npm test / pytest)\n3. Were secrets introduced? (grep for API keys, tokens)\n4. Did the build succeed? (npm run build)\n5. Were only intended files touched? (scope check)\n\nMark done ONLY after ALL checks pass.\n```\n\n### Step 5: Run 30-Minute Heartbeats\n\n```\nEvery 30 minutes, ask:\n1. \"What have I DELEGATED in the last 30 minutes?\"\n2. If nothing → open the task backlog and assign the next task\n3. Check for idle agents (no message in >30min on assigned task)\n4. Relance idle agents or reassign their tasks\n```\n\n## Examples\n\n### Example 1: Delegating a Code Task\n\n```\n[ORCHESTRATOR -> code-architect] TASK: Add rate limiting to /api/users\nSCOPE: src/middleware/rate-limit.ts only\nVERIFICATION: npm test -- --grep \"rate-limit\"\nDEADLINE: 30 minutes\n```\n\n### Example 2: Handling a Duplicate\n\n```\nUser asks: \"Fix the login bug\"\nRegistry check: Task #47 \"Fix authentication bug\" is IN_PROGRESS by security-reviewer\nDecision: SKIP — similar task already assigned (78% match)\nAction: Notify user of existing task, wait for completion\n```\n\n## Best Practices\n\n- Always define NOT-blocks for every agent (what they must refuse to do)\n- Use SQLite for the task registry (lightweight, no server needed)\n- Set similarity threshold at 55% for anti-duplication (lower = too many false positives)\n- Require evidence-based quality gates (not just agent claims)\n- Log every delegation with: task ID, agent, scope, deadline, verification command\n\n## Common Pitfalls\n\n- **Problem:** Orchestrator starts doing work instead of delegating\n  **Solution:** Add explicit NOT-blocks and role boundaries\n\n- **Problem:** Two agents modify the same file simultaneously\n  **Solution:** Task registry with file-level locking and queue system\n\n- **Problem:** Agent claims \"done\" without actual changes\n  **Solution:** Quality gate checks git diff before accepting completion\n\n- **Problem:** Tasks pile up without progress\n  **Solution:** 30-minute heartbeat catches stale assignments and reassigns\n\n## Related Skills\n\n- `@code-review` - For reviewing code changes after delegation\n- `@test-driven-development` - For ensuring quality in agent output\n- `@project-management` - For tracking multi-agent project progress\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["multi","agent","task","orchestrator","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents"],"capabilities":["skill","source-sickn33","skill-multi-agent-task-orchestrator","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/multi-agent-task-orchestrator","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34666 github stars · SKILL.md body (5,402 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T06:51:36.340Z","embedding":null,"createdAt":"2026-04-18T21:41:08.290Z","updatedAt":"2026-04-23T06:51:36.340Z","lastSeenAt":"2026-04-23T06:51:36.340Z","tsv":"'/api/users':528 '0':293,390 '0.55':255 '000':74 '1':134,284,296,373,413,470,514 '10':73 '2':227,299,421,480,543 '3':88,303,428,492 '30':19,463,467,478,540,706 '30min':500 '35':223 '4':396,437,504 '47':556 '5':445,461 '55':614 '6':77 '78':573 'accept':697 'across':72 'action':575 'actual':416,688 'add':524,656 'agent':3,11,25,38,46,90,100,121,178,199,206,213,265,297,317,319,366,371,400,410,496,507,593,632,640,666,684,733,742 'agents.items':369 'ai':10,37 'alreadi':239,571 'alway':586 'analyz':341 'anti':14,617 'anti-dupl':13,616 'anyon':237 'anyth':67,186 'api':329,434 'architect':322,394,522 'ask':469,548,778 'assign':233,488,502,572,711 'audit':111,335 'authent':558 'backlog':486 'base':627 'battl':70 'battle-test':69 'benchmark':342 'best':316,584 'block':217,590,660 'boundari':663,786 'bug':326,552,559 'build':228,440,444 'c':259 'c.execute':261 'c.fetchall':278 'catch':709 'chang':689,722 'check':235,251,452,458,493,554,693 'claim':404,633,685 'clarif':780 'clear':753 'code':194,198,321,323,393,517,521,717,721 'code-architect':320,392,520 'code-review':716 'command':644 'common':645 'compar':340 'complet':412,583,698 'complex':96 'conflict':50,105,180 'conn':256 'conn.cursor':260 'coordin':35,94 'coverag':356 'criteria':789 'cve':336 'deadlin':539,642 'decis':567 'decompos':53,172 'def':250,360 'defin':135,587 'deleg':159,174,196,203,210,474,515,636,654,724 'describ':757 'descript':253,264,294,363 'description.lower':282,381 'develop':728 'diff':419,695 'difflib':247 'doc':345 'doc-writ':344 'document':347 'done':68,187,454,686 'drift':221 'driven':727 'duplic':15,60,103,252,546,618 'els':391 'enforc':397 'engin':354 'ensur':730 'environ':769 'environment-specif':768 'evalu':343 'everi':466,592,635 'evid':408,626 'evidence-bas':625 'exampl':512,513,542 'exist':579 'expert':774 'explain':349 'explicit':657 'fals':622 'file':415,449,670,677 'file-level':676 'fix':327,549,557 'function':325 'gate':17,129,399,629,692 'git':418,694 'grep':432,535 'guid':351 'handl':544 'heartbeat':21,465,708 'id':263,291,639 'ident':138 'idl':495,506 'implement':324 'import':244,248 'inconsist':125 'independ':48 'inject':337 'input':783 'instead':43,157,652 'intend':448 'introduc':431 'key':385,435 'keyword':309,367,377 'know':142 'kw':375,379 'last':477 'let':45 'level':678 'lightweight':606 'limit':526,538,745 'lock':679 'log':634 'login':551 'lower':285,619 'manag':737 'mani':621 'mark':66,185,453 'match':312,574,754 'max':383,388 'messag':498 'minut':20,464,468,479,541,707 'miss':791 'modifi':417,667 'monitor':22 'month':78 'multi':2,24,741 'multi-ag':23,740 'multi-agent-task-orchestr':1 'multipl':36 'must':141,596 'need':92,110,127,609 'never':166 'next':490 'none':281,301 'not-block':215,588,658 'noth':482 'notifi':576 'npm':425,442,533 'one':51 'open':483 'orchestr':5,27,42,52,137,140,164,519,648 'output':122,401,406,734,763 'overview':28 'pass':424,459 'pattern':33,218 'pend':272 'permiss':784 'pile':701 'pitfal':646 'posit':623 'practic':585 'prevent':59,152,179 'problem':647,664,683,699 'product':31,225 'production-test':30 'progress':274,562,704,744 'project':736,743 'project-manag':735 'pytest':358,427 'python':243,318 'qualiti':16,123,183,398,628,691,731 'queue':681 'rate':525,537 'rate-limit':536 'ratio':279,286,288 'readm':348 'reassign':509,713 'reduc':219 'refactor':328 'refus':597 'registri':231,553,605,674 'relanc':505 'relat':714 'report':411 'requir':624,782 'research':202,205,338,339 'result':64 'return':290,300,382 'review':332,566,718,720,775 'right':177 'role':662 'rout':6,55,304,361 'row':276,283,292,295,298 'run':443,462 'safeti':785 'scope':451,529,641,756 'score':310,364,370,384 'scores.get':386 'scores.values':389 'secret':430 'secur':331,333,565 'security-review':330,564 'select':262 'sequencematch':249,280 'server':608 'set':610 'show':113 'similar':569,611 'simultan':671 'singl':41 'skill':83,715,748 'skill-multi-agent-task-orchestrator' 'skip':568 'solut':655,672,690,705 'source-sickn33' 'spec':359 'special':9,89,168 'specialist':58,307 'specif':770 'sqlite':601 'sqlite3':245 'sqlite3.connect':257 'src/middleware/rate-limit.ts':530 'stale':710 'start':649 'stat':420 'status':266,270 'step':133,226,302,395,460 'stop':776 'substitut':766 'succeed':441 'success':788 'sum':372 'system':682 'task':4,7,26,54,75,97,163,173,220,230,242,268,305,313,362,485,491,503,511,518,523,555,570,580,604,638,673,700,752 'task_registry.db':258 'test':32,71,212,353,355,405,423,426,534,726,772 'test-driven-develop':725 'test-engin':352 'tester':209 'threshold':254,289,612 'token':436 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'touch':450 'track':739 'trail':112 'treat':761 'tutori':350 'two':665 'unittest':357 'use':81,84,98,107,119,308,600,746 'user':547,577 'valid':771 'verif':128,532,643 'verifi':63,182 'vulner':334 'wait':581 'without':687,703 'work':47,61,106,132,156,169,234,651 'writer':195,346","prices":[{"id":"6f630eb7-d87f-464b-a706-a0b9e739b23d","listingId":"678e608d-fc45-49e8-acd1-cb84ec867c9a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:41:08.290Z"}],"sources":[{"listingId":"678e608d-fc45-49e8-acd1-cb84ec867c9a","source":"github","sourceId":"sickn33/antigravity-awesome-skills/multi-agent-task-orchestrator","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/multi-agent-task-orchestrator","isPrimary":false,"firstSeenAt":"2026-04-18T21:41:08.290Z","lastSeenAt":"2026-04-23T06:51:36.340Z"}],"details":{"listingId":"678e608d-fc45-49e8-acd1-cb84ec867c9a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"multi-agent-task-orchestrator","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34666,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"93b278b9fd685892e74f81690ffc1159144e2d6e","skill_md_path":"skills/multi-agent-task-orchestrator/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/multi-agent-task-orchestrator"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"multi-agent-task-orchestrator","description":"Route tasks to specialized AI agents with anti-duplication, quality gates, and 30-minute heartbeat monitoring"},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/multi-agent-task-orchestrator"},"updatedAt":"2026-04-23T06:51:36.340Z"}}