Use when users say "is this legal AI app local-first", "what leaves the machine", "BYOK privacy", "audit network calls", "where are documents stored", or need a legal AI workspace reviewed for local s…
Library skill — the default version is maintained in GitHub; edits you make live in your own clone.
This skill is a design and audit checklist. It is not a claim that local-first equals risk-free.
Audience: legal-technology counsel, privacy/security-aware lawyers, and legal engineers reviewing a legal AI workspace with technical input where needed.
Work shape: pattern-matched audit when evidence exists; accretive design review when the user is designing a workflow. Keep those paths separate in the output.
This skill works in three modes:
If code, runtime evidence, or provider documentation is unavailable, mark claims unknown or not_observed_not_excluded. Do not treat a product's privacy statement as verified architecture.
Identify where local data lives:
Prefer one user-chosen workspace folder so backup, deletion, and migration are understandable.
List every possible external call:
For each call, record:
| Field | Meaning |
|---|---|
| destination | host or service |
| trigger | what user action causes it |
| payload | what data is sent |
| credential | whose key or token is used |
| retention | known retention posture |
| opt-out | whether user can disable it |
| evidence | code path, config file, package, provider documentation, policy URL, or runtime observation supporting the row |
| retrieval_date | date external provider terms or documentation were checked |
Do not assert that there are no hidden network paths unless code, dependency, configuration, and runtime evidence has been checked. If a path is not observed but not exhaustively verified, mark not_observed_not_excluded; if unknown, mark unknown.
Check:
For legal users, produce a short note:
Plain English matters. A lawyer should be able to explain the risk to a client, judge, supervisor, or DPO.
Output as:
local_state_map table: data type, path/location, sensitivity, deletion method, backup implication.external_calls table using the fields above.credential_handling summary.user_disclosure_note in plain English.unknowns_and_verification_needed.Add an overall confidence band to user_disclosure_note:
Apply the same High/Medium/Low band to the overall disclosure note and separately preserve row-level evidence states (observed, user_reported, provider_documentation, unknown, not_observed_not_excluded).
Flag:
Stop and route to privacy counsel, a security engineer, or the system owner when plaintext credentials are found, marketing/privacy claims contradict code or runtime evidence, unexpected outbound destinations appear, provider retention terms are missing for client data, or the user wants a client-facing assurance without runtime evidence.
Audit this legal AI app's privacy boundary. Tell me what stays local, what leaves the machine, and what the user must understand before processing confidential documents.
For a compact output pattern, see examples/output.md.
For workspace boundary, BYOK, network inventory, and conversion-risk conventions, see references/local-first-model.md.