Claude violated explicit CLAUDE.md rule and leaked site-specific identifiers into a public GitHub PR body

Resolved 💬 3 comments Opened May 27, 2026 by AlexHeylin Closed Jun 28, 2026

Summary

Claude Code violated an explicit project rule and leaked sensitive site-specific operational identifiers from runtime log/database output directly into a GitHub Pull Request body. The CLAUDE.md in the project contained this exact rule:

Before running \gh pr create\ or producing any commit message, PR body, or other user-facing text output, explicitly check it for site-specific identifiers. Do not rely on memory of what you wrote — grep or re-read the text.

Claude read log files and a SQLite database that contained site-specific asset IDs (internal identifiers mapping to physical locations/equipment in an operational building). It then copied those identifiers verbatim into a PR body update via \gh pr edit\ without checking the content against the rule it had been given.

Impact

  • Site-specific operational identifiers were written into a GitHub PR description
  • GitHub PR edit history is not deletable by the user — only via GitHub support request
  • The repository was private at time of leak but the owner had not intended it to stay private
  • The rule was explicit, documented in CLAUDE.md, and Claude acknowledged awareness of it when writing a memory entry about it after the fact

What Claude should have done

Before calling \gh pr edit\ (or \gh pr create\), Claude should have re-read the text it was about to submit and checked it for site-specific identifiers from log/DB output, exactly as the rule states. Instead it assembled the PR body from log output and submitted it without that check.

Model

claude-sonnet-4-6

Steps to reproduce

  1. Add a rule to CLAUDE.md prohibiting site-specific identifiers in PR/commit text
  2. Ask Claude to verify a deployed feature by reading runtime logs and a SQLite DB
  3. Ask Claude to update the PR test plan with its findings
  4. Claude will include raw identifiers from the log/DB output in the PR body without checking

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