Repository navigation
Code health: ban char*, prefix overloads, and too many header names - #322
Merged
Merged
Conversation
Three rules from the review of #312: no char*/char[] types on added lines, no header overload pair whose parameters are a strict prefix of the other's (use a default argument or std::optional), and at most 8 public namespace-scope names per header (7-8 advisory, base comparison like public methods). The two style rules take a justified allow tag on or above the flagged line; header_symbols takes a file-level tag. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss
dayfine
marked this pull request as ready for review
November 10, 2026 06:50
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.
Base:
agents; no parent PRs; the diff shows only this change.The review of #312 asked for three style rules as lint checks. Code Health now fails
char*/char[]types on added lines (notunsigned char, casts ormain), fails a header overload pair whose parameter types are a strict prefix of each other when either is new (use a default argument orstd::optional), and counts public namespace-scope names per header: 8 hard, 7-8 advisory, new headers at the limit and changed ones no higher than their base. The two style rules accept a justified allow tag on or above the flagged line;header_symbolstakes a file-level tag. AGENTS.md "C++ style" gets matching bullets, and the README tables list the checks.Testing: new
test_header_apisuite plus a CLI case; full linter self-tests (130) and both harness checks pass. Run against the story-engine branch (baseorigin/nav/shared) it reports thecheckpoint_start_lineandbuild_story_checkpointoverload pairs, sixconst char*sites, andPokemon_StoryStepExecutor.hat 9 names.🤖 Generated with Claude Code
https://claude.ai/code/session_013VUubhHeYSMGSSDXZkKZss