Agent Orchestrator Overview Meta-skill que orquestra todos os agentes do ecossistema. Scan automatico de skills, match por capacidades, coordenacao de workflows multi-skill e registry management. When to Use This Skill - When you need specialized assistance with this domain Do Not Use This Skill When - The task is unrelated to agent orchestrator - A simpler, more specific tool can handle the request - The user needs general-purpose assistance without domain expertise How It Works Meta-skill que funciona como camada central de decisao e coordenacao para todo o ecossistema de skills. Faz varred…

, block, re.MULTILINE)\n if m:\n result[key] = m.group(1).strip()\n else:\n # Handle multi-line description with >- or >\n m2 = re.search(rf'^{key}:\\s*>-?\\s*\\n((?:\\s+.+\\n?)+)', block, re.MULTILINE)\n if m2:\n lines = m2.group(1).strip().split(\"\\n\")\n result[key] = \" \".join(line.strip() for line in lines)\n return result\n\n\ndef find_skill_files() -> list[Path]:\n \"\"\"Find all SKILL.md files in the ecosystem.\"\"\"\n found = set()\n\n for base in SEARCH_PATHS:\n if not base.exists():\n continue\n for root, dirs, files in os.walk(base):\n depth = len(Path(root).relative_to(base).parts)\n if depth > MAX_DEPTH:\n dirs.clear()\n continue\n\n # Skip the orchestrator itself\n if \"agent-orchestrator\" in Path(root).parts:\n continue\n\n if \"SKILL.md\" in files:\n found.add(Path(root) / \"SKILL.md\")\n\n return sorted(found)\n\n\ndef detect_language(skill_dir: Path) -> str:\n \"\"\"Detect primary language from scripts/ directory.\"\"\"\n scripts_dir = skill_dir / \"scripts\"\n if not scripts_dir.exists():\n return \"none\"\n\n extensions = set()\n for f in scripts_dir.rglob(\"*\"):\n if f.is_file():\n extensions.add(f.suffix.lower())\n\n if \".py\" in extensions:\n return \"python\"\n if \".ts\" in extensions or \".js\" in extensions:\n return \"nodejs\"\n if \".sh\" in extensions:\n return \"bash\"\n return \"none\"\n\n\ndef extract_capabilities(description: str) -> list[str]:\n \"\"\"Map description keywords to capability tags using word boundary matching.\"\"\"\n if not description:\n return []\n\n desc_lower = description.lower()\n desc_words = set(re.findall(r'[a-zA-ZÀ-ÿ]+', desc_lower))\n caps = []\n for cap, keywords in CAPABILITY_MAP.items():\n for kw in keywords:\n # Multi-word keywords: substring match. Single-word: exact word match.\n if \" \" in kw:\n if kw in desc_lower:\n caps.append(cap)\n break\n elif kw in desc_words:\n caps.append(cap)\n break\n return sorted(caps)\n\n\ndef extract_triggers(description: str) -> list[str]:\n \"\"\"Extract trigger keywords from description text using word boundary matching.\"\"\"\n if not description:\n return []\n\n # Collect all keywords from all capability categories\n all_keywords = set()\n for keywords in CAPABILITY_MAP.values():\n all_keywords.update(keywords)\n\n desc_lower = description.lower()\n desc_words = set(re.findall(r'[a-zA-ZÀ-ÿ]+', desc_lower))\n found = []\n for kw in sorted(all_keywords):\n if \" \" in kw:\n if kw in desc_lower:\n found.append(kw)\n elif kw in desc_words:\n found.append(kw)\n return found\n\n\ndef assess_status(skill_dir: Path) -> str:\n \"\"\"Check if skill is complete (active) or incomplete.\"\"\"\n skill_md = skill_dir / \"SKILL.md\"\n if not skill_md.exists():\n return \"missing\"\n\n has_scripts = (skill_dir / \"scripts\").exists()\n has_refs = (skill_dir / \"references\").exists()\n\n # Parse frontmatter to check for required fields\n meta = parse_yaml_frontmatter(skill_md)\n has_name = bool(meta.get(\"name\"))\n has_desc = bool(meta.get(\"description\"))\n\n if has_name and has_desc:\n return \"active\"\n return \"incomplete\"\n\n\ndef is_registered(skill_dir: Path) -> bool:\n \"\"\"Check if skill is in .claude/skills/.\"\"\"\n claude_skills = SKILLS_ROOT / \".claude\" / \"skills\"\n try:\n skill_dir.relative_to(claude_skills)\n return True\n except ValueError:\n return False\n\n\n# ── Main Logic ─────────────────────────────────────────────────────────────\n\ndef load_hashes() -> dict:\n \"\"\"Load stored hashes from registry_hashes.json.\"\"\"\n if HASHES_PATH.exists():\n try:\n return json.loads(HASHES_PATH.read_text(encoding=\"utf-8\"))\n except Exception:\n pass\n return {}\n\n\ndef save_hashes(hashes: dict):\n \"\"\"Save hashes to registry_hashes.json.\"\"\"\n DATA_DIR.mkdir(parents=True, exist_ok=True)\n HASHES_PATH.write_text(json.dumps(hashes, indent=2), encoding=\"utf-8\")\n\n\ndef load_registry() -> dict:\n \"\"\"Load existing registry.json.\"\"\"\n if REGISTRY_PATH.exists():\n try:\n return json.loads(REGISTRY_PATH.read_text(encoding=\"utf-8\"))\n except Exception:\n pass\n return {\"generated_at\": None, \"skills_root\": str(SKILLS_ROOT), \"skills\": []}\n\n\ndef save_registry(registry: dict):\n \"\"\"Save registry.json.\"\"\"\n DATA_DIR.mkdir(parents=True, exist_ok=True)\n registry[\"generated_at\"] = datetime.now().isoformat()\n REGISTRY_PATH.write_text(json.dumps(registry, indent=2, ensure_ascii=False), encoding=\"utf-8\")\n\n\ndef build_skill_entry(skill_md_path: Path) -> dict:\n \"\"\"Build a registry entry from a SKILL.md file.\"\"\"\n skill_dir = skill_md_path.parent\n meta = parse_yaml_frontmatter(skill_md_path)\n description = meta.get(\"description\", \"\")\n\n # Support explicit capabilities in frontmatter\n explicit_caps = meta.get(\"capabilities\", [])\n if isinstance(explicit_caps, str):\n explicit_caps = [c.strip() for c in explicit_caps.split(\",\")]\n\n auto_caps = extract_capabilities(description)\n all_caps = sorted(set(auto_caps + explicit_caps))\n\n return {\n \"name\": meta.get(\"name\", skill_dir.name),\n \"description\": description,\n \"version\": meta.get(\"version\", \"\"),\n \"location\": str(skill_dir),\n \"skill_md\": str(skill_md_path),\n \"registered\": is_registered(skill_dir),\n \"has_scripts\": (skill_dir / \"scripts\").exists(),\n \"has_references\": (skill_dir / \"references\").exists(),\n \"has_data\": (skill_dir / \"data\").exists(),\n \"capabilities\": all_caps,\n \"triggers\": extract_triggers(description),\n \"language\": detect_language(skill_dir),\n \"status\": assess_status(skill_dir),\n \"last_modified\": datetime.fromtimestamp(\n skill_md_path.stat().st_mtime\n ).isoformat(),\n }\n\n\ndef scan(force: bool = False) -> dict:\n \"\"\"\n Main scan function.\n\n With hash caching:\n 1. Find all SKILL.md files\n 2. Compare MD5 hashes with stored values\n 3. Only re-parse files that changed, were added, or removed\n 4. Update registry incrementally\n \"\"\"\n current_files = find_skill_files()\n current_paths = {str(f): f for f in current_files}\n\n stored_hashes = load_hashes()\n registry = load_registry()\n\n # Build lookup of existing registry entries by skill_md path\n existing_by_path = {}\n for entry in registry.get(\"skills\", []):\n existing_by_path[entry.get(\"skill_md\", \"\")] = entry\n\n # Compute current hashes\n new_hashes = {}\n changed = False\n\n for path_str, path_obj in current_paths.items():\n current_hash = md5_file(path_obj)\n new_hashes[path_str] = current_hash\n\n if force or path_str not in stored_hashes or stored_hashes[path_str] != current_hash:\n # New or modified - rebuild entry\n entry = build_skill_entry(path_obj)\n existing_by_path[path_str] = entry\n changed = True\n\n # Detect removed skills\n for old_path in list(existing_by_path.keys()):\n if old_path not in current_paths and old_path != \"\":\n del existing_by_path[old_path]\n changed = True\n\n # Check if file set changed (additions/removals)\n if set(new_hashes.keys()) != set(stored_hashes.keys()):\n changed = True\n\n # Deduplicate by skill name (case-insensitive).\n # When the same skill exists in both skills/ and .claude/skills/,\n # prefer the primary location (skills/) over the registered copy.\n if changed or not REGISTRY_PATH.exists():\n by_name = {}\n for entry in existing_by_path.values():\n name = entry.get(\"name\", \"\").lower()\n if not name:\n continue\n if name not in by_name:\n by_name[name] = entry\n else:\n # Prefer the version NOT in .claude/skills/ (the primary source)\n existing = by_name[name]\n existing_is_registered = existing.get(\"registered\", False)\n new_is_registered = entry.get(\"registered\", False)\n if existing_is_registered and not new_is_registered:\n by_name[name] = entry\n # If both are primary or both registered, keep first found\n\n registry[\"skills\"] = sorted(by_name.values(), key=lambda s: s.get(\"name\", \"\"))\n save_registry(registry)\n save_hashes(new_hashes)\n return registry\n else:\n # Nothing changed, return existing\n return registry\n\n\ndef print_status(registry: dict):\n \"\"\"Print a formatted status table.\"\"\"\n skills = registry.get(\"skills\", [])\n\n if not skills:\n print(\"No skills found in the ecosystem.\")\n return\n\n print(f\"\\n{'='*80}\")\n print(f\" Agent Orchestrator - Skill Registry Status\")\n print(f\" Scanned at: {registry.get('generated_at', 'N/A')}\")\n print(f\" Root: {registry.get('skills_root', 'N/A')}\")\n print(f\"{'='*80}\\n\")\n\n # Header\n print(f\" {'Name':\u003c22} {'Status':\u003c12} {'Lang':\u003c10} {'Registered':\u003c12} {'Capabilities'}\")\n print(f\" {'-'*22} {'-'*12} {'-'*10} {'-'*12} {'-'*30}\")\n\n for s in sorted(skills, key=lambda x: x.get(\"name\", \"\")):\n name = s.get(\"name\", \"?\")[:20]\n status = s.get(\"status\", \"?\")\n lang = s.get(\"language\", \"none\")\n reg = \"Yes\" if s.get(\"registered\") else \"No\"\n caps = \", \".join(s.get(\"capabilities\", []))[:30]\n print(f\" {name:\u003c22} {status:\u003c12} {lang:\u003c10} {reg:\u003c12} {caps}\")\n\n print(f\"\\n Total: {len(skills)} skills\")\n\n # Recommendations\n unregistered = [s for s in skills if not s.get(\"registered\")]\n incomplete = [s for s in skills if s.get(\"status\") == \"incomplete\"]\n\n if unregistered:\n print(f\"\\n [!] {len(unregistered)} skill(s) not registered in .claude/skills/:\")\n for s in unregistered:\n print(f\" - {s['name']} ({s['location']})\")\n\n if incomplete:\n print(f\"\\n [!] {len(incomplete)} skill(s) with incomplete status:\")\n for s in incomplete:\n print(f\" - {s['name']} ({s['location']})\")\n\n print()\n\n\n# ── CLI Entry Point ────────────────────────────────────────────────────────\n\ndef main():\n force = \"--force\" in sys.argv\n show_status = \"--status\" in sys.argv\n\n registry = scan(force=force)\n\n if show_status:\n print_status(registry)\n else:\n # Default: output JSON summary for Claude to parse\n skills = registry.get(\"skills\", [])\n summary = {\n \"total\": len(skills),\n \"active\": len([s for s in skills if s.get(\"status\") == \"active\"]),\n \"incomplete\": len([s for s in skills if s.get(\"status\") == \"incomplete\"]),\n \"skills\": [\n {\n \"name\": s.get(\"name\"),\n \"status\": s.get(\"status\"),\n \"capabilities\": s.get(\"capabilities\", []),\n }\n for s in skills\n ],\n }\n print(json.dumps(summary, indent=2, ensure_ascii=False))\n\n\nif __name__ == \"__main__\":\n main()\n","content_type":"text/x-python; charset=utf-8","language":"python","size":18114,"content_sha256":"e8dec16ea09f5a4b1b8d6a9b611d2100de9d1ca31e3ee6bd015ad1c1fddd4de8"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Agent Orchestrator","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Overview","type":"text"}]},{"type":"paragraph","content":[{"text":"Meta-skill que orquestra todos os agentes do ecossistema. Scan automatico de skills, match por capacidades, coordenacao de workflows multi-skill e registry management.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"When to Use This Skill","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"When you need specialized assistance with this domain","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Do Not Use This Skill When","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"The task is unrelated to agent orchestrator","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"A simpler, more specific tool can handle the request","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"The user needs general-purpose assistance without domain expertise","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"How It Works","type":"text"}]},{"type":"paragraph","content":[{"text":"Meta-skill que funciona como camada central de decisao e coordenacao para todo o ecossistema de skills. Faz varredura automatica, identifica agentes relevantes e orquestra multiplos skills para tarefas complexas.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Principio: Zero Intervencao Manual","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"SEMPRE faz varredura","type":"text","marks":[{"type":"strong"}]},{"text":" antes de processar qualquer solicitacao","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Novas skills sao ","type":"text"},{"text":"auto-detectadas e incluidas","type":"text","marks":[{"type":"strong"}]},{"text":" ao criar SKILL.md em qualquer subpasta","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Skills removidas sao ","type":"text"},{"text":"auto-excluidas","type":"text","marks":[{"type":"strong"}]},{"text":" do registry","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Nenhum comando manual e necessario para registrar novas skills","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Workflow Obrigatorio (Toda Solicitacao)","type":"text"}]},{"type":"paragraph","content":[{"text":"Execute estes passos ANTES de processar qualquer request do usuario. Os scripts usam paths relativos automaticamente - funciona de qualquer diretorio.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Passo 1: Auto-Discovery (Varredura)","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"python agent-orchestrator/scripts/scan_registry.py","type":"text"}]},{"type":"paragraph","content":[{"text":"Ultra-rapido (\u003c100ms) via cache de hashes MD5. So re-processa arquivos alterados. Retorna JSON com resumo de todos os skills encontrados.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Passo 2: Match De Skills","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"python agent-orchestrator/scripts/match_skills.py \"\u003csolicitacao do usuario>\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Retorna JSON com skills ranqueadas por relevancia. Interpretar o resultado:","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Resultado","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Acao","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"matched: 0","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Nenhum skill relevante. Operar normalmente sem skills.","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"matched: 1","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Um skill relevante. Carregar seu SKILL.md e seguir.","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"matched: 2+","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Multiplos skills. Executar Passo 3 (orquestracao).","type":"text"}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Passo 3: Orquestracao (Se Matched >= 2)","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"python agent-orchestrator/scripts/orchestrate.py --skills skill1,skill2 --query \"\u003csolicitacao>\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Retorna plano de execucao com padrao, ordem dos steps e data flow entre skills.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Passo Rapido (Atalho)","type":"text"}]},{"type":"paragraph","content":[{"text":"Para queries simples, os passos 1+2 podem ser combinados em sequencia:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"python agent-orchestrator/scripts/scan_registry.py && python agent-orchestrator/scripts/match_skills.py \"\u003csolicitacao>\"","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Skill Registry","type":"text"}]},{"type":"paragraph","content":[{"text":"O registry vive em:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"agent-orchestrator/data/registry.json","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Locais De Busca","type":"text"}]},{"type":"paragraph","content":[{"text":"O scanner procura SKILL.md em:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":".claude/skills/*/","type":"text","marks":[{"type":"code_inline"}]},{"text":" (skills registradas no Claude Code)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"*/","type":"text","marks":[{"type":"code_inline"}]},{"text":" (skills standalone no top-level)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"*/*\\","type":"text","marks":[{"type":"code_inline"}]},{"text":" (skills em subpastas, ate profundidade 3)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Metadata Por Skill","type":"text"}]},{"type":"paragraph","content":[{"text":"Cada entrada no registry contem:","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Campo","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Descricao","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"name","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Nome da skill (do frontmatter YAML)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"description","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Descricao completa (triggers inclusos)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"location","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Caminho absoluto do diretorio","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"skill_md","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Caminho absoluto do SKILL.md","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"registered","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Se esta em .claude/skills/ (true/false)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"capabilities","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Tags de capacidade (auto-extraidas + explicitas)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"triggers","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Keywords de ativacao extraidas da description","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"language","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Linguagem principal (python/nodejs/bash/none)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"status","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"active / incomplete / missing","type":"text"}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Comandos Do Registry","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"\n## Scan Rapido (Usa Cache De Hashes)\n\npython agent-orchestrator/scripts/scan_registry.py\n\n## Tabela De Status Detalhada\n\npython agent-orchestrator/scripts/scan_registry.py --status\n\n## Re-Scan Completo (Ignora Cache)\n\npython agent-orchestrator/scripts/scan_registry.py --force","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Algoritmo De Matching","type":"text"}]},{"type":"paragraph","content":[{"text":"Para cada solicitacao, o matcher pontua skills usando:","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Criterio","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Pontos","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Exemplo","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Nome do skill na query","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"+15","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"\"use web-scraper\" -> web-scraper","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Keyword trigger exata","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"+10","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"\"scrape\" -> web-scraper","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Categoria de capacidade","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"+5","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"data-extraction -> web-scraper","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Sobreposicao de palavras","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"+1","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Palavras da query na description","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Boost de projeto","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"+20","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Skill atribuida ao projeto ativo","type":"text"}]}]}]}]},{"type":"paragraph","content":[{"text":"Threshold minimo: 5 pontos. Skills abaixo disso sao ignoradas.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Match Com Projeto","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"python agent-orchestrator/scripts/match_skills.py --project meu-projeto \"query aqui\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Skills atribuidas ao projeto recebem +20 de boost automatico.","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Padroes De Orquestracao","type":"text"}]},{"type":"paragraph","content":[{"text":"Quando multiplos skills sao relevantes, o orchestrator classifica o padrao:","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"1. Pipeline Sequencial","type":"text"}]},{"type":"paragraph","content":[{"text":"Skills formam uma cadeia onde o output de uma alimenta a proxima.","type":"text"}]},{"type":"paragraph","content":[{"text":"Quando:","type":"text","marks":[{"type":"strong"}]},{"text":" Mix de skills \"produtoras\" (data-extraction, government-data) e \"consumidoras\" (messaging, social-media).","type":"text"}]},{"type":"paragraph","content":[{"text":"Exemplo:","type":"text","marks":[{"type":"strong"}]},{"text":" web-scraper coleta precos -> whatsapp-cloud-api envia alerta","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"user_query -> web-scraper -> whatsapp-cloud-api -> result","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"2. Execucao Paralela","type":"text"}]},{"type":"paragraph","content":[{"text":"Skills trabalham independentemente em aspectos diferentes da solicitacao.","type":"text"}]},{"type":"paragraph","content":[{"text":"Quando:","type":"text","marks":[{"type":"strong"}]},{"text":" Todas as skills tem o mesmo papel (todas produtoras ou todas consumidoras).","type":"text"}]},{"type":"paragraph","content":[{"text":"Exemplo:","type":"text","marks":[{"type":"strong"}]},{"text":" instagram publica post + whatsapp envia notificacao (ambos recebem o mesmo conteudo)","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"user_query -> [instagram, whatsapp-cloud-api] -> aggregated_result","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"3. Primario + Suporte","type":"text"}]},{"type":"paragraph","content":[{"text":"Uma skill principal lidera; outras fornecem dados de apoio.","type":"text"}]},{"type":"paragraph","content":[{"text":"Quando:","type":"text","marks":[{"type":"strong"}]},{"text":" Uma skill tem score muito superior as demais (>= 2x).","type":"text"}]},{"type":"paragraph","content":[{"text":"Exemplo:","type":"text","marks":[{"type":"strong"}]},{"text":" whatsapp-cloud-api envia mensagem (primario) + web-scraper fornece dados (suporte)","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"user_query -> whatsapp-cloud-api (primary) + web-scraper (support) -> result","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Detalhes Em ","type":"text"},{"text":"References/Orchestration-Patterns.Md","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Gerenciamento De Projetos","type":"text"}]},{"type":"paragraph","content":[{"text":"Atribuir skills a projetos permite boost de relevancia e contexto persistente.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Arquivo De Projetos","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"agent-orchestrator/data/projects.json","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Operacoes","type":"text"}]},{"type":"paragraph","content":[{"text":"Criar projeto:","type":"text","marks":[{"type":"strong"}]},{"text":" Adicionar entrada ao projects.json:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"json"},"content":[{"text":"{\n \"name\": \"nome-do-projeto\",\n \"created_at\": \"2026-02-25T12:00:00\",\n \"skills\": [\"web-scraper\", \"whatsapp-cloud-api\"],\n \"description\": \"Descricao do projeto\"\n}","type":"text"}]},{"type":"paragraph","content":[{"text":"Adicionar skill a projeto:","type":"text","marks":[{"type":"strong"}]},{"text":" Atualizar o array ","type":"text"},{"text":"skills","type":"text","marks":[{"type":"code_inline"}]},{"text":" do projeto.","type":"text"}]},{"type":"paragraph","content":[{"text":"Remover skill de projeto:","type":"text","marks":[{"type":"strong"}]},{"text":" Remover do array ","type":"text"},{"text":"skills","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]},{"type":"paragraph","content":[{"text":"Consultar skills do projeto:","type":"text","marks":[{"type":"strong"}]},{"text":" Ler o projects.json e listar skills atribuidas.","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Adicionando Novas Skills","type":"text"}]},{"type":"paragraph","content":[{"text":"Para adicionar uma nova skill ao ecossistema:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Criar uma pasta em qualquer lugar sob ","type":"text"},{"text":"skills root:","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Criar um ","type":"text"},{"text":"SKILL.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" com frontmatter YAML:","type":"text"}]}]}]},{"type":"code_block","attrs":{"wrap":false,"language":"yaml"},"content":[{"text":"---\nname: minha-nova-skill\ndescription: \"Descricao com keywords de ativacao...\"\n---\n\n## Documentacao Da Skill\n","type":"text"}]},{"type":"ordered_list","attrs":{"order":3,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Pronto!","type":"text","marks":[{"type":"strong"}]},{"text":" O auto-discovery detecta automaticamente na proxima solicitacao.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Opcionalmente, para discovery nativo do Claude Code: 4. Copiar o SKILL.md para ","type":"text"},{"text":".claude/skills/\u003cnome>/SKILL.md","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Tags De Capacidade Explicitas (Opcional)","type":"text"}]},{"type":"paragraph","content":[{"text":"Adicionar ao frontmatter para matching mais preciso:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"yaml"},"content":[{"text":"capabilities: [data-extraction, web-automation]","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Ver Status De Todos Os Skills","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"python agent-orchestrator/scripts/scan_registry.py --status","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Interpretar Status","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Status","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Significado","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"active","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"SKILL.md com name + description presentes","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"incomplete","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"SKILL.md existe mas falta name ou description","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"missing","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Diretorio existe mas sem SKILL.md","type":"text"}]}]}]}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Skills Atuais Do Ecossistema","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Skill","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Capacidades","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"Status","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"web-scraper","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"data-extraction, web-automation","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"active","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"junta-leiloeiros","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"government-data, data-extraction","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"active","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"whatsapp-cloud-api","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"messaging, api-integration","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"active","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"instagram","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"social-media, api-integration","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":"left"},"content":[{"type":"paragraph","content":[{"text":"partial","type":"text"}]}]}]}]},{"type":"paragraph","content":[{"text":"Esta tabela e atualizada automaticamente via ","type":"text","marks":[{"type":"em"}]},{"text":"scan_registry.py --status","type":"text","marks":[{"type":"code_inline"},{"type":"em"}]},{"text":".","type":"text","marks":[{"type":"em"}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Best Practices","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Provide clear, specific context about your project and requirements","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Review all suggestions before applying them to production code","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Combine with other complementary skills for comprehensive analysis","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Common Pitfalls","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Using this skill for tasks outside its domain expertise","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Applying recommendations without understanding your specific context","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Not providing enough project context for accurate analysis","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Related Skills","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"multi-advisor","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Complementary skill for enhanced analysis","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"task-intelligence","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Complementary skill for enhanced analysis","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Limitations","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use this skill only when the task clearly matches the scope described above.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Do not treat the output as a substitute for environment-specific validation, testing, or expert review.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}}]},"metadata":{"date":"2026-06-05","name":"agent-orchestrator","risk":"safe","tags":["orchestration","multi-agent","workflow","automation"],"tools":["claude-code","antigravity","cursor","gemini-cli","codex-cli"],"author":"@skillopedia","source":{"stars":39376,"repo_name":"antigravity-awesome-skills","origin_url":"https://github.com/sickn33/antigravity-awesome-skills/blob/HEAD/skills/agent-orchestrator/SKILL.md","repo_owner":"sickn33","body_sha256":"ec60950190f5f025848dcd13b623b6b76817b7c2581c75090c2cda773245b1d4","cluster_key":"029782c901abbc785e4e48368d722614ff6db07c2bff10cffcd7850693209e23","clean_bundle":{"format":"clean-skill-bundle-v1","source":"sickn33/antigravity-awesome-skills/skills/agent-orchestrator/SKILL.md","attachments":[{"id":"a8053abb-9639-56bf-8beb-cc36bf26df23","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/a8053abb-9639-56bf-8beb-cc36bf26df23/attachment.md","path":"references/capability-taxonomy.md","size":3322,"sha256":"dded18902b1a3cce62f715b7354719739fb72560025790a4a47623ee8d012d5c","contentType":"text/markdown; charset=utf-8"},{"id":"9dc08222-f082-5008-81b5-ea1887b0ed33","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/9dc08222-f082-5008-81b5-ea1887b0ed33/attachment.md","path":"references/orchestration-patterns.md","size":3872,"sha256":"0ea4c9bc2610a630e1bf89bcd19442f7aa696e7b9188531414ef349464223d34","contentType":"text/markdown; charset=utf-8"},{"id":"58dce2f8-7cb4-50e4-927e-a68556bbc4ef","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/58dce2f8-7cb4-50e4-927e-a68556bbc4ef/attachment.py","path":"scripts/match_skills.py","size":11765,"sha256":"46f49ef56d25e58927693f55e42e83dea092938de703949abb2a3102c241cbfe","contentType":"text/x-python; charset=utf-8"},{"id":"ca0ad83b-f546-51ca-a516-9ccee40528af","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/ca0ad83b-f546-51ca-a516-9ccee40528af/attachment.py","path":"scripts/orchestrate.py","size":11068,"sha256":"90d8f0d506c4034fabb3cafcabf3829677baeaf39bed11d3690e82eb8f19fd71","contentType":"text/x-python; charset=utf-8"},{"id":"b504247d-92bf-597c-8ab5-4f3fb627a9fd","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/b504247d-92bf-597c-8ab5-4f3fb627a9fd/attachment.txt","path":"scripts/requirements.txt","size":12,"sha256":"8cfc3197b86bf23f2454918d3a0e212585c9cc70f8eee9ee36518311a93c7eb9","contentType":"text/plain; charset=utf-8"},{"id":"db750c49-5065-5383-94d9-95d9fdb7f588","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/db750c49-5065-5383-94d9-95d9fdb7f588/attachment.py","path":"scripts/scan_registry.py","size":18114,"sha256":"e8dec16ea09f5a4b1b8d6a9b611d2100de9d1ca31e3ee6bd015ad1c1fddd4de8","contentType":"text/x-python; charset=utf-8"}],"bundle_sha256":"e7068a396f5c22f572b80bd4d74ec400af24e99799948b4d889f761612c9e313","attachment_count":6,"text_attachments":6,"attachment_storage":"skillopedia-attachments-v1","binary_attachments":0,"excluded_attachments":[]},"cluster_size":3,"skill_md_path":"skills/agent-orchestrator/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"ai-agent-development","category_label":"AI"},"exact_dupes_collapsed_into_this":2},"version":"v1","category":"ai-agent-development","date_added":"2026-03-06","import_tag":"clean-skills-v1","description":"Meta-skill que orquestra todos os agentes do ecossistema. Scan automatico de skills, match por capacidades, coordenacao de workflows multi-skill e registry management."}},"renderedAt":1782980495128}

Agent Orchestrator Overview Meta-skill que orquestra todos os agentes do ecossistema. Scan automatico de skills, match por capacidades, coordenacao de workflows multi-skill e registry management. When to Use This Skill - When you need specialized assistance with this domain Do Not Use This Skill When - The task is unrelated to agent orchestrator - A simpler, more specific tool can handle the request - The user needs general-purpose assistance without domain expertise How It Works Meta-skill que funciona como camada central de decisao e coordenacao para todo o ecossistema de skills. Faz varred…