Engineering11Engineering11 rooms
Reference

All tools

The complete set of actions the connector exposes (140 in all). You rarely call these by name — you just talk to Claude, and the authoring skill turns your words into them. This list is for transparency, power users, and admins.

What you can actually do depends on your role — viewers read, editors create/edit/share, admins manage people, access, themes and controlled documents, and a few company-level tools are platform-admin only. The server enforces this; tools you can't use simply return a permission error.

Documents

  • createDoc — Create a document (HTML) in a collection. "doc" is a URL-safe slug — DERIVE it yourself from the title ("2026 Pricing" → "pricing-2026"); NEVER ask the user for a slug/URL/id, it is an internal detail they do not think in. The company brand theme is applied automatically; pass "theme" only to use a specific named theme. In a "slides" room the document is a DECK (self-contained full-viewport slideshow) — pass "deckTheme" to use a named deck theme (e.g. internal/external/sales/technical). Pass "folder" to group it within the room — folders can be NESTED with "/" (up to 3 levels, e.g. "guides/api"); the server reuses an existing folder that differs only in case/spacing. In a mixed-content room (client / prospect / sales_marketing) pass kind:"prototype" to author a vibe-coded, NON-WORKING HTML mockup to show a prospect (multi-screen is fine — switch screens inside the one file via show/hide or hash routing, like an artifact). A prototype is stored verbatim — NO brand theme/normalization is applied (total creative freedom) — and carries an "illustrative only" banner unless you pass markerOff:true. If the document is SELF-CONTAINED (its own complete <html>/styling/scripts — e.g. a code-review viewer, an exported report, a dashboard), do NOT silently brand it: ask the user whether to store it RAW (verbatim — no brand theme/normalization, no banner — pass raw:true) or apply the room’s brand. A raw doc is stored exactly as authored and stays raw on later edits. Raw is allowed in standard and customer-journey (client/prospect/sales_marketing) rooms, NOT controlled-docs rooms. DUPLICATE CHECK: if a similar document already exists, createDoc returns `{needsConfirmation:true, duplicatesFound:[…]}` and creates NOTHING — show the person the existing documents and ask whether to continue one of them; if they truly want a new one, call createDoc again with confirmNew:true.
  • getDoc — Get a document’s current HTML. In a governed collection, returns the published version for readers, or the working draft / a specific `version` for editors & assigned reviewers/approvers. In a "staged" room, pass draft:true (editor+) to preview the unpublished draft.
  • updateDoc — Update a document’s HTML, title, and/or theme. In a "slides" room pass "deckTheme" to change the deck theme. For a prototype, pass markerOff:true/false to hide/show the "illustrative only" banner (works on its own, without resending the HTML). A raw (verbatim) doc stays raw on edit — new HTML is stored exactly as given; pass raw:false to convert it into a normal branded article. Pass `baseRev` (the doc’s last `getDoc`/edit `rev`) for optimistic concurrency — rejected with a `conflict` error if the document changed since; re-`getDoc` and reapply.
  • patchDoc — Surgically find/replace exact literal text in a stored document — for small edits to documents/decks too large to re-send in full via updateDoc (e.g. a deck that inlines an app via <iframe srcdoc>). Replaces `find` with `replace` (omit `replace` to delete the text), guarded by `expectCount` (default 1) so an ambiguous match is refused rather than over-replacing. Byte-surgical (does not re-normalize or re-link). Not for controlled documents. Pass `baseRev` (the doc’s last `getDoc`/edit `rev`) for optimistic concurrency — rejected with a `conflict` error if the document changed since; re-`getDoc` and reapply. Editor+.
  • deleteDoc — Delete a document.
  • listDocs — List documents in a collection.
  • setDocFolder — Move a document into a folder (group) within its room so it’s organized when viewing/sharing; omit/empty "folder" to ungroup. Folders are created by naming them and can be NESTED with "/" — up to 3 levels, e.g. "testing/feature-group" or "policies/security/access". The server normalizes the path and REUSES an existing folder that differs only in case/spacing (so you never create "Testing" next to "testing"). If your folder is a NEAR-duplicate of an existing one (e.g. "onboardng" vs "onboarding"), it returns `{needsConfirmation:true, suggestion, confidence}` and writes NOTHING — use the suggested folder, or call again with force:true to keep yours. Tip: call suggestFolder first to get a best-fit existing path. Editor+.
  • copyDoc — Copy a document into another room. The original stays put. "company"/"collection"/"doc" identify the source; "toCollection" is the destination room (optionally "toCompany"); "toDoc" names the copy (defaults to the source name). The destination room’s rules apply automatically — a governed/staged room receives the copy as a draft, and themes/brand-standard are re-applied to the destination. Great for promoting something out of your workspace (see mySandbox) into a client room. Decks copy too (same company only — their brand-standard frame + deck theme are re-linked to the destination; cross-company decks must be recreated with createDeck). Deal-room agreements can’t be copied this way. Editor+ on both rooms.
  • moveDoc — Move a document into another room (like copyDoc, but the source is removed and its public share links are revoked). Use to file a draft out of your workspace into a real room. Editor+ on both rooms.
  • mySandbox — Get (creating if needed) your personal workspace in a company — a private sandbox room only you can see, for drafting/experimenting before you copyDoc/moveDoc a document into a real room. Returns the workspace’s collection slug + URL. Any company member.
  • getHistory — Full governance history of a document: state, versions, reviews, approvals, assignees, effective/review-due dates, and the audit timeline (editors + assigned reviewers/approvers).

