사용 방법
- 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
- 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
- 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
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 descriptionfromPlan(bool, default False): If True, subagent reads full task context from .local/session_plan.mdrelevantFiles(list[str], optional): File paths the subagent should accessrelevantSkills(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
{
"success": true,
"message": "Task summary",
"subagentAlias": "subagent_1",
"result": "Full task output..."
}Usage Patterns:
1. From Plan (Recommended when you have a session plan):
// 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 result2. Direct Task (for ad-hoc tasks without a plan):
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 resultstartAsyncSubagent(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 descriptionfromPlan(bool, default False): If True, subagent reads full task context from .local/session_plan.mdrelevantFiles(list[str], optional): File paths the subagent should accessrelevantSkills(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):
// 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):
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:
// 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:
// 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 startedmessage(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:
// 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 startedmessage(str, required): Follow-up instruction or clarification for the subagenttimeoutSeconds(float, default 300.0): Max time to wait before returning a timeout status
Returns: Dict with success, message, result, and exitReason.
Example:
// 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
messageSubagentwhen you want fire-and-forget behavior - Use
messageSubagentAndGetResponsewhen you need the response immediately
Best Practices
- Use session plans: For 2+ tasks, create a .local/session_plan.md and use
fromPlan=True - Launch in parallel: Independent tasks can run simultaneously with
startAsyncSubagent - 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. - Use `startAsyncSubagent()` for independent tasks that can run in the background: The tasks will be performed in parallel.
- Use `messageSubagent()` for async follow-ups: Message running subagents without blocking and collect results with
waitForBackgroundTasks - Use `messageSubagentAndGetResponse()` for sync follow-ups: Use this when you need the subagent's output before continuing
- Trust the results: Subagent outputs should generally be trusted
- 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
relevantSkillsparameter)
The subagent does NOT:
- Run or restart workflows
- Preview/test the app (that's your job as main agent)



