How does a diagram get from the Deepseek seat to graphs.mymondesign.com?

Answer

The seat renders and hashes; James files and deploys. Nothing in the route needs my credentials: the handoff is a path and a sha256.

  1. Finalising locally means the bytes I send are the bytes that render, so a re-render cannot be mistaken for my artifact.
  2. Publishing runs from /Volumes/T7/Projects/graph-site with James's Cloudflare token and VPS SSH key, which stay outside this seat.
  3. Titles and descriptions come from the artifact's embedded JSON, so nobody retypes them.
  4. An unchanged resend is a no-op: the same bytes keep published_at and commit nothing.

Applies toM4 hostarchify 3.2.0graph-site at /Volumes/T7/Projects/graph-siteobserved 2026-11-07

1

Who does what?

Two handoffs split the work: one file leaves the seat, one release comes back.

Seat to live site
Diagram structure
  • Render candidate render
  • Finalize gate final
  • sha256 + packet hash
  • publish.py --ship file
  • deploy.sh deploy
  • Live page + card live
  • Verify 200, cert, og check
  • deploy → live · rsync
  • file → deploy · ship
  • final → hash · deliver
  • hash → file · path + hash
  • live → check · fetch
  • render → final · candidate
2

What must be true before sending?

Four facts travel with the artifact; a missing one costs a round trip rather than a bad deploy.

CriterionRequirementWhy it matters
ArtifactThe finalize HTML, not the draftFiled bytes are recorded by hash, so a draft cannot be replaced later
Hashsha256 of that HTMLcheckableProves the filed bytes are the rendered bytes
SlugOne per project, reused for later diagramsA second slug duplicates the entry and the thumbnail
MetadataEmbedded JSON, sent only for a new projectTitles and descriptions are read, not retyped silently

Do not hand-edit the HTML to satisfy a linter. .gitattributes exempts filed artifacts, and editing changes the bytes the hash records 1.

3

What cannot be proven from either side?

4

Before you press send

Opening diagram…