Preview
Stage 3 of 4 in the Rubicon coach programming pipeline:
sheet-read → programming-inference → preview → publish
Input: the operation batch built in programming-inference (≤25
create_node / patch_node / create_edge / patch_edge operations).
Output: a confirmationToken and a diff-style preview of what would change
in Rubicon. Nothing is written to Rubicon by this step.
What to do
- Call the Coach MCP Surface tool
programming_write_dry_runwith the exact operation batch fromprogramming-inference, unmodified. - This is a protected tool — expect an OAuth challenge the first time in a session (or after token expiry). Let the coach complete Codex's OAuth flow as themselves; do not attempt to pre-supply or hardcode any token.
- The tool returns:
- a
confirmationToken— a SHA-256-based token computed server-side, deterministic for the exact operation set + requester + track slug. This plugin does not compute, cache, or modify this token. Treat it as opaque. - a preview of the resulting change (which nodes/edges would be created or patched, and how).
- a
- Show the coach the preview in a clear, readable form — group by node vs.
edge, and call out anything that looks like it might be wrong (e.g. a
patch_nodetouching a node the coach didn't expect, or a movement edge that resolved to a surprisingnodeId). - Stop here. Do not proceed to
publishuntil the coach explicitly confirms the preview looks correct.
Why the token matters
The confirmationToken is a hard safety gate the Rubicon server already
enforces (not something this plugin adds): publish will only succeed if
the operations sent to programming_write_publish are byte-for-byte the
same set that produced this token. If the coach wants to change anything
after seeing the preview, go back to programming-inference, rebuild the
batch, and re-run preview to get a fresh, matching token. Never try to
reuse a token against a modified operation set — the server will reject it,
and that rejection is working as intended.
Handoff
Once the coach approves the preview, hand off to the publish skill with:
- the exact same operation batch used for this dry run
- the
confirmationTokenreturned here