Versions & publishing

  • publishDoc — Publish the pending draft of a document in a "staged" room — promotes the draft to live and snapshots a retained version. (In "direct" rooms edits are already live; governed rooms use review→approve→publish.) Editor+.
  • discardDraft — Discard the pending draft of a document in a "staged" room. If the doc was never published it’s removed entirely; otherwise the live published version keeps serving. Editor+.
  • setCollectionLifecycle — Set a room’s edit lifecycle: "direct" (edits go live immediately, each save keeps a retained version — the default) or "staged" (edits are saved as a draft until publishDoc). Governed rooms are unaffected. Admin only.

Comments (draft feedback — never published)

  • listComments — List a document’s comments (draft-period feedback). These comments are visible only in the authoring tools and NEVER appear in the published document. Pass "status" ("open"|"resolved") to filter. Viewer+ and a member of the room.
  • addComment — Add a comment to a document — a note/question/change-request left while the doc is being worked on. The comment is stored separately and NEVER appears in the published document (on any lifecycle). Optionally anchor it to a place in the doc with "anchorQuote" (a captured snippet of the doc’s text), "anchorNth" (which 0-based occurrence of that snippet) and/or a freeform "anchorLabel". Editor+ and a member of the room.
  • editComment — Edit the body of a comment you authored (only the author may edit). Comments never appear in the published document. Editor+.
  • resolveComment — Resolve (or reopen) a document comment. Pass "resolved": true to resolve (default), false to reopen. Any room editor may resolve/reopen. Comments never appear in the published document.
  • deleteComment — Delete a document comment. Allowed for the comment’s author or a company admin. Comments never appear in the published document.

Slide decks

  • createDeck — Create a slide deck in a slides room (or a client room — E19). Provide "slides": an array of { title?, html? } (each = a slide heading + self-contained body HTML). The server assembles the full deck — full-screen layout, ←/→/Space/F navigation, progress, light/dark — themed by the deck theme (pass "deckTheme": internal/external/sales/technical). Returns the present URL + the assembled html (preview it). Editor+.
  • updateDeck — Re-author a slide deck: re-assembles it from a new "slides" array (and optional title/deckTheme). Returns the present URL + assembled html. Pass `baseRev` (the deck’s last `getDoc`/edit `rev`) for optimistic concurrency — rejected with a `conflict` error if the deck changed since; re-`getDoc` and reapply. Editor+.
  • listDecks — List the decks in a slides room (title, present URL, folder, deck theme).

Sharing

  • shareDoc — Create a public, revocable link to a single document. Pass "label" to name the share and "note" (e.g. the recipient) so you can find it later and read its analytics.
  • listShares — List active public share links in scope.
  • renameShare — Rename/annotate a share by token — set its "label" and/or "note" (recipient). Editor+.
  • revokeShare — Revoke a public share link by token.

