Features/MCP Workflows/Google Docs/Google Docs reviewer comments to model

Google Docs reviewer comments to model

A reviewer proposing a tighter number in the margin has no idea what else depends on it. This shows that before the change is applied, which is the part manual transcription never does.

Google DocsWrites · gated

The problem this solves

The document goes out, reviewers mark up the margins, and weeks later someone transcribes it back by hand. Comments get lost, questions get silently treated as edits, and a proposed value change lands in the model without anyone checking the three tests that verified the old one.

How it works

Margin comments worked back into the model, each with the blast radius the reviewer could not see. Classifies every comment, shows what a proposed rewrite would touch downstream before it is applied, and never resolves a comment on the reviewer's behalf.

01
Classify before touching anything
Proposed change, question, objection with no proposal, out of scope, editorial, or acknowledgement. Only the first touches the model. A thread that evolved through replies is classified on where it ended, and it says so.
02
Show the blast radius
For each proposed rewrite: the current statement, the diff, the child requirements, allocations, interfaces, verification runs now suspect, and hazards whose controls depend on it. Conflicts stop the proposal rather than accompanying it.
03
Apply one at a time, verbatim
Never in bulk, never inferred from a general instruction to accept a reviewer. Approved wording is copied as written rather than tidied, with the comment, revision and reviewer recorded on the requirement.
04
Draft replies, resolve nothing
Each reply approved individually, since it goes out under your name into a customer's document. It never resolves a comment the reviewer has not agreed is resolved.

The prompt

You are working through reviewer comments on a requirements document
in Google Docs and bringing the agreed changes back into the Dalus
model [model name]. This closes a loop that is normally closed by
hand, weeks late and badly: the document goes out, reviewers mark up
the margins, and someone transcribes it back. Your advantage over
that person is that you can check every proposed change against the
model before it is applied.

CONFIRM FIRST, in one message: which Dalus model and branch; which
Google Doc; whether to work through all open comments or a subset
(a section, a reviewer, comments since a date); whether replies
should be drafted for posting or delivered to the user only; and
whether model changes go to a branch. Ask anything else in the same
message. Then begin. Default to working on a branch.

READ THE DOCUMENT AND ITS COMMENTS: every open comment and its
reply thread, with author, date, the anchored text it attaches to,
and the requirement ID that text belongs to. Where a comment is
anchored to text you cannot map to a requirement, say so rather
than guessing which requirement it means.

CLASSIFY EVERY COMMENT into exactly one of these. Only the first
category touches the model:
- PROPOSED REQUIREMENT CHANGE: a rewrite, a changed value, a
  tightened or relaxed condition, an added or removed constraint.
- QUESTION: the reviewer wants to know something. Needs an answer,
  not a model change.
- OBJECTION WITHOUT A PROPOSAL: the reviewer disagrees but has not
  said what it should be instead. Needs a decision, not an edit.
- OUT OF SCOPE: about something the document mentions but the
  model does not hold, or about the programme rather than the
  requirement.
- EDITORIAL: typos, formatting, numbering, wording with no change
  of meaning. Fixed in the document, never in the requirement
  statement unless the user says the statement itself has the typo.
- APPROVAL OR ACKNOWLEDGEMENT: no action.
Where a comment thread has evolved through replies, classify on
where the thread ended, not on the opening comment, and say so.

FOR EACH PROPOSED CHANGE, present:
- The comment, quoted, with author and date.
- The current requirement statement from the model, and its ID.
- The proposed statement, as a diff so the change is visible.
- What it touches downstream: child requirements, the elements it
  is allocated to, the interfaces it constrains, verification items
  covering it with any passed run flagged as now suspect, and
  hazards whose controls depend on it.
- Any conflict: does the rewrite contradict another requirement,
  another comment in the same review, or something already
  verified or frozen? If it conflicts, say so and do not propose
  applying it until the user decides.
The blast radius is the point. A reviewer proposing a tighter number
in a margin usually has no idea what else depends on it, and showing
that is the value this workflow adds over manual transcription.

APPLY, one at a time, on approval. Never in bulk, never inferred
from a general instruction to accept a reviewer's comments. Copy
approved wording verbatim: do not tidy the reviewer's phrasing
while applying it. Record on each changed requirement which comment,
which document revision and which reviewer it came from, so the
provenance survives.

DRAFT REPLIES, gated per comment, never posted or resolved
automatically. A reply goes out under the team's name into a
customer's or regulator's document, so each one is approved
individually. Never resolve a comment the reviewer has not agreed
is resolved; resolving someone's comment on their behalf is a small
rudeness that costs more trust than the workflow is worth. Draft
replies should say what was done, cite the requirement ID, and where
a change was not made, say why in one sentence without arguing.

NEVER INVENT: where a comment asks for a change but does not say to
what, that is a proposed change with a missing value, reported as
needing the reviewer's number rather than filled with a plausible
one.

FINAL REPORT: counts per classification; the changes applied with
their source comments; the conflicts, with both sides; the questions
and objections still needing a human answer, with who raised them;
the comments you could not map to a requirement; and any reviewer
whose comments are all still unanswered, since an unanswered
reviewer is a stalled review. Offer, do not execute: republishing
the document with the changes and a summary of what moved since the
version they reviewed, and opening tracker issues for the objections
that need a design decision.

THIS WORKFLOW WRITES to the model on a branch after per-item
approval, and writes replies to the document only after per-comment
approval. It never resolves a comment unapproved.

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

What you get

Every comment classified, with the thread's ending position noted
Blast radius per proposed change, before it is applied
Changes applied on a branch, each recording its source comment and reviewer
Unanswered questions and objections, and any reviewer still waiting entirely
Dalus + Google Docs

Reads open comments with their reply threads, authors, dates and anchored text. Replies are drafted and posted only per-comment on your approval, and comments are never resolved automatically: resolving someone's comment on their behalf costs more trust than the workflow is worth.

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

Will it resolve comments for us?
No. It drafts replies, each approved individually because they go out under your team's name, and it never marks a comment resolved that the reviewer has not agreed is resolved.
What if a reviewer asks for a change but not what to?
That is a proposed change with a missing value. It reports it as needing the reviewer's number rather than filling in a plausible one, which is the failure mode that turns a review into an argument later.
What if a comment cannot be matched to a requirement?
It says so rather than guessing which requirement was meant. Those are listed separately, along with any reviewer whose comments are all still unanswered, since a reviewer waiting on everything means a stalled review.