policystack-jurisdiction
Explain what a declared jurisdictions set implies. Posture and policy-text
tier are read straight from the single canonical table (the same row the
policy renderer and the consent runtime read, so prose and banner always
agree). Membership is frozen at 1.0.
The canonical table
br — opt-in, equivalent policy text
ca — opt-in, equivalent policy text
ch — opt-in, equivalent policy text
eea — opt-in, specific policy text
row — opt-in, equivalent policy text
uk — opt-in, specific policy text
us — opt-out, equivalent policy text
us-ca — opt-out, specific policy text, inherits us, GPC legally binding
us-co — opt-out, equivalent policy text, inherits us, GPC legally binding
us-ct — opt-out, equivalent policy text, inherits us, GPC legally binding
us-va — opt-out, equivalent policy text, inherits us, GPC legally binding
How to read it
- consentModel —
opt-in (EEA/UK/CH/BR/CA/ROW): no non-essential
data/cookies until affirmative consent; the banner defaults off.
opt-out (US and US states): lawful by default after notice; the banner
defaults on, gated by Do-Not-Sell / GPC.
- policyText —
specific (eea, uk, us-ca): hand-authored,
jurisdiction-specific prose. equivalent: posture-correct text via the
parent jurisdiction — a legitimate, shippable tier that emits the
jurisdiction-generic-policy-text warning so the gap is explicit, not
silent. Treat that warning as acknowledged, not failed.
- inherits — US state codes inherit text/posture from
us. Any
us-<state> not in the table resolves to us (opt-out); row is the
conservative opt-in catch-all. A code that is neither a table entry nor a
us-* tail is rejected as jurisdiction-unknown.
- GPC legally binding — true only where the Global Privacy Control signal
carries legal force (the §4.2 US-state set). It is always honoured as a
signal regardless.
Procedure
For each declared id: state its consent model, its policy-text tier (and the
parent it borrows from when equivalent), and whether GPC is binding. Call
out every equivalent id as a jurisdiction-generic-policy-text warning
the user must accept. The effective posture across a multi-jurisdiction set is
the most protective (any opt-in member ⇒ treat as opt-in).
Source: jamiedavenport/policystack — distributed by TomeVault.
1---2name: policystack-jurisdiction3description: Explain the consent and policy-text posture (the §4.2 stance) implied by a set of declared PolicyStack `jurisdictions`. Use when choosing or reviewing the `jurisdictions` array in policystack.ts. Use when this capability is needed.4---56<!-- Generated by @policystack/sdk renderSkillPack() — do not edit by hand. Run `vp run gen`. -->78# policystack-jurisdiction910Explain what a declared `jurisdictions` set implies. Posture and policy-text11tier are read straight from the single canonical table (the same row the12policy renderer and the consent runtime read, so prose and banner always13agree). Membership is frozen at 1.0.1415## The canonical table1617- `br` — opt-in, equivalent policy text18- `ca` — opt-in, equivalent policy text19- `ch` — opt-in, equivalent policy text20- `eea` — opt-in, specific policy text21- `row` — opt-in, equivalent policy text22- `uk` — opt-in, specific policy text23- `us` — opt-out, equivalent policy text24- `us-ca` — opt-out, specific policy text, inherits `us`, GPC legally binding25- `us-co` — opt-out, equivalent policy text, inherits `us`, GPC legally binding26- `us-ct` — opt-out, equivalent policy text, inherits `us`, GPC legally binding27- `us-va` — opt-out, equivalent policy text, inherits `us`, GPC legally binding2829## How to read it3031- **consentModel** — `opt-in` (EEA/UK/CH/BR/CA/ROW): no non-essential32 data/cookies until affirmative consent; the banner defaults *off*.33 `opt-out` (US and US states): lawful by default after notice; the banner34 defaults *on*, gated by Do-Not-Sell / GPC.35- **policyText** — `specific` (`eea`, `uk`, `us-ca`): hand-authored,36 jurisdiction-specific prose. `equivalent`: posture-correct text via the37 `parent` jurisdiction — a legitimate, shippable tier that emits the38 `jurisdiction-generic-policy-text` **warning** so the gap is explicit, not39 silent. Treat that warning as acknowledged, not failed.40- **inherits** — US state codes inherit text/posture from `us`. Any41 `us-<state>` not in the table resolves to `us` (opt-out); `row` is the42 conservative opt-in catch-all. A code that is neither a table entry nor a43 `us-*` tail is rejected as `jurisdiction-unknown`.44- **GPC legally binding** — true only where the Global Privacy Control signal45 carries legal force (the §4.2 US-state set). It is always honoured as a46 signal regardless.4748## Procedure4950For each declared id: state its consent model, its policy-text tier (and the51parent it borrows from when `equivalent`), and whether GPC is binding. Call52out every `equivalent` id as a `jurisdiction-generic-policy-text` warning53the user must accept. The effective posture across a multi-jurisdiction set is54the **most protective** (any `opt-in` member ⇒ treat as opt-in).5556---57> Source: [jamiedavenport/policystack](https://github.com/jamiedavenport/policystack) — distributed by [TomeVault](https://tomevault.io).58<!-- tomevault:4.0:skill_md:2026-06-18 -->