Docs
A doc is a page an agent writes and keeps for the owner: a proposal, a brief, a checklist, a monthly report. Its text is one MDX file: Markdown plus a few components for callouts, figures, columns and charts. The owner reads it under Docs in Pro and can leave notes on it.
writesets a doc’s whole text: a new doc, the first draft of one the owner asked for, or a full rewrite such as a routine’s monthly report. Writing a new doc needs no yes; rewriting one that’s there is checked.editchanges parts: each edit finds words the doc has now, once, and replaces them. All edits apply or none do.readgives the text, the brief it was asked with, and the owner’s open notes. Answer a note by editing, or withanswerwhen you keep the text as it is.
Write a doc when the work is long, structured or worth keeping. Otherwise answer in a message.
How to use it
Section titled “How to use it”What find_tools sends with these tools, word for word:
Docs you write for the owner and keep: SOPs and briefs, write-ups of your work, reports that recur. Write a doc when the work is long, structured or worth keeping; answer in a message otherwise. A doc you were asked to write already exists: write into its docId. A doc’s text is MDX: Markdown (## headings, lists, tables, bold, links) plus
… ,, … , and a chart asholding one ```vega-lite JSON block with its data inline. Link people and things you read as roadstar links: Juniper Dental; kinds: contact, email, file, invoice, bill, agent, doc, page, table, project. A report or tracker reads like a dashboard: one line on as of when and from what; a MetricGrid of the three or four figures that matter; a short table of what needs the owner; then one table of every item, a row each, in short cells: dates like Nov 6, amounts right-aligned (|—:|), a status of a word or two, each row’s name linked to its source. A recurring one opens with what moved since the last. What you couldn’t check goes in one line at the end; your own working notes stay out of it.
| Tool | What it does | Owner’s yes |
|---|---|---|
| docs.list | Docs, newest first | No |
| docs.read | A doc’s current text, the brief it was asked with, what to read first, and the notes the owner sent you on it | No |
| docs.write | Write a doc’s whole text: a new doc, the first draft of one you were asked for, or a full rewrite such as a routine’s. | Depends |
| docs.edit | Change parts of a doc you’ve read: each find is words it has now, once. All edits apply together or none; the rest stays as it is. | Checked |
| docs.answer | Answer a note without changing the doc: kept, with why; or done, for a note that asked you to do something else, with what you did | Checked |
docs.list · Docs, newest first.
Owner’s yes: No. Nothing of the owner’s changes.
| Input | Type | Required | Limits |
|---|---|---|---|
projectId |
id | no | |
title |
text | no | up to 300 characters |
offset |
whole number | no | 0 or more |
Returns:
{ items: { id: string; title: string; type: "question" | "thesis" | "doc"; projectId: string; projectName: string; status: "draft" | "published" | "archived"; generationStatus: "queued" | "running" | "failed" | "completed" | null; updatedAt: string; }[]; nextOffset: number | null;}docs.read · A doc’s current text, the brief it was asked with, what to read first, and the notes the owner sent you on it.
Owner’s yes: No. Nothing of the owner’s changes.
| Input | Type | Required | Limits |
|---|---|---|---|
docId |
id | yes |
Returns:
{ id: string; title: string; projectId: string | null; brief: string | null; readFirst: { kind: "page" | "table" | "doc" | "contact"; id: string; label: string; }[]; updates: "once" | "weekly" | "monthly" | "quarterly"; text: string | null; notes: { noteId: string; on: string; note: string | null; }[];}docs.write · Write a doc’s whole text: a new doc, the first draft of one you were asked for, or a full rewrite such as a routine’s.
Owner’s yes: Depends on the input: checked when it changes what’s there, not when it makes something new.
Your work: listed on Home.
| Input | Type | Required | What it is | Limits |
|---|---|---|---|---|
docId |
id | no | ||
projectId |
id | no | ||
title |
text | yes | 1–300 characters | |
text |
text | yes | MDX, as the docs how-to says | 1–100,000 characters |
lines |
list of text | no | what changed, one plain sentence each, for the owner | up to 20 items, each 1–300 characters |
Returns:
{ pageId: string; versionId: string; version: number;}docs.edit · Change parts of a doc you’ve read: each find is words it has now, once. All edits apply together or none; the rest stays as it is.
Owner’s yes: Checked. It changes what’s there.
Your work: listed on Home.
| Input | Type | Required | What it is | Limits |
|---|---|---|---|---|
docId |
id | yes | ||
edits |
list of { find, replace } |
yes | 1–30 items | |
edits[].find |
text | yes | 1–20,000 characters | |
edits[].replace |
text | yes | up to 20,000 characters | |
lines |
list of text | no | what changed, one plain sentence each, for the owner | up to 20 items, each 1–300 characters |
answers |
list of { noteId, outcome, text } |
no | When the owner sent notes, answer every one: changed with what you did, or kept with why | up to 40 items |
answers[].noteId |
id | yes | ||
answers[].outcome |
one of changed, kept |
yes | ||
answers[].text |
text | yes | 1–1,000 characters |
Returns:
{ pageId: string; versionId: string; version: number;}answer
Section titled “answer”docs.answer · Answer a note without changing the doc: kept, with why; or done, for a note that asked you to do something else, with what you did.
Owner’s yes: Checked. It changes what’s there.
Your work: listed on Home.
| Input | Type | Required | Limits |
|---|---|---|---|
docId |
id | yes | |
noteId |
id | yes | |
outcome |
one of kept, done |
yes | |
text |
text | yes | 1–1,000 characters |
Returns:
{ commentId: string;}