docs: say what the product does now, not what it did in August - #25
Merged
Conversation
An audit of the whole corpus against the code. Twenty-odd claims had gone false; these are the ones that would have cost someone something. **The privacy promise had quietly outgrown itself.** Three documents said the release check is the *single* outbound call. The daemon can now also reach Google (Gemini, on the user's own key) and Telegram (the weekly report, to the user's own bot) — both opt-in, both to destinations the user chose, both with an ADR. Nothing goes to Caprock, and that is the promise worth keeping; "one call" was the wording, not the principle. All three now name the three. **The premium page sold a shipped feature as unbuilt.** The weekly report has been working since v0.42.1, and sat under a heading saying "Not written yet. Subscribing is what decides whether these get built" — so a reader paid for a promise that was already a product. The section is now "What premium unlocks". It also advertised a webhook transport that does not exist, and a key-watching feature nobody has written; the first is corrected, the second replaced by Gemini, which is real and was missing from the site entirely. **The release runbook told you to verify a number that cannot appear.** It says to confirm `hooks: 8/8`; there are nine hooks since StopFailure. Following the runbook would have blocked a release on a check that must fail. **Gemini was missing from every user-facing list of agents** — the README, the site's works-with row, the site docs, the architecture doc, the UI doc, the build status. Each said two agents; there are three, arriving three different ways, which is the interesting part and was nowhere. **Two ADRs recorded decisions that were later overturned, with no forward pointer**: ADR-019 (a session ends after an hour of silence — replaced by process liveness in ADR-028, on exactly the evidence its own "revisit if" asked for) and ADR-023 (the Gemini key is never stored — reversed by ADR-025). Both now say so at the top. ADR-005 ruled out licence keys in Phases 0–1; its condition has since been met, and it says that too. **04-ui.md taught the wrong byte sequence.** It documented the newline key as `5c 6e` and explained at length why that value was right. It is `1b 0d`, ESC CR; `5c 6e` was one of four wrong answers, three of which survived because they were tested on an empty prompt where a key that submits and a key that adds a line look identical. That is the part worth keeping. Also: the manual release ledgers in 14-build-status.md and docs/RELEASING.md (one stopped at v0.10.0, eighty-four releases ago) are replaced by a pointer to CHANGELOG.md and git describe, which is what rule 9 asks for; `tool_bytes` and the `gemini` event source are in the contract's DDL; the daily cap and OpenCode's SSE and fixture tests are no longer described as unbuilt; the site's CLI reference lists `report` and `license`, without which a buyer cannot activate what they bought; and the scripts inventory names the screenshot tooling it has had for weeks. Claude-Session: https://claude.ai/code/session_01DR8fggA2LRHcjNWUsqtDcF
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
An audit of the whole corpus —
.ai/, README, CONTRIBUTING,docs/, and the site — against the code. Twenty-odd claims had gone false. These are the ones that would have cost someone something.The privacy promise had quietly outgrown itself
Three documents said the release check is the single outbound call. The daemon can now also reach
generativelanguage.googleapis.com(Gemini, on the user's own key) andapi.telegram.org(the weekly report, to the user's own bot). Both are opt-in, both go to destinations the user chose, and both have an ADR — but the rule text never moved. Nothing is sent to Caprock, and that is the promise worth keeping; "one call" was the wording, not the principle. All three now name all three.The premium page sold a shipped feature as unbuilt
The weekly report has worked since v0.42.1 and was sitting under a heading reading "Not written yet. Subscribing is what decides whether these get built" — so someone paying was told they were funding a promise that was already a product. Now "What premium unlocks". The same list advertised a webhook transport that does not exist (corrected) and a key-watching feature nobody has written (replaced with Gemini, which is real and appeared nowhere on the site).
The release runbook told you to verify a number that cannot appear
docs/RELEASING.mdsays to confirmcaprock statusreadshooks: 8/8. There are nine hooks sinceStopFailure. Following the runbook would have blocked a release on a check that must fail.Gemini was missing from every user-facing list of agents
README, the site's works-with row, the site docs,
02-architecture.md,04-ui.md,14-build-status.md. Each described two agents. There are three, and they arrive three different ways — a shim and transcripts, a read-only SQLite database, and OpenTelemetry — which is the interesting part and was written down nowhere.Two overturned ADRs had no forward pointer
config.jsonat 0600, write-only over HTTP.Both now say so at the top. ADR-005 ruled out licence keys in Phases 0–1 and its revisit condition has since been met; it says that too.
04-ui.mdtaught the wrong byte sequenceIt documented the newline key as
5c 6eand explained at length why that value was correct. It is1b 0d— ESC CR.5c 6ewas one of four wrong answers, and three of them survived because they were tested on an empty prompt, where a key that submits and a key that adds a line look identical. That is the part worth keeping, and it is what the section says now.Also
14-build-status.mdanddocs/RELEASING.md— one stopped at v0.10.0, eighty-four releases ago — are replaced by a pointer toCHANGELOG.mdandgit describe, which is what rule 9 asks for.tool_bytesand thegeminievent source are in the contract's DDL (rule 8 — they should have landed with the migration).reportandlicense— without the latter a buyer cannot activate what they bought.The site's own changes (works-with row, premium page, docs page, changelog synced to v0.48.0) are in
caprock-weband need their own push.https://claude.ai/code/session_01DR8fggA2LRHcjNWUsqtDcF