devhive1/devhive-cli

delegation

Delegate tasks to specialized subagents.

ソースを見る

使い方

  1. インストールコマンドをコピーし、自分の環境へ導入する前にソースを確認します。
  2. 必要なツール、認証情報、対応環境を原文で確認します。
  3. 入力と成果物を指定し、出力を資料と照合します。
npx skills add https://github.com/devhive1/devhive-cli --skill delegation

開始前の確認

  • 導入にはモデル契約、API枠、ファイルへのアクセス許可は含まれません。
  • スター数や導入数は活動の指標であり、独立した品質・安全性試験ではありません。
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

Delegation Skill

Delegate tasks to specialized subagents for autonomous execution.

When to Use

Use this skill when:

  • You need to delegate tasks to run autonomously (especially when you have a session plan)
  • You have multiple independent tasks that can run in parallel

When NOT to Use

  • Simple tasks that you can complete directly
  • Tasks that require immediate user interaction
  • Read-only operations (use grep/glob/read tools instead)
  • Quick file edits (use edit tool directly)
  • Analysis, planning, or debugging (e.g. performing code review)

Available Functions

subagent(task, fromPlan, relevantFiles, relevantSkills)

Launch a subagent to handle a task synchronously. Blocks until the subagent completes and returns the result.

Parameters:

  • task (str, required): Task ID from session plan (e.g., "T003") OR brief task description
  • fromPlan (bool, default False): If True, subagent reads full task context from .local/session_plan.md
  • relevantFiles (list[str], optional): File paths the subagent should access
  • relevantSkills (list[str], optional): Paths to all implementation skills you've read. Use the full path from the skills view. Pass every skill with integration details (auth, storage, payments) — not orchestration skills meant for you (design, delegation, react-vite).
  • specialization (str, default "GENERAL"): "GENERAL" or "SMALL_TASK" for quick tasks

Returns: Dict with task results

json
{
    "success": true,
    "message": "Task summary",
    "subagentAlias": "subagent_1",
    "result": "Full task output..."
}

Usage Patterns:

1. From Plan (Recommended when you have a session plan):

javascript
// Reference tasks by ID - subagent reads full context from .local/session_plan.md
const result = await subagent({ task: "T003", fromPlan: true });
console.log(result);  // Always print the result

2. Direct Task (for ad-hoc tasks without a plan):

javascript
const result = await subagent({
    task: "Fix the auth bug in src/auth.ts",
    relevantFiles: ["src/auth.ts"],
    relevantSkills: [".local/skills/clerk-auth/SKILL.md", ".local/skills/database/SKILL.md"]
});
console.log(result);  // Always print the result

startAsyncSubagent(task, fromPlan, relevantFiles, relevantSkills)

Launch a subagent to handle a task asynchronously in the background. Returns immediately without waiting for completion. Use waitForBackgroundTasks to collect results later.

Parameters:

  • task (str, required): Task ID from session plan (e.g., "T003") OR brief task description
  • fromPlan (bool, default False): If True, subagent reads full task context from .local/session_plan.md
  • relevantFiles (list[str], optional): File paths the subagent should access
  • relevantSkills (list[str], optional): Paths to all implementation skills you've read. Use the full path from the skills view. Pass every skill with integration details (auth, storage, payments) — not orchestration skills meant for you (design, delegation, react-vite).
  • specialization (str, default "GENERAL"): "GENERAL" or "SMALL_TASK" for quick tasks

Returns: Immediately with acknowledgment. Results come via waitForBackgroundTasks.

Usage Patterns:

1. From Plan (Recommended when you have a session plan):

javascript
// Reference tasks by ID - no print needed, result comes via wait_for_background_tasks
await startAsyncSubagent({ task: "T003", fromPlan: true });

2. Direct Task (for ad-hoc tasks without a plan):

javascript
await startAsyncSubagent({
    task: "Fix the auth bug in src/auth.ts",
    relevantFiles: ["src/auth.ts"],
    relevantSkills: [".local/skills/clerk-auth/SKILL.md", ".local/skills/database/SKILL.md"]
});

Parallel Execution:

javascript
// Launch independent tasks simultaneously
console.log(await startAsyncSubagent({ task: "T002", fromPlan: true }));
console.log(await startAsyncSubagent({ task: "T003", fromPlan: true }));
console.log(await startAsyncSubagent({ task: "T004", fromPlan: true }));

Giving Subagents Access to Skills:

javascript
// Pass skill paths from the skills view
await startAsyncSubagent({
    task: "T005",
    fromPlan: true,
    relevantSkills: [".local/skills/database/SKILL.md", ".local/skills/clerk-auth/SKILL.md"]
});

messageSubagent(subagentId, message)

Send a follow-up message to an existing subagent asynchronously. Returns immediately after the message is delivered. Use this when the subagent should continue in the background.

Parameters:

  • subagentId (str, required): Alias returned when the subagent was started
  • message (str, required): Follow-up instruction or clarification for the subagent

Returns: Acknowledgment that the message was sent. The subagent keeps running in the background.

Example:

javascript
// Async follow-up: continue background work
await messageSubagent({
    subagentId: "subagent-happy-tiger",
    message: "After the fix, add regression tests for the auth edge case."
});

// Collect results later
await waitForBackgroundTasks();

messageSubagentAndGetResponse(subagentId, message, timeoutSeconds)

Send a follow-up message to an existing subagent synchronously. Blocks until the subagent completes, times out, or is interrupted.

Parameters:

  • subagentId (str, required): Alias returned when the subagent was started
  • message (str, required): Follow-up instruction or clarification for the subagent
  • timeoutSeconds (float, default 300.0): Max time to wait before returning a timeout status

Returns: Dict with success, message, result, and exitReason.

Example:

javascript
// Sync follow-up: wait for the answer now
const result = await messageSubagentAndGetResponse({
    subagentId: "subagent-happy-tiger",
    message: "Summarize root cause and include exact changed files.",
    timeoutSeconds: 180.0
});
console.log(result.result);

When to choose which:

  • Use messageSubagent when you want fire-and-forget behavior
  • Use messageSubagentAndGetResponse when you need the response immediately

Best Practices

  1. Use session plans: For 2+ tasks, create a .local/session_plan.md and use fromPlan=True
  2. Launch in parallel: Independent tasks can run simultaneously with startAsyncSubagent
  3. Use `subagent()` when you need the result immediately: For tasks where you need to act on the output, use the synchronous subagent() and print the result.
  4. Use `startAsyncSubagent()` for independent tasks that can run in the background: The tasks will be performed in parallel.
  5. Use `messageSubagent()` for async follow-ups: Message running subagents without blocking and collect results with waitForBackgroundTasks
  6. Use `messageSubagentAndGetResponse()` for sync follow-ups: Use this when you need the subagent's output before continuing
  7. Trust the results: Subagent outputs should generally be trusted
  8. Pass all implementation skills via relevantSkills: Include every implementation skill you've read — use the full path from the skills view for each one

Subagent Capabilities

The subagent has access to:

  • File operations (read, write, edit, glob, grep)
  • Bash commands
  • LSP diagnostics
  • Depending on specialization, additional tools like media generation or canvas tools may be available
  • Skills (loaded via relevantSkills parameter)

The subagent does NOT:

  • Run or restart workflows
  • Preview/test the app (that's your job as main agent)

タスクに関連する項目

同じリポジトリから

関連する Skills

すべての Skills