Skip to content

doc: CLAUDE.md - a rule against committing build output, and two stale notes - #118

Merged
jll63 merged 2 commits into
boostorg:developfrom
jll63:chore/claude-md-affinity-notes
Sep 19, 2026
Merged

jll63 merged 2 commits into
boostorg:developfrom
jll63:chore/claude-md-affinity-notes

Conversation

@jll63

@jll63 jll63 commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator

(Written by Claude Code, on behalf of @jll63.)

CLAUDE.md only; no code, no tests.

A rule against committing build output

#103 merged 415 files of b2 output - 613 MiB expanded, 94 MiB in the pack, on a
repository of about 3 MB - days after #108 added the bin/ ignore rule intended
to prevent it. The branch was cut before that rule landed, and an ignore rule has
no effect on a path that is already tracked, so the merge carried them in.

Nothing in the build or in review catches this, and #117 can only untrack them.
A rewrite of develop is not available as a remedy: the superproject pins this
library by SHA and its bot bumps the pin within minutes of every merge, so
rewriting orphans commits boostorg/boost already points at; and the blobs stay
reachable through refs/pull/<n>/head, which a maintainer cannot delete. So the
rule goes next to the workflow it belongs to - stage named paths, never
git add <dir>, and ask before committing a build artefact or any file over 1MB.

Two stale notes in the registry-affinity section

"One thing deliberately does not participate", followed by two things. #113
collapsed the original Two things ... and both are documented as such: bullets
into a single sentence, because use_classes had just started participating - but
the sentence goes on to name both the interop headers and the C++26
register_classes. Restored to bullets for the two that are left.

"the any and type_erasure interop headers are untouched". #116 touched all
three of them, and had to: #113 gave virtual_ a registry parameter, and their
validate_method_parameter specializations still spelled virtual_<T>, which
after that change matches only the defaulted argument. The affinity claim - the
actual point of the paragraph - does survive, so the note now says that a
virtual_any contributes no affinity, separates it from a parameter spelling a
registry, and records why a specialization there cannot go back to the bare
spelling.

The PCH paragraph names one override-carrying header; the scan looks for two.
test/CMakeLists.txt has scanned for test_checked_registry.hpp alongside
test_capture_errors.hpp since #93. The sentence three lines above it, "do not add
a fourth marker", already counts three markers, so only the enumeration was stale.

🤖 Generated with Claude Code

@cppalliance-bot

cppalliance-bot commented Sep 17, 2026

Copy link
Copy Markdown

An automated preview of the documentation is available at https://118.openmethod.prtest3.cppalliance.org/libs/openmethod/doc/html/index.html

If more commits are pushed to the pull request, the docs will rebuild at the same URL.

2026-09-19 16:06:56 UTC

@jll63 jll63 changed the title doc: correct two stale notes in CLAUDE.md's registry-affinity section doc: CLAUDE.md - a rule against committing build output, and two stale notes Sep 17, 2026
@jll63
jll63 force-pushed the chore/claude-md-affinity-notes branch from 1a450c6 to 5f29c67 Compare September 19, 2026 15:54
jll63 and others added 2 commits September 19, 2026 12:03
Both were falsified by changes that did not update the prose around them.

boostorg#113 collapsed the "Two things deliberately do not participate" bullets
into one sentence, because `use_classes` had just started participating -
but then named two things under "One thing": the interop headers and the
C++26 `register_classes`. Restore the bullet form for the two that are
left.

The same sentence says the `any` and `type_erasure` interop headers "are
untouched". boostorg#116 touched all three of them, and had to: boostorg#113 gave
`virtual_` a registry parameter, and their `validate_method_parameter`
specializations still spelled `virtual_<T>`, which after the change
matches only the defaulted argument. What survives is the affinity claim,
which is the point of the paragraph - a `virtual_any` contributes none.
Say that, and record why a specialization there cannot go back to the
bare spelling.

The PCH paragraph names `test_capture_errors.hpp` as the only header that
carries the override on a test's behalf. `test/CMakeLists.txt` has
scanned for `test_checked_registry.hpp` as well since boostorg#93; the sentence
three lines above, "do not add a fourth marker", already counts three.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
boostorg#103 merged 415 files of b2 output - 613 MiB expanded, 94 MiB in the
pack, on a repository of about 3 MB - days after boostorg#108 added the `bin/`
ignore rule intended to prevent it. The branch was cut before that rule
landed, and an ignore rule does not apply to a path that is already
tracked, so the merge carried them in.

Nothing in the build or the review catches this, and boostorg#117 could only
untrack them: the superproject pins this library by SHA and its bot
bumps the pin within minutes of every merge, so rewriting `develop`
orphans commits `boostorg/boost` already points at - and would not even
remove the blobs, which stay reachable through `refs/pull/<n>/head`.

Write the rule down where the workflow is: stage named paths, never
`git add <dir>`, and ask before committing a build artefact or any file
over 1MB.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@jll63
jll63 force-pushed the chore/claude-md-affinity-notes branch from 5f29c67 to 4a1a726 Compare September 19, 2026 16:03
@jll63
jll63 merged commit d5ce26b into boostorg:develop Sep 19, 2026
7 of 8 checks passed
@jll63
jll63 deleted the chore/claude-md-affinity-notes branch September 20, 2026 18:27
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.

2 participants