Privacy and Public-Repository Safety¶
For: anyone publishing audit work from this public repository.
This repository is public. Treat every commit as publishable to the internet.
The rules¶
- Raw audit evidence stays local.
.audit/andaudit-screens/are gitignored. Do not force-add them. - Client reports stay local by default.
reports/*is gitignored exceptreports/README.md. Report packages live underreports/<domain>/<run-id>/. Useexamples/only for synthetic or properly sanitized examples. - Client configuration stays local unless it is the public example.
config/*.jsonis gitignored exceptconfig/market.example.json. - Never commit credentials. No
.envfiles, API keys, tokens, cookies, browser profiles, session stores, private URLs, or production IDs. - Never commit customer PII. No customer names, emails, phone numbers, addresses, review text, or private notes.
- Business information must be public and intentional. A real business name is not automatically safe to publish in an audit. Default to anonymizing unless the business has explicitly approved publication.
- Screenshots can leak. A screenshot may show a logged-in account, a customer name, a phone number, an address, a chat transcript, or a browser profile. Review every image before publishing.
- Do not rely on
.gitignorealone. Checkgit status,git ls-files, and the staged diff before committing.
What stays local¶
| Path | Why |
|---|---|
.audit/ |
Raw screenshots, Lighthouse JSON, signals, site map, and path traces |
audit-screens/ |
Legacy raw screenshot directory |
reports/* |
Generated client report packages (reports/<domain>/<run-id>/) and reports/index.local.md |
evals/* |
Cross-model eval runs, which can contain client evidence |
config/*.json |
Client-specific local configuration; config/market.example.json is the public example |
.env, .env.* |
Secrets and local configuration |
node_modules/ |
Dependencies |
| Browser profiles, HAR files, cookies | Session data |
These are ignored by default. Do not add exceptions for real client data.
What may be public¶
- The rubric, scorer, renderer, verifier, collector, tests, and docs.
- Synthetic fixtures with placeholder names, URLs, phones, addresses, and evidence.
- Sanitized examples that contain only public business information and no customer PII.
- Generated artifacts such as
rubric.md,coverage-matrix.json, andportable-checklist.md.
Sanitization checklist¶
Before publishing an example or fixture:
- Business name replaced with a synthetic name.
- URL replaced with
example.comor*.example. - Phone numbers replaced with
555-01xx. - Addresses replaced with
123 Example St. - License, bond, and policy numbers replaced with placeholders.
- Customer names, review quotes, emails, and job details removed or synthesized.
- Screenshots removed or rebuilt from synthetic pages.
- Analytics IDs, scheduler widget IDs, API keys, and ad account IDs removed.
- Private notes and internal recommendations removed.
- The example is labeled synthetic or sanitized.
-
git diff --cachedreviewed. -
npm run check:privacypasses.
Git history¶
Removing a file from the current tree does not remove it from Git history. A public repository exposes the full history.
Earlier revisions of this repository contained real named client audit artifacts and cross-model eval snapshots, including third-party scheduler embed keys and public business contact details. They were removed from the current tree, and the public repository was deleted and recreated from a clean root commit on 2026-10-26. The old commit is not available in the new repository.
Old clones, forks, browser caches, and third-party mirrors may still contain the earlier revision. Delete and re-clone any old clone, and delete or recreate any fork. A full purge cannot reach copies that were already cloned or forked.
If sensitive material is ever committed again:
- Rotate any exposed credential immediately, even if the file is now deleted.
- Decide whether the repository must be made private temporarily.
- Use a history-rewrite tool such as
git filter-repoonly with explicit owner authorization. - Force-push and tell collaborators to re-clone.
- Re-run the secret scan on the rewritten history.
History rewriting is destructive and requires explicit owner authorization, a backup, and coordination with collaborators.
Secret and PII scan¶
The default scan checks the current tree for private-key blocks, common token prefixes, .env files, and forbidden evidence paths. --history also scans Git history and should pass after the rewrite. If it fails, stop and investigate before publishing. The scan is a safety net, not a substitute for human review.
Reporting a security problem¶
See SECURITY.md. Do not open a public issue that contains a live credential, customer data, or an exploitable detail. Use GitHub's private vulnerability reporting if available.
Client-data handling outside the repository¶
- Store raw evidence in a private local directory or a private client workspace.
- Share reports with the client through an agreed private channel.
- Delete raw evidence when it is no longer needed.
- Do not put client data into a public issue, pull request, gist, or example.
- Do not use real client data in an LLM eval unless the client has approved it and the data is handled under the appropriate agreement.
If you are unsure¶
Default to not committing. A missing example is cheaper than a privacy incident.