docs: PII cleanup plan for base/overlay sanitization - #2
Draft
lutzfinger wants to merge 1 commit into
Draft
Conversation
Working plan to strip operator PII from the public base repo per PRINCIPLES.md 17/18/24 (mechanisms public, values private overlay). Names files and categories only; contains no literal private values. Delete once cleanup is complete.
lutzfinger
force-pushed
the
claude/code-review-privacy-style-1q80dg
branch
from
June 14, 2026 20:01
006c35c to
7d2bfa8
Compare
lutzfinger
added a commit
that referenced
this pull request
Jun 14, 2026
…oice draft -> approve -> send) Email sai@ 'send an invoice to <name> over <amount> for <services>' and the daemon drafts an UNSENT QBO invoice, replies in-thread, and on the operator's APPROVE reply sends it (CC hello@example.com) or on REJECT deletes it. Reuses the poll loop, email_intents (new intent_kind=invoice), send_reply, and qb_client. The send is gated by the email reply (#2/#7a); fail closed on bad amount / unresolved name / missing service item; idempotent by trigger_hash. - qb_client: create_customer, get_invoice, send_invoice (set BillEmailCc then POST /send), delete_invoice. - invoice_logic_bridge: imports the ONE source of truth (invoice-draft-and-send lib/invoice_lib.py) instead of duplicating money logic (#33a coupling, loose-ended to app/canonical). - dispatch_agent: INVOICE_DRAFT verdict (cost-compiler trip/receipt cases still win; guarded against regression). - invoice_intent: turn-1 draft + approve/reject reply handlers. - email_runner: wire the new-trigger branch + invoice reply routing. 16 new tests; full receipt-collector suite 68 passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
lutzfinger
force-pushed
the
claude/code-review-privacy-style-1q80dg
branch
from
June 14, 2026 22:51
7d2bfa8 to
51f529a
Compare
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
Adds
CLEANUP-PLAN-PII.md— a working plan to strip operator PII from the publicbase repo so it honors its own
PRINCIPLES.md§17/§18/§24 (mechanisms public,values private overlay).
This PR is plan-only. No code/PII has been changed yet. It exists so the
cleanup can be executed in a fresh session (the container is ephemeral; pushing is
the only way the plan survives).
Why
A code review found ~40+ files in the base repo contain real operator data that
should live only in the private
SAIoverlay:app/tools/*skills/receipt-collector/docs/STATUS.md(real QBOinvoice/purchase IDs with clickable
qbo.intuit.com?txnId=links, amounts,vendors, a named person) — highest severity
~/Lutz_Dev/SAI/,/Users/<user>/)The plan groups these into 6 phases (emails, names, financial data, paths,
locations, then enforce via the existing
scripts/boundary_check.pylinter +gitignored
boundary_check_private_terms.txt).Notes
categories — so it is safe to commit. Exact literals are rediscovered via the
documented grep commands / the boundary linter.
real values into the private
SAIoverlay must be done from a session that hasthat repo mounted (not available here).
CLEANUP-PLAN-PII.mdis temporary and should be deleted when the cleanup lands.https://claude.ai/code/session_01EyXsoFMqtvrTLvVh8n9uCB
Generated by Claude Code