Features/MCP Workflows/Google Docs/Publish a spec to Google Docs for review

Publish a spec to Google Docs for review

The reason to publish into Google Docs rather than hand over a file is that the comments come back. This formats the document so they can be: one anchored block per requirement, so a comment maps to an ID.

Google DocsWrites · gated

The problem this solves

Specifications go out as files and the feedback comes back as a mess: edits in a copy that the next revision overwrites, comments spanning six requirements at once, and a reviewer working from a version nobody can identify. The document carries no provenance, so half the review is spent establishing what was being reviewed.

How it works

The specification where reviewers can comment in place, formatted so the comments can be read back. Stamped with the model revision, with each requirement as its own anchored block so a comment attaches to one requirement, and a change summary on every new revision.

01
Use the format generator, do not duplicate it
Where a standard specification format is required, the corresponding generator produces the content and this workflow is the delivery and review layer. It will not create a second, divergent version of a format the library already defines.
02
Stamp it, top and header
Model, branch, revision, date, scope, and that the model is authoritative. A specification circulating with no provenance gets compared against the wrong version.
03
Format for commenting
Each requirement is its own anchored block, so a comment attaches to one requirement rather than a run of them. That is what lets a later run map comments back to IDs, and it is worth a slightly longer document.
04
Change summary on every revision
A new revision rather than a silent overwrite, with added, removed and changed requirements shown against the version reviewers last saw, plus allocations and verification methods that moved.

The prompt

You are publishing a requirements document from the Dalus model
[model name] into Google Docs, so that reviewers who will never have
a seat in the modelling tool can read it and comment on it in place.
This is not document generation for its own sake: the reason it lands
in Google Docs rather than as a file is that the comments come back,
and a later run reads them into the model.

CONFIRM FIRST, in one message: which Dalus model and branch; the
document flavour required (the model's own structure, or one of the
standard specification formats the library supports, in which case
run that generator and deliver the output here); where the document
should go and who it should be shared with; the scope; and whether
this is a first publication or a new revision of an existing
document. Ask anything else in the same message. Then begin.

IF A STANDARD FORMAT IS REQUIRED, use the corresponding generator
workflow for the content and structure, and treat this workflow as
the delivery and review layer. Do not produce a second, divergent
version of a specification format the library already defines.

READ THE MODEL: requirements in scope with IDs, statements, types,
allocations, verification methods and hierarchy; the architecture
view; and the interfaces the requirements constrain.

STAMP THE DOCUMENT, at the top and in the header: model name,
branch, revision, generation date, scope, and the statement that
this document is generated from the model and that the model is
authoritative. A specification circulating for review with no
provenance is one that gets compared against the wrong version.

STRUCTURE:
- The stamp and a short scope statement.
- The architecture view up front, rendered from the current model.
- Requirements grouped by subsystem, each with ID, statement, type,
  allocated element and verification method.
- A verification cross-reference matrix over the system-level
  requirements, allowing a requirement to carry more than one
  method. Landscape or a wide table, since a matrix squeezed into
  a narrow column is unreadable.
- A short note to reviewers: what feedback is wanted, by when, and
  to comment in place rather than editing, since edits to a
  generated document are lost on the next revision and comments
  are not.

NEVER INVENT. Where the model does not record an allocation, a
verification method or a statement, the document says so. A gap
visible to a reviewer is a finding; a gap filled with plausible
prose is a defect that gets quoted back at the team later.

FORMAT FOR COMMENTING: keep each requirement as its own clearly
anchored block of text, so a comment attaches to one requirement
rather than to a run of them. This is what makes the comment
read-back workflow able to map comments to requirement IDs later,
and it is worth accepting a slightly longer document for.

ON A NEW REVISION of a document already published: create a new
revision rather than overwriting silently, and include a change
summary immediately under the stamp, comparing against the version
reviewers last saw: requirements added, removed, and changed with
both statements shown, and any allocation or verification method
that moved. Reviewers should never have to reread a whole
specification to find what moved, and in a controlled review the
change summary is usually mandatory anyway.

BEFORE PUBLISHING, show the user the structure, the stamp, the
change summary if this is a revision, and any place where the model
was too thin to fill a field. Confirm the sharing settings before
writing, since this document goes to people outside the team. Wait
for approval.

AFTER PUBLISHING: report the document URL, what was published, what
was left out and why, and the model gaps found along the way as
findings. Offer, do not execute: reading the comments back into the
model once the review closes, and republishing with a change summary
after those comments are worked through.

THIS WORKFLOW IS READ-ONLY on the model. It writes only the Google
Doc, and only after approval.

Replace the [bracketed] placeholders with your model and project names.

What you get

A stamped document with the architecture view and requirements by subsystem
A verification cross-reference matrix, wide enough to read
One anchored block per requirement, so comments map to IDs later
A change summary against the version reviewers last saw
Dalus + Google Docs

Publishes to the location you name, with sharing settings confirmed before writing since the document goes to people outside the team. A note to reviewers asks for comments rather than edits, because edits to a generated document are lost on the next revision and comments are not.

Nothing is written until you approve it. The prompt carries the gate: the agent shows the full change set and waits, whether the target is the model or a system it reaches through a connector.

Common questions

Does this replace the specification formats?
No. If you need a 29148, MIL-STD-961E or ECSS document, the corresponding generator produces it and this workflow delivers it into Google Docs for review. It never produces a competing version of a format the library already defines.
Why does the formatting matter?
Because a comment anchored across six requirements cannot be mapped back to one. Keeping each requirement as its own block is what makes the comment read-back workflow able to say which requirement a reviewer meant.
What if reviewers edit the document instead of commenting?
Those edits are lost on the next revision, which is why the note to reviewers asks for comments in place. Comments survive, get classified, and come back into the model with the blast radius attached.