Found by a falsification audit, 2026-08-16. This is the third version of this issue. The first two both overstated the problem, in different ways, and both errors came from counting instead of measuring. They are recorded at the bottom rather than edited away, because an issue about false claims in governance prose that quietly rewrites its own is self-refuting.
The claim
Every copy of the philosophy doc closes with:
Canonical copy of this philosophy: keep the six repos' versions in step; change this file first and propagate.
And this repo's .gitignore:235-239 explains why it is not tracked here:
Deliberately NOT tracked: this file is the canonical engineering philosophy propagated across the six platform repos, and it is edited there first — tracking a copy here would make this repo a second source of truth for a document that has one.
What is actually true, measured across all 27 directories under views_platform/
Seven files named CLAUDE.md exist, but they are two different documents.
| repo |
document |
md5 |
tracking |
| views-postprocessing |
# Working in this repository |
098b43be |
ignored |
| views-models |
# Working in this repository |
098b43be |
tracked |
| views-faoapi |
# Working in this repository |
8f4b2553 |
ignored |
| views-pipeline-core |
# Working in this repository |
4bb41d46 |
ignored |
| views-frames |
# views-frames — Architecture / Tooling / Design principles |
7f94c6f2 |
tracked |
| views-bayesian |
# views-bayesian — Architecture / Package Layout / Commands |
dfc62a54 |
tracked |
(A seventh copy at _s3_worktree is a git worktree of views-models, not a separate repo.)
views-frames and views-bayesian do not carry this document at all. They carry ordinary per-repo technical CLAUDE.md files that happen to share a filename — different title, different sections, different purpose. They are not divergent copies; they are unrelated.
So the philosophy doc lives in four repos, not six. That is the first false thing in the sentence.
The good news: the four were almost in step
They differed by exactly two lines, and only one of them was a defect.
Line 87 — legitimate, not drift. views-pipeline-core says documentation/ADRs/ where the others say docs/ADRs/. Verified: views-pipeline-core/documentation/ADRs/ is where its ADRs actually live. Correct localisation.
Line 90 — a genuine stale reference, and it was ours. This repo and views-faoapi said:
Cross-repo contracts live in PLATFORM-001 (homed in views-appwrite)
PLATFORM-001 was renamed to The Appwrite Seam Contract by views-appwrite#158. The home repo has carried docs/ADRs/platform/appwrite_seam_contract.md and an ADR-011 "naming of cross-repo contracts" since. This repo's own ADR-013 records the rename twice — including Erratum E2, which exists because that same rename broke a URL and "#158 was then closed while four PLATFORM-001 citations" survived. This was a fifth.
views-models already had the corrected wording.
Fixed here by adopting views-models' line verbatim. This repo's copy is now byte-identical to views-models' (098b43be). That reduces divergence rather than adding a version — which corrects the second draft's reasoning that editing our copy would make things worse.
What remains
views-faoapi and views-pipeline-core still name PLATFORM-001 in the sentence that tells contributors where cross-repo contracts live. One line each, adopting views-models'/this repo's wording. Both files are untracked in those repos, so this is a local edit, not a PR.
The "six" is still wrong — it is four — and there is still no named canonical home. Two of the four are ignored, one is tracked, and the sentence says "change this file first and propagate" without saying where first is. With views-models and views-postprocessing now identical and current, the obvious candidate is views-models: it is tracked, so it has history and review, and it was already the only copy carrying the corrected name.
Suggested resolution — a decision, still not mine:
- Name views-models as the canonical copy in the text, or say plainly that there is no canonical copy and each repo owns its own.
- Correct "six" to "four", or propagate to two more repos and make it true.
- Propagate the contract-name fix to views-faoapi and views-pipeline-core.
The two earlier versions of this issue, and why they were wrong
Draft 1 claimed "there are four copies, not six" and listed five repos as having none. Wrong: I grepped a hand-written list of nine repo names instead of the directory. There are 27 directories.
Draft 2 claimed "six copies, five distinct versions" and treated the spread as evidence of serious drift. Wrong in the other direction: it counted views-frames and views-bayesian as divergent copies of this document when they are a different document, and it never diffed the files — so it never discovered that the four real copies differed by two lines, one of them correct.
Both errors are the same mistake the register has recorded repeatedly: a number asserted from a plausible-looking count rather than produced by a command against the actual thing. In an issue about exactly that.
Found by a falsification audit, 2026-08-16. This is the third version of this issue. The first two both overstated the problem, in different ways, and both errors came from counting instead of measuring. They are recorded at the bottom rather than edited away, because an issue about false claims in governance prose that quietly rewrites its own is self-refuting.
The claim
Every copy of the philosophy doc closes with:
And this repo's
.gitignore:235-239explains why it is not tracked here:What is actually true, measured across all 27 directories under
views_platform/Seven files named
CLAUDE.mdexist, but they are two different documents.# Working in this repository098b43be# Working in this repository098b43be# Working in this repository8f4b2553# Working in this repository4bb41d46# views-frames— Architecture / Tooling / Design principles7f94c6f2# views-bayesian— Architecture / Package Layout / Commandsdfc62a54(A seventh copy at
_s3_worktreeis a git worktree of views-models, not a separate repo.)views-frames and views-bayesian do not carry this document at all. They carry ordinary per-repo technical CLAUDE.md files that happen to share a filename — different title, different sections, different purpose. They are not divergent copies; they are unrelated.
So the philosophy doc lives in four repos, not six. That is the first false thing in the sentence.
The good news: the four were almost in step
They differed by exactly two lines, and only one of them was a defect.
Line 87 — legitimate, not drift. views-pipeline-core says
documentation/ADRs/where the others saydocs/ADRs/. Verified:views-pipeline-core/documentation/ADRs/is where its ADRs actually live. Correct localisation.Line 90 — a genuine stale reference, and it was ours. This repo and views-faoapi said:
PLATFORM-001was renamed to The Appwrite Seam Contract by views-appwrite#158. The home repo has carrieddocs/ADRs/platform/appwrite_seam_contract.mdand an ADR-011 "naming of cross-repo contracts" since. This repo's own ADR-013 records the rename twice — including Erratum E2, which exists because that same rename broke a URL and "#158 was then closed while fourPLATFORM-001citations" survived. This was a fifth.views-models already had the corrected wording.
Fixed here by adopting views-models' line verbatim. This repo's copy is now byte-identical to views-models' (
098b43be). That reduces divergence rather than adding a version — which corrects the second draft's reasoning that editing our copy would make things worse.What remains
views-faoapi and views-pipeline-core still name
PLATFORM-001in the sentence that tells contributors where cross-repo contracts live. One line each, adopting views-models'/this repo's wording. Both files are untracked in those repos, so this is a local edit, not a PR.The "six" is still wrong — it is four — and there is still no named canonical home. Two of the four are ignored, one is tracked, and the sentence says "change this file first and propagate" without saying where first is. With views-models and views-postprocessing now identical and current, the obvious candidate is views-models: it is tracked, so it has history and review, and it was already the only copy carrying the corrected name.
Suggested resolution — a decision, still not mine:
The two earlier versions of this issue, and why they were wrong
Draft 1 claimed "there are four copies, not six" and listed five repos as having none. Wrong: I grepped a hand-written list of nine repo names instead of the directory. There are 27 directories.
Draft 2 claimed "six copies, five distinct versions" and treated the spread as evidence of serious drift. Wrong in the other direction: it counted views-frames and views-bayesian as divergent copies of this document when they are a different document, and it never diffed the files — so it never discovered that the four real copies differed by two lines, one of them correct.
Both errors are the same mistake the register has recorded repeatedly: a number asserted from a plausible-looking count rather than produced by a command against the actual thing. In an issue about exactly that.