Controlled documents

  • setDocGovernance — Assign a governed document’s reviewers and/or approvers (emails), and optionally set its "ackStatement" — the attestation readers confirm when acknowledging (e.g. "I have read and understood this policy"). Admin only.
  • submitForReview — Submit the working draft of a governed document for review (editor+).
  • addReview — Record a review on a governed document (assigned reviewers only): status "reviewed" or "changes_requested", optional comment.
  • submitForApproval — Move a governed document from review to approval (editor+). Approvers must be assigned first.
  • approve — Approve or reject the working version of a governed document (assigned approvers only). All approvers must approve before it can be published.
  • publish — Publish the approved version of a governed document — it becomes the live version readers see, with an effective date and a review-due date (editor+). Pass minor:true for a non-material change to carry existing acknowledgements forward (no forced re-acknowledgement); otherwise acknowledgement re-opens.
  • retire — Retire a governed document — removes it from the reader plane (editor+).
  • acknowledge — Acknowledge (attest you have read) the currently published version of a controlled document. Records your email + timestamp; admins can see who has/hasn’t. Any member of the room.
  • ackReport — Acknowledgement compliance report for a controlled document’s published version: per-person acknowledged/outstanding rows + a summary (total, acknowledged, due date, overdue). Editors + assigned reviewers/approvers.
  • remindAcks — Email everyone still outstanding on a published controlled document a reminder to acknowledge it (uses the doc’s acknowledge-by date + statement if set). Editor+.
  • listOverdue — List governed documents whose scheduled re-review is overdue (editor+).

Distribution & compliance

  • createGroup — Create a named member group for a company. Pass the human "name" (e.g. "All employees") and DERIVE "group" from it ("all-employees"); NEVER ask the user for the group id to use as a distribution audience for controlled documents. Group members may include external emails — groups are admin-curated. Admin only.
  • deleteGroup — Delete a company group (does not affect past distribution snapshots). Admin only.
  • setGroupMembers — Replace a group’s full membership with the given emails. Admin only.
  • listGroups — List a company’s groups with member counts (editor+ — pick an audience when distributing).
  • listGroupMembers — List the emails in one group. Admin only.
  • distributeDoc — Distribute a PUBLISHED controlled document to an explicit audience (named groups and/or member emails) — snapshots who it was assigned to at this moment (the compliance record), grants read access to audience members who lack it, and notifies them (Slack DM/channel when configured, email otherwise; notify: "both"|"email"|"slack"|"none"). Acks are then tracked against this snapshot. Raw emails must already be company members; externals enter via admin-managed groups. Re-run after a major republish (audience does NOT carry forward). Editor+.
  • addToAudience — Add people to an already-distributed controlled document’s audience (recorded as "added-later" in the snapshot), grant access, and notify them. Emails must already be company members. Editor+.
  • myAssignments — The caller’s pending governance work in a company: documents awaiting THEIR review, THEIR approval, and acknowledgements they owe. Self-scoped — works even for rooms that don’t appear in listCollections (assignment is the authorization).
  • complianceOverview — Company-wide compliance dashboard: every controlled document’s lifecycle state, reviewers/approvers, ack coverage (against the distribution snapshot), overdue flags, last distribution — plus totals, groups, and recent compliance activity. Admin only.

