Commit dc3a763
docs: add a role-keyed docs index, and record the shipped breaking change (#90)
* docs: add a role-keyed docs index, and record the shipped breaking change
Two gaps, both of which make a reader draw a wrong conclusion.
docs/README.md — there are 377 markdown files under docs/ and no index, so
GitHub rendered no docs landing page and the root README pointed at five
ad-hoc links, three of them maintainer-facing. There was no operator entry
point at all; the inventory that opened this effort named that the
highest-leverage gap.
The index is organised by AUDIENCE rather than by directory, because this
repo's layout does not track audience and its filenames actively mislead:
CI.md and ADOPTER-CI.md describe different repositories for opposite
readers; ASVS-L2-PHASE0-CHANGES.md is operator notes; testing/VERIFY.md is
an operator tool, not a test plan. Where a name misleads, the index says so
instead of repeating it.
Three things it does deliberately:
* Leads with a six-step start-here path for a new operator, in order, with
one line of "why now" each. A table of 84 rows does not close a missing
entry point no matter how good the rows are.
* Disambiguates the two SECURITY.md files up front. .github/SECURITY.md is
the vulnerability-disclosure policy; docs/SECURITY.md is the auth/RBAC
reference. Same filename, different jobs, and getting it wrong sends a
vulnerability report to the wrong place.
* Quarantines the planning history rather than hiding it. ~160 of the 377
files are dated build plans, session handoffs and measurement records.
Each directory gets one row with a file count and an explicit "do not
follow as instructions" banner, so the omission is VISIBLE rather than
silent. Retired and stale documents (the PySide6 console guides, the
de-registered self-hosted runners, a June-2026 CI summary whose counts
have moved) are labelled where they sit.
Every one of the 72 links was checked to resolve. Two rows in the first
draft pointed at files that do not exist — docs/threat-model.md and
docs/TODO.md — and were replaced. The threat model turns out to be
deliberately unpublished, which SECURITY-DOCS-POLICY.md explains, so the
index now says that rather than dangling a link at it.
CHANGELOG.md — PR #85 shipped a breaking change with no release note. An
instance carrying an inert [[alerts.rules]] block that routes to an
unconfigured transport now refuses to start. The entry states the exact
triggering condition (including the half-filled [alerts] block missing
email_to, which is the shape that looks configured but is not) and the
mitigating fact that decides it: in that state the rule has never routed a
single alert, so the refusal removes no working behaviour. The egress-gate
widening and the DICOM refusal-message correction from the same PR are
recorded alongside it; neither had a note either.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* docs: drop the frozen v0.1.0 .docx snapshot of the mental model
docs/MessageFoundry-Mental-Model.docx was a Word snapshot of what is now
docs/MENTAL-MODEL.md. The markdown is the living document — its masthead
reads "v0.3.2 · prepared 2026-06-18, revised 2026-07-30". The .docx masthead
still read "v0.1.0 (Early Access) · prepared 2026-06-18" and had not been
touched since 2026-07-06, two minor versions behind.
It is not a duplicate in the harmless sense. Of its 216 substantial
paragraphs only 114 survive verbatim in the markdown; the rest is not extra
information but SUPERSEDED phrasing — including a store description that
still frames SQLite as the message store with Postgres as a parenthetical,
which stopped being accurate when the three backends reached parity.
That is the case for removing it rather than regenerating it. A binary in a
public repository cannot be diffed or reviewed, so it drifts silently and
no gate can catch it: nothing referenced it, and nothing would have noticed
it going stale. The rendered PDF the website serves is generated from the
markdown, so no reader loses anything. The blob remains in git history if
the old wording is ever wanted.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>1 parent 304a93b commit dc3a763
4 files changed
Lines changed: 209 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
9 | 43 | | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
10 | 63 | | |
11 | 64 | | |
12 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
85 | 90 | | |
86 | 91 | | |
87 | 92 | | |
| |||
Binary file not shown.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
0 commit comments