chore(docs): document make tools-update and unpin version from Tech Stack line#925
Merged
Merged
Conversation
…from Tech Stack Three small fixes to the contributor docs, all triggered by a real lint miss on PR NVIDIA#924 where a local `golangci-lint` v2.10.1 silently passed a `goconst` finding that CI's v2.12.2 caught: 1. **Drop the hard-coded `v2.11.3` from CLAUDE.md and AGENTS.md Tech Stack.** Renovate auto-bumps `.settings.yaml` via its `# renovate:` annotation, but the bare prose mention in CLAUDE.md never moves — so the doc drifts every minor bump. Replacing with "pinned versions in `.settings.yaml`" makes the pointer self-healing. 2. **Document `make tools-update` in DEVELOPMENT.md and CONTRIBUTING.md.** The make target exists and is the only way to *upgrade* an existing local install to match `.settings.yaml`, but it was undocumented — CONTRIBUTING and DEVELOPMENT only mentioned `tools-setup` (first-time install) and `tools-check` (verify). DEVELOPMENT's troubleshooting row even pointed contributors at the wrong target (`tools-setup` for an upgrade scenario). 3. **Add a callout that local lint can silently miss issues if the toolchain is behind CI**, with `make tools-update` as the fix. This is the specific pitfall PR NVIDIA#924 hit; the existing docs implied `make qualify` passing locally is sufficient, which is only true when `.settings.yaml` and the local toolchain agree. Doc-only — no code or YAML changes. Verified with `make check-agents-sync`, `make check-docs-mdx`, and `make check-docs-filenames` (all pass). Full `make qualify` skipped per CLAUDE.local.md's doc-only verification rule.
ee5b35b to
374c621
Compare
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Enterprise Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThis PR updates contributor and reference documentation to centralize tool version management in Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Suggested reviewers
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
mchmarny
approved these changes
May 15, 2026
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.
Summary
Three small contributor-doc fixes, all triggered by a real lint miss on PR #924 where local
golangci-lintv2.10.1 silently passed agoconstfinding that CI's v2.12.2 caught.Motivation / Context
While addressing CodeRabbit review on #924, CI flagged a
goconstissue that my localmake qualifyhad cleared. Root cause: my localgolangci-lintwas v2.10.1 while CI runs v2.12.2 (pinned in.settings.yaml). Thegoconstcheck tightened its default occurrence threshold between those versions, so the local lint silently produced a false negative.Investigation surfaced three small doc gaps that contributed:
.claude/CLAUDE.mdandAGENTS.mdhard-codegolangci-lint v2.11.3in the Tech Stack line. Renovate auto-bumps.settings.yamlvia the# renovate:annotation on each pinned line, but the bare prose mention in CLAUDE.md/AGENTS.md never moves — so the doc drifts on every minor bump. Today.settings.yamlsaysv2.12.2; the docs still sayv2.11.3.make tools-updateis undocumented in CONTRIBUTING.md, DEVELOPMENT.md, and the contributor docs. The target exists inMakefileand is the only way to upgrade an existing local install to match.settings.yaml. The existing docs only describetools-setup(first-time install) andtools-check(verify). The DEVELOPMENT.md troubleshooting row even pointed contributors at the wrong target (tools-setupfor an upgrade scenario).make qualifypassing locally guarantees CI passes — which is only true when.settings.yamland the local toolchain agree.Fixes: N/A (no issue filed; surfaced from PR #924 review)
Related: #924
Type of Change
Component(s) Affected
docs/,examples/)CONTRIBUTING.md,DEVELOPMENT.md), agent docs (.claude/CLAUDE.md,AGENTS.md)Implementation Notes
.settings.yaml, local installs lag behind CI until you runmake tools-update. Calls out the silent false-negative lint scenario as the main pitfall..settings.yamlto mentiontools-updatealongsidetools-setup, and added a sentence noting that themake qualify≡ CI guarantee only holds when the local toolchain matches.settings.yaml. Tightened the recommended starting-points bullet to mentiontools-updatenext totools-check.Testing
Doc-only PR (4 markdown files: `.claude/CLAUDE.md`, `AGENTS.md`, `CONTRIBUTING.md`, `DEVELOPMENT.md`). Per
CLAUDE.local.md's doc-only verification rule, ran the cheap doc-scoped checks instead of full `make qualify`:```bash
make check-agents-sync # OK: AGENTS.md is in sync with .claude/CLAUDE.md
make check-docs-mdx # OK: all doc files are MDX-safe
make check-docs-filenames # OK: all doc filenames follow kebab-case convention
```
Full `make qualify` skipped because:
Risk Assessment
Rollout notes: None. Contributors who already know `make tools-update` are unaffected; new contributors and anyone diagnosing the "qualify passes locally but fails in CI" failure mode get correct guidance.
Checklist
make testwith-race) — N/A, doc-onlymake lint) — N/A, doc-only; scoped doc checks rangit commit -S)