Deal rooms & e-signature

  • createAgreement — Create an agreement (NDA/MSA/SOW/order/custom contract) in a deal room. "doc" is a URL-safe slug — DERIVE it from the title; NEVER ask the user for a slug (a collection of type "agreements"). Provide the agreement "html" OR a "template" slug to start from a reusable template (listAgreementTemplates) — the template supplies the HTML, type, and a default title, which you can override. Pass "agreementType" (nda|msa|sow|order|custom), optional "counterparty" (their org), and "parties": an array of { email, name, title, role } where role is company|counterparty|signer|witness. Every signer needs a full "name" AND "title" (e.g. "CEO") — optional while drafting but REQUIRED before you can send for signature (the engine injects an "Electronic Signatures" section from them, and the typed name each party enters at signing must match their captured name). Stored as an immutable DRAFT (not yet visible to anyone) — sending it for signature comes next. IMPORTANT: the contract must be COMPLETE — the engine REJECTS any unfilled placeholder or open item (e.g. [TOTAL FEE], [EFFECTIVE DATE], TODO, TBD). Before generating, ASK the user for every value the contract needs (fee, payment schedule, dates, governing jurisdiction, notice periods, etc.) and fill them in; never emit bracketed placeholders. Editor+.
  • listAgreements — List the agreements in a deal room with their status (draft|sent|viewed|partially_signed|executed|declined|voided) and party/signature counts. Viewer+.
  • getAgreement — Get one agreement’s detail: type, counterparty, status, parties (with who has signed), signatures, and executed artifacts. Viewer+.
  • previewAgreement — Get the current HTML of an agreement so you can read the contract itself — works on an unsent DRAFT (whose content isn’t exposed on the reader plane yet), returning the clean text without the Sign widget. Editor+.
  • sendForSignature — Send a draft agreement for signature: freezes it to the reader URL with a Sign widget and grants each party access to the deal room so they can open and e-sign it. Moves status draft→sent. Editor+.
  • signAgreement — Sign an agreement as a party from here (e.g. the internal/company signer). Requires your full legal "name" (which must match the name captured for you as a party), "agree": true (intent to sign), and "consent": true (consent to transact electronically — ESIGN/UETA). Records your signature; when every party has signed, the agreement is executed. (Counterparties usually sign on the agreement page itself.) Must be an assigned party.
  • declineAgreement — Decline to sign an agreement you are a party to (sets it to declined). Pass an optional "reason". Must be an assigned party.
  • voidAgreement — Void an agreement (editor+): removes it from the reader plane and marks it voided. An executed agreement cannot be voided.
  • finalizeAgreement — Generate (or return) the executed agreement PDF + the certificate of completion for a fully-executed agreement, and store them for download. Usually automatic; call this if an agreement was executed via the reader page and the PDFs aren’t ready yet. Editor+.
  • remindSignatures — Email the parties who haven’t signed yet a reminder to sign the agreement. Editor+.
  • exportAgreementRecord — Export the complete compliance record for an agreement (ESIGN/UETA): every party, each signature with intent + electronic-records consent + IP/user-agent + the document hash, and the full audit trail. Returns structured JSON. Editor+.
  • setAgreementTemplate — Create or update a reusable agreement template (e.g. "Standard MSA"). Provide "name", the agreement "html", and "agreementType" (nda|msa|sow|order|custom); "slug" is derived from the name if omitted. Reuse it later via createAgreement’s "template" parameter. Editor+.
  • listAgreementTemplates — List the company’s reusable agreement templates (Standard MSA, MNDA, License…) — slug, name, type, last updated. Viewer+.
  • getAgreementTemplate — Get one agreement template including its HTML. Viewer+.
  • deleteAgreementTemplate — Delete a reusable agreement template by slug. Editor+.

Rooms

  • createCollection — Create a collection (room). "collection" is a URL-safe slug — DERIVE it from displayName ("Q4 Board Pack" → "q4-board-pack"); NEVER ask the user for a slug. displayName is the name; purpose is a one-line description shown on its landing page. Pass "type" to make it typed in one step: "standard" (default), "governed" (controlled documents), "slides" (a deck library), "agreements" (a deal room), or one of the customer-journey mixed-content rooms — "sales_marketing" (top-of-funnel collateral), "prospect" (a pre-deal prospect), or "client" (a closed customer). Each mixed-content room holds documents, slide decks, and HTML prototypes side by side and is named after the account (e.g. "Acme Corp").
  • listCollections — List collections (rooms) in a company.
  • setCollectionType — Set a room's type: "standard", "governed" (controlled documents), "slides" (a deck library — documents are self-contained full-viewport slideshows served as-is), "agreements" (a deal room — holds contracts/SOWs/NDAs that are generated, sent, and e-signed), or a customer-journey mixed-content room ("sales_marketing", "prospect", or "client") that holds documents, decks, and HTML prototypes together (non-deal). Optional reviewPeriodDays sets the governed re-review cadence. Admin only.
  • setCollectionAccess — Set a collection-specific access rule (makes it custom).
  • setCollectionVisibility — Change a collection’s visibility.
  • setCollectionDefaultTheme — Pin a default theme for a room’s documents (omit theme to clear). Use for doc-type themes like internal vs external.
  • setRoomLandingPage — Replace a room’s landing page (the container index) with custom HTML; omit html to revert to the default. This is the ROOM PAGE, not the brand — for brand colors/fonts use setCompanyTheme.

