Skip to content

Cowork Doc Propose Edit

Propose one or more quote-anchored tracked edits on a cowork doc as an open proposal. Normal consent weight, no decision authority.

MCP name: cowork_doc_propose_edit

Category: cowork

Mutates state (retry policy: manual)

Parameters

Name Type Required Description
base_doc_sha256 str No Doc snapshot hash the proposal was drafted against. A proposal against a stale base cannot mint or refresh anything. Defaults to the current document content when omitted.
claim_refs list No Optional for non-deletion edits. A list of {claim, role} where claim is a local claim id or a wb-truth URI and role is one of quote, paraphrase, summary, or instantiation, defaulting to instantiation. Accepting mints one expression per ref carrying that ref's role. A batch containing a deletion cannot carry claim refs because deleted text leaves no passage to express them.
consumer str No Optional document-agent consumer identity. Supply with conversation_id and generation; it must match this store and document.
conversation_id str No Optional real document-conversation id. Supply with consumer and generation to fence a document agent's write.
document_id str Yes Target cowork doc id.
generation str No Optional live document-agent lease generation. A stale, stopped, or revoked generation returns lease_lost without creating a proposal.
hunks list Yes One or more edits, each a mapping of {quote_anchor:{exact,prefix,suffix}, replacement, node_id_hint?}. Set replacement to the empty string to delete the anchored text. Missing, non-string, and whitespace-only replacements are invalid; meaningful leading and trailing whitespace on a nonempty replacement is preserved. The quote anchor is resolved by the kernel anchor resolver, never by node id.
meta dict No Optional metadata accepted for forward compatibility. Producer identity cannot be overridden.
producer_call_id str No Optional durable model call identifier.
producer_model str Yes Required model claim for the authoring agent. It must match a non-placeholder session-manifest model, otherwise it is durably labeled caller_asserted.
rationale str Yes Full reviewer-facing reason for the edit.
store_id str Yes Registered Truth store identity.
tldr str Yes One-line summary shown on the margin card.

Details

Document agents supply conversation_id, consumer, and generation together. The capability verifies that the conversation is the real binding for this store and document, then holds that exact live lease while the proposal is created. Other callers may omit the complete tuple. Partial or mismatched tuples are rejected.

replacement: "" is the explicit tracked-deletion contract. It remains an edit through proposal retrieval, review, and acceptance; replacement: null is reserved for flags created through cowork_doc_comment.