[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EPPSSA00VZC2YWF4VAVZP8":3,"skill-same:01M6EPPSSA00VZC2YWF4VAVZP8":131},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6EPPSSA00VZC2YWF4VAVZP8","orchestration-native-invoke",null,"Invoke external AI CLIs via native Task agents (Claude, Codex, Gemini, Cursor). Primary mode for multi-provider orchestration with fork-terminal fallback for auth.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fconsiliency\u002Forchestration-native-invoke\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"orchestration","native","orchestration native invoke","terminal","gemini","codex","auth","documentation","cursor","fallback","provider","task","multi-provider","via","multi","2026-11-10 10:12:30",false,"---\nname: orchestration-native-invoke\ndescription: \"Invoke external AI CLIs via native Task agents (Claude, Codex, Gemini, Cursor). Primary mode for multi-provider orchestration with fork-terminal fallback for auth.\"\ntype: documentation\n---\n\n# Purpose\n\n> **Note**: This is a documentation\u002Fguide skill. It provides instructions for invoking\n> external AI CLIs using Claude Code's native Task agents. Read this skill to learn\n> the patterns, then use the Task tool manually with `subagent_type=\"general-purpose\"`.\n\nInvoke external AI coding CLIs using Claude Code's native Task agents. This is the primary mode for multi-provider orchestration, with fork-terminal as fallback for authentication.\n\n## Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| DEFAULT_AGENT | gemini | Agent to use when not explicitly specified |\n| ENABLED_CODEX | true | Enable OpenAI Codex via native agent |\n| ENABLED_GEMINI | true | Enable Google Gemini via native agent |\n| ENABLED_CURSOR | true | Enable Cursor Agent via native agent |\n| RUN_IN_BACKGROUND | true | Run agents asynchronously |\n| PARALLEL_EXECUTION | true | Launch multiple agents in parallel |\n| AUTO_RETRY_ON_AUTH | true | Auto-retry with fork-terminal on auth failure |\n| READ_ONLY_MODE | true | Prevent agents from modifying codebase |\n| CLEANUP_AGENT_FILES | true | Clean up any files agents write to repo |\n\n## Prerequisites\n\n### CLI Permissions for Subagents\n\nNative Task agents (subagents) require pre-approved permissions to execute CLI commands.\nWithout these, the Bash tool will be \"auto-denied (prompts unavailable)\".\n\n**Required in `.claude\u002Fsettings.json`**:\n```json\n{\n  \"permissions\": {\n    \"allow\": [\n      \"Bash(codex:*)\",\n      \"Bash(gemini:*)\",\n      \"Bash(cursor-agent:*)\"\n    ]\n  }\n}\n```\n\n**Setup**: Run `\u002Fai-dev-kit:setup` to configure permissions automatically.\n\n**Manual**: Add permissions via Claude Code settings or approve when prompted.\n\n**Fallback**: If permissions are denied, use fork-terminal for interactive execution.\n\n## Instructions\n\n**MANDATORY** - You MUST follow the Workflow steps below in order. Do not skip steps.\n\n### Agent Selection\n\n1. **Explicit request**: If user specifies an agent, use that agent\n2. **No agent specified**: Use DEFAULT_AGENT\n3. **Check enabled**: Verify the ENABLED_* flag is true before proceeding\n\n### Reading Cookbooks\n\n- Based on the selected agent, read the appropriate cookbook from `..\u002Fspawn\u002Fagent\u002Fcookbook\u002F`\n- You MUST run `--help` on the CLI before constructing the command\n- Follow cookbook instructions for non-interactive flags\n\n## Red Flags - STOP and follow Cookbook\n\nIf you're about to:\n- Launch a native agent without reading the cookbook first\n- Execute a CLI command without running --help\n- Skip steps because \"this is simple\"\n- Use interactive flags in non-interactive context\n\n**STOP** -> Read the appropriate cookbook file -> Check --help -> Then proceed\n\n> **Critical**: Native agents cannot handle TTY input. Always use non-interactive flags:\n> - Codex: `codex exec --full-auto`\n> - Cursor: `cursor-agent --force -p`\n> - Gemini: Use positional prompt (not `-i`)\n\n## Workflow\n\n**MANDATORY CHECKPOINTS** - Verify each before proceeding:\n\n1. [ ] Understand the user's request\n2. [ ] **SELECT AGENT(S)**: Determine which agent(s) to use\n3. [ ] READ: Cookbook for each selected agent from `..\u002Fspawn\u002Fagent\u002Fcookbook\u002F`\n4. [ ] **RUN HELP**: Execute `\u003Ccli> --help` to verify available flags\n5. [ ] **CONSTRUCT COMMAND**: Build non-interactive command per cookbook\n6. [ ] **CHECKPOINT**: Confirm cookbook instructions were followed\n7. [ ] Execute via Task tool with `run_in_background: true`\n8. [ ] Collect results via TaskOutput\n9. [ ] **ON AUTH FAILURE**: Trigger fork-terminal fallback (see Auth Recovery)\n\n## Read-Only vs Write Mode\n\n**Default: READ_ONLY_MODE = true**\n\nWhen READ_ONLY_MODE is enabled, agents should only analyze and report - not modify files.\n\n### Read-Only Flags by Provider\n\n| Provider | Read-Only Command | Write Mode Command |\n|----------|------------------|-------------------|\n| **Codex** | `codex exec --sandbox read-only --full-auto` | `codex exec --sandbox workspace-write --full-auto` |\n| **Gemini** | `gemini --sandbox --yolo` | `gemini --yolo` |\n| **Cursor** | `cursor-agent -p` (no --force) | `cursor-agent --force -p` |\n\n### Prompting for Read-Only\n\nAlways include in prompt when READ_ONLY_MODE is true:\n```\n\"Do NOT modify any files. Only analyze and report findings.\nIf you would normally write to a file, instead return the content in your response.\"\n```\n\n## Worktree Isolation (Recommended for Write Mode)\n\nWhen agents need write access, use git worktrees for true isolation:\n\n```bash\n# Create isolated worktree for agent work\ngit worktree add \u002Ftmp\u002Fagent-workspace-\u003Cid> -b agent\u002F\u003Cprovider>-\u003Ctask>\n\n# Run agent in worktree\ncd \u002Ftmp\u002Fagent-workspace-\u003Cid>\n\u003Cagent-command>\n\n# Review changes\ngit diff\n\n# If approved, merge back\ngit checkout main\ngit merge agent\u002F\u003Cprovider>-\u003Ctask>\n\n# Cleanup\ngit worktree remove \u002Ftmp\u002Fagent-workspace-\u003Cid>\ngit branch -d agent\u002F\u003Cprovider>-\u003Ctask>\n```\n\n### Benefits of Worktree Isolation\n- **Full write access**: Agents can make any changes freely\n- **Selective merge**: Only merge approved changes\n- **No cleanup needed**: Discard worktree to reject changes\n- **Parallel agents**: Multiple worktrees for parallel providers\n- **Branch history**: Changes are tracked in git\n\n### When to Use Worktrees\n| Scenario | Approach |\n|----------|----------|\n| Analysis\u002Freview only | READ_ONLY_MODE + CLI flags |\n| Single file edit | Write mode with cleanup |\n| Multi-file refactor | Worktree isolation |\n| Experimental changes | Worktree (easy to discard) |\n| Parallel agent work | Separate worktrees per agent |\n\n## Cleanup Protocol\n\nWhen CLEANUP_AGENT_FILES is true (default) and NOT using worktrees:\n\n1. **Check for new files** in the working directory\n2. **Preserve valuable content** by reading files before deletion\n3. **Delete agent-created files** (e.g., `*_REVIEW_OUTPUT.md`, `*_analysis.json`)\n4. **Log cleanup actions** for audit trail\n\n```python\n# Cleanup pattern\ncleanup_patterns = [\n    \"*_REVIEW_OUTPUT.md\",\n    \"*_analysis.json\",\n    \"*_findings.md\",\n    \"agent_output_*.txt\"\n]\n```\n\n## Cookbook\n\n### Codex (OpenAI)\n- IF: User requests Codex\u002FOpenAI and 'ENABLED_CODEX' is true\n- THEN: Read `..\u002Fspawn\u002Fagent\u002Fcookbook\u002Fcodex-cli.md`\n- Native command pattern (read-only):\n```bash\ncodex exec --sandbox read-only --full-auto --model gpt-5.2-codex \"\u003Cprompt>\"\n```\n- Native command pattern (write mode):\n```bash\ncodex exec --sandbox workspace-write --full-auto --model gpt-5.2-codex \"\u003Cprompt>\"\n```\n- Auth failure pattern: \"Please log in\", \"authentication required\"\n- Login command: `codex login`\n\n### Gemini (Google)\n- IF: User requests Gemini\u002FGoogle and 'ENABLED_GEMINI' is true\n- THEN: Read `..\u002Fspawn\u002Fagent\u002Fcookbook\u002Fgemini-cli.md`\n- Native command pattern (read-only):\n```bash\ngemini --model gemini-3-pro --sandbox --yolo \"\u003Cprompt>\"\n```\n- Native command pattern (write mode):\n```bash\ngemini --model gemini-3-pro --yolo \"\u003Cprompt>\"\n```\n- Auth failure pattern: \"Please authenticate\", \"run `gemini auth`\"\n- Login command: `gemini auth login`\n\n### Cursor\n- IF: User requests Cursor and 'ENABLED_CURSOR' is true\n- THEN: Read `..\u002Fspawn\u002Fagent\u002Fcookbook\u002Fcursor-cli.md`\n- Native command pattern (read-only - prompts for approval):\n```bash\ncursor-agent --model claude-sonnet-4.5 -p \"\u003Cprompt>\"\n```\n- Native command pattern (write mode - auto-approves):\n```bash\ncursor-agent --model claude-sonnet-4.5 --force -p \"\u003Cprompt>\"\n```\n- Auth failure pattern: \"Please log in\", browser popup needed\n- Login command: `cursor-agent login`\n\n## Auth Recovery\n\nWhen a native agent reports an authentication failure:\n\n1. **Detect**: Check output for auth failure patterns\n2. **Fork for login**: Use fork-terminal with login command\n3. **Wait**: Monitor for terminal close\n4. **Retry**: Re-launch native agent\n\n```python\n# Auth recovery flow\ndef handle_auth_failure(provider: str, original_prompt: str):\n    login_commands = {\n        \"codex\": \"codex login\",\n        \"gemini\": \"gemini auth login\",\n        \"cursor\": \"cursor-agent login\"\n    }\n\n    # Fork terminal for interactive login\n    fork_terminal(login_commands[provider], wait_for_close=True)\n\n    # After terminal closes, retry native invocation\n    return invoke_native(provider, original_prompt)\n```\n\n## Parallel Invocation\n\nTo invoke multiple agents in parallel, use a single message with multiple Task tool calls:\n\n```\n# Launch Gemini, Codex, and Cursor in parallel\nTask(subagent_type=\"general-purpose\", run_in_background=true, prompt=\"gemini ...\")\nTask(subagent_type=\"general-purpose\", run_in_background=true, prompt=\"codex ...\")\nTask(subagent_type=\"general-purpose\", run_in_background=true, prompt=\"cursor ...\")\n```\n\nCollect results:\n```\nTaskOutput(task_id=\"...\", block=false)  # Check progress\nTaskOutput(task_id=\"...\", block=true)   # Wait for completion\n```\n\n## Result Collection\n\nNative agents return results via TaskOutput tool:\n\n| Parameter | Value | Behavior |\n|-----------|-------|----------|\n| `block=false` | Check status | Non-blocking progress check |\n| `block=true` | Wait for completion | Blocks until agent finishes |\n| `timeout` | milliseconds | Max wait time before timeout |\n\n### Example Collection Pattern\n\n```\n# Check progress (non-blocking)\nTaskOutput(task_id=\"abc123\", block=false)\n\n# Wait for completion (blocking)\nTaskOutput(task_id=\"abc123\", block=true, timeout=120000)\n```\n\n## Comparison: Native vs Fork-Terminal\n\n| Aspect | Native Task Agent | Fork-Terminal |\n|--------|-------------------|---------------|\n| **Parallel execution** | Excellent | Good |\n| **Result collection** | TaskOutput (clean) | File parsing |\n| **TTY\u002FInteractive** | NO | YES |\n| **Auth handling** | Reports failure | Interactive login |\n| **Resume capability** | YES (agent ID) | NO |\n\n**Use Native** when:\n- Automating multi-provider tasks\n- Parallel execution needed\n- Clean result collection required\n\n**Use Fork-Terminal** when:\n- Interactive mode needed\n- Browser-based auth required\n- Real-time streaming output needed\n","# Purpose\n\n> **Note**: This is a documentation\u002Fguide skill. It provides instructions for invoking\n> external AI CLIs using Claude Code's native Task agents. Read this skill to learn\n> the patterns, then use the Task tool manually with `subagent_type=\"general-purpose\"`.\n\nInvoke external AI coding CLIs using Claude Code's native Task agents. This is the primary mode for multi-provider orchestration, with fork-terminal as fallback for authentication.\n\n## Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| DEFAULT_AGENT | gemini | Agent to use when not explicitly specified |\n| ENABLED_CODEX | true | Enable OpenAI Codex via native agent |\n| ENABLED_GEMINI | true | Enable Google Gemini via native agent |\n| ENABLED_CURSOR | true | Enable Cursor Agent via native agent |\n| RUN_IN_BACKGROUND | true | Run agents asynchronously |\n| PARALLEL_EXECUTION | true | Launch multiple agents in parallel |\n| AUTO_RETRY_ON_AUTH | true | Auto-retry with fork-terminal on auth failure |\n| READ_ONLY_MODE | true | Prevent agents from modifying codebase |\n| CLEANUP_AGENT_FILES | true | Clean up any files agents write to repo |\n\n## Prerequisites\n\n### CLI Permissions for Subagents\n\nNative Task agents (subagents) require pre-approved permissions to execute CLI commands.\nWithout these, the Bash tool will be \"auto-denied (prompts unavailable)\".\n\n**Required in `.claude\u002Fsettings.json`**:\n```json\n{\n  \"permissions\": {\n    \"allow\": [\n      \"Bash(codex:*)\",\n      \"Bash(gemini:*)\",\n      \"Bash(cursor-agent:*)\"\n    ]\n  }\n}\n```\n\n**Setup**: Run `\u002Fai-dev-kit:setup` to configure permissions automatically.\n\n**Manual**: Add permissions via Claude Code settings or approve when prompted.\n\n**Fallback**: If permissions are denied, use fork-terminal for interactive execution.\n\n## Instructions\n\n**MANDATORY** - You MUST follow the Workflow steps below in order. Do not skip steps.\n\n### Agent Selection\n\n1. **Explicit request**: If user specifies an agent, use that agent\n2. **No agent specified**: Use DEFAULT_AGENT\n3. **Check enabled**: Verify the ENABLED_* flag is true before proceeding\n\n### Reading Cookbooks\n\n- Based on the selected agent, read the appropriate cookbook from `..\u002Fspawn\u002Fagent\u002Fcookbook\u002F`\n- You MUST run `--help` on the CLI before constructing the command\n- Follow cookbook instructions for non-interactive flags\n\n## Red Flags - STOP and follow Cookbook\n\nIf you're about to:\n- Launch a native agent without reading the cookbook first\n- Execute a CLI command without running --help\n- Skip steps because \"this is simple\"\n- Use interactive flags in non-interactive context\n\n**STOP** -> Read the appropriate cookbook file -> Check --help -> Then proceed\n\n> **Critical**: Native agents cannot handle TTY input. Always use non-interactive flags:\n> - Codex: `codex exec --full-auto`\n> - Cursor: `cursor-agent --force -p`\n> - Gemini: Use positional prompt (not `-i`)\n\n## Workflow\n\n**MANDATORY CHECKPOINTS** - Verify each before proceeding:\n\n1. [ ] Understand the user's request\n2. [ ] **SELECT AGENT(S)**: Determine which agent(s) to use\n3. [ ] READ: Cookbook for each selected agent from `..\u002Fspawn\u002Fagent\u002Fcookbook\u002F`\n4. [ ] **RUN HELP**: Execute `\u003Ccli> --help` to verify available flags\n5. [ ] **CONSTRUCT COMMAND**: Build non-interactive command per cookbook\n6. [ ] **CHECKPOINT**: Confirm cookbook instructions were followed\n7. [ ] Execute via Task tool with `run_in_background: true`\n8. [ ] Collect results via TaskOutput\n9. [ ] **ON AUTH FAILURE**: Trigger fork-terminal fallback (see Auth Recovery)\n\n## Read-Only vs Write Mode\n\n**Default: READ_ONLY_MODE = true**\n\nWhen READ_ONLY_MODE is enabled, agents should only analyze and report - not modify files.\n\n### Read-Only Flags by Provider\n\n| Provider | Read-Only Command | Write Mode Command |\n|----------|------------------|-------------------|\n| **Codex** | `codex exec --sandbox read-only --full-auto` | `codex exec --sandbox workspace-write --full-auto` |\n| **Gemini** | `gemini --sandbox --yolo` | `gemini --yolo` |\n| **Cursor** | `cursor-agent -p` (no --force) | `cursor-agent --force -p` |\n\n### Prompting for Read-Only\n\nAlways include in prompt when READ_ONLY_MODE is true:\n```\n\"Do NOT modify any files. Only analyze and report findings.\nIf you would normally write to a file, instead return the content in your response.\"\n```\n\n## Worktree Isolation (Recommended for Write Mode)\n\nWhen agents need write access, use git worktrees for true isolation:\n\n```bash\n# Create isolated worktree for agent work\ngit worktree add \u002Ftmp\u002Fagent-workspace-\u003Cid> -b agent\u002F\u003Cprovider>-\u003Ctask>\n\n# Run agent in worktree\ncd \u002Ftmp\u002Fagent-workspace-\u003Cid>\n\u003Cagent-command>\n\n# Review changes\ngit diff\n\n# If approved, merge back\ngit checkout main\ngit merge agent\u002F\u003Cprovider>-\u003Ctask>\n\n# Cleanup\ngit worktree remove \u002Ftmp\u002Fagent-workspace-\u003Cid>\ngit branch -d agent\u002F\u003Cprovider>-\u003Ctask>\n```\n\n### Benefits of Worktree Isolation\n- **Full write access**: Agents can make any changes freely\n- **Selective merge**: Only merge approved changes\n- **No cleanup needed**: Discard worktree to reject changes\n- **Parallel agents**: Multiple worktrees for parallel providers\n- **Branch history**: Changes are tracked in git\n\n### When to Use Worktrees\n| Scenario | Approach |\n|----------|----------|\n| Analysis\u002Freview only | READ_ONLY_MODE + CLI flags |\n| Single file edit | Write mode with cleanup |\n| Multi-file refactor | Worktree isolation |\n| Experimental changes | Worktree (easy to discard) |\n| Parallel agent work | Separate worktrees per agent |\n\n## Cleanup Protocol\n\nWhen CLEANUP_AGENT_FILES is true (default) and NOT using worktrees:\n\n1. **Check for new files** in the working directory\n2. **Preserve valuable content** by reading files before deletion\n3. **Delete agent-created files** (e.g., `*_REVIEW_OUTPUT.md`, `*_analysis.json`)\n4. **Log cleanup actions** for audit trail\n\n```python\n# Cleanup pattern\ncleanup_patterns = [\n    \"*_REVIEW_OUTPUT.md\",\n    \"*_analysis.json\",\n    \"*_findings.md\",\n    \"agent_output_*.txt\"\n]\n```\n\n## Cookbook\n\n### Codex (OpenAI)\n- IF: User requests Codex\u002FOpenAI and 'ENABLED_CODEX' is true\n- THEN: Read `..\u002Fspawn\u002Fagent\u002Fcookbook\u002Fcodex-cli.md`\n- Native command pattern (read-only):\n```bash\ncodex exec --sandbox read-only --full-auto --model gpt-5.2-codex \"\u003Cprompt>\"\n```\n- Native command pattern (write mode):\n```bash\ncodex exec --sandbox workspace-write --full-auto --model gpt-5.2-codex \"\u003Cprompt>\"\n```\n- Auth failure pattern: \"Please log in\", \"authentication required\"\n- Login command: `codex login`\n\n### Gemini (Google)\n- IF: User requests Gemini\u002FGoogle and 'ENABLED_GEMINI' is true\n- THEN: Read `..\u002Fspawn\u002Fagent\u002Fcookbook\u002Fgemini-cli.md`\n- Native command pattern (read-only):\n```bash\ngemini --model gemini-3-pro --sandbox --yolo \"\u003Cprompt>\"\n```\n- Native command pattern (write mode):\n```bash\ngemini --model gemini-3-pro --yolo \"\u003Cprompt>\"\n```\n- Auth failure pattern: \"Please authenticate\", \"run `gemini auth`\"\n- Login command: `gemini auth login`\n\n### Cursor\n- IF: User requests Cursor and 'ENABLED_CURSOR' is true\n- THEN: Read `..\u002Fspawn\u002Fagent\u002Fcookbook\u002Fcursor-cli.md`\n- Native command pattern (read-only - prompts for approval):\n```bash\ncursor-agent --model claude-sonnet-4.5 -p \"\u003Cprompt>\"\n```\n- Native command pattern (write mode - auto-approves):\n```bash\ncursor-agent --model claude-sonnet-4.5 --force -p \"\u003Cprompt>\"\n```\n- Auth failure pattern: \"Please log in\", browser popup needed\n- Login command: `cursor-agent login`\n\n## Auth Recovery\n\nWhen a native agent reports an authentication failure:\n\n1. **Detect**: Check output for auth failure patterns\n2. **Fork for login**: Use fork-terminal with login command\n3. **Wait**: Monitor for terminal close\n4. **Retry**: Re-launch native agent\n\n```python\n# Auth recovery flow\ndef handle_auth_failure(provider: str, original_prompt: str):\n    login_commands = {\n        \"codex\": \"codex login\",\n        \"gemini\": \"gemini auth login\",\n        \"cursor\": \"cursor-agent login\"\n    }\n\n    # Fork terminal for interactive login\n    fork_terminal(login_commands[provider], wait_for_close=True)\n\n    # After terminal closes, retry native invocation\n    return invoke_native(provider, original_prompt)\n```\n\n## Parallel Invocation\n\nTo invoke multiple agents in parallel, use a single message with multiple Task tool calls:\n\n```\n# Launch Gemini, Codex, and Cursor in parallel\nTask(subagent_type=\"general-purpose\", run_in_background=true, prompt=\"gemini ...\")\nTask(subagent_type=\"general-purpose\", run_in_background=true, prompt=\"codex ...\")\nTask(subagent_type=\"general-purpose\", run_in_background=true, prompt=\"cursor ...\")\n```\n\nCollect results:\n```\nTaskOutput(task_id=\"...\", block=false)  # Check progress\nTaskOutput(task_id=\"...\", block=true)   # Wait for completion\n```\n\n## Result Collection\n\nNative agents return results via TaskOutput tool:\n\n| Parameter | Value | Behavior |\n|-----------|-------|----------|\n| `block=false` | Check status | Non-blocking progress check |\n| `block=true` | Wait for completion | Blocks until agent finishes |\n| `timeout` | milliseconds | Max wait time before timeout |\n\n### Example Collection Pattern\n\n```\n# Check progress (non-blocking)\nTaskOutput(task_id=\"abc123\", block=false)\n\n# Wait for completion (blocking)\nTaskOutput(task_id=\"abc123\", block=true, timeout=120000)\n```\n\n## Comparison: Native vs Fork-Terminal\n\n| Aspect | Native Task Agent | Fork-Terminal |\n|--------|-------------------|---------------|\n| **Parallel execution** | Excellent | Good |\n| **Result collection** | TaskOutput (clean) | File parsing |\n| **TTY\u002FInteractive** | NO | YES |\n| **Auth handling** | Reports failure | Interactive login |\n| **Resume capability** | YES (agent ID) | NO |\n\n**Use Native** when:\n- Automating multi-provider tasks\n- Parallel execution needed\n- Clean result collection required\n\n**Use Fork-Terminal** when:\n- Interactive mode needed\n- Browser-based auth required\n- Real-time streaming output needed\n",{"name":5,"type":31,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fconsiliency\u002Forchestration-native-invoke",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill orchestration-native-invoke",{"tool":59,"command":60},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill orchestration-native-invoke",{"tool":62,"command":63},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill orchestration-native-invoke","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fconsiliency\u002Forchestration-native-invoke\u002FSKILL.md",true,[67,73,79,83,87,91,95,99,103,107,111,115,119,123,127],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},".DS_Store","OTHER","其他",6148,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002F.DS_Store",{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"cookbook\u002Fprovider-routing.md","REFERENCE","参考文档",5623,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fconsiliency\u002Forchestration-native-invoke\u002Fcookbook\u002Fprovider-routing.md",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fglsl-cellular-voronoi-worley-noise-patterns.md",3368,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002Freferences\u002Fglsl-cellular-voronoi-worley-noise-patterns.md",{"path":84,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fglsl-colors-rgb-hsb-gradients-mixing-color-spaces.md",3208,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002Freferences\u002Fglsl-colors-rgb-hsb-gradients-mixing-color-spaces.md",{"path":88,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Fglsl-fbm-fractional-brownian-motion-turbulence-octaves.md",3067,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002Freferences\u002Fglsl-fbm-fractional-brownian-motion-turbulence-octaves.md",{"path":92,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fglsl-fundamentals-data-types-vectors-precision-coordinates.md",2476,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002Freferences\u002Fglsl-fundamentals-data-types-vectors-precision-coordinates.md",{"path":96,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fglsl-noise-random-perlin-simplex-cellular-voronoi.md",2865,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002Freferences\u002Fglsl-noise-random-perlin-simplex-cellular-voronoi.md",{"path":100,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Fglsl-pattern-symmetry-truchet-domain-warping.md",2829,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002Freferences\u002Fglsl-pattern-symmetry-truchet-domain-warping.md",{"path":104,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":105,"sourceHtmlUrl":106},"references\u002Fglsl-patterns-tiling-fract-matrices-transformations.md",2445,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002Freferences\u002Fglsl-patterns-tiling-fract-matrices-transformations.md",{"path":108,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":109,"sourceHtmlUrl":110},"references\u002Fglsl-procedural-textures-clouds-marble-wood-terrain.md",3050,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002Freferences\u002Fglsl-procedural-textures-clouds-marble-wood-terrain.md",{"path":112,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":113,"sourceHtmlUrl":114},"references\u002Fglsl-shader-builtin-functions-complete-api-reference.md",3001,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002Freferences\u002Fglsl-shader-builtin-functions-complete-api-reference.md",{"path":116,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":117,"sourceHtmlUrl":118},"references\u002Fglsl-shapes-polygon-star-polar-sdf-combinations.md",2933,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002Freferences\u002Fglsl-shapes-polygon-star-polar-sdf-combinations.md",{"path":120,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":121,"sourceHtmlUrl":122},"references\u002Fglsl-shapes-sdf-circles-rectangles-polar-distance-fields.md",2443,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002Freferences\u002Fglsl-shapes-sdf-circles-rectangles-polar-distance-fields.md",{"path":124,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":125,"sourceHtmlUrl":126},"references\u002Fglsl-shaping-functions-step-smoothstep-curves-interpolation.md",2909,"https:\u002F\u002Fgithub.com\u002Fmantrandev\u002Fmydotbot\u002Fblob\u002Fmain\u002Fai\u002Fweb\u002Fshader\u002Freferences\u002Fglsl-shaping-functions-step-smoothstep-curves-interpolation.md",{"path":128,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":129,"sourceHtmlUrl":130},"skill-report.json",21502,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fconsiliency\u002Forchestration-native-invoke\u002Fskill-report.json",[132,142,152,161,167,174],{"skillNo":133,"name":134,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":138,"publishedAt":39},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[137],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[139,140,141],"model","model hierarchy","model hierarchy skill",{"skillNo":143,"name":144,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":148,"publishedAt":39},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[147],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[149,150,151],"MCP","zoom","zoom mcp",{"skillNo":153,"name":154,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":39},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[158,159,160,150],"sdk","zoom apps sdk","apps",{"skillNo":162,"name":163,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":166,"publishedAt":39},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[163],{"skillNo":168,"name":169,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":173,"publishedAt":39},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[172],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[169],{"skillNo":175,"name":176,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":179,"publishedAt":39},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[176]]