docs+engine: wire CLAUDE.md -> AGENTS.md -> STYLE_CPP.md; adopt the style in the walk - #142
Merged
Conversation
…tyle in the walk
The style guide already mandated absl::Mutex + thread annotations, the MBO_*
status macros, and absl::StatusOr - but nothing pulled it into a Claude Code
session (no CLAUDE.md; Claude reads CLAUDE.md, not AGENTS.md), so it was easy
to miss. Fixes:
- Add CLAUDE.md that imports AGENTS.md and STYLE_CPP.md (binding), completing
the CLAUDE.md -> AGENTS.md -> STYLE_CPP.md chain.
- STYLE_CPP.md: state explicitly that a value-or-error type IS absl::StatusOr,
not a hand-rolled {value, status, ok} struct.
- walk.cc: ReadDir uses MBO_ASSIGN_OR_RETURN; the read pool's MutexLock uses
the reference constructor (the pointer form is deprecated per the guide).
Full suite green under default, asan+ubsan, and tsan.
helly25
added a commit
that referenced
this pull request
Aug 8, 2026
Port the last two verbatim topics off the imperative RenderNotice / RenderLicense onto the model: add NoticeSection() and LicenseSection() in help_build.cc, each a title-less section holding an Example. A title-less section adds no heading and does not indent, so the Example renders byte-exact at column 0 - exactly what verbatim legal text needs (no reflow, no fence), with the copyright leading --help=license (task #142). Route both (and aliases notices / licenses) through TopicReference; they stay out of the man/markdown reference (legal boilerplate). Delete RenderNotice / RenderLicense and their RenderHelp branches; move the license dep from help_cc to help_build_cc. No XFF.md change. Add model render tests; help_topic_test.sh unchanged (verbatim output preserved).
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.
Follow-up to the parallel walk (#140/#141), addressing review feedback. No auto-merge - yours to review.
The style guide already mandated
absl::Mutex+ thread annotations, theMBO_*status macros, andabsl::StatusOr- but nothing pulled it into a Claude Code session: there was noCLAUDE.md, and Claude Code loadsCLAUDE.md, notAGENTS.md. So the binding rules never reached the agent automatically (the root cause of thestd::mutex/hand-rolled-Listingslips).CLAUDE.md(new) importsAGENTS.mdandSTYLE_CPP.mdand marks them binding - completing theCLAUDE.md -> AGENTS.md -> STYLE_CPP.mdchain. (AGENTS.md -> STYLE_CPP.mdalready existed.)STYLE_CPP.md: one new rule made explicit - a "value or error" type isabsl::StatusOr<T>, never a hand-rolled{value, status, ok}struct. (Concurrency annotations, theMBO_*macros, and the test helpers were already documented.)walk.cc:ReadDirnow usesMBO_ASSIGN_OR_RETURN; the read pool'sabsl::MutexLockuses the reference constructor (the pointer form is deprecated per the guide).Full suite green under default,
--config=clang --config=asan, and--config=clang --config=tsan.