Status: Deliberately adversarial. Companion to
corpus-audit-2026-07-06.md, which is the fair,
constructive pass; this document’s job is the opposite — attack every premise, steelman
nothing, and see what is still standing afterwards. Where the two disagree in tone, they
do not disagree in facts: every blow below is anchored in the corpus or in a measurement
taken on 2026-07-06.
Rules of engagement: no invented facts; the project’s own documents are the ammunition; §9 records honestly what survives; §10 gives exits, not just wounds.
Measured in the repository on 2026-07-06:
| Metric | Value |
|---|---|
| Markdown files | 74 |
| Words of documentation | 132,754 — the length of a ~450-page novel |
| Lines of application code | 0 |
| Git commits | 0 — main has no commits at all |
| Confirmed users | 1 (Ivan), usage unverified (see §2) |
| Price of the strongest competitors | $0 (claude-code-templates 28.4k★, ccusage 16.8k★, claude-hud 26.1k★) |
| Days of documentation work | 4 (2026-07-03 → 07-06) |
| Analysis documents about the idea | this is the 8th (v1, external review, v2, plan, best-path, probe, animated-room, corpus audit — now this) |
Two of these deserve to be said out loud.
The corpus that preaches durability has zero durability. 132,754 words about WAL
mode, tested restores, append-only substrates and byte-identical replays — and not one
git commit protecting any of it. A single rm -rf, disk failure, or careless agent
session erases four days of work minus the docx files. The project’s most load-bearing
convention (“never commit without an explicit ask”) has combined with the owner never
asking into an outcome the project’s own threat model would grade F. (Fix costs one
sentence from Ivan: “commit the docs.”)
The words-to-code ratio is infinite, and trending worse. Every session so far has added documentation about the documentation. This file is, knowingly, more of the same — which is why it ends with a stop condition (§11).
The table above stands as the 2026-07-06 reading and is not rewritten; what follows is what the same measurements say six weeks later, taken by enumerating files on disk on 2026-08-15.
The two rows this section singled out have inverted. Lines of application code is no
longer zero: 17,393 lines across 114 files (.ts/.tsx/.mjs/.mts under apps/*/src,
packages/*/src and hooks/), with 106 test files beside them. Git commits is no
longer zero either — commits exist, and the durability complaint that opened this section
is therefore answered. The exact count is not stated here because this amendment was
written under a rule forbidding git commands; “more than zero” is what can be verified
without one, and an invented number would be a worse answer than an incomplete one. The
words-to-code ratio is finite. Markdown has kept growing too (129 files), so the corpus
did not stop expanding — it merely stopped being the only thing that was.
Nothing else in this document has been retired by that. §2’s charge is untouched: the
friction log still does not exist anywhere in the repository, so the kill condition’s
second input remains unmeasured and the AND still cannot fire. §7’s governance complaint
has been partly overtaken and partly confirmed — the quality bar was in fact built (100%
coverage in all five packages, each guarded against v8 ignore pragmas), while the gate
that was supposed to make it binding was not: on 2026-08-15 main was unprotected, so
nothing in the repository could physically block a merge. That was the same defect this
section named, one level up: a rule that exists only because everyone agrees to honour it.
And the deepest charge — that nobody has produced a single datum on “should it be
built?” — is exactly as true today as it was on 2026-07-06. Six weeks of building
produced no evidence of demand, because building never could.
As built — 2026-08-25. The governance half above is closed.
mainis branch-protected: the required status check isci(the job id in.github/workflows/ci.yml; the workflow’sCIdisplay name is not the context), and force-pushes tomainand deletion ofmainare refused for everyone. A red run withholds the merge button from a contributor — and, by a stated design choice rather than an oversight, not from the repository owner, becauseenforce_adminsis off: agenthropic has exactly one maintainer whose normal working mode is a direct push tomain, and admin enforcement would lock the sole maintainer out of their own repository. Nothing else in this section moves: the friction log still does not exist, and no datum on “should it be built?” has been produced. See the standing correction.
The three exits in §10 were not taken as written. Exit B’s substance happened — the corpus is parsed, SQLite is written, the DAG renders with dollars on the nodes — but its point did not: there was no day-14 decision with real data, because the usage data Exit B existed to collect was never gathered. What actually happened on 2026-07-11 was a fourth path this document did not list: the owner overrode CD-8 and authorised implementation directly, without the timebox, without the friction log, and without Gate A being fully signed. That is a legitimate owner decision and it is recorded as one; it is not a passed test, and it should not be read here as one.
best-path-decision.md §7/§9 did something genuinely brave: it defined a kill condition
— kill the program if the 2-week baseline friction log is empty AND the probe is
messy. Then the following happened:
That is the textbook shape of motivated reasoning: of the two designed tests, the project executed the one it could pass and indefinitely deferred the one it could fail. The probe answered “can this be built?” (yes, convincingly). Nobody has yet produced a single datum on “should it be?” — and the corpus has spent 132k words carefully not noticing. The best-path memo’s own dissent (“cost tracking is free elsewhere; this competes with kiko and servicenow-mcp for the same evenings”) sits unanswered in the ruling strategy document.
Not metaphorically — there are false statements of fact in load-bearing documents:
docs/analysis/README.md — the index a fresh session reads first — describes the
probe corpus as “148 flat + 18 nested agent files”. The probe itself measured ~849
nested (85.2%). The index misquotes its own flagship evidence by a factor of ~47,
in the direction that makes the easy parser look adequate.DOCS-PLAN.md §5, written after the ruling memo, cheerfully re-approves WP-X11
(“stays”) that the memo deleted. TODO.md schedules it too. Three documents, three
positions, one decision.TODO.md calls itself “the only actionable work” while an entire second WP system
(DOC-P1…U fills) lives invisibly in DOCS-PLAN.Why this is damning rather than merely untidy: this failure mode is the cheap one. Keeping 74 markdown files mutually consistent is a trivial workload compared to keeping 74 files consistent with 20,000 lines of moving code, live schemas and a public site. The corpus is the project’s own demonstration that its documentation process fails at 0 LOC — and the plan’s answer is to add more process (75 WPs, per-role DoD, release checklists). The one counter-example — the 2026-07-06 propagation workflow that swept the four probe corrections corpus-wide — proves consistency is achievable, at the price of a 50-agent workflow per correction batch. That price will not be paid weekly once code exists.
The entire differentiator — persistent cross-session DAG + dollar attribution — is a
parser of undocumented private internals: ~/.claude/projects/*.jsonl,
journal.jsonl, promptId joins, directory shapes. The corpus itself documents 7
different Claude Code versions and one already-observed layout-mechanism change. Three
consequences the optimistic documents underweight:
query_source = main/subagent/auxiliary (vendor v2 §13 — dropped from every
downstream plan; corpus-audit LOST-2). The plan bets everything on scraping the
undocumented signal while ignoring the supported one.The probe is the best artifact in the corpus — and its authority is inflated everywhere it is cited:
journal.jsonl+promptId is parser-gate item 11, marked assumed, and
the flagship “DAG rebuilt from JSONL alone” test silently depends on it
(corpus-audit EMP-1). The project’s proudest quality gate is currently a promissory
note.The dossier graded six rival codebases with file:line rigor — architecture, licensing,
test counts. Nobody ever installed one and tried to answer the five daily questions
with it. Not for an afternoon. The entire “existing tools don’t serve the need” premise
rests on reading their source code, not on using them. It is entirely possible that
claude-code-templates --analytics + ccusage answers four of the five questions today,
for free, with zero maintenance obligation — and that the honest gap is one question
wide (“what did session X spawn and why”), which is a feature request or a 200-line
script, not a 75-WP product. The friction log (§2) was this experiment. It was
designed, praised, and dodged.
Still never run (note added 2026-08-15). Six weeks and a working product later, no rival has been installed and used against the five daily questions, and no friction log exists. This is the one section of this document that the build did not touch at all — and the cheapest thing on the list is now the only thing still outstanding.
Where these bullets stand on 2026-08-15. The last one is closed: an MIT
LICENSEexists at the repository root, so the Berne-convention hole and the LB2 voiding it caused are gone. The diorama bullet is closed in the only way that mattered — the software the site documents now exists, so its troubleshooting pages describe failure modes of a real system rather than an imagined one. The coverage bullet has half-inverted: the bar was not merely met but raised to 100% in all five packages, which sharpens rather than answers the charge that the delivery bar optimises for how a serious OSS project looks; and the “CI-gated” half of it was fiction on 2026-08-15, becausemainwas unprotected and no run could block a merge. (As built, 2026-08-25:mainis branch-protected withcias the required check, so a red run withholds the merge button from a contributor — and deliberately not from the repository owner,enforce_adminsbeing off because agenthropic has one maintainer whose normal working mode is a direct push tomain. See §1a and the standing correction.) The ADR bullet is unchanged in substance: Gate A is only partially signed, so decisions are still marked accepted by an authority that has not finished signing. The QA bullet is unchanged and will stay so.
Intellectual honesty requires the list, and it is not empty:
events_raw + deterministic projection + P0 replay
tests) is the right architecture if the thing is built — right-sized, auditable,
testable.meta.toolUseId ==
tool_use.id with 0 orphans over 968 spawns is a strong empirical anchor for the core
join.Exit A — Kill it. Write the postmortem, extract the reusable assets (parser gate, probe method, security checklist, event-sourcing schema), redirect the evenings to kiko/ syncrona. Defensible today; leaves the “should it exist?” question honestly answered by revealed preference.
Exit B — The brutal timebox (recommended). Invert the plan’s philosophy for two weeks: earn the process with a product, instead of earning the product with process.
Exit C — Status quo. Keep refining documents until Gate A someday gets signed. Indefensible: it has the cost profile of Exit B’s failure branch with none of its information gain, and §3 shows the corpus degrades while it waits.
This is the corpus’s eighth analysis document. Each one has been higher quality than the last, and each one has moved the product exactly as far as the previous seven: zero lines. The marginal value of analysis #9 is negative — it will restate this one with different section numbers and consume the evening that Exit B needs.
Standing instruction to any future session reading this: if asked for further analysis of agenthropic before Gate A is decided or Exit B has run, point to this section and decline in favor of one of the exits in §10. The repository does not have an information problem. It has a decision problem, and decisions are not produced by documents.
The stop condition is still in force (note added 2026-08-15). “Zero lines” was true on 2026-07-06 and is not true now — see §1a — but the sentence it supported does not depend on the count. Analysis #9 was written anyway, on explicit owner instruction overriding this section, and it is the schedule of record (roadmap-v1-v2-2026-07-06.md); that roadmap closed the corpus at nine analyses and admits only verdict records afterwards. Two exist: phase0-verdict.md and parser-spec.md, joined later by the implementation review impl-review-2026-08-09.md — a record of what the code does, not a tenth opinion about whether it should exist. A request for analysis #10 should still be declined here. What the repository has needed since this section was written is unchanged, and it is still not another document.