11 leak alerts, 0 leaks
“To secure ourselves against defeat lies in our own hands, but the opportunity of defeating the enemy is provided by the enemy himself.”
Two public plugin libraries of mine push straight to main, with no pull requests and no CI. A private term list of 50 rules, kept off GitHub, is the only thing between a draft and the public. On 3 Oct the first full scan raised 11 alerts, and none was a leak: 9 came from one rule that matched too much. The one real policy hit came the same night, through a path that had no check at all. Now a gate scans every new commit on every public branch every 15 minutes.
The gate, in four numbers
0 of 11 alerts were real leaks, on the first full scan of every tracked file on 3 Oct.
Alerts from one rule meant for a name next to an email. Its .* ran across the line to the @ of a plugin install command.
How often the gate fetches every public branch and scans each new commit, added lines and message.
960 scans, 3 to 8 Oct, 0 hits. It alerts when it cannot scan, too.
Transcript
Sources and honest limits
REVLeak review of the public plugin library, main at 39f6fe7, 3 Oct 2026 (private; terms masked)GATEGate script and its log, 3 to 8 Oct 2026 (private)GILSun Tzu, The Art of War, chapter IV, verse 2, translated by Lionel Giles, 1910, Project Gutenberg ebook 132: https://www.gutenberg.org/ebooks/132
The real hit was two names of third-party agents inside text quoted from a public marketplace listing; nothing private was described, but my list bans both. It reached main through a catch-up queue that pushed without the private check. The push job for that library refused to push again until it was fixed, which is the fail-closed part. Purging old commits would need a history rewrite and a force push, and copies already fetched stay out of reach, so the gate exists to catch things before that. The scan never prints a matched term. Term lists and allow lists stay off GitHub.
Poured in gold.