Repository navigation
Replace personal identifiers with role names; add keyed privacy gate - #72
Merged
Merged
Conversation
…y gate Scrub machine names, personal names, handles and local path shapes from comments, tests, fixtures and docs and use role-based wording and placeholders instead. Adds scripts/ci/privacy-gate.py: HMAC digests of normalized terms (key kept outside the repo) plus shape rules over the whole tree, filenames and commit messages, never echoing matched values, with a planted-term self-test and a CI job for it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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.
Intent
Remove personal and operator-private identifiers from the working tree and add a gate that keeps them out without publishing its own list.
What changed
scripts/ci/privacy-gate.py: HMAC-SHA256 digests of normalized terms (key from env, a local key file, or thePRIVACY_GATE_KEYrepo secret; never committed) plus key-free shape rules. Scans every tracked file, every path (flagged components printed as***) and non-merge commit messages in the PR range. Never echoes matched values. A self-test plants an invented term and must fail. New CI jobprivacy-gateon a free ubuntu runner.docs/privacy-gate.mdexplains how to add a term without committing it.How tested
Gate self-test (8 cases) and the gate over the tree: clean. A planted real term in a tracked file failed the gate, then was removed.
go build,go vetandgo test ./... -count=1: pass.Risk
Low. Comments, tests, fixtures, docs and CI only; no runtime identifier changed. Module path and repo URL untouched; history not rewritten.
Tier: standard (no reviewer); typed tier scoring not run.
🤖 Generated with Claude Code