Skip to content

docs: salvage the canon PR #140 wrote into the skills - #142

Merged
prorochestvo merged 1 commit into
alphafrom
docs/140-salvage-skill-canon
Aug 23, 2026
Merged

docs: salvage the canon PR #140 wrote into the skills#142
prorochestvo merged 1 commit into
alphafrom
docs/140-salvage-skill-canon

Conversation

@prorochestvo

Copy link
Copy Markdown
Owner

#140 was opened this morning against 16ae37c and slims CLAUDE.md by moving depth into the
three project skills. It conflicts now — in CLAUDE.md and beacon-storage — and the
conflicts are mine: it merged clean against alpha before today's outlook, #139 and #141
landed on the same files. That was a preflight I did not run.

Much of what it moved has since arrived by other routes: the outlook work carried its own
skill sections, and #141 relocated the SQLite PRAGMA and write-lock depth. What did not
arrive is canon written nowhere else. Taken here verbatim rather than paraphrased, because it
is someone else's writing and it is better than a restatement would be.

Salvaged

beacon-collection — the source kind and the options JSON column; the cmd/doctor
operator umbrella; and the reason the Telegram bot bypasses the proxy in code rather than by
configuration: it is the channel that reports collection failures, so it must not share a
failure mode with the thing it reports on. That "why" existed nowhere.

beacon-http-api — the HMAC scheme, spelling out that the literal "WebAppData" is the
key and the bot token is the message, which is the way round that is easy to invert; the
--api-dsn rationale (it travels with the deployment, not with the secrets file); and the
whole PublicError contract with the three assertions every controller error test owes.

beacon-storage — the repository pattern, the source-deletion cascade, and deploy-time
schema reconciliation.

All four skill description blocks are replaced by #140's, whose load triggers are strictly
wider — proxyutil, domain.RateSourceOptions, BEACON_CHROMIUM_PATH,
internal/tools/tgwebapp/initdata.go, internal.PublicError, RequireMigratedSchema,
stubSQLiteDBThrough and more. A skill that does not load is knowledge that is lost, so this
is the half of #140 with the longest reach.

CLAUDE.md

Thinned only where that depth moved, 19330 → 17823. Every tripwire keeps its sentence:
the inner-mux bypass, the batching, the cascade warning, the three-assertion rule.

Not taken: #140's restructuring of CLAUDE.md into ## Architecture / ## Tripwires /
## Configuration
(12054 chars). It is a larger editorial change than a salvage, the file
is already 2177 under its budget, and it deserves to be its own decision rather than a side
effect. The branch stays, so it can be revisited.

Nothing dropped

backticked spans in alpha's CLAUDE.md: 210    absent from the new set: 0
distinct figures:                       15    absent:                  0

scripts/lint-checks.sh and go vet clean. Docs only — no Go changed.

Refs #140

#140 was opened this morning against 16ae37c and slims CLAUDE.md by
moving depth into the three project skills. It conflicts now, and much
of what it moved has since arrived by other routes — the outlook work
carried its own skill sections, and #141 relocated the SQLite PRAGMA and
write-lock depth. What did not arrive is canon written nowhere else, so
it is taken here verbatim rather than paraphrased.

beacon-collection gains the source kind and options JSON column, the
cmd/doctor operator umbrella, and the reason the Telegram bot bypasses
the proxy in code rather than by configuration: it is the channel that
reports collection failures, so it must not share a failure mode with
what it reports on. beacon-http-api gains the HMAC key/message order,
which is the way round that is easy to invert; the --api-dsn rationale;
and the PublicError contract with the three assertions a controller
error test owes. beacon-storage gains the repository pattern, the
source-deletion cascade and deploy-time schema reconciliation. All four
descriptions are replaced by #140's, whose load triggers are strictly
wider.

CLAUDE.md is thinned only where that depth moved, and every tripwire
stays: the inner-mux bypass, the batching, the cascade warning and the
three-assertion rule keep their sentence. 19330 to 17823.

#140's own restructuring of CLAUDE.md into Architecture / Tripwires /
Configuration is not taken. It is a larger editorial change than this,
the file is already under budget, and it should be its own decision
rather than a side effect of salvage.

Nothing was dropped: all 210 backticked spans and 15 figures in the
previous CLAUDE.md still appear in it or in a skill.

Refs: #140

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U6jNuzK5PZrhDWBxB3t2gY
@prorochestvo
prorochestvo merged commit 46b4698 into alpha Aug 23, 2026
1 check passed
prorochestvo added a commit that referenced this pull request Aug 30, 2026
Collapse the 149-commit alpha history into one snapshot. The tree of this
commit is byte-identical to the previous tip, ecbe753, so no source,
migration or configuration changed; only the history did.

This commit has no parent, so main is no longer an ancestor of alpha. main
is deliberately left where it was, at r_0.0.2, and continues to serve as
the production pointer until the next non-prerelease release moves it onto
this history. The alternative, rebuilding alpha on top of main, was
rejected because it leaves alpha at 55 commits rather than one.

The prior history remains reachable through the release tags r_0.0.1,
r_0.0.2 and r_0.0.3-alpha.24, and in full through main. Five superseded
alpha prerelease tags that existed only in the local clone were deleted;
the three tags above are the complete set on the remote.

Every merged branch was verified absorbed before deletion: thirteen by
squash merge, feat/4-hot-archive-split as a plain ancestor, and
chore/68-adopt-golangci-lint as an ancestor of the merged PR #80. The one
branch whose pull request was closed rather than merged,
docs/slim-claude-md, had its canon salvaged into the project skills by
PR #142; the four documentation references unique to it carry no code.

Makefile VERSION derives from git describe --match 'r_*'. No tag is
reachable from this root, so it falls back to the short commit hash until
the next r_* tag is cut, at which point it resolves normally again.

BREAKING CHANGE: the alpha history is rewritten and force-pushed. Existing
clones cannot reconcile this by pulling and must reset to the new alpha
ref. To reverse this, restore alpha to ecbe753, which is preserved in the
reflog and in a full bundle of every pre-rewrite ref.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nz77JABRj78e92q1sRPuyF
@prorochestvo
prorochestvo deleted the docs/140-salvage-skill-canon branch August 30, 2026 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant