Skip to content

docs+engine: wire CLAUDE.md -> AGENTS.md -> STYLE_CPP.md; adopt the style in the walk - #142

Merged
helly25 merged 1 commit into
mainfrom
fix/mbo-status-macros
Jun 27, 2026
Merged

docs+engine: wire CLAUDE.md -> AGENTS.md -> STYLE_CPP.md; adopt the style in the walk#142
helly25 merged 1 commit into
mainfrom
fix/mbo-status-macros

Conversation

@helly25

@helly25 helly25 commented Jun 27, 2026

Copy link
Copy Markdown
Owner

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, the MBO_* status macros, and absl::StatusOr - but nothing pulled it into a Claude Code session: there was no CLAUDE.md, and Claude Code loads CLAUDE.md, not AGENTS.md. So the binding rules never reached the agent automatically (the root cause of the std::mutex/hand-rolled-Listing slips).

  • CLAUDE.md (new) imports AGENTS.md and STYLE_CPP.md and marks them binding - completing the CLAUDE.md -> AGENTS.md -> STYLE_CPP.md chain. (AGENTS.md -> STYLE_CPP.md already existed.)
  • STYLE_CPP.md: one new rule made explicit - a "value or error" type is absl::StatusOr<T>, never a hand-rolled {value, status, ok} struct. (Concurrency annotations, the MBO_* macros, and the test helpers were already documented.)
  • walk.cc: ReadDir now uses MBO_ASSIGN_OR_RETURN; the read pool's absl::MutexLock uses 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.

…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
helly25 merged commit 2db57ad into main Jun 27, 2026
8 checks passed
@helly25
helly25 deleted the fix/mbo-status-macros branch June 27, 2026 12:27
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).
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