Documents
Documents are the rich-text artifacts your workspace builds and approves — specs, PRDs, design notes, meeting summaries, internal references. Agents read them as context when they implement features, and many docs are themselves produced by agents (a spec drafted from a meeting transcript, a design doc generated from a feature brief). The Documents page (/<workspace>/documents) is the filterable index; clicking a row opens the editor at /<workspace>/document/<id>.
📷 Screenshot: Documents table with filter bar and bulk-action toolbar.
Creating a document
Two buttons sit at the top right of the table:
- New Document (📝) — creates a blank doc and drops you straight into the editor.
- Upload (⬆) — imports an existing file (PDF, DOCX, MD, TXT). The contents are converted to rich text and saved as a workspace document, ready to edit and reference.
Document types
Every doc carries a type tag for filtering and downstream agent behavior:
- Requirements — what should be built (PRDs, user stories, acceptance criteria).
- Design — how it should be built (architecture notes, mocks-as-text, component breakdowns).
- Meeting — auto-generated summaries from recorded meetings.
- Other — anything that doesn't fit the above (internal references, runbooks, briefs).
The status workflow
Each doc moves through a status that reflects where it is in the review cycle:
- Not Started — created but empty.
- Generating — an agent is filling it in right now (live edits stream into the editor).
- Generated — agent finished a draft; the owner hasn't reviewed yet.
- Edited — humans have changed it since the last approval cycle.
- Ready for Review — submitted to approvers; the default filter on the index.
- Complete — every approver signed off. If the doc belongs to a feature, hitting Complete advances the feature to its next step automatically.
The default filter on the Documents index is Ready for Review, so the page lands on the docs that are actually waiting on someone — switch to "All" to see everything.
Filtering, searching, sorting
The filter bar above the table:
- Status, type, and tag chips — multi-select; the URL updates so a filtered view is shareable.
- Name search — substring match across titles.
- My approvals only — narrows to docs assigned to you for approval.
- Hide completed feature docs — keeps the index focused on active work; toggle off to bring archived feature docs back.
Column headers sort the table; the row count to the right of the filter bar reflects the current filter, not the total in the workspace.
Bulk actions
Selecting one or more rows reveals a toolbar with:
- Delete — confirms before removing.
- Download — single doc exports as PDF; multiple docs export as a zip of PDFs.
- Add to Chat — pins the selected docs as prompt-path context for your next chat message, so an agent can read them without you having to re-attach.
Editing
The editor is a Tiptap-based rich-text surface — headings, lists, tables, code blocks, images, links, the usual. Multiple people (and agents) can edit the same doc concurrently via Yjs, so your changes and theirs converge in real time without merge conflicts. A toolbar at the top exposes formatting; slash-commands inside the body insert blocks.
When an agent generates content into a doc, you'll see edits arrive incrementally — you can interrupt, edit alongside, or wait for it to finish.
Working with agents
Documents flow through agents in three directions:
- As context — pin a doc to a chat (or to a feature) and the agent reads it before deciding what to do.
- As output — agents write back to docs, marking them Generated when the draft is ready.
- As approval gates — a feature waiting on a Requirements doc to reach Complete will pause until you approve, then advance.