claude-harness/dsh/bundle/dsh-tools.md

53 lines
2.6 KiB
Markdown

# 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 as
`skill({ name: "brainstorming" })`, not `superpowers:brainstorming`.
- **`subagent` does not wait.** It returns `started 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, use `workflow`; for one child with follow-up messages, use
`subagent` + `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 explicit `provider`/`model` pair
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. The `CLAUDE.md` files of this harness need no rewrite.
- **`todo_write` is the task-tracking action.** Older `TodoWrite` references
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. `/approve` in the
Claude Code text is the same idea through a slash command.
- **Plan mode is a real mode.** Use `exit_plan_mode` to submit a plan; prose
agreement does not leave plan mode.