2.6 KiB
2.6 KiB
DSH tool mapping (claude-harness port)
Skills speak in actions ("read a file", "dispatch a subagent", "create a todo"). On DeepSeek Harness these actions resolve to the tools below.
| Action | DSH tool |
|---|---|
| Read a file | read |
| Read several files | read once per file, or grep/glob first |
| Write a file | write |
| Edit a file | edit |
| Run a shell command | bash |
| Search file contents | grep |
| Find files by name | glob |
| Fetch a URL / web search | web_fetch / web_search |
| Dispatch a subagent | subagent (asynchronous) or workflow (synchronous fan-out) |
| Continue a child | send_message |
| List children | list_agents |
| Create / update todos | todo_write |
| Ask the user | ask_user_question |
| Load a skill | skill |
| Present a deliverable | present |
| Approve a plan | exit_plan_mode |
| Request an approval | request_approval {change_id, kind} — the model initiates it; the owner clicks Approve/Cancel |
| Change directory | working_directory |
| Create a worktree | create_worktree when the bundle is enabled, otherwise bash with git worktree |
Important differences
- No
superpowers:namespace. A skill is named in kebab-case and loaded asskill({ name: "brainstorming" }), notsuperpowers:brainstorming. subagentdoes not wait. It returnsstarted subagent <id>and the completion notice arrives later. Do not expect the child's answer in the same tool result. For a synchronous fan-out where the parent needs every result in one call, useworkflow; for one child with follow-up messages, usesubagent+send_message.- No implicit model tiers. There is no built-in
sonnet/haiku/opus. Use the provider/model routes that are available in this session. When a skill asks for a model tier, map it to an explicitprovider/modelpair from the live catalog. - Instructions files are
AGENTS.md/CLAUDE.md. DSH loads them from the harness home, the shared agents home, and the project root down to the working directory. TheCLAUDE.mdfiles of this harness need no rewrite. todo_writeis the task-tracking action. OlderTodoWritereferences mean this tool.- An approval is the owner's click, not the model's claim.
request_approval({change_id, kind})starts the flow: the harness writes the approval marker only after the owner answers Approve; Cancel writes nothing. Never treat "I asked" or "the tool was called" as approval./approvein the Claude Code text is the same idea through a slash command. - Plan mode is a real mode. Use
exit_plan_modeto submit a plan; prose agreement does not leave plan mode.