diff --git a/docs/diagrams/06-project-flowchart.dark.svg b/docs/diagrams/06-project-flowchart.dark.svg
new file mode 100644
index 0000000..b7facf1
--- /dev/null
+++ b/docs/diagrams/06-project-flowchart.dark.svg
@@ -0,0 +1,84 @@
+
diff --git a/docs/diagrams/06-project-flowchart.light.svg b/docs/diagrams/06-project-flowchart.light.svg
new file mode 100644
index 0000000..87a8675
--- /dev/null
+++ b/docs/diagrams/06-project-flowchart.light.svg
@@ -0,0 +1,84 @@
+
diff --git a/docs/diagrams/README.md b/docs/diagrams/README.md
index b56814c..a88ba5b 100644
--- a/docs/diagrams/README.md
+++ b/docs/diagrams/README.md
@@ -1,6 +1,6 @@
# Diagrams
-Five diagrams, each in a dark and a light variant, generated by
+Six diagrams, each in a dark and a light variant, generated by
`node scripts/make-diagrams.mjs`.
**Do not hand-edit the SVG.** Edit the generator and regenerate, or the geometry gate below
@@ -13,6 +13,7 @@ stops meaning anything.
| `03-recovery-ladder` | What happens when the first fix does not work, and where we stop |
| `04-data-sources` | The three stores and which question each one answers |
| `05-earned-autonomy` | How a playbook reaches unattended execution, and how it loses it |
+| `06-project-flowchart` | The whole product on one page: five steps, four decisions, five exits |
Open `index.html` to view them all with a theme switch.
@@ -35,6 +36,7 @@ non-zero if any two overlap or anything falls outside the canvas. It has already
- two boxes running off the right edge of `02-incident-flow`
- the `situations.diagnosed` label being wider than the gap it sat in, so it overprinted the
node on either side
+- the rollback branch in `06-project-flowchart` routed straight through a decision diamond
What the gate does **not** check is whether the result reads well. Look at the diagrams after
regenerating.
diff --git a/docs/diagrams/index.html b/docs/diagrams/index.html
index d17eac9..55d2cd4 100644
--- a/docs/diagrams/index.html
+++ b/docs/diagrams/index.html
@@ -91,6 +91,14 @@