Flowchart · D4

How a release ships

The engineering discipline behind every update: the engineer's own markup is the test, and every public number needs a source.

Start Engineer action Decision Result Refuses to guess
flowchart LR
  K([Engineer's markup or field request]):::start --> C[Change the design tool]:::act
  C --> T[Automated tests check real geometry and node graph]:::act
  T --> TC[Truth checks: every public number has a source]:::act
  TC --> G{All green?}:::dec
  G -->|no| C
  G -->|yes| LIVE[Walk it live the way the engineer clicks]:::act
  LIVE --> MK{Matches the original markup?}:::dec
  MK -->|no| C
  MK -->|yes| REL[Release with changelog]:::res
  classDef start fill:#ede9fe,stroke:#7c3aed,stroke-width:2px,color:#1e1b4b
  classDef act fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#0f172a
  classDef dec fill:#fef3c7,stroke:#d97706,stroke-width:2px,color:#422006
  classDef res fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#052e16

Step by step

  1. Start from the engineer's markup or a field request, not a paraphrase of it.
  2. Change the tool, then run automated tests that check real geometry and the duct node graph, not just on-screen text.
  3. Run truth checks: every number on a public page must trace to a registered source.
  4. Walk it live the way the engineer actually clicks: build both sides of a run, branch mid-run, delete things.
  5. Compare with the original markup. Release with a changelog only when it matches.