Create a hosted, block-addressed working document.
/v1/abilities/workspace.doc.createCreate a hosted, block-addressed working document. Substrate serves it at /doc/<id> behind a signed expiring link; humans read and edit it in a browser (phone included) while agents patch it by block, and every change emits a substrate event so git-sync / Telegram / UAT pipelines pick it up. Create the SKELETON FIRST — title plus one pending block per section — then fill each with workspace.doc.patch, so the reader watches it fill and a second agent can claim a different section.
Request body
Section titled “Request body”inputWorkspaceDocCreateInputrequiredShow 6 properties
titlestringrequireddocument title, shown in the header
productstringoptionalrecipe name, e.g. sebenza — scopes listing
kindstringoptionalAllowed values:plan,handoff,research,report,brief,uat,noteDefault:"note"ownerstringoptionalwho the document is FOR (the human), shown in the header
edit_eventstringoptionalDefault:"workspace.doc.edited"substrate event emitted on every change
blocksobject[]requiredShow array — 9 properties
typestringrequiredAllowed values:pending,markdown,ui,decision,checksidstringoptionalstable address, e.g. “goals” — auto-assigned (b1, b2…) if omitted. Patches target this.
intentstringoptionalpending: what this section will contain. A contract the filling agent is held to.
contentstringoptionalmarkdown: the body
nodeobjectoptionalui: a UIPrimitive (chart / datagrid / stat / table / grid / card / list / text)
questionstringoptionaldecision: what is being decided
optionsarrayoptionaldecision: 2-8 options, string or {label,value,description}
chosenstringoptionaldecision: the selected value
testsarrayoptionalchecks: [{title, steps[], expected_good, expected_bad, where}]
contextCallContextoptionalOptional call context. The tenant always comes from the credential:
tenantIdis honoured only by a credential allowed to address sub-tenants, and then nests under the credential’s own tenant.Show 3 properties
tenantIdstringoptionalSub-tenant to act for (sub-tenant credentials only).
runIdstringoptionalThe trust run (from trust.preflight) this call executes under.
verticalIdstringoptionalVertical to attribute created records to.
Returns
Section titled “Returns”Schema shown for 200 · application/json
resultThe ability’s return value. Its shape depends on the ability.