Skip to documentation
Design Studio AI
DocumentationDocuments & revisions
GET STARTED

Documents & revisions

Make focused changes while keeping human and agent work in sync.

A project has a saved revision; its document has a separate schemaVersion. Read the revision before changing the design. Every full-document save checks it atomically.

  1. Read. Get the document and revision together.
  2. Change. Apply a small operation array to the actual node IDs.
  3. Save. Send the observed revision, not a guessed newer number.
  4. Reconcile. On 409, read the current design and adapt your edit.
Targeted operation filejson
[
  {
    "op": "update-node",
    "nodeId": "ACTUAL_NODE_ID",
    "changes": { "text": "The next chapter" }
  }
]
Inspect and applyshell
dsa projects get PROJECT_ID
dsa schema --operations
dsa projects document patch PROJECT_ID \
  --revision OBSERVED_REVISION --file operations.json

Proposal versus saved work

Generate, inspect, then saveshell
dsa generate PROJECT_ID --provider openai \
  --revision OBSERVED_REVISION --prompt-file brief.txt --output proposal.json

# Inspect the proposal before this separate write.
dsa projects document put PROJECT_ID \
  --revision OBSERVED_REVISION --file proposal.json

Media generation and uploads return assets independently of the document. Add the asset reference and node, inspect the result, then save. Publishing exposes a frozen snapshot of the saved revision; it does not automatically publish later edits.

Interview, scope, and explicit approval

The brief stores the original request, contextual questions, answers, and scope separately from the design. Its revision is independent of the document revision; use zero only to create the first brief. Read the actual brief before every update.

  1. Save a clear request. An external agent can supply its own interview, or call the configured BYOK provider to ask contextual questions.
  2. Show the questions to the human. Save their answers; never manufacture an answer to make the workflow pass.
  3. Review a scope covering objective, audience, visual direction, deliverables, constraints, and acceptance criteria.
  4. Approve only after explicit human agreement. Every later brief or scope edit invalidates that approval.
  5. Generate and inspect the design as a separate action. Scope approval never publishes anything.
Start a persisted briefjson
{
  "request": "Create a six-slide product introduction. Ask me for missing facts."
}
Save and interviewshell
dsa brief put PROJECT_ID --revision 0 --file brief.json
dsa brief get PROJECT_ID

# Optional: invokes your configured provider and may incur charges.
dsa brief interview PROJECT_ID --revision OBSERVED_BRIEF_REVISION --provider openai

# After explicit human approval of the current answered scope:
dsa brief approve PROJECT_ID --revision OBSERVED_BRIEF_REVISION

Read the live interview and scope schemas before supplying an external agent's structured response. Questions support text, one choice, or multiple choices. On a brief conflict, reload and reconcile its current questions and answers.

Inspect before delivery

Read-only design preflightshell
dsa projects check PROJECT_ID

Preflight returns actionable findings with node/page IDs, severity, counts, and limitations. It estimates overflow, text fit, opaque-hex contrast, media readiness, and export duration. It does not composite overlapping backgrounds, measure every font, inspect animated extremes, or certify accessibility. Review the rendered design and actual export.

Reusable design systems

In the editor, choose Manage design systems to create a library of tokens, component variants and reusable compositions. Capture the selected component or current page, edit its saved definition, then create a version before applying or inserting it.

Library version and project revision are separate. Applying a saved version copies its tokens/system into the project while retaining authored component overrides and records the pinned library version. Later library edits do not change existing projects automatically. Inserting a composition copies its hierarchy with fresh IDs; deleting a library leaves previously embedded project content intact.

Use dsa design-systems schema, the live shared schemas, or OpenAPI reference for complete validated definitions and request shapes. On a version conflict, read the current definition and reconcile changes before saving.

Targeted operation implementation