Control Crosswalk¶
Derived from control-register.md — the spine of the
data room: 64 controls across five families, each crosswalked to SOC 2 (Trust
Services Criteria), ISO 27001:2022 Annex A, and UK GDPR. Framework mappings are
provisional; GDPR mappings are [counsel required] before external
reliance.
Status distribution¶
Statuses follow not started → designed → implemented → verified →
operational, under the honesty rule: a drafted policy alone never advances a
control past designed.
pie showData title Control status distribution (64 controls)
"implemented" : 30
"designed" : 17
"not started" : 15
"operational" : 2
| Family | Controls | operational | implemented | designed | not started |
|---|---|---|---|---|---|
| SEC — Security | 17 | — | 14 | — | 3 |
| PRIV — Privacy & data protection | 17 | — | 4 | 7 | 6 |
| SAF — Trust & safety | 7 | — | 5 | — | 2 |
| ML — ML governance | 10 | — | 3 | 4 | 3 |
| GOV/OPS — Governance & operations | 13 | 2 | 4 | 6 | 1 |
| Total | 64 | 2 | 30 | 17 | 15 |
How the families map to the frameworks¶
Edges show where each family's controls predominantly land; the per-control, per-clause mapping is in the register itself.
flowchart LR
%% source: control-register.md (family-level rollup of the mapping columns)
subgraph fam["Partile control families (64)"]
SEC["SEC — Security (17)<br/>sessions, authz, isolation, rate limits,<br/>secrets, IAM, agent-comms hardening"]
PRIV["PRIV — Privacy (17)<br/>RoPA, retention, erasure, consent,<br/>minimization, on-device-by-design"]
SAF["SAF — Trust & Safety (7)<br/>blocks, reports, no-location-reveal"]
ML["ML — ML governance (10)<br/>event tiers, Art 9 constraint,<br/>anonymization boundary"]
GOV["GOV/OPS — Governance & Ops (13)<br/>decision log, policies, backups,<br/>change mgmt, remediation"]
end
subgraph soc2["SOC 2 (TSC)"]
CC["CC1–CC9 Common Criteria"]
P["P — Privacy criteria"]
A["A — Availability"]
end
subgraph iso["ISO 27001:2022 Annex A"]
A5["A.5 Organizational"]
A8["A.8 Technological"]
A7["A.7 Physical — scoped out<br/>with recorded rationale (GOV-05)"]
end
subgraph gdpr["UK GDPR"]
art5["Art 5 — principles & accountability"]
basis["Art 6–9 — basis, consent, special category"]
rights["Art 13–22 — transparency & rights"]
sec32["Art 24–35 — security, DPIA, breach"]
tx["Art 44–49 — international transfers"]
end
SEC --> CC
SEC --> A8
SEC --> sec32
PRIV --> P
PRIV --> A5
PRIV --> art5
PRIV --> basis
PRIV --> rights
PRIV --> tx
SAF --> CC
SAF --> A8
SAF --> art5
ML --> P
ML --> A5
ML --> basis
ML --> rights
GOV --> CC
GOV --> A
GOV --> A5
GOV --> sec32
GOV -. "N/A register" .-> A7
Reading the register¶
Each row in control-register.md carries: the
control statement, status, an owner role (DIR / INFRA / OPS / MOBILE /
COUNSEL — roles, not people), an evidence link (code path, merged PR,
register, policy, or a named Tier-2 restricted artifact), a last-verified
date, and the three framework mappings. Controls scoped out entirely (physical/
office) are recorded with rationale in the
not-applicable register.