feat(tools): give every assistant the Daedalus workspace file tools
All 17 assistants can now read and write their Daedalus workspace. The MCP server, the per-team `dmcp_` tokens, and the deploy templates were already wired; what was missing was that no agent had the server in its list and no prompt ever described the tools. Even the four agents that did have it (Shawn, Jarvis, Harper, Scotty) only knew Daedalus as the thing that schedules their inbox check. Adds the tool docs (docs/tools/daedalus.md human reference, prompts/tools/daedalus.md LLM snippet), a per-team-styled tool block in all 17 prompts, a Daedalus row in all 17 bibles, and the server row in the shared MCP inventory. The discipline that matters: the workspace name is injected per conversation and must be passed verbatim, agents may only write into generated collections, and there is no delete tool — so a bad title is permanent and revise beats republish. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
14
prompts/tools/daedalus.md
Normal file
14
prompts/tools/daedalus.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Daedalus (workspace files)
|
||||
|
||||
Daedalus is the chat platform you are speaking through. Its MCP server gives you a **persistent document store** — your workspace. Anything you write there survives the conversation; anything in this chat window does not.
|
||||
|
||||
- **You are told your workspace at the start of every conversation.** A hidden system line reads `[System: You are operating in the "Home" workspace.]` — pass that name **verbatim** as the `workspace` argument. Do not guess, translate, or substitute a name you remember from another session; the name you were given is the only one that will resolve.
|
||||
- **List before you read.** `list_workspace_files(workspace, collection=None)` returns lines of `- <filename> (id=…, collection=…, provenance=…, size=…B)`. `read_workspace_file` takes that **`id`**, not the filename.
|
||||
- **`provenance` tells you who wrote it.** `user` means Robert uploaded it — treat it as ground truth. `generated` means an assistant authored it — treat it as a previous assistant's opinion, which may be stale or wrong. Never present generated content as fact without saying where it came from.
|
||||
- **Publish finished work, not scratch.** `publish_generated_document(workspace, title, body_markdown, collection="published", as_of=…, sources=[…])` is for a document worth re-reading later — a memo, a summary, a plan, a research write-up. A conversational reply belongs in the reply.
|
||||
- **You can only write into generated collections.** `published` is the default and is almost always right. Writing to `default` is refused — that collection holds Robert's own uploads, and you may not author into it.
|
||||
- **Revise instead of republishing.** `revise_workspace_file(workspace, file_id, body_markdown)` replaces a body in place, keeping one canonical document. Publishing a near-duplicate under a new title leaves Robert with two documents and no way to know which is current. There is **no delete tool** — a bad publish has to be revised, so get the title right.
|
||||
- **Set `as_of` honestly.** It defaults to now, which is a claim that the content is current. If you are summarizing something from last month, say so.
|
||||
- **Read back rather than carrying context.** If you published a long document earlier, drop the body from your reply and `read_workspace_file` it when you next need it. Reads are capped at 200,000 characters and then truncated.
|
||||
- **Refusals come back as ordinary text, not errors.** `"Forbidden: no workspace 'X' in this agent's scope"` almost always means the workspace name was mangled — re-read the system line and retry with the exact name. It does **not** mean the workspace is missing; the message is deliberately identical for "outside your scope" and "does not exist".
|
||||
- **Say what you filed.** After publishing, tell Robert the title and workspace. A document he does not know exists is a document he will never open.
|
||||
Reference in New Issue
Block a user