← Files VeraARCHIVED FILE

skills/privacy-surface-review/SKILL.md

5.34 KB · Oct 2, 2026 · 00:29 UTC

↓ Download file

---
name: privacy-surface-review
description: Use when adding, changing, reviewing, or releasing a Vera workflow or shared service to record model-context, provider-account, external-data, and security boundaries before packaging.
---

# External Boundary Review

After substantive use of this workflow, read and follow the `Plugin Improvement Feedback` section in `../vera/SKILL.md`.

This is a developer and release workflow, not a customer-case intake step. A
normal Vera run does not show a privacy notice or request privacy confirmation
merely because the selected model runtime reads professional case data.

## Review workflow

1. Resolve the Vera root and read `components.json`, including registered
   workstreams and shared services.
2. Select the changed workstream and resolve its source as
   `modules/<workstream>` in an installed package or `../<workstream>` beside
   Vera in repository source. Treat that resolved root as the plugin working
   directory for the review.
3. Read that module's complete workflow skill and the relevant scripts, schemas,
   MCP tools, and review-payload builders.
4. Record the classes of information the workflow can place in model context.
   Real client and case data may enter the selected runtime's model context. Do
   not promise local-only processing when OpenAI Codex or Anthropic Cowork reads
   the material.
5. Read `privacy/runtime-profiles.json`. Each workstream references both
   `openai-codex` and `anthropic-cowork` rather than duplicating provider copies
   of the workstream manifest. The shared profiles state the selected account,
   provider model-processing destination, absence of automatic anonymization,
   and absence of a local-only guarantee.
6. Record every external boundary: public research or URL fetching, a
   hosted service, an external connector, or a send/publish action. An empty
   list is a valid and useful result.
7. For each external boundary, state the destination, purpose, content,
   applicable runtime profiles, whether it is optional, whether confirmation is
   required, and the controls enforced by the workflow. A separate confirmation
   is required only when the route is optional and the user has not already
   chosen it. Reuse the user's explicit route choice only where the host permits prior
   approval; it never overrides action-time confirmation or a denied operation.
8. Record only concrete security controls and the account boundary selected by
   the firm or user. An empty security-control array is more accurate than
   relabelling local processing, draft status, or policy wording as security.
   Vera cannot inspect or enforce the user's plan, model-training data controls,
   or retention/deletion controls. The firm or user checks those before
   professional use and when the account or terms change, not in a per-case form.
   For ordinary model processing, record that the selected OpenAI Codex or
   Anthropic Cowork account arrangement applies, Vera is not a separate
   recipient, nothing is automatically anonymized, processing is not local
   only, and local filtering or aggregation is used only when it helps the
   work.
9. If the workstream has a public process page or named product-page section,
   read `../vera/references/public-process-page-contract.md` and apply it. Every public
   process explanation has one localized “Quali dati arrivano al modello” /
   “What data reaches the model” block. Choose `relevant` or `not-relevant`
   from the inspected workflow evidence. Do not use `not-relevant` as a
   fallback for an incomplete review. Place the entire block last in the public
   process explanation, after every description, step, output, review boundary
   and call to action; no process content may follow it. Keep `/data-handling`
   as the global boundary explanation rather than recreating a central
   per-process register.
10. Update `privacy/workstreams/<workstream>.json` or
   `privacy/services/<service>.json` using `references/manifest-contract.md`,
   then refresh its source fingerprint:

```bash
python skills/privacy-surface-review/scripts/validate_privacy_surfaces.py \
  --refresh <workstream>

python skills/privacy-surface-review/scripts/validate_privacy_surfaces.py \
  --refresh-service <service>
```

11. Validate the complete register, run the Vera package tests, and rebuild the
   plugin ZIP:

```bash
python skills/privacy-surface-review/scripts/validate_privacy_surfaces.py
```

## Judgment boundary

Use deterministic code only for JSON shape, registered-workstream coverage,
allowed boundary kinds, confirmation consistency, exact file hashing,
stale-review detection, and mechanically verifiable public-block presence,
status values, order and localization coverage. Whether the public block is
`relevant` or `not-relevant`, and whether its reason is professionally sound,
remain model-led judgments based on inspected evidence.

GDPR data minimisation remains a legal principle. Do not implement it here as
deterministic deletion, automatic anonymisation, personal-data detection, or a
`minimum useful context` classifier. Whether a fact is relevant to the
professional purpose is semantic, case-specific judgment outside the
validator. A name or tax identifier may be relevant and may be read by the
selected model runtime.

The register is an engineering boundary review. It is not legal advice, a DPIA,
an account-configuration audit, or proof or certification of GDPR compliance.

SHA-256: 8dab36eab3e6ca911e80702637ce0d6fb70f38e7f9e14321197761850d341ca6