Brand & deck themes

  • getTheme — Get a brand theme’s tokens + CSS (omit name for the company default). Use it to author docs on-brand and inline a copy so previews look right.
  • listThemes — List the company’s brand themes (names + tokens). The default applies to all docs unless overridden.
  • setCompanyTheme — Create/update a brand theme from tokens {brand,accent,ink,bg,muted,line,font,logo,maxWidth} (or raw css). Omit name for "default" (applies company-wide). Admin only.
  • deleteTheme — Delete a named brand theme (not the default). Admin only.
  • proposeThemeFromUrl — Best-effort: fetch a website and propose brand tokens (colors, font, logo) for review. Does not save — confirm, then setCompanyTheme. Admin only.
  • rerenderThemes — Regenerate every brand theme’s CSS from its saved tokens (maintenance; e.g. to pick up styling improvements). Admin only.
  • getDeckTheme — Get a deck theme’s palette + CSS (omit name for the company default deck theme).
  • setDeckTheme — Create/update a DECK theme from tokens {bg,surface,border,accent1,accent2,accent3,warn,danger,text,muted,faint,codeBg,white,font, light:{…}}. Omit name for the default. Admin only.
  • listDeckThemes — List the company’s DECK themes (for slide decks). Names + palettes; the default applies to decks unless a deck overrides it.
  • deleteDeckTheme — Delete a named deck theme (not the default). Admin only.

Brand standards

  • listBrandStandards — List the company’s brand standards (name, label, default, current version). A brand standard governs how documents/decks look and read; every doc is bound to the version it was built against.
  • getBrandStandard — Get a brand standard and its current (or a specific) version: the structured spec — brand terms {canonical, display?, wrongForms[], appliesIn} (e.g. "Engineering11" not "engineering11"), preferred/banned terminology, voice notes, and visual refs. Omit `name` for the company default; omit `version` for the current one. Read this BEFORE generating any document or deck and follow it.
  • setBrandStandard — Publish a new version of a brand standard from a STRUCTURED spec { terms:[{canonical, display?, wrongForms?[], appliesIn?}], terminology:[{banned, preferred?}], voice?, visual?{docTheme,deckTheme,deckStandard} }. The admin describes their brand in words; you turn it into this structure and call this. Omit `name` for the default. `bump` = patch|minor|major; `versionLabel` is the company’s cosmetic label (e.g. "v4.5.0"). Publishing kicks off an ASYNC sweep that upgrades existing docs on prior versions (the response includes an `upgrade` job id + count). Pass pinPalette:true to FREEZE the current deck palette into this version (otherwise decks keep re-skinning live with their theme). Admin only.
  • listBrandStandardVersions — List a brand standard’s version history (immutable audit: version, label, bump level, who published it, when, notes), newest first. Omit `name` for the default standard.
  • setDocStandard — Re-bind ONE document/deck to a different brand standard (or version) and re-apply it (re-point the deck-standard link, re-normalize, restamp). Omit `version` for the standard’s current version. Use when a doc should follow a different standard than it was created under. Not for controlled documents. Admin only.
  • setRoomStandard — Re-bind an ENTIRE room’s documents to a brand standard (or version) and re-apply — async (returns an upgrade job id; poll getUpgradeStatus). For "the default standard split into internal + external — move this room to external". Locked docs are skipped; controlled-document rooms are refused. Admin only.
  • brandLint — Scan documents for brand-standard violations (wrong brand-term forms like "engineering11", banned terms) against the standard each doc is bound to, reported per document. Pass "collection" to scope to one room; omit for the whole company. Read-only. Admin only.
  • brandFix — Bulk-apply canonical brand fixes (re-normalize each doc against its bound standard). Defaults to a PREVIEW (lists what would change); pass apply:true to write the fixes. Governed docs are reported as needing review, never silently rewritten. Pass "collection" to scope to one room. Admin only.
  • getUpgradeStatus — Check progress of an async brand-standard upgrade sweep (from setBrandStandard’s `upgrade.jobId`): total / done / skipped (governed + locked docs) and status (queued|running|done|error). Admin only.

