DX-412: Add Claude Code instructions distilled from this repo's merged PRs#191
Draft
boyanbtv wants to merge 1 commit into
Draft
DX-412: Add Claude Code instructions distilled from this repo's merged PRs#191boyanbtv wants to merge 1 commit into
boyanbtv wants to merge 1 commit into
Conversation
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.
What this is
We ran 5 of this repository's recently merged PRs through an analysis loop: Claude Code implemented each ticket autonomously from the same starting commit your team had, and a reviewer step compared its implementation and reasoning against your merged result to find the repository knowledge it was missing. The files in this PR are the instructions that would have closed those gaps — so that future AI-assisted work in this repo starts with your team's knowledge instead of rediscovering (or missing) it.
All assets were additionally fact-checked against this repository's current state (commit
2def1a5e3, 2026-06-11) shortly before this PR was opened.Every asset below explains the concrete evidence it came from. Please treat this as a proposal: take what's useful, edit freely, drop the rest.
Proposed assets
.claude/rules/versioning.mdC2 — Confirm goreleaser injects main.version before relying on it at runtime
File:
.claude/rules/versioning.md· Evidence: #138Why this asset — the full reasoning
This repo emits a real client
versiononly in artifacts built by the release pipeline.main.godeclaresvar version = "dev" // Set by goreleaser, and in source,go run, or any plaingo buildit staysdev. PR #138 madeversionload-bearing by putting it into the connection'sUser-Agentheader (CloudConnector/<version>) so Support can identify which Cloud Connector version a customer runs from Gloo/CloudFront access logs. PR #138 also added explicit-X main.version={{ .Version }}linker flags to.goreleaser.yaml's build entry so releases would carry a real version — but commit 5419c5f ("dependabot updates and go version bump") later removed thoseldflags, and at HEAD the build entry carries none. The coupling is non-obvious and the failure mode is silent: with the ldflags gone, the code still compiles andgo teststill passes (tests run against thedevdefault), yet every released client now advertisesCloudConnector/devto the access logs, defeating the header's whole purpose. Unit tests cannot catch this; only a release or snapshot build can. This rule captures the coupling so any change that relies onversionconfirms build-time injection is actually present (re-adding the ldflag where it has been dropped), and keepsdevas the correct sentinel for local runs.Also in this PR: versioning
.claude/rules/This repo's
.gitignorepreviously excluded the whole.claude/directory, which would keep the path-scoped rules above from being versioned or shared. We narrowed it (.claude/*+!.claude/rules/) so the rules travel with the repo — everything else under.claude/(personal/local files) stays ignored.