drclaw/agent_hub/templates/daily-paper-logger/skills/planner/SKILL.md
A guideline for how to plan, split, assign tasks, and report back. Governs how the main agent triages user instructions, plans multi-agent work, splits plans into execution blocks, assigns blocks to project agents via route_to_project, tracks progress with beads, and reports outcomes.
npx skillsauth add qzzqzzb/drclaw plannerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Core decision loop for the orchestrator agent. Every user instruction flows through this protocol.
Determine complexity before doing anything else.
list_projects to know what project agents are available.| Complexity | Criteria | Action | |---|---|---| | Simple | Can be answered directly (question, lookup, single-file edit) OR only touches one project agent | Handle directly or route to the single project agent immediately — skip planning. | | Complex | Requires coordination across >=2 project agents, OR involves sequenced steps with dependencies | Proceed to Phase 1. |
Decision rule: if in doubt, lean toward planning. Under-planning wastes more time than a lightweight plan for a task that turned out to be simple.
User instruction → identify single project agent → route_to_project → wait → report result
After routing, do NOT perform the delegated task yourself. Wait for the student's report, then relay or summarize the result.
Done. No beads, no plan file.
Goal: produce a written plan that is complete enough for any agent to execute its block without asking follow-up questions.
list_projects (if not already cached) to map capabilities.bd list --status=open, bd search <query>.Create a plan with the following sections:
# Plan: <short title>
## Goal
One-sentence summary of what the user wants.
## Requirements
- Numbered list of concrete deliverables.
- Each requirement maps to at least one execution block.
## Architecture Decisions
- Key choices (tech, patterns, data flow).
- Why each choice was made (one line).
## Execution Blocks
### Block 1: <title>
- **Agent:** <project-agent-name>
- **Depends on:** none | Block N
- **Task:** What the agent must do, with enough detail to execute autonomously.
- **Acceptance criteria:** How to verify the block is done.
- **Files/references:** Relevant paths, line numbers, API endpoints.
### Block 2: <title>
...
## Unassignable Blocks
Blocks that cannot be assigned to any available project agent.
List them here with the reason and what is needed from the user.
## Open Questions
- Any remaining ambiguities (keep extremely concise).
Rules for execution blocks:
If a block cannot be mapped to any project agent from list_projects:
For each execution block, create a beads issue:
bd create \
--title="Block N: <block title>" \
--description="<full block detail from plan, including acceptance criteria, file refs, and which blocks this depends on>" \
--type=task \
--priority=<0-4 based on criticality>
Then wire up dependencies:
bd dep add <child-issue> <parent-issue> # child cannot start until parent is done
Mapping: Block dependencies → beads dependencies. If Block 2 depends on Block 1, then the beads issue for Block 2 depends on the beads issue for Block 1.
After all issues are created, verify the graph:
bd graph # visual check for cycles or missing edges
bd ready # confirm the right blocks are unblocked
Repeat until no open issues remain:
bd ready # returns unblocked, open issues
For each ready issue, in parallel where possible:
bd update <id> --status=in_progressbd show <id>route_to_project with a synthesized
prompt (see Prompt Synthesis below).Parallelism: dispatch all independent ready issues simultaneously. Do not serialize work that has no dependency relationship.
CRITICAL: Do NOT duplicate delegated work. After routing a task via
route_to_project, you must not perform that task yourself (no searches,
file writes, or commands related to the routed work). Your role is
orchestrator — wait for the agent's report, then decide next steps.
Wait for each dispatched agent to return. For each result:
bd close <id>in_progress, and re-dispatch or escalate.After closing issues, new issues may become unblocked. Loop back to 3.1.
When all issues are closed (or the user has decided to stop):
When dispatching a block to a project agent, synthesize a focused prompt:
Implement beads issue <ISSUE_ID>: <ISSUE_TITLE>.
<DISTILLED TASKS: concrete deliverables, files to create/modify, key function names,
test expectations. Reference file paths and line numbers where relevant.>
<ACCEPTANCE CRITERIA from the block.>
<CRITICAL: surface any ordering constraints, security invariants, or gotchas
with CRITICAL: prefix.>
Do not paste raw issue text. Distill it into actionable instructions. Omit background the agent already knows from its own project context.
Large output rule: If the task is expected to produce large output (fetched content, reports, data listings, search results), include this instruction in the prompt:
Save your full output to a file in your workspace (e.g.
output/<descriptive-name>.md) and reply with only the file path and a one-line summary. Do NOT include the full content in your response.
This prevents token-heavy responses from flooding the orchestrator's context window.
Pause dispatching. Re-triage the new instruction from Phase 0. Merge with or replace the existing plan as appropriate. Update beads issues to reflect changes.
Model this as a dependency. The downstream block's issue description should specify: "Expects output from Block N: <what to look for, where it will be>."
Queue ready issues. Dispatch as capacity frees up. Do not drop work.
This should be caught in Phase 1.3. If it surfaces later (e.g., agent was removed), treat it as unassignable and escalate to the user.
content-media
当用户明确要求“写/生成 NSFC 预算说明书”“写预算说明”“生成 budget.tex / budget.pdf”“写国自然预算 justification”时使用。基于用户标书正文或补充材料,输出一份可提交的预算说明书 LaTeX 项目并渲染 `budget.pdf`。若用户未指定工作目录,必须暂停并先要求其指定。⚠️ 不适用:用户只是想了解预算原则;用户仅要预算表数字而不写说明书;或用户是 2026 青年 A/B/C 默认包干制且无需预算说明书的场景。
tools
当用户明确要求"写/润色 NSFC 标书摘要""生成中文摘要和英文摘要""把中文摘要翻译成英文摘要"时使用。输出中文、英文两个版本(英文必须是中文的忠实翻译版),同时输出标题建议(1个推荐标题+5个候选标题及理由)。中文摘要默认≤400字符,英文摘要默认≤4000字符。输出方式:将结果写入工作目录下的 `NSFC-ABSTRACTS.md`。⚠️ 不适用:用户只想翻译一段与标书无关的通用文本(应直接翻译);用户只想写立项依据/研究内容/研究基础正文(应使用对应 nsfc 系列 skill)。
documentation
当用户明确要求"更新项目指南""同步指南""沉淀洞见到指南"时使用。将对话中新产生的可复用写作洞见实时沉淀到项目指南文件,保持术语口径一致、结构稳定、可检验与可复现。调用时必须指定指南文件路径。
content-media
当用户明确要求"从文件/图片/网页/描述中提取综述主题"或"生成主题+关键词+核心问题结构化输出"时使用。支持文件(PDF/Word/Markdown/Tex)、文件夹、图片、自然语言描述、网页 URL 等多种输入源,自动识别输入类型并提取内容,生成可直接用于 systematic-literature-review 及其他文献综述技能的结构化输出。