People & access

  • addMember — Grant a person a role on a company (or a specific collection). Emails the new member an invite with a sign-in link (set notify:false to skip).
  • removeMember — Remove a person’s membership.
  • listMembers — List the people in a company and their roles (company-level rows have no collection; collection-scoped rows name one). Admin only.
  • setCompanyAccess — Set a company’s reader access rule.
  • getAccessConfig — Read the reader-access config: the company default rule (email domains/emails) and each room’s visibility + rule. Admin only.
  • resyncAccess — Rebuild all Cloudflare Access policies from the member list (platform-admin only).
  • linkEmail — Link two of a person’s emails as the SAME identity within a company, so every access, role, agreement-party, and acknowledgement check treats them as one (e.g. someone invited as a@co.com who signs in as a@other.com). Both emails must already be members; per-company only (never crosses companies); platform-admin emails can’t be linked. Admin only.
  • unlinkEmail — Remove an email from its identity group in a company. Admin only.
  • listIdentities — List a company’s identity groups (each person’s linked emails). Admin only.

Find & ask

  • search — Search documents across the rooms you can access in a company — hybrid full-text + semantic (meaning-based) ranking. Returns ranked docs with title, a snippet, the room, a relevance score, and its URL. Only ever returns published docs in rooms you can access (private rooms you are not in never appear). Optional: `limit` (default 20, max 50), `collection` to search one room, `kinds` to filter (e.g. ["article","deck"]).
  • ask — Ask a plain-English question and get an answer drawn ONLY from the documents you can access in a company, with the source document(s) cited. Returns `{answered, answer, citations:[{collection, doc, title, url, quote}], sources}` — when the corpus doesn’t cover the question it returns `answered:false` with an honest note (it never makes up an answer). Use this when the person wants an ANSWER rather than a list of documents; cite the sources it returns.
  • retrieveContext — Retrieve relevant document TEXT (not HTML) from the rooms you can access, as ranked, bounded plain-text excerpts to use as context/grounding when you REASON over content. Hybrid full-text + semantic ranking, identical access scoping to `search`. Returns `{results:[{collection,doc,title,kind,url,rev,excerpt,score,components,archived}], scoped, budgetUsage:{max,used,truncated}}` — each `excerpt` is a bounded plain-text span from the published document body (match-centered for keyword hits, otherwise a leading excerpt of the document). Only ever returns published docs in rooms you can access (private rooms you are not in never appear). Optional: `limit` (default 8, max 50), `collection` to scope to one room, `kinds` to filter, `budgetChars` (total excerpt chars across ALL results, default 6000), `perDoc` (max excerpt chars per doc, default 1200). Prefer this over getDoc when you need to reason over content rather than render or edit a whole document.
  • checkDuplicate — Before drafting a new document, check whether a similar one already exists in the rooms the person can access (semantic match over document content). Returns `{candidates:[{collection, doc, title, score, url}]}` — empty when nothing is similar. Use this proactively when the person asks to write something that may already exist, then offer to open/continue an existing doc instead of duplicating it.
  • searchGaps — Admin: the search-gap authoring backlog — the queries people searched or asked that returned NOTHING, grouped with counts (over an optional `days` window, default 90). Use when someone asks "what are people looking for that we don’t have?" or "what should we write next?". Aggregated by query; never reveals who searched.

Content health & curation

  • getContentHealth — Admin: a content-health rollup for a company — documents that are orphaned (owner no longer a member), stale (not updated in 180 days), unread (no views in 90 days), plus a duplicate-prevention summary, scoped to the rooms you can access. Use when someone asks what needs cleanup / what’s rotting.
  • setDocOwner — Transfer a document’s maintenance owner to another company member (the person responsible for keeping it current). The new owner must already be a company member. Owner is separate from who last edited it.
  • getCurationQueue — Curator/admin: the content-maintenance queue — documents needing action (reassign an orphaned owner, verify a stale doc is current, review an unread or possibly-duplicate doc), scoped to rooms you can access, plus an acceptance KPI. Use when someone asks "what needs curating / reviewing?".
  • curate — Curator/admin: act on a curation-queue suggestion for a document. action="verify" marks it current; action="reassign" transfers ownership (pass owner = a company member); action="dismiss" snoozes a suggestion (pass suggestionType = reassign|verify|unread|dedupe|review-dependent).
  • verifyDoc — Curator/admin: mark a document as verified-current (resets its verification clock so it drops off the "needs review" queue). Use when a curator confirms a doc is still accurate.
  • suggestReorg — Editor: suggest how to organize a room into folders — clusters the room’s documents by content and proposes a folder (existing or a new name) for each ungrouped or misfiled doc. SUGGEST-ONLY: apply an accepted suggestion by calling setDocFolder(company, collection, doc, folder). Use when someone asks to "tidy up" / "organize" / "sort this room into folders".
  • archiveRoom — Archive a whole ROOM (collection) — remove it from the default room list, navigation, Files browser, search, and content-health, while keeping it fully reversible. Like archiving a document, this is an ORGANIZATION action, NOT deletion or access removal: the room’s documents still serve at their URLs and unarchive restores it. A room containing a governed document with outstanding acknowledgements can’t be archived until they’re resolved. Company ADMIN only.
  • unarchiveRoom — Restore an archived room back to the default room list and navigation. All contents and metadata are unchanged. Company ADMIN only.
  • listArchivedRooms — List the archived rooms in a company (name, type, visibility, when/who archived). Use to review or restore archived rooms. Scoped to rooms you can access.
  • checkDependents — For a document, report which OTHER documents likely go stale when it changes ("dependents": docs that restate or depend on it — found by content similarity plus any declared edges), AND the documents THIS one depends on ("sources", including any that recently changed and may have made this doc stale). SUGGEST-ONLY — to fix a stale dependent, open it and update it with updateDoc. Only ever surfaces docs in rooms you can access. Returns {available, dependents:[{collection,doc,title,origin,similarity,flagged}], sources:[…]}.
  • listDependents — List the documents that depend on a given source document (declared edges + recorded staleness flags), scoped to rooms you can access. Cheaper than checkDependents (no live similarity recompute). Use to answer "what depends on this doc / what should I review if I change it?".
  • linkSource — Declare that one document DEPENDS ON another ("this dependent derives from this source") so the source’s future changes always flag the dependent for review. Editor on the dependent’s room; you must also be able to access the source’s room. Both must be normal documents (not controlled-docs or deal-room agreements).
  • unlinkSource — Remove a previously declared dependency edge (dependent → source). Editor on the dependent’s room.
  • createAckLink — Mint a revocable self-enroll link for a PUBLISHED controlled document. Anyone the company already authorizes who opens the link is enrolled as a company viewer and added to the document’s acknowledgement audience — they get a personal "My acknowledgements" page but are NOT added to the controlled room. Returns { token, url }. Editor+.
  • listAckLinks — List a room’s self-enroll acknowledgement links (active and revoked), with their URLs. Editor+.
  • revokeAckLink — Revoke a self-enroll acknowledgement link by token — stops NEW enrollments; people already enrolled keep their audience row. Editor+.
  • getAckDoc — Get the read-only published HTML of a controlled document you must acknowledge (authorized by audience membership, not room access) — plus its title, version, acknowledgement statement, due date, and whether you have acknowledged.
  • myAcknowledgements — Your personal acknowledgement queue for a company: every controlled document you must acknowledge (outstanding) and have acknowledged (done). Self-scoped — includes documents you were enrolled into via a link even though you’re not a member of their room.

Companies (platform-admin)

  • createCompany — Provision a new company (platform-admin only).
  • deleteCompany — Delete a company and all its content (platform-admin only).
  • listCompanies — List companies you can access.
  • addPlatformAdmin — Add a platform admin (platform-admin only).
  • removePlatformAdmin — Remove a platform admin (platform-admin only).
  • cleanupCollectionAccessApps — One-shot migration: delete all defunct per-room Cloudflare Access apps and re-sync company walls (platform-admin only).

Insights

  • getAnalytics — Analytics for a company: totals (with deltas vs the previous period), unique readers, views over time, by room, by named share, who is reading (named, signed-in readers — Cloudflare Access identity), and a recent-activity feed. Pass "collection" to drill into a room, "doc" for one document, "days" for the window (default 30). Gated rooms/docs are attributed to the reader's email; share-link views are attributed to the link and public-collection views are anonymous. Admin only (it spans every room).
  • whoami — Return the caller’s email and whether they are a platform admin.

Other

  • archiveDoc — Archive a document — remove it from the room’s default list, navigation, and content-health counts, while keeping it fully searchable (tagged "archived") and reversible. Archive is an ORGANIZATION action, NOT deletion or access removal (the document still serves at its URL; use retire for a controlled doc you need pulled from readers). A governed document with outstanding acknowledgements can’t be archived until they’re resolved. Editor+.
  • unarchiveDoc — Restore an archived document back to the room’s default list. All prior metadata (owner, intent, folder, version history) is unchanged. Editor+.
  • listArchived — List the archived documents in a room (title, owner, when/who archived, intent). Use to review or restore drained content. Viewer+.
  • setDocLifecycleIntent — Mark how long a document stays relevant so the room can flag its freshness. TWO plain choices — "evergreen" = an ONGOING REFERENCE that stays useful over time (a policy, a how-to guide, a product overview); this is the default and is never flagged out-of-date by age alone. "transient" = a TIME-LIMITED document tied to a moment that goes stale fast (a dated status update, a one-meeting deck, a quarterly snapshot); for a transient doc you may add "expires_at" (a date, e.g. 2026-08-31) for when it goes out of date. IMPORTANT: this ONLY changes the freshness badge and adds the doc to a "past shelf-life" cleanup SUGGESTION list — it NEVER edits, hides, archives, or deletes anything, and archiving always stays a human decision. Decide by asking: is this an ongoing reference, or tied to a specific time? When it isn’t obvious, briefly explain the two options and ask the person which fits before setting it. Editor+.
  • listDocVersions — List a document’s version history (read-only): each version’s number, author, timestamp, note, and state, newest first. Works for any document in a room you can access. (For a governed doc, non-privileged viewers see only published versions.)
  • activityDashboard — A cross-room activity overview for a company: totals (documents / dormant / past-shelf-life / yours), the most dormant documents (oldest last-activity), your own documents across every room, and what’s most recently active — all scoped to the rooms you can access. Use when someone asks "what’s going on across our rooms?", "what’s gone stale?", or "show me my documents".
  • proposeDoc — Before writing a NEW document, get corpus-aware guidance so you don’t create a near-duplicate (DRY for documents). Pass company + a `title` and/or `intent` (why the doc exists) and/or `html`. Returns `{recommendation:"extend"|"branch"|"new", extendTarget, branchTarget, linkSources, suggestedRoom, suggestedKind, lifecycleGate, dedupWouldTrigger, priorArt, rationale}`. If it says "extend", strongly prefer editing the existing document (updateDoc/patchDoc) over making a new one. Writes NOTHING. If you insist on a new doc and hit the dedup gate, a human (or your explicit confirmNew) must clear it — you can’t self-issue it.
  • classifyDoc — Tag a document with its type + topics + why it exists, so the corpus builds a structured map (drives insights + curation). Pass company/collection/doc and any of: `classification` (the document TYPE, e.g. policy/runbook/spec), `topics` (array of subject tags), `authoring_intent` (free text: why this doc exists). Values are constrained to the company’s controlled vocabulary; a brand-new type/topic is recorded as "proposed" for a curator to bless (never silently canonical). Editor+.
  • listTaxonomy — Admin: list a company’s controlled vocabulary (document types / topics / pillars) with each term’s status (active | proposed | merged). Use to review what authors have proposed and decide what to bless. Optional `layer` (type|topic|pillar) and `status` filters.
  • setTaxonomyStatus — Admin: manage a taxonomy term. action="bless" activates a proposed term (authors can then classify into it); "rename" changes its display label (pass `label`); "drop" removes it; "merge" folds it into another term (pass `into`) and repoints every document that referenced it. Use after listTaxonomy to curate the vocabulary. layer = type|topic|pillar.
  • captureNote — Quickly jot a finding/idea into your PRIVATE workspace without stopping to decide where it goes — it still gets dedup-checked and kept tidy. Pass company + `text` (and optionally a `collection` you think it belongs in). If a near-identical note already exists it returns that instead of creating a duplicate. Returns `{where, collection, doc, suggestedHome, priorArt}`. Move it into a real room later when ready.
  • suggestFolder — Editor: suggest the best-fit EXISTING folder path for a document in a room (based on content similarity to what’s already filed), so a new or misfiled doc lands in the right place instead of spawning a duplicate folder. Pass either an existing `doc` slug, or a candidate `title`+`html` (before creating it). Optionally pass a proposed `folder` path to get a `dedup` result telling you whether it folds into / near-duplicates an existing folder. Returns `{available, suggestedFolder, confidence, isExisting, existingFolders, dedup?}`. SUGGEST-ONLY — apply with setDocFolder. Degrades to `{available:false}` when the search index is unavailable.
  • listRoleAudit — Read the company’s privilege-change audit trail — who granted or removed which role, and when (newest first). Admin only.