Skip to content

privacy-review skill + end-of-session Stop hook (premium hides the body, not the fact) - #222

Merged
omars-lab merged 1 commit into
masterfrom
feat/privacy-review-skill
Jul 13, 2026
Merged

privacy-review skill + end-of-session Stop hook (premium hides the body, not the fact)#222
omars-lab merged 1 commit into
masterfrom
feat/privacy-review-skill

Conversation

@omars-lab

Copy link
Copy Markdown
Owner

Why

Direct outcome of a near-miss this session: a premium: true career doc titled "Targeting: Director, Deployed Engineering (LangChain)" was nearly published. Premium gating would have encrypted the body, but the title, URL, description, and teaser ship public in clear, broadcasting an active job search at a named company (and the current employer in the body). We caught it by hand and kept the doc off the repo. This encodes that check so it's never a lucky catch again.

What

  • privacy-review skill — the mental model + review process:
    • A table of what premium encrypts (the rendered body only) vs. what ships public in clear (title, slug/URL, description, premium_teaser, tags, listing READMEs).
    • Two passes: a clear-fields leak audit + a third-party-lens read (as employer / competitor / recruiter / search engine).
    • Four dispositions, most-protective first: keep off the repo (+ git purge) · de-identify into a case study · draft: true · publish.
    • The purge procedure for getting a sensitive doc fully out of git (reflog expire + gc, verify never reached gh-pages).
  • privacy-review-reminder.sh Stop hook — fires at session end when premium/career/personal content was touched and no review ran; silent otherwise (and once the skill has run). Ships a --selftest (3 assertions) per the every-hook-proves-it-bites tenet; registered in settings.json.
  • manage-premium-content — a prominent "premium is NOT a privacy guarantee" cross-link.

Verification

  • Hook --selftest: 3 assertions pass.
  • make validate-hook-tests: green (all 33 validator hooks ship a passing selftest).
  • 3 live-fire tests: fires on sensitive-content+no-review; silent on unrelated work; silent when the skill already ran.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WRtyLha5c6gN3VJ6cEqRPu

Encode the hard-won lesson that premium gating hides the BODY, not the
FACT: the title, slug/URL, description, premium_teaser, tags, and any
listing README all ship PUBLIC in clear. A gated "Targeting Director at
LangChain" doc still broadcasts a job search via its public fields.

- privacy-review skill: the mental-model table (what premium encrypts vs
  what ships public), the two-pass review (clear-fields leak audit +
  third-party-lens read as employer/competitor/recruiter/search engine),
  the dispositions (publish / de-identify into a case study / draft:true /
  keep off the repo + purge git), and the purge procedure.
- privacy-review-reminder.sh Stop hook: fires at session end when
  premium/career/personal content was touched and no privacy review ran,
  so nothing sensitive ships by accident. Ships a --selftest (3 assertions)
  per the every-hook-proves-it-bites tenet; registered in settings.json.
- manage-premium-content: a prominent "premium is NOT a privacy guarantee"
  cross-link at the top.

Verified: hook --selftest passes, make validate-hook-tests green (33 hooks),
and 3 live-fire tests (fires on sensitive+no-review, silent otherwise).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WRtyLha5c6gN3VJ6cEqRPu
@omars-lab
omars-lab merged commit d5becbb into master Jul 13, 2026
2 checks passed
@omars-lab
omars-lab deleted the feat/privacy-review-skill branch July 13, 2026 18:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant