# Build areas and feature traceability

Generated from [the catalog](</source/regulatory/catalog.json.txt>). P0 is the foundation, P1 adds browser consent, P2 adds records and applicable regional/contract controls, P3 adds discovery/integrations, and P4 is deferred. Status is recorded per feature.

Features link to specific obligations and their planned verification scenarios. A shared mechanism can satisfy several requirements without duplicating its implementation.

<a id="feat-setup"></a>

## P0 · FEAT-SETUP — Guided configuration and private justifications

**Status:** implemented.

**Deliverables:**

- Shared versioned practice/coverage questionnaire for npx wizard and host-authorized admin UI.
- Requirement-linked recommendations, unknowns/conflicts and private justifications; reviewable draft config exports with no automatic activation.
- Local answer/report resume and imported inventory preservation; host-owned authorization and explicit private-note handling.
- Explicit public purpose authoring in CLI/admin setup, guarded edits/removals and unresolved production-blocking facts.
- Versioned integration skill, curated llms.txt and Markdown guide alternates for agent-assisted setup, with explicit unknowns and host-owned review/authorization.
- Read-only, version-matched integration target map with actual config paths, separate host work, current setup question IDs and concrete acceptance scenarios.

**Requirement links:** [REQ-QC-PROFILING](</guide/requirements/index.md#req-qc-profiling>), [REQ-PRODUCT-SETUP](</guide/requirements/index.md#req-product-setup>), [REQ-PRODUCT-SCOPE-GUARDS](</guide/requirements/index.md#req-product-scope-guards>), [REQ-PRODUCT-CF-STARTER](</guide/requirements/index.md#req-product-cf-starter>), [REQ-PRODUCT-SERVICE-CATALOG](</guide/requirements/index.md#req-product-service-catalog>), [REQ-PRODUCT-SERVICE-DETECTION](</guide/requirements/index.md#req-product-service-detection>), [REQ-PRODUCT-SERVICE-PROFILES](</guide/requirements/index.md#req-product-service-profiles>), [REQ-PRODUCT-AGENT-INTEGRATION](</guide/requirements/index.md#req-product-agent-integration>).

**Code references:** [packages/notabenda/src/setup.ts](</source/packages/notabenda/src/setup.ts.txt>), [packages/notabenda/src/setup-cli.ts](</source/packages/notabenda/src/setup-cli.ts.txt>), [packages/notabenda/src/setup-ui.ts](</source/packages/notabenda/src/setup-ui.ts.txt>), [packages/notabenda-cf/src/setup.ts](</source/packages/notabenda-cf/src/setup.ts.txt>), [packages/notabenda/src/setup-purpose.ts](</source/packages/notabenda/src/setup-purpose.ts.txt>), [packages/notabenda/src/setup-purpose-ui.ts](</source/packages/notabenda/src/setup-purpose-ui.ts.txt>), [packages/notabenda/src/setup-purpose-cli.ts](</source/packages/notabenda/src/setup-purpose-cli.ts.txt>), [packages/notabenda/src/setup-catalog-cli.ts](</source/packages/notabenda/src/setup-catalog-cli.ts.txt>), [packages/notabenda/src/cli-json.ts](</source/packages/notabenda/src/cli-json.ts.txt>), [packages/notabenda/src/catalog-node.ts](</source/packages/notabenda/src/catalog-node.ts.txt>), [skills/notabenda/SKILL.md](</skills/notabenda/SKILL.md>), [site/agent-docs.mjs](</source/site/agent-docs.mjs.txt>), [llms.txt](</guide>), [packages/notabenda/src/integration-reference.ts](</source/packages/notabenda/src/integration-reference.ts.txt>)

<a id="feat-inventory"></a>

## P0 · FEAT-INVENTORY — Site and processing inventory

**Status:** partial.

**Deliverables:**

- Typed site, service, purpose, storage, retention, audience, and document configuration.
- Separate public bundle facts from private operator metadata.
- Completeness checks with requirement IDs and actionable missing-field messages.

**Requirement links:** [REQ-EU-NOTICE](</guide/requirements/index.md#req-eu-notice>), [REQ-CH-PROFILING](</guide/requirements/index.md#req-ch-profiling>), [REQ-QC-PROFILING](</guide/requirements/index.md#req-qc-profiling>), [REQ-NZ-INDIRECT](</guide/requirements/index.md#req-nz-indirect>), [REQ-TR-BASIS](</guide/requirements/index.md#req-tr-basis>), [REQ-EU-TERMS](</guide/requirements/index.md#req-eu-terms>), [REQ-PRODUCT-CONFIG](</guide/requirements/index.md#req-product-config>), [REQ-PRODUCT-EMBEDS](</guide/requirements/index.md#req-product-embeds>), [REQ-PRODUCT-PRIVACY-SIGNALS](</guide/requirements/index.md#req-product-privacy-signals>), [REQ-PRODUCT-PROCESSING-CHOICES](</guide/requirements/index.md#req-product-processing-choices>), [REQ-PRODUCT-SCOPE-GUARDS](</guide/requirements/index.md#req-product-scope-guards>), [REQ-PRODUCT-SERVICE-CATALOG](</guide/requirements/index.md#req-product-service-catalog>).

**Code references:** [packages/notabenda/src/types.ts](</source/packages/notabenda/src/types.ts.txt>), [packages/notabenda/src/config.ts](</source/packages/notabenda/src/config.ts.txt>), [packages/notabenda/src/embeds.ts](</source/packages/notabenda/src/embeds.ts.txt>), [packages/notabenda/src/privacy-signals.ts](</source/packages/notabenda/src/privacy-signals.ts.txt>), [packages/notabenda/src/scope-guards.ts](</source/packages/notabenda/src/scope-guards.ts.txt>), [packages/notabenda/src/setup-purpose.ts](</source/packages/notabenda/src/setup-purpose.ts.txt>), [packages/notabenda/src/setup-purpose-ui.ts](</source/packages/notabenda/src/setup-purpose-ui.ts.txt>), [packages/notabenda/src/setup-purpose-cli.ts](</source/packages/notabenda/src/setup-purpose-cli.ts.txt>)

<a id="feat-documents"></a>

## P0 · FEAT-DOCUMENTS — Privacy and cookie documents

**Status:** partial.

**Deliverables:**

- Static privacy and cookie pages, semantic HTML, document links, service/storage tables, and legal-center composition.
- Reviewed supplied content plus an original clause pipeline with explicit review and licensing status.
- Versioned artifacts and material-change diffs; readable pages without JavaScript.
- Optional Québec technology disclosure with host-language activation instructions, exact release/scope binding and on-demand native controls; host placement, supplemental retention and legal review remain explicit.

**Requirement links:** [REQ-EU-NOTICE](</guide/requirements/index.md#req-eu-notice>), [REQ-CA-MEANINGFUL](</guide/requirements/index.md#req-ca-meaningful>), [REQ-QC-PROFILING](</guide/requirements/index.md#req-qc-profiling>), [REQ-AU-PIXELS](</guide/requirements/index.md#req-au-pixels>), [REQ-NZ-NOTICE](</guide/requirements/index.md#req-nz-notice>), [REQ-NZ-INDIRECT](</guide/requirements/index.md#req-nz-indirect>), [REQ-US-CA-CHOICES](</guide/requirements/index.md#req-us-ca-choices>), [REQ-US-CO-GPC](</guide/requirements/index.md#req-us-co-gpc>), [REQ-PRODUCT-DOCUMENTS](</guide/requirements/index.md#req-product-documents>), [REQ-PRODUCT-SAFE-CONTENT](</guide/requirements/index.md#req-product-safe-content>), [REQ-PRODUCT-ARTIFACTS](</guide/requirements/index.md#req-product-artifacts>), [REQ-PRODUCT-AUTHORING](</guide/requirements/index.md#req-product-authoring>), [REQ-PRODUCT-REACT](</guide/requirements/index.md#req-product-react>), [REQ-PRODUCT-ASTRO](</guide/requirements/index.md#req-product-astro>), [REQ-PRODUCT-RETAINED-RELEASES](</guide/requirements/index.md#req-product-retained-releases>), [REQ-PRODUCT-COLLECTION-NOTICE](</guide/requirements/index.md#req-product-collection-notice>), [REQ-PRODUCT-RIGHTS-CENTER](</guide/requirements/index.md#req-product-rights-center>), [REQ-PRODUCT-SERVICE-CATALOG](</guide/requirements/index.md#req-product-service-catalog>), [REQ-PRODUCT-INDIRECT-NOTICE](</guide/requirements/index.md#req-product-indirect-notice>), [REQ-EU-GUARANTEE-NOTICE](</guide/requirements/index.md#req-eu-guarantee-notice>), [REQ-EU-GUARANTEE-LABEL](</guide/requirements/index.md#req-eu-guarantee-label>), [REQ-PRODUCT-GUARANTEE-NOTICE](</guide/requirements/index.md#req-product-guarantee-notice>).

**Code references:** [packages/notabenda/src/documents.ts](</source/packages/notabenda/src/documents.ts.txt>), [packages/notabenda/src/content.ts](</source/packages/notabenda/src/content.ts.txt>), [packages/notabenda/src/react.ts](</source/packages/notabenda/src/react.ts.txt>), [packages/notabenda/src/react-documents.ts](</source/packages/notabenda/src/react-documents.ts.txt>), [packages/notabenda/src/astro-client.ts](</source/packages/notabenda/src/astro-client.ts.txt>), [packages/notabenda/src/astro/LegalDocument.astro](</source/packages/notabenda/src/astro/LegalDocument.astro.txt>), [packages/notabenda/src/release-files.ts](</source/packages/notabenda/src/release-files.ts.txt>), [packages/notabenda/src/indirect-collection.ts](</source/packages/notabenda/src/indirect-collection.ts.txt>), [packages/notabenda/src/astro/IndirectCollectionNotice.astro](</source/packages/notabenda/src/astro/IndirectCollectionNotice.astro.txt>), [packages/notabenda/src/setup.ts](</source/packages/notabenda/src/setup.ts.txt>), [examples/indirect-collection/build.mjs](</source/examples/indirect-collection/build.mjs.txt>), [packages/notabenda/src/guarantee-notice.ts](</source/packages/notabenda/src/guarantee-notice.ts.txt>), [packages/notabenda/src/guarantee-notice-build.ts](</source/packages/notabenda/src/guarantee-notice-build.ts.txt>), [packages/notabenda/src/guarantee-notice-json.ts](</source/packages/notabenda/src/guarantee-notice-json.ts.txt>), [packages/notabenda/src/guarantee-notice-data.ts](</source/packages/notabenda/src/guarantee-notice-data.ts.txt>), [packages/notabenda/src/guarantees.css](</source/packages/notabenda/src/guarantees.css.txt>), [packages/notabenda/src/astro/LegalGuaranteeNotice.astro](</source/packages/notabenda/src/astro/LegalGuaranteeNotice.astro.txt>), [packages/notabenda/assets/guarantees/manifest.json](</source/packages/notabenda/assets/guarantees/manifest.json.txt>), [examples/guarantees/build.mjs](</source/examples/guarantees/build.mjs.txt>), [packages/notabenda/src/technology-collection.ts](</source/packages/notabenda/src/technology-collection.ts.txt>), [packages/notabenda/src/technology.css](</source/packages/notabenda/src/technology.css.txt>), [packages/notabenda/src/controls.ts](</source/packages/notabenda/src/controls.ts.txt>)

<a id="feat-terms"></a>

## P0 · FEAT-TERMS — Terms documents and acceptance

**Status:** partial.

**Deliverables:**

- Static supplied terms first; narrowly scoped reviewed packs later.
- Optional explicit terms-acceptance control linked to an exact version; independent marketing permissions.
- Consumer/business and service-type configuration, with conditional rights and contract-action links.

**Requirement links:** [REQ-EU-TERMS](</guide/requirements/index.md#req-eu-terms>), [REQ-EU-WITHDRAWAL](</guide/requirements/index.md#req-eu-withdrawal>), [REQ-DE-CANCEL](</guide/requirements/index.md#req-de-cancel>), [REQ-DE-WITHDRAWAL](</guide/requirements/index.md#req-de-withdrawal>), [REQ-BR-CONTRACT](</guide/requirements/index.md#req-br-contract>), [REQ-PRODUCT-DOCUMENTS](</guide/requirements/index.md#req-product-documents>), [REQ-EU-ORDER-ACTION](</guide/requirements/index.md#req-eu-order-action>), [REQ-PRODUCT-TERMS-ACCEPTANCE](</guide/requirements/index.md#req-product-terms-acceptance>), [REQ-PRODUCT-AUTHORING](</guide/requirements/index.md#req-product-authoring>), [REQ-EU-GUARANTEE-NOTICE](</guide/requirements/index.md#req-eu-guarantee-notice>), [REQ-EU-GUARANTEE-LABEL](</guide/requirements/index.md#req-eu-guarantee-label>), [REQ-PRODUCT-GUARANTEE-NOTICE](</guide/requirements/index.md#req-product-guarantee-notice>).

**Code references:** [packages/notabenda/src/config.ts](</source/packages/notabenda/src/config.ts.txt>), [packages/notabenda/src/documents.ts](</source/packages/notabenda/src/documents.ts.txt>), [packages/notabenda/src/terms.ts](</source/packages/notabenda/src/terms.ts.txt>), [packages/notabenda/src/content.ts](</source/packages/notabenda/src/content.ts.txt>), [packages/notabenda-cf/src/terms.ts](</source/packages/notabenda-cf/src/terms.ts.txt>), [packages/notabenda-cf/src/render.ts](</source/packages/notabenda-cf/src/render.ts.txt>), [packages/notabenda/src/guarantee-notice.ts](</source/packages/notabenda/src/guarantee-notice.ts.txt>), [packages/notabenda/src/guarantee-notice-build.ts](</source/packages/notabenda/src/guarantee-notice-build.ts.txt>), [packages/notabenda/src/guarantee-notice-json.ts](</source/packages/notabenda/src/guarantee-notice-json.ts.txt>), [packages/notabenda/src/guarantee-notice-data.ts](</source/packages/notabenda/src/guarantee-notice-data.ts.txt>), [packages/notabenda/src/guarantees.css](</source/packages/notabenda/src/guarantees.css.txt>), [packages/notabenda/src/react-documents.ts](</source/packages/notabenda/src/react-documents.ts.txt>), [packages/notabenda/src/astro/LegalGuaranteeNotice.astro](</source/packages/notabenda/src/astro/LegalGuaranteeNotice.astro.txt>), [packages/notabenda/assets/guarantees/manifest.json](</source/packages/notabenda/assets/guarantees/manifest.json.txt>), [examples/guarantees/build.mjs](</source/examples/guarantees/build.mjs.txt>)

<a id="feat-deployment"></a>

## P0 · FEAT-DEPLOYMENT — Installable and restylable delivery

**Status:** partial.

**Deliverables:**

- One frontend npm package with optional subpath exports and no runtime framework dependency.
- Vanilla, React, static HTML, and Astro examples with fictional operators and data.
- Optional Cloudflare deployment commands, same-origin configuration, and install/uninstall instructions.
- Local notabenda-cf init starter and read-only doctor are implemented with host authorization boundaries and explicit generated Wrangler scripts. Remote provisioning and operational rollout verification remain separate.
- Explicit headless entry, derived consent-only CSS and opt-in reproducible bundle-size reports; compatibility JavaScript size target remains open.
- Versioned integration skill, curated llms.txt and Markdown guide alternates for agent-assisted setup, with explicit unknowns and host-owned review/authorization.
- Read-only, version-matched integration target map with actual config paths, separate host work, current setup question IDs and concrete acceptance scenarios.

**Requirement links:** [REQ-PRODUCT-A11Y](</guide/requirements/index.md#req-product-a11y>), [REQ-PRODUCT-MOBILE](</guide/requirements/index.md#req-product-mobile>), [REQ-PRODUCT-CONFIG](</guide/requirements/index.md#req-product-config>), [REQ-PRODUCT-SAFE-CONTENT](</guide/requirements/index.md#req-product-safe-content>), [REQ-PRODUCT-PACKAGE](</guide/requirements/index.md#req-product-package>), [REQ-PRODUCT-CF-HOST](</guide/requirements/index.md#req-product-cf-host>), [REQ-PRODUCT-AUTHORING](</guide/requirements/index.md#req-product-authoring>), [REQ-PRODUCT-REACT](</guide/requirements/index.md#req-product-react>), [REQ-PRODUCT-ASTRO](</guide/requirements/index.md#req-product-astro>), [REQ-PRODUCT-RETAINED-RELEASES](</guide/requirements/index.md#req-product-retained-releases>), [REQ-PRODUCT-RIGHTS-CENTER](</guide/requirements/index.md#req-product-rights-center>), [REQ-PRODUCT-CF-STARTER](</guide/requirements/index.md#req-product-cf-starter>), [REQ-PRODUCT-CF-DOCTOR](</guide/requirements/index.md#req-product-cf-doctor>), [REQ-PRODUCT-SYNTAX-HIGHLIGHTING](</guide/requirements/index.md#req-product-syntax-highlighting>), [REQ-PRODUCT-BUNDLE-BUDGET](</guide/requirements/index.md#req-product-bundle-budget>), [REQ-PRODUCT-AGENT-INTEGRATION](</guide/requirements/index.md#req-product-agent-integration>).

**Code references:** [packages/notabenda/package.json](</source/packages/notabenda/package.json.txt>), [packages/notabenda/src/cli.ts](</source/packages/notabenda/src/cli.ts.txt>), [site/host.mjs](</source/site/host.mjs.txt>), [site/worker.mjs](</source/site/worker.mjs.txt>), [site/build.mjs](</source/site/build.mjs.txt>), [packages/notabenda/src/react.ts](</source/packages/notabenda/src/react.ts.txt>), [packages/notabenda/src/react-documents.ts](</source/packages/notabenda/src/react-documents.ts.txt>), [packages/notabenda/src/astro-client.ts](</source/packages/notabenda/src/astro-client.ts.txt>), [packages/notabenda/src/release-files.ts](</source/packages/notabenda/src/release-files.ts.txt>), [packages/notabenda-cf/bin/notabenda-cf.mjs](</source/packages/notabenda-cf/bin/notabenda-cf.mjs.txt>), [packages/notabenda-cf/package.json](</source/packages/notabenda-cf/package.json.txt>), [packages/notabenda-cf/templates/src/worker.mjs](</source/packages/notabenda-cf/templates/src/worker.mjs.txt>), [packages/notabenda-cf/templates/src/host.mjs](</source/packages/notabenda-cf/templates/src/host.mjs.txt>), [packages/notabenda-cf/templates/src/workspace.mjs](</source/packages/notabenda-cf/templates/src/workspace.mjs.txt>), [packages/notabenda-cf/templates/src/authorize.mjs](</source/packages/notabenda-cf/templates/src/authorize.mjs.txt>), [packages/notabenda-cf/templates/src/setup.mjs](</source/packages/notabenda-cf/templates/src/setup.mjs.txt>), [packages/notabenda-cf/templates/scripts/build-assets.mjs](</source/packages/notabenda-cf/templates/scripts/build-assets.mjs.txt>), [packages/notabenda-cf/bin/doctor.mjs](</source/packages/notabenda-cf/bin/doctor.mjs.txt>), [skills/notabenda/SKILL.md](</skills/notabenda/SKILL.md>), [site/agent-docs.mjs](</source/site/agent-docs.mjs.txt>), [llms.txt](</guide>), [packages/notabenda/src/integration-reference.ts](</source/packages/notabenda/src/integration-reference.ts.txt>)

<a id="feat-requirements"></a>

## P0 · FEAT-REQUIREMENTS — Source-linked requirements catalog

**Status:** partial.

**Deliverables:**

- Versioned primary-source records, requirement IDs, applicability conditions, dates, caveats, and discovery articles.
- Links from requirements to feature IDs, planned verification scenarios, and eventual code/test references.
- Local validation and browseable indexes; legal review and implementation status tracked separately.

**Requirement links:** Product foundation; see deliverables and milestone acceptance criteria..

**Code references:** [scripts/regulatory.py](</guide>), [regulatory/catalog.json](</source/regulatory/catalog.json.txt>)

<a id="feat-service-catalog"></a>

## P1 · FEAT-SERVICE-CATALOG — Shared third-party catalog and passive recognition

**Status:** partial.

**Deliverables:**

- Versioned provider/product schema, source-backed service facts, custom entries and operator-confirmed site use.
- Shared public third-party rendering and pinned release provenance; large data stays outside normal consent bundles.
- Explainable passive recognition using bounded exact/pattern/combined signals, compatible capture versions and reviewable configuration suggestions.
- Reproducible licensed imports, broad service seeds, source freshness and positive/negative detector fixtures.
- Initial optional reference seed: 363 provider identities, 402 product/reference entries, 2,278 imported storage hints and 39 original backend/provider references plus three browser-product references; all entries unreviewed.

**Requirement links:** [REQ-PRODUCT-SERVICE-CATALOG](</guide/requirements/index.md#req-product-service-catalog>), [REQ-PRODUCT-SERVICE-DETECTION](</guide/requirements/index.md#req-product-service-detection>), [REQ-PRODUCT-SERVICE-PROFILES](</guide/requirements/index.md#req-product-service-profiles>).

**Code references:** [packages/notabenda/src/catalog.ts](</source/packages/notabenda/src/catalog.ts.txt>), [packages/notabenda/src/catalog-project.ts](</source/packages/notabenda/src/catalog-project.ts.txt>), [packages/notabenda/src/catalog-cli.ts](</source/packages/notabenda/src/catalog-cli.ts.txt>), [scripts/build-service-catalog.py](</source/scripts/build-service-catalog.py.txt>), [packages/notabenda/src/service-directory.ts](</source/packages/notabenda/src/service-directory.ts.txt>), [packages/notabenda/src/service-inventory.ts](</source/packages/notabenda/src/service-inventory.ts.txt>), [packages/notabenda/src/catalog-selection.ts](</source/packages/notabenda/src/catalog-selection.ts.txt>), [packages/notabenda/src/catalog-ui.ts](</source/packages/notabenda/src/catalog-ui.ts.txt>), [packages/notabenda/src/catalog-browser.ts](</source/packages/notabenda/src/catalog-browser.ts.txt>), [packages/notabenda/src/catalog-browser-policy.ts](</source/packages/notabenda/src/catalog-browser-policy.ts.txt>), [packages/notabenda/src/catalog-browser-capture.ts](</source/packages/notabenda/src/catalog-browser-capture.ts.txt>), [packages/notabenda/src/catalog-browser-cli.ts](</source/packages/notabenda/src/catalog-browser-cli.ts.txt>), [packages/notabenda/src/catalog-browser-ui.ts](</source/packages/notabenda/src/catalog-browser-ui.ts.txt>), [packages/notabenda/src/discovery-capture.ts](</source/packages/notabenda/src/discovery-capture.ts.txt>), [packages/notabenda/src/discovery-ui.ts](</source/packages/notabenda/src/discovery-ui.ts.txt>), [catalog/browser-rules.json](</guide>), [catalog/browser-providers.json](</guide>), [packages/notabenda/src/setup-catalog-cli.ts](</source/packages/notabenda/src/setup-catalog-cli.ts.txt>), [packages/notabenda/src/cli-json.ts](</source/packages/notabenda/src/cli-json.ts.txt>), [packages/notabenda/src/catalog-node.ts](</source/packages/notabenda/src/catalog-node.ts.txt>), [packages/notabenda/src/catalog-release.ts](</source/packages/notabenda/src/catalog-release.ts.txt>), [packages/notabenda/src/catalog-release-policy.ts](</source/packages/notabenda/src/catalog-release-policy.ts.txt>), [packages/notabenda/src/catalog-reference.ts](</source/packages/notabenda/src/catalog-reference.ts.txt>), [packages/notabenda-cf/src/catalog-release-policy.ts](</source/packages/notabenda-cf/src/catalog-release-policy.ts.txt>), [packages/notabenda-cf/src/catalog-reference.ts](</source/packages/notabenda-cf/src/catalog-reference.ts.txt>), [packages/notabenda-cf/src/history.ts](</source/packages/notabenda-cf/src/history.ts.txt>), [packages/notabenda-cf/src/catalog-render.ts](</source/packages/notabenda-cf/src/catalog-render.ts.txt>), [packages/notabenda-cf/src/worker.ts](</source/packages/notabenda-cf/src/worker.ts.txt>), [examples/catalog-releases/build.mjs](</source/examples/catalog-releases/build.mjs.txt>), [catalog/product-profiles.json](</guide>), [packages/notabenda/src/catalog-profile.ts](</source/packages/notabenda/src/catalog-profile.ts.txt>)

<a id="feat-controls"></a>

## P1 · FEAT-CONTROLS — Consent and preference widgets

**Status:** partial.

**Deliverables:**

- Compact nonmodal bottom notice by default on mobile; clear permission request with balanced accept/reject/customize actions.
- Preferences expand on deliberate tap into a bottom drawer; desktop may use a corner notice and side drawer. No automatic fullscreen dialog or initial page-blocking backdrop.
- Accessible native markup, optional CSS, semantic theme tokens, light/dark and unstyled variants; optional drag gestures always have visible tap and keyboard equivalents.
- Safe-area spacing, thumb-friendly controls, persistent reopening, focus restoration, and readable choices across small screens, zoom, large text, RTL, and the on-screen keyboard.
- ANPD-linked Portuguese two-purpose flow, optional host-authored rights/browser information, archived notice parity and evidence inspection. Actual applicability, wording review and complete country/platform coverage remain host work.
- Optional Québec technology disclosure with host-language activation instructions, exact release/scope binding and on-demand native controls; host placement, supplemental retention and legal review remain explicit.

**Requirement links:** [REQ-EU-CONSENT](</guide/requirements/index.md#req-eu-consent>), [REQ-EU-FAIR-CHOICE](</guide/requirements/index.md#req-eu-fair-choice>), [REQ-ES-CHOICE](</guide/requirements/index.md#req-es-choice>), [REQ-UK-EXCEPTIONS](</guide/requirements/index.md#req-uk-exceptions>), [REQ-BR-COOKIE-UI](</guide/requirements/index.md#req-br-cookie-ui>), [REQ-QC-PROFILING](</guide/requirements/index.md#req-qc-profiling>), [REQ-US-CA-UI](</guide/requirements/index.md#req-us-ca-ui>), [REQ-PRODUCT-A11Y](</guide/requirements/index.md#req-product-a11y>), [REQ-PRODUCT-MOBILE](</guide/requirements/index.md#req-product-mobile>), [REQ-PRODUCT-REACT](</guide/requirements/index.md#req-product-react>), [REQ-PRODUCT-ASTRO](</guide/requirements/index.md#req-product-astro>), [REQ-PRODUCT-EMBEDS](</guide/requirements/index.md#req-product-embeds>), [REQ-PRODUCT-PRIVACY-SIGNALS](</guide/requirements/index.md#req-product-privacy-signals>), [REQ-PRODUCT-PROCESSING-CHOICES](</guide/requirements/index.md#req-product-processing-choices>), [REQ-PRODUCT-SCOPE-GUARDS](</guide/requirements/index.md#req-product-scope-guards>), [REQ-PRODUCT-BUNDLE-BUDGET](</guide/requirements/index.md#req-product-bundle-budget>), [REQ-PRODUCT-STORAGE-EXCEPTIONS](</guide/requirements/index.md#req-product-storage-exceptions>), [REQ-PRODUCT-LOCALIZATION](</guide/requirements/index.md#req-product-localization>), [REQ-BR-COOKIE-RIGHTS-LINK](</guide/requirements/index.md#req-br-cookie-rights-link>), [REQ-BR-COOKIE-BROWSER-HELP](</guide/requirements/index.md#req-br-cookie-browser-help>).

**Code references:** [packages/notabenda/src/consent.ts](</source/packages/notabenda/src/consent.ts.txt>), [packages/notabenda/src/controls.ts](</source/packages/notabenda/src/controls.ts.txt>), [packages/notabenda/src/config.ts](</source/packages/notabenda/src/config.ts.txt>), [packages/notabenda/src/react.ts](</source/packages/notabenda/src/react.ts.txt>), [packages/notabenda/src/react-documents.ts](</source/packages/notabenda/src/react-documents.ts.txt>), [packages/notabenda/src/astro-client.ts](</source/packages/notabenda/src/astro-client.ts.txt>), [packages/notabenda/src/embeds.ts](</source/packages/notabenda/src/embeds.ts.txt>), [packages/notabenda/src/privacy-signals.ts](</source/packages/notabenda/src/privacy-signals.ts.txt>), [packages/notabenda/src/scope-guards.ts](</source/packages/notabenda/src/scope-guards.ts.txt>), [packages/notabenda/src/storage-exception-policy.ts](</source/packages/notabenda/src/storage-exception-policy.ts.txt>), [packages/notabenda/src/storage-exceptions.ts](</source/packages/notabenda/src/storage-exceptions.ts.txt>), [packages/notabenda/src/storage-exception-controls.ts](</source/packages/notabenda/src/storage-exception-controls.ts.txt>), [packages/notabenda/src/storage-exceptions.css](</source/packages/notabenda/src/storage-exceptions.css.txt>), [packages/notabenda/src/service-runner.ts](</source/packages/notabenda/src/service-runner.ts.txt>), [packages/notabenda/src/storage-cleanup.ts](</source/packages/notabenda/src/storage-cleanup.ts.txt>), [packages/notabenda/src/consent-information.ts](</source/packages/notabenda/src/consent-information.ts.txt>), [packages/notabenda/src/technology-collection.ts](</source/packages/notabenda/src/technology-collection.ts.txt>), [packages/notabenda/src/technology.css](</source/packages/notabenda/src/technology.css.txt>), [packages/notabenda/src/release-files.ts](</source/packages/notabenda/src/release-files.ts.txt>)

<a id="feat-enforcement"></a>

## P1 · FEAT-ENFORCEMENT — Service gating and withdrawal

**Status:** partial.

**Deliverables:**

- Declared service loaders and teardown hooks; inert scripts, images, and embeds until allowed.
- Separate device-access permission from downstream processing restrictions.
- Stop future work, remove accessible declared storage, and surface vendor/reload limitations after withdrawal.
- Explicit Irish default grant cap with calendar-month expiry, independent solicitation/refusal clocks and pinned CF receipt parity; justified extensions remain open.

**Requirement links:** [REQ-EU-DEVICE](</guide/requirements/index.md#req-eu-device>), [REQ-FR-SCOPE](</guide/requirements/index.md#req-fr-scope>), [REQ-DE-DEVICE](</guide/requirements/index.md#req-de-device>), [REQ-IE-DEVICE](</guide/requirements/index.md#req-ie-device>), [REQ-UK-EXCEPTIONS](</guide/requirements/index.md#req-uk-exceptions>), [REQ-CA-OBA](</guide/requirements/index.md#req-ca-oba>), [REQ-QC-PROFILING](</guide/requirements/index.md#req-qc-profiling>), [REQ-GOOGLE-MODE](</guide/requirements/index.md#req-google-mode>), [REQ-PRODUCT-CONSENT-RUNTIME](</guide/requirements/index.md#req-product-consent-runtime>), [REQ-PRODUCT-REACT](</guide/requirements/index.md#req-product-react>), [REQ-PRODUCT-ASTRO](</guide/requirements/index.md#req-product-astro>), [REQ-PRODUCT-EMBEDS](</guide/requirements/index.md#req-product-embeds>), [REQ-PRODUCT-PRIVACY-SIGNALS](</guide/requirements/index.md#req-product-privacy-signals>), [REQ-PRODUCT-PROCESSING-CHOICES](</guide/requirements/index.md#req-product-processing-choices>), [REQ-PRODUCT-STORAGE-CLEANUP](</guide/requirements/index.md#req-product-storage-cleanup>), [REQ-PRODUCT-SCOPE-GUARDS](</guide/requirements/index.md#req-product-scope-guards>), [REQ-PRODUCT-STORAGE-EXCEPTIONS](</guide/requirements/index.md#req-product-storage-exceptions>).

**Code references:** [packages/notabenda/src/consent.ts](</source/packages/notabenda/src/consent.ts.txt>), [packages/notabenda/src/controls.ts](</source/packages/notabenda/src/controls.ts.txt>), [packages/notabenda/src/config.ts](</source/packages/notabenda/src/config.ts.txt>), [packages/notabenda/src/react.ts](</source/packages/notabenda/src/react.ts.txt>), [packages/notabenda/src/react-documents.ts](</source/packages/notabenda/src/react-documents.ts.txt>), [packages/notabenda/src/astro-client.ts](</source/packages/notabenda/src/astro-client.ts.txt>), [packages/notabenda/src/embeds.ts](</source/packages/notabenda/src/embeds.ts.txt>), [packages/notabenda/src/privacy-signals.ts](</source/packages/notabenda/src/privacy-signals.ts.txt>), [packages/notabenda/src/storage-cleanup.ts](</source/packages/notabenda/src/storage-cleanup.ts.txt>), [packages/notabenda/src/scope-guards.ts](</source/packages/notabenda/src/scope-guards.ts.txt>), [packages/notabenda/src/storage-exception-policy.ts](</source/packages/notabenda/src/storage-exception-policy.ts.txt>), [packages/notabenda/src/storage-exceptions.ts](</source/packages/notabenda/src/storage-exceptions.ts.txt>), [packages/notabenda/src/storage-exception-controls.ts](</source/packages/notabenda/src/storage-exception-controls.ts.txt>), [packages/notabenda/src/storage-exceptions.css](</source/packages/notabenda/src/storage-exceptions.css.txt>), [packages/notabenda/src/service-runner.ts](</source/packages/notabenda/src/service-runner.ts.txt>), [packages/notabenda/src/consent-engine.ts](</source/packages/notabenda/src/consent-engine.ts.txt>), [docs/verification/regional-consent.md](</guide/verification/regional-consent/index.md>), [packages/notabenda/src/grant-expiry-policy.ts](</source/packages/notabenda/src/grant-expiry-policy.ts.txt>)

<a id="feat-choices"></a>

## P1 · FEAT-CHOICES — Preference lifetime and revisions

**Status:** partial.

**Deliverables:**

- Purpose-level persisted choices, scope compatibility, expiry, and cross-tab updates.
- Separate prompt suppression, grant expiry, evidence retention, and document versions.
- Never convert dismissal, malformed state, missing storage, or stale scope into permission.
- Explicit Irish default grant cap with calendar-month expiry, independent solicitation/refusal clocks and pinned CF receipt parity; justified extensions remain open.
- ANPD-linked Portuguese two-purpose flow, optional host-authored rights/browser information, archived notice parity and evidence inspection. Actual applicability, wording review and complete country/platform coverage remain host work.

**Requirement links:** [REQ-EU-CONSENT](</guide/requirements/index.md#req-eu-consent>), [REQ-EU-FAIR-CHOICE](</guide/requirements/index.md#req-eu-fair-choice>), [REQ-FR-SCOPE](</guide/requirements/index.md#req-fr-scope>), [REQ-IT-REPROMPT](</guide/requirements/index.md#req-it-reprompt>), [REQ-IE-CONSENT-DURATION](</guide/requirements/index.md#req-ie-consent-duration>), [REQ-BR-COOKIE-UI](</guide/requirements/index.md#req-br-cookie-ui>), [REQ-CA-MEANINGFUL](</guide/requirements/index.md#req-ca-meaningful>), [REQ-US-CT-GPC](</guide/requirements/index.md#req-us-ct-gpc>), [REQ-PRODUCT-CONSENT-RUNTIME](</guide/requirements/index.md#req-product-consent-runtime>), [REQ-PRODUCT-CONSENT-EVIDENCE](</guide/requirements/index.md#req-product-consent-evidence>), [REQ-PRODUCT-REGIONAL-PROMPTS](</guide/requirements/index.md#req-product-regional-prompts>), [REQ-BR-COOKIE-RIGHTS-LINK](</guide/requirements/index.md#req-br-cookie-rights-link>), [REQ-BR-COOKIE-BROWSER-HELP](</guide/requirements/index.md#req-br-cookie-browser-help>).

**Code references:** [packages/notabenda/src/consent.ts](</source/packages/notabenda/src/consent.ts.txt>), [packages/notabenda/src/controls.ts](</source/packages/notabenda/src/controls.ts.txt>), [packages/notabenda/src/config.ts](</source/packages/notabenda/src/config.ts.txt>), [packages/notabenda/src/prompt-policy.ts](</source/packages/notabenda/src/prompt-policy.ts.txt>), [packages/notabenda/src/consent-notice.ts](</source/packages/notabenda/src/consent-notice.ts.txt>), [packages/notabenda/src/content.ts](</source/packages/notabenda/src/content.ts.txt>), [packages/notabenda/src/consent-evidence.ts](</source/packages/notabenda/src/consent-evidence.ts.txt>), [packages/notabenda-cf/src/consent.ts](</source/packages/notabenda-cf/src/consent.ts.txt>), [examples/repeat-prompts/build.mjs](</source/examples/repeat-prompts/build.mjs.txt>), [examples/repeat-prompts/client.mjs](</source/examples/repeat-prompts/client.mjs.txt>), [packages/notabenda/src/consent-engine.ts](</source/packages/notabenda/src/consent-engine.ts.txt>), [docs/verification/regional-consent.md](</guide/verification/regional-consent/index.md>), [packages/notabenda/src/grant-expiry-policy.ts](</source/packages/notabenda/src/grant-expiry-policy.ts.txt>), [packages/notabenda/src/consent-information.ts](</source/packages/notabenda/src/consent-information.ts.txt>)

<a id="feat-localization"></a>

## P1 · FEAT-LOCALIZATION — Versioned host-supplied localization

**Status:** partial.

**Deliverables:**

- Complete versioned host-supplied messages for legal documents, consent controls and ordinary terms acceptance, including status/accessibility text, selected language and explicit direction.
- Archived selected consent copy, independent presentation/disclosure revisions, exact material scopes and frontend/backend validation parity.
- Supplied structured or Markdown/MDX documents and optional complete generated-document templates. No automatic translation, language negotiation or inferred jurisdiction.
- Remaining interface localization, broader plural rules, reviewed locale catalogs and multi-language routing are still open.

**Requirement links:** [REQ-PRODUCT-LOCALIZATION](</guide/requirements/index.md#req-product-localization>).

**Code references:** [packages/notabenda/src/localization-policy.ts](</source/packages/notabenda/src/localization-policy.ts.txt>), [packages/notabenda/src/document-localization.ts](</source/packages/notabenda/src/document-localization.ts.txt>), [packages/notabenda/src/localized-documents.ts](</source/packages/notabenda/src/localized-documents.ts.txt>), [packages/notabenda/src/config.ts](</source/packages/notabenda/src/config.ts.txt>), [packages/notabenda/src/documents.ts](</source/packages/notabenda/src/documents.ts.txt>), [packages/notabenda/src/controls.ts](</source/packages/notabenda/src/controls.ts.txt>), [packages/notabenda/src/consent-notice.ts](</source/packages/notabenda/src/consent-notice.ts.txt>), [packages/notabenda/src/consent-runtime-config.ts](</source/packages/notabenda/src/consent-runtime-config.ts.txt>), [packages/notabenda/src/consent-evidence.ts](</source/packages/notabenda/src/consent-evidence.ts.txt>), [packages/notabenda/src/content.ts](</source/packages/notabenda/src/content.ts.txt>), [packages/notabenda-cf/src/consent.ts](</source/packages/notabenda-cf/src/consent.ts.txt>), [packages/notabenda-cf/src/localization-policy.ts](</source/packages/notabenda-cf/src/localization-policy.ts.txt>), [examples/localization/config.mjs](</source/examples/localization/config.mjs.txt>), [examples/localization/build.mjs](</source/examples/localization/build.mjs.txt>), [packages/notabenda/src/react-consent-bindings.ts](</source/packages/notabenda/src/react-consent-bindings.ts.txt>), [packages/notabenda/src/astro-client.ts](</source/packages/notabenda/src/astro-client.ts.txt>), [packages/notabenda/src/astro/PreferencesButton.astro](</source/packages/notabenda/src/astro/PreferencesButton.astro.txt>), [packages/notabenda/src/terms-localization-policy.ts](</source/packages/notabenda/src/terms-localization-policy.ts.txt>), [packages/notabenda/src/terms.ts](</source/packages/notabenda/src/terms.ts.txt>), [packages/notabenda-cf/src/terms-localization-policy.ts](</source/packages/notabenda-cf/src/terms-localization-policy.ts.txt>), [packages/notabenda-cf/src/terms.ts](</source/packages/notabenda-cf/src/terms.ts.txt>), [packages/notabenda-cf/src/render.ts](</source/packages/notabenda-cf/src/render.ts.txt>), [examples/localization/agreement-build.mjs](</source/examples/localization/agreement-build.mjs.txt>), [examples/localization/agreement.mjs](</source/examples/localization/agreement.mjs.txt>)

<a id="feat-forms"></a>

## P2 · FEAT-FORMS — Collection notices and form permissions

**Status:** partial.

**Deliverables:**

- Inline collection notice, optional permission field/group, notice link, and explicit terms action.
- Purpose/channel-specific choices and versioned form text; no forced privacy-policy acceptance checkbox.
- Trusted application API for consent and withdrawal records; no email-sending platform.
- Separate reviewed indirect-collection particulars in static HTML and plain text, with explicit phase and no delivery claim.

**Requirement links:** [REQ-EU-NOTICE](</guide/requirements/index.md#req-eu-notice>), [REQ-EU-CONSENT](</guide/requirements/index.md#req-eu-consent>), [REQ-CA-MEANINGFUL](</guide/requirements/index.md#req-ca-meaningful>), [REQ-AU-PIXELS](</guide/requirements/index.md#req-au-pixels>), [REQ-NZ-NOTICE](</guide/requirements/index.md#req-nz-notice>), [REQ-ZA-MARKETING](</guide/requirements/index.md#req-za-marketing>), [REQ-US-VA-RIGHTS](</guide/requirements/index.md#req-us-va-rights>), [REQ-TR-BASIS](</guide/requirements/index.md#req-tr-basis>), [REQ-PRODUCT-TERMS-ACCEPTANCE](</guide/requirements/index.md#req-product-terms-acceptance>), [REQ-PRODUCT-COLLECTION-NOTICE](</guide/requirements/index.md#req-product-collection-notice>), [REQ-PRODUCT-FORM-PERMISSIONS](</guide/requirements/index.md#req-product-form-permissions>), [REQ-EU-MARKETING](</guide/requirements/index.md#req-eu-marketing>), [REQ-CA-CASL-OPTIN](</guide/requirements/index.md#req-ca-casl-optin>), [REQ-PRODUCT-INDIRECT-NOTICE](</guide/requirements/index.md#req-product-indirect-notice>).

**Code references:** [packages/notabenda/src/terms.ts](</source/packages/notabenda/src/terms.ts.txt>), [packages/notabenda/src/content.ts](</source/packages/notabenda/src/content.ts.txt>), [packages/notabenda-cf/src/terms.ts](</source/packages/notabenda-cf/src/terms.ts.txt>), [packages/notabenda-cf/src/render.ts](</source/packages/notabenda-cf/src/render.ts.txt>), [packages/notabenda/src/collection.ts](</source/packages/notabenda/src/collection.ts.txt>), [packages/notabenda/src/react-documents.ts](</source/packages/notabenda/src/react-documents.ts.txt>), [packages/notabenda/src/astro/CollectionNotice.astro](</source/packages/notabenda/src/astro/CollectionNotice.astro.txt>), [packages/notabenda/src/form-permission.ts](</source/packages/notabenda/src/form-permission.ts.txt>), [packages/notabenda-cf/src/permissions.ts](</source/packages/notabenda-cf/src/permissions.ts.txt>), [packages/notabenda-cf/src/lifecycle.ts](</source/packages/notabenda-cf/src/lifecycle.ts.txt>), [packages/notabenda/src/react-form-permission.ts](</source/packages/notabenda/src/react-form-permission.ts.txt>), [packages/notabenda/src/astro-form-permission.ts](</source/packages/notabenda/src/astro-form-permission.ts.txt>), [packages/notabenda/src/astro/FormPermissionField.astro](</source/packages/notabenda/src/astro/FormPermissionField.astro.txt>), [packages/notabenda/src/indirect-collection.ts](</source/packages/notabenda/src/indirect-collection.ts.txt>), [packages/notabenda/src/astro/IndirectCollectionNotice.astro](</source/packages/notabenda/src/astro/IndirectCollectionNotice.astro.txt>), [packages/notabenda/src/setup.ts](</source/packages/notabenda/src/setup.ts.txt>), [examples/indirect-collection/build.mjs](</source/examples/indirect-collection/build.mjs.txt>)

<a id="feat-records"></a>

## P2 · FEAT-RECORDS — Durable evidence with notabenda-cf

**Status:** partial.

**Deliverables:**

- Transactional Durable Object records, artifact registration, anonymous receipts, and authenticated subject events; alternative storage adapters later.
- Export, controlled erasure, retention cleanup, access controls, and evidence provenance.
- Separate browser-reported actions from trusted application events; configurable transport for existing backends.

**Requirement links:** [REQ-EU-CONSENT](</guide/requirements/index.md#req-eu-consent>), [REQ-ZA-MARKETING](</guide/requirements/index.md#req-za-marketing>), [REQ-EU-WITHDRAWAL](</guide/requirements/index.md#req-eu-withdrawal>), [REQ-DE-CANCEL](</guide/requirements/index.md#req-de-cancel>), [REQ-PRODUCT-ARTIFACTS](</guide/requirements/index.md#req-product-artifacts>), [REQ-PRODUCT-CF-HISTORY](</guide/requirements/index.md#req-product-cf-history>), [REQ-PRODUCT-TERMS-ACCEPTANCE](</guide/requirements/index.md#req-product-terms-acceptance>), [REQ-PRODUCT-CONSENT-EVIDENCE](</guide/requirements/index.md#req-product-consent-evidence>), [REQ-PRODUCT-PROCESSING-CHOICES](</guide/requirements/index.md#req-product-processing-choices>), [REQ-PRODUCT-EVIDENCE-EXPORT](</guide/requirements/index.md#req-product-evidence-export>), [REQ-PRODUCT-EVIDENCE-LIFECYCLE](</guide/requirements/index.md#req-product-evidence-lifecycle>), [REQ-EU-RETENTION-ERASURE](</guide/requirements/index.md#req-eu-retention-erasure>), [REQ-PRODUCT-FORM-PERMISSIONS](</guide/requirements/index.md#req-product-form-permissions>), [REQ-PRODUCT-CONTRACT-ACTIONS](</guide/requirements/index.md#req-product-contract-actions>), [REQ-PRODUCT-PAID-ORDER-ARCHIVES](</guide/requirements/index.md#req-product-paid-order-archives>), [REQ-PRODUCT-ORDER-CONFIRMATION](</guide/requirements/index.md#req-product-order-confirmation>).

**Code references:** [packages/notabenda/src/content.ts](</source/packages/notabenda/src/content.ts.txt>), [packages/notabenda-cf/src/history.ts](</source/packages/notabenda-cf/src/history.ts.txt>), [packages/notabenda/src/terms.ts](</source/packages/notabenda/src/terms.ts.txt>), [packages/notabenda-cf/src/terms.ts](</source/packages/notabenda-cf/src/terms.ts.txt>), [packages/notabenda-cf/src/render.ts](</source/packages/notabenda-cf/src/render.ts.txt>), [packages/notabenda/src/consent-notice.ts](</source/packages/notabenda/src/consent-notice.ts.txt>), [packages/notabenda-cf/src/consent.ts](</source/packages/notabenda-cf/src/consent.ts.txt>), [packages/notabenda/src/processing-choices.ts](</source/packages/notabenda/src/processing-choices.ts.txt>), [packages/notabenda-cf/src/processing.ts](</source/packages/notabenda-cf/src/processing.ts.txt>), [packages/notabenda-cf/src/export.ts](</source/packages/notabenda-cf/src/export.ts.txt>), [packages/notabenda-cf/src/worker.ts](</source/packages/notabenda-cf/src/worker.ts.txt>), [packages/notabenda-cf/src/types.ts](</source/packages/notabenda-cf/src/types.ts.txt>), [packages/notabenda-cf/src/lifecycle.ts](</source/packages/notabenda-cf/src/lifecycle.ts.txt>), [examples/lifecycle.mjs](</source/examples/lifecycle.mjs.txt>), [packages/notabenda/src/form-permission.ts](</source/packages/notabenda/src/form-permission.ts.txt>), [packages/notabenda-cf/src/permissions.ts](</source/packages/notabenda-cf/src/permissions.ts.txt>)

<a id="feat-regions"></a>

## P2 · FEAT-REGIONS — Regional requirement profiles

**Status:** partial.

**Deliverables:**

- Explicit applicability facts and versioned rule packs; conservative fallback when applicability is unknown.
- Explain effective behavior using requirement IDs, sources, and active pack versions.
- Conditional exemptions and purpose-specific restrictions; no inference of applicability from IP geography alone.
- Optional declared UK statistical/appearance objection profiles, separate from consent, with atomic browser preferences and revision-bound resume; qualification remains host review.
- Explicit Irish default grant cap with calendar-month expiry, independent solicitation/refusal clocks and pinned CF receipt parity; justified extensions remain open.
- ANPD-linked Portuguese two-purpose flow, optional host-authored rights/browser information, archived notice parity and evidence inspection. Actual applicability, wording review and complete country/platform coverage remain host work.
- Optional Québec technology disclosure with host-language activation instructions, exact release/scope binding and on-demand native controls; host placement, supplemental retention and legal review remain explicit.

**Requirement links:** [REQ-EU-DEVICE](</guide/requirements/index.md#req-eu-device>), [REQ-FR-SCOPE](</guide/requirements/index.md#req-fr-scope>), [REQ-DE-DEVICE](</guide/requirements/index.md#req-de-device>), [REQ-IT-REPROMPT](</guide/requirements/index.md#req-it-reprompt>), [REQ-ES-CHOICE](</guide/requirements/index.md#req-es-choice>), [REQ-IE-DEVICE](</guide/requirements/index.md#req-ie-device>), [REQ-IE-CONSENT-DURATION](</guide/requirements/index.md#req-ie-consent-duration>), [REQ-UK-EXCEPTIONS](</guide/requirements/index.md#req-uk-exceptions>), [REQ-CH-PROFILING](</guide/requirements/index.md#req-ch-profiling>), [REQ-BR-COOKIE-UI](</guide/requirements/index.md#req-br-cookie-ui>), [REQ-CA-OBA](</guide/requirements/index.md#req-ca-oba>), [REQ-QC-PROFILING](</guide/requirements/index.md#req-qc-profiling>), [REQ-US-CA-GPC](</guide/requirements/index.md#req-us-ca-gpc>), [REQ-US-CO-GPC](</guide/requirements/index.md#req-us-co-gpc>), [REQ-US-CT-GPC](</guide/requirements/index.md#req-us-ct-gpc>), [REQ-US-COPPA-SCOPE](</guide/requirements/index.md#req-us-coppa-scope>), [REQ-TR-BASIS](</guide/requirements/index.md#req-tr-basis>), [REQ-PRODUCT-REGIONAL-PROMPTS](</guide/requirements/index.md#req-product-regional-prompts>), [REQ-EU-MARKETING](</guide/requirements/index.md#req-eu-marketing>), [REQ-CA-CASL-OPTIN](</guide/requirements/index.md#req-ca-casl-optin>), [REQ-PRODUCT-STORAGE-EXCEPTIONS](</guide/requirements/index.md#req-product-storage-exceptions>), [REQ-BR-COOKIE-RIGHTS-LINK](</guide/requirements/index.md#req-br-cookie-rights-link>), [REQ-BR-COOKIE-BROWSER-HELP](</guide/requirements/index.md#req-br-cookie-browser-help>).

**Code references:** [packages/notabenda/src/prompt-policy.ts](</source/packages/notabenda/src/prompt-policy.ts.txt>), [packages/notabenda/src/consent.ts](</source/packages/notabenda/src/consent.ts.txt>), [packages/notabenda/src/config.ts](</source/packages/notabenda/src/config.ts.txt>), [packages/notabenda/src/consent-notice.ts](</source/packages/notabenda/src/consent-notice.ts.txt>), [packages/notabenda/src/content.ts](</source/packages/notabenda/src/content.ts.txt>), [packages/notabenda/src/consent-evidence.ts](</source/packages/notabenda/src/consent-evidence.ts.txt>), [packages/notabenda-cf/src/consent.ts](</source/packages/notabenda-cf/src/consent.ts.txt>), [examples/repeat-prompts/build.mjs](</source/examples/repeat-prompts/build.mjs.txt>), [examples/repeat-prompts/client.mjs](</source/examples/repeat-prompts/client.mjs.txt>), [packages/notabenda/src/storage-exception-policy.ts](</source/packages/notabenda/src/storage-exception-policy.ts.txt>), [packages/notabenda/src/storage-exceptions.ts](</source/packages/notabenda/src/storage-exceptions.ts.txt>), [packages/notabenda/src/storage-exception-controls.ts](</source/packages/notabenda/src/storage-exception-controls.ts.txt>), [packages/notabenda/src/storage-exceptions.css](</source/packages/notabenda/src/storage-exceptions.css.txt>), [packages/notabenda/src/service-runner.ts](</source/packages/notabenda/src/service-runner.ts.txt>), [packages/notabenda/src/storage-cleanup.ts](</source/packages/notabenda/src/storage-cleanup.ts.txt>), [packages/notabenda/src/consent-engine.ts](</source/packages/notabenda/src/consent-engine.ts.txt>), [docs/verification/regional-consent.md](</guide/verification/regional-consent/index.md>), [packages/notabenda/src/grant-expiry-policy.ts](</source/packages/notabenda/src/grant-expiry-policy.ts.txt>), [packages/notabenda/src/consent-information.ts](</source/packages/notabenda/src/consent-information.ts.txt>), [packages/notabenda/src/controls.ts](</source/packages/notabenda/src/controls.ts.txt>), [packages/notabenda/src/technology-collection.ts](</source/packages/notabenda/src/technology-collection.ts.txt>), [packages/notabenda/src/technology.css](</source/packages/notabenda/src/technology.css.txt>), [packages/notabenda/src/release-files.ts](</source/packages/notabenda/src/release-files.ts.txt>)

<a id="feat-us-choices"></a>

## P2 · FEAT-US-CHOICES — US privacy choices and signals

**Status:** partial.

**Deliverables:**

- Sale/sharing/targeted-advertising controls, applicable GPC handling, and signal-status messaging.
- Notice-at-collection entry points and relevant sensitive-data restrictions.
- Server-readable restrictions and adapters to stop corresponding downstream processing.

**Requirement links:** [REQ-US-CA-CHOICES](</guide/requirements/index.md#req-us-ca-choices>), [REQ-US-CA-GPC](</guide/requirements/index.md#req-us-ca-gpc>), [REQ-US-CA-UI](</guide/requirements/index.md#req-us-ca-ui>), [REQ-US-CO-GPC](</guide/requirements/index.md#req-us-co-gpc>), [REQ-US-CT-GPC](</guide/requirements/index.md#req-us-ct-gpc>), [REQ-PRODUCT-PRIVACY-SIGNALS](</guide/requirements/index.md#req-product-privacy-signals>), [REQ-PRODUCT-PROCESSING-CHOICES](</guide/requirements/index.md#req-product-processing-choices>).

**Code references:** [packages/notabenda/src/privacy-signals.ts](</source/packages/notabenda/src/privacy-signals.ts.txt>), [packages/notabenda/src/processing-choices.ts](</source/packages/notabenda/src/processing-choices.ts.txt>), [packages/notabenda-cf/src/processing.ts](</source/packages/notabenda-cf/src/processing.ts.txt>)

<a id="feat-rights"></a>

## P2 · FEAT-RIGHTS — Rights entry points and application bridge

**Status:** partial.

**Deliverables:**

- Configurable rights/contact page and links for access, correction, erasure, withdrawal, and applicable appeals.
- Authenticated hooks to an operator's workflow; receipt exports do not pretend to export all application data.
- Document verified identity and response handling as operator/application responsibilities.
- Initial static core/React/Astro entry points and public contact fallback are implemented; intake, identity, request/response workflow and fulfillment remain host work.

**Requirement links:** [REQ-EU-NOTICE](</guide/requirements/index.md#req-eu-notice>), [REQ-NZ-INDIRECT](</guide/requirements/index.md#req-nz-indirect>), [REQ-ZA-MARKETING](</guide/requirements/index.md#req-za-marketing>), [REQ-US-CA-CHOICES](</guide/requirements/index.md#req-us-ca-choices>), [REQ-US-VA-RIGHTS](</guide/requirements/index.md#req-us-va-rights>), [REQ-PRODUCT-RIGHTS-CENTER](</guide/requirements/index.md#req-product-rights-center>).

**Code references:** [packages/notabenda/src/rights-policy.ts](</source/packages/notabenda/src/rights-policy.ts.txt>), [packages/notabenda/src/rights.ts](</source/packages/notabenda/src/rights.ts.txt>), [packages/notabenda/src/config.ts](</source/packages/notabenda/src/config.ts.txt>), [packages/notabenda/src/content.ts](</source/packages/notabenda/src/content.ts.txt>), [packages/notabenda/src/documents.ts](</source/packages/notabenda/src/documents.ts.txt>), [packages/notabenda/src/react-documents.ts](</source/packages/notabenda/src/react-documents.ts.txt>), [packages/notabenda/src/astro/RightsCenter.astro](</source/packages/notabenda/src/astro/RightsCenter.astro.txt>), [packages/notabenda/src/styles.css](</source/packages/notabenda/src/styles.css.txt>), [packages/notabenda-authoring/src/index.ts](</source/packages/notabenda-authoring/src/index.ts.txt>), [examples/rights/build.mjs](</source/examples/rights/build.mjs.txt>)

<a id="feat-contract-actions"></a>

## P2 · FEAT-CONTRACT-ACTIONS — Contract withdrawal and cancellation widgets

**Status:** partial.

**Deliverables:**

- Separate contract-withdrawal and qualifying subscription-cancellation flows, with applicable labels and required fields.
- Review step, durable confirmation output, and application-backend handoff; privacy choices stay independent. Use mobile drawers/pages with readable forms, not unsolicited fullscreen prompts.
- Optional notabenda-cf record/dispatch support; no success message until handoff is durably accepted; no automatic refunds or subscription mutation.
- Native/headless forms, atomic declaration/outbox APIs, isolated examples, private inspection/search and independent bounded host callback runners are implemented and locally verified, including SQLite dispatch lease restart/deduplication with simulated providers. Actual host scheduling/providers, regional review and operational acceptance remain open.

**Requirement links:** [REQ-EU-WITHDRAWAL](</guide/requirements/index.md#req-eu-withdrawal>), [REQ-DE-CANCEL](</guide/requirements/index.md#req-de-cancel>), [REQ-DE-WITHDRAWAL](</guide/requirements/index.md#req-de-withdrawal>), [REQ-BR-CONTRACT](</guide/requirements/index.md#req-br-contract>), [REQ-EU-ORDER-ACTION](</guide/requirements/index.md#req-eu-order-action>), [REQ-PRODUCT-CONTRACT-ACTIONS](</guide/requirements/index.md#req-product-contract-actions>).

**Code references:** [packages/notabenda/src/contract-action-policy.ts](</source/packages/notabenda/src/contract-action-policy.ts.txt>), [packages/notabenda/src/contract-action.ts](</source/packages/notabenda/src/contract-action.ts.txt>), [packages/notabenda/src/content.ts](</source/packages/notabenda/src/content.ts.txt>), [packages/notabenda-cf/src/contract-action-policy.ts](</source/packages/notabenda-cf/src/contract-action-policy.ts.txt>), [packages/notabenda-cf/src/contracts.ts](</source/packages/notabenda-cf/src/contracts.ts.txt>), [packages/notabenda-cf/src/lifecycle.ts](</source/packages/notabenda-cf/src/lifecycle.ts.txt>), [packages/notabenda-cf/src/records.ts](</source/packages/notabenda-cf/src/records.ts.txt>), [packages/notabenda-cf/src/render.ts](</source/packages/notabenda-cf/src/render.ts.txt>), [examples/contract-actions/build.mjs](</source/examples/contract-actions/build.mjs.txt>), [examples/contract-actions/client.mjs](</source/examples/contract-actions/client.mjs.txt>), [examples/contract-actions/style.css](</source/examples/contract-actions/style.css.txt>), [site/contract-context.mjs](</source/site/contract-context.mjs.txt>), [site/contract-seed.mjs](</source/site/contract-seed.mjs.txt>), [site/demo-host.mjs](</source/site/demo-host.mjs.txt>), [site/worker.mjs](</source/site/worker.mjs.txt>), [site/host.mjs](</source/site/host.mjs.txt>), [packages/notabenda-cf/src/contract-dispatch.ts](</source/packages/notabenda-cf/src/contract-dispatch.ts.txt>)

<a id="feat-scope-guards"></a>

## P2 · FEAT-SCOPE-GUARDS — Sensitive and child-related scope guards

**Status:** partial.

**Deliverables:**

- Explicit sensitive-data, children, profiling, and regulated-sector flags in configuration.
- Prevent unsupported scenarios from being described as covered; block optional high-risk integrations by default.
- Specialized age assurance and verifiable parental consent remain deferred until separately designed and reviewed.
- Initial explicit operator scope declarations and optional-runtime guards; specialized authorization and sector workflows remain unsupported.

**Requirement links:** [REQ-CH-PROFILING](</guide/requirements/index.md#req-ch-profiling>), [REQ-CA-OBA](</guide/requirements/index.md#req-ca-oba>), [REQ-AU-PIXELS](</guide/requirements/index.md#req-au-pixels>), [REQ-US-VA-RIGHTS](</guide/requirements/index.md#req-us-va-rights>), [REQ-US-COPPA-SCOPE](</guide/requirements/index.md#req-us-coppa-scope>), [REQ-PRODUCT-SCOPE-GUARDS](</guide/requirements/index.md#req-product-scope-guards>).

**Code references:** [packages/notabenda/src/scope-guard-policy.ts](</source/packages/notabenda/src/scope-guard-policy.ts.txt>), [packages/notabenda/src/scope-guards.ts](</source/packages/notabenda/src/scope-guards.ts.txt>), [packages/notabenda/src/types.ts](</source/packages/notabenda/src/types.ts.txt>), [packages/notabenda/src/config.ts](</source/packages/notabenda/src/config.ts.txt>), [packages/notabenda/src/consent.ts](</source/packages/notabenda/src/consent.ts.txt>), [packages/notabenda/src/consent-notice.ts](</source/packages/notabenda/src/consent-notice.ts.txt>), [packages/notabenda/src/controls.ts](</source/packages/notabenda/src/controls.ts.txt>), [packages/notabenda/src/setup.ts](</source/packages/notabenda/src/setup.ts.txt>), [packages/notabenda/src/starter.ts](</source/packages/notabenda/src/starter.ts.txt>), [packages/notabenda/src/react.ts](</source/packages/notabenda/src/react.ts.txt>), [packages/notabenda-cf/src/scope-guard-policy.ts](</source/packages/notabenda-cf/src/scope-guard-policy.ts.txt>), [packages/notabenda-cf/src/consent.ts](</source/packages/notabenda-cf/src/consent.ts.txt>), [packages/notabenda-cf/src/history.ts](</source/packages/notabenda-cf/src/history.ts.txt>), [packages/notabenda-cf/src/render.ts](</source/packages/notabenda-cf/src/render.ts.txt>), [examples/scope-guards/build.mjs](</source/examples/scope-guards/build.mjs.txt>), [examples/scope-guards/client.mjs](</source/examples/scope-guards/client.mjs.txt>)

<a id="feat-backoffice"></a>

## P2 · FEAT-BACKOFFICE — Host-authorized evidence backoffice

**Status:** partial.

**Deliverables:**

- Pluggable read-only worker with mandatory host authorization and host-selected store scope.
- Bounded search, evidence cards, readable details, filters, and raw JSON disclosure.
- Durable Object adapter; no login, credentials, arbitrary DO selectors, or consent collection.

**Requirement links:** [REQ-PRODUCT-CF-ADMIN](</guide/requirements/index.md#req-product-cf-admin>), [REQ-PRODUCT-TERMS-ACCEPTANCE](</guide/requirements/index.md#req-product-terms-acceptance>), [REQ-PRODUCT-CF-HOST](</guide/requirements/index.md#req-product-cf-host>), [REQ-PRODUCT-CONSENT-EVIDENCE](</guide/requirements/index.md#req-product-consent-evidence>), [REQ-PRODUCT-EVIDENCE-EXPORT](</guide/requirements/index.md#req-product-evidence-export>), [REQ-PRODUCT-EVIDENCE-LIFECYCLE](</guide/requirements/index.md#req-product-evidence-lifecycle>), [REQ-EU-RETENTION-ERASURE](</guide/requirements/index.md#req-eu-retention-erasure>), [REQ-PRODUCT-DEMO-WORKSPACE](</guide/requirements/index.md#req-product-demo-workspace>), [REQ-PRODUCT-CF-STARTER](</guide/requirements/index.md#req-product-cf-starter>), [REQ-PRODUCT-CONTRACT-ACTIONS](</guide/requirements/index.md#req-product-contract-actions>), [REQ-PRODUCT-PAID-ORDER-ARCHIVES](</guide/requirements/index.md#req-product-paid-order-archives>), [REQ-PRODUCT-ORDER-CONFIRMATION](</guide/requirements/index.md#req-product-order-confirmation>).

**Code references:** [packages/notabenda-cf/src/worker.ts](</source/packages/notabenda-cf/src/worker.ts.txt>), [packages/notabenda-cf/src/store.ts](</source/packages/notabenda-cf/src/store.ts.txt>), [packages/notabenda-cf/src/render.ts](</source/packages/notabenda-cf/src/render.ts.txt>), [packages/notabenda-cf/src/records.ts](</source/packages/notabenda-cf/src/records.ts.txt>), [packages/notabenda/src/terms.ts](</source/packages/notabenda/src/terms.ts.txt>), [packages/notabenda/src/content.ts](</source/packages/notabenda/src/content.ts.txt>), [packages/notabenda-cf/src/terms.ts](</source/packages/notabenda-cf/src/terms.ts.txt>), [site/host.mjs](</source/site/host.mjs.txt>), [site/worker.mjs](</source/site/worker.mjs.txt>), [site/build.mjs](</source/site/build.mjs.txt>), [packages/notabenda/src/consent-notice.ts](</source/packages/notabenda/src/consent-notice.ts.txt>), [packages/notabenda-cf/src/consent.ts](</source/packages/notabenda-cf/src/consent.ts.txt>), [packages/notabenda-cf/src/export.ts](</source/packages/notabenda-cf/src/export.ts.txt>), [packages/notabenda-cf/src/types.ts](</source/packages/notabenda-cf/src/types.ts.txt>), [packages/notabenda-cf/src/lifecycle.ts](</source/packages/notabenda-cf/src/lifecycle.ts.txt>), [examples/lifecycle.mjs](</source/examples/lifecycle.mjs.txt>)

<a id="feat-document-history"></a>

## P2 · FEAT-DOCUMENT-HISTORY — Immutable document history and reviewable differences

**Status:** implemented.

**Deliverables:**

- Explicit transactional release archival with exact content, version metadata, operator change note, and idempotent retries.
- Backoffice release history and safe side-by-side structured comparisons.
- Separate content and rendered-HTML digests; no automatic publication, notification, consent invalidation, or terms acceptance.

**Requirement links:** [REQ-PRODUCT-CF-HISTORY](</guide/requirements/index.md#req-product-cf-history>), [REQ-PRODUCT-AUTHORING](</guide/requirements/index.md#req-product-authoring>), [REQ-PRODUCT-RETAINED-RELEASES](</guide/requirements/index.md#req-product-retained-releases>).

**Code references:** [packages/notabenda-cf/src/history.ts](</source/packages/notabenda-cf/src/history.ts.txt>), [packages/notabenda-cf/src/render.ts](</source/packages/notabenda-cf/src/render.ts.txt>), [packages/notabenda/src/content.ts](</source/packages/notabenda/src/content.ts.txt>), [packages/notabenda/src/release-files.ts](</source/packages/notabenda/src/release-files.ts.txt>)

<a id="feat-paid-orders"></a>

## P2 · FEAT-PAID-ORDERS — Paid order information and deliberate payment action

**Status:** partial.

**Deliverables:**

- Reviewed item and commitment definitions bound to host-calculated quotes, exact money, total/due-now prices, recurring and conditional charges, and product-specific guarantee labels.
- Static vanilla/React/Astro information and a native/headless final action with uncertainty recovery. No implicit terms agreement, payment execution or durable contract confirmation.
- Reusable Cloudflare chunked review/original-file archives, CAS quote activation, one admission per checkout intent with atomic host mutation plans, recovery, scoped admin inspection and retirement are implemented and used by the isolated demo. External payment/stock-system acceptance, actual confirmation provision and legal/national review remain open; optional complete-file archival and host delivery mechanics are tracked separately in FEAT-ORDER-CONFIRMATION.

**Requirement links:** [REQ-EU-ORDER-ACTION](</guide/requirements/index.md#req-eu-order-action>), [REQ-PRODUCT-PAID-ORDER-ARCHIVES](</guide/requirements/index.md#req-product-paid-order-archives>), [REQ-EU-ORDER-CONFIRMATION](</guide/requirements/index.md#req-eu-order-confirmation>).

**Code references:** [packages/notabenda/src/paid-order-policy.ts](</source/packages/notabenda/src/paid-order-policy.ts.txt>), [packages/notabenda/src/paid-order.ts](</source/packages/notabenda/src/paid-order.ts.txt>), [packages/notabenda/src/paid-order-action.ts](</source/packages/notabenda/src/paid-order-action.ts.txt>), [packages/notabenda/src/paid-order-ui.ts](</source/packages/notabenda/src/paid-order-ui.ts.txt>), [packages/notabenda/src/orders.css](</source/packages/notabenda/src/orders.css.txt>), [packages/notabenda-authoring/src/paid-order-build.ts](</source/packages/notabenda-authoring/src/paid-order-build.ts.txt>), [packages/notabenda/src/react-documents.ts](</source/packages/notabenda/src/react-documents.ts.txt>), [packages/notabenda/src/astro/PaidOrderReview.astro](</source/packages/notabenda/src/astro/PaidOrderReview.astro.txt>), [examples/orders/build.mjs](</source/examples/orders/build.mjs.txt>), [examples/orders/client.mjs](</source/examples/orders/client.mjs.txt>), [site/order-demo.mjs](</source/site/order-demo.mjs.txt>), [site/order-demo-admin.mjs](</source/site/order-demo-admin.mjs.txt>), [site/order-admin.css](</source/site/order-admin.css.txt>), [packages/notabenda-cf/src/orders.ts](</source/packages/notabenda-cf/src/orders.ts.txt>), [packages/notabenda-cf/src/order-context.ts](</source/packages/notabenda-cf/src/order-context.ts.txt>), [packages/notabenda-cf/src/order-blobs.ts](</source/packages/notabenda-cf/src/order-blobs.ts.txt>), [packages/notabenda-cf/src/order-render.ts](</source/packages/notabenda-cf/src/order-render.ts.txt>), [packages/notabenda-cf/src/order-admin-style.ts](</source/packages/notabenda-cf/src/order-admin-style.ts.txt>), [packages/notabenda-cf/src/order-review.ts](</source/packages/notabenda-cf/src/order-review.ts.txt>), [packages/notabenda-cf/src/order-review-style.ts](</source/packages/notabenda-cf/src/order-review-style.ts.txt>), [packages/notabenda-cf/src/order-policy.ts](</source/packages/notabenda-cf/src/order-policy.ts.txt>), [packages/notabenda-cf/src/lifecycle.ts](</source/packages/notabenda-cf/src/lifecycle.ts.txt>), [packages/notabenda-cf/src/worker.ts](</source/packages/notabenda-cf/src/worker.ts.txt>), [packages/notabenda-cf/src/types.ts](</source/packages/notabenda-cf/src/types.ts.txt>), [packages/notabenda-cf/scripts/sync-order-policy.mjs](</source/packages/notabenda-cf/scripts/sync-order-policy.mjs.txt>), [site/order-demo-legacy.mjs](</source/site/order-demo-legacy.mjs.txt>), [site/order-demo-admin-legacy.mjs](</source/site/order-demo-admin-legacy.mjs.txt>)

<a id="feat-order-confirmation"></a>

## P2 · FEAT-ORDER-CONFIRMATION — Customer confirmation archives and host delivery

**Status:** partial.

**Deliverables:**

- Immutable personally addressed plain-text confirmation and optional exact attachments, linked to the admitted review, actual host contract facts and fixed destination version.
- Atomic preparation/outbox, bounded host callback attempts, recoverable uncertainty and stable provider idempotency; no built-in email provider, scheduler or contract-formation decision.
- Separately authorized admin inspection and inert downloads; pending-job retirement guards and resumable scoped purge.
- Complete content, real channel/destination behavior, actual provision, timing and national/linguistic acceptance remain host review work.

**Requirement links:** [REQ-EU-ORDER-CONFIRMATION](</guide/requirements/index.md#req-eu-order-confirmation>), [REQ-PRODUCT-ORDER-CONFIRMATION](</guide/requirements/index.md#req-product-order-confirmation>).

**Code references:** [packages/notabenda-cf/src/order-confirmations.ts](</source/packages/notabenda-cf/src/order-confirmations.ts.txt>), [packages/notabenda-cf/src/order-confirmation-state.ts](</source/packages/notabenda-cf/src/order-confirmation-state.ts.txt>), [packages/notabenda-cf/src/order-confirmation-dispatch.ts](</source/packages/notabenda-cf/src/order-confirmation-dispatch.ts.txt>), [packages/notabenda-cf/src/order-confirmation-render.ts](</source/packages/notabenda-cf/src/order-confirmation-render.ts.txt>), [packages/notabenda-cf/src/orders.ts](</source/packages/notabenda-cf/src/orders.ts.txt>), [packages/notabenda-cf/src/lifecycle.ts](</source/packages/notabenda-cf/src/lifecycle.ts.txt>), [packages/notabenda-cf/src/worker.ts](</source/packages/notabenda-cf/src/worker.ts.txt>), [packages/notabenda-cf/src/types.ts](</source/packages/notabenda-cf/src/types.ts.txt>), [site/order-confirmation-seed.mjs](</source/site/order-confirmation-seed.mjs.txt>), [site/order-demo-admin.mjs](</source/site/order-demo-admin.mjs.txt>)

<a id="feat-discovery"></a>

## P3 · FEAT-DISCOVERY — Standalone discovery tooling

**Status:** partial.

**Deliverables:**

- Browser-assisted inventory of observed requests, cookies/storage, embeds, and resource hints.
- Human-readable and JSON findings with route, scenario, evidence, and candidate purpose/service mappings.
- Adopters choose when to run it, whether to use CI, and which findings should block their deployments.

**Requirement links:** [REQ-AU-PIXELS](</guide/requirements/index.md#req-au-pixels>), [REQ-PRODUCT-DISCOVERY](</guide/requirements/index.md#req-product-discovery>), [REQ-PRODUCT-SERVICE-DETECTION](</guide/requirements/index.md#req-product-service-detection>).

**Code references:** [packages/notabenda/src/discovery.ts](</source/packages/notabenda/src/discovery.ts.txt>), [packages/notabenda/src/discovery-ui.ts](</source/packages/notabenda/src/discovery-ui.ts.txt>), [packages/notabenda/src/discovery-cli.ts](</source/packages/notabenda/src/discovery-cli.ts.txt>), [examples/discovery/build.mjs](</source/examples/discovery/build.mjs.txt>), [examples/discovery/client.mjs](</source/examples/discovery/client.mjs.txt>)

<a id="feat-google"></a>

## P3 · FEAT-GOOGLE — Google Basic Consent Mode

**Status:** partial.

**Deliverables:**

- Optional adapter setting defaults before tags and explicitly mapping all four relevant consent signals.
- Basic mode tag gating and purpose mapping diagnostics.
- Test fixtures demonstrating no Google requests before consent or after rejection.

**Requirement links:** [REQ-GOOGLE-MODE](</guide/requirements/index.md#req-google-mode>).

**Code references:** [packages/notabenda/src/google-basic.ts](</source/packages/notabenda/src/google-basic.ts.txt>), [packages/notabenda/src/google-basic-policy.ts](</source/packages/notabenda/src/google-basic-policy.ts.txt>), [packages/notabenda/src/config.ts](</source/packages/notabenda/src/config.ts.txt>), [packages/notabenda/src/types.ts](</source/packages/notabenda/src/types.ts.txt>), [examples/google-basic/build.mjs](</source/examples/google-basic/build.mjs.txt>), [examples/google-basic/client.mjs](</source/examples/google-basic/client.mjs.txt>)

<a id="feat-ad-cmp"></a>

## P4 · FEAT-AD-CMP — Certified advertising CMP path

**Status:** planned.

**Deliverables:**

- Investigate current IAB TCF registration, vendor signaling, and Google certification as a separate project.
- No invented CMP identity or claim that Consent Mode implies certification.
- Defer shipping TCF until specification, certification, and ongoing maintenance are actually satisfied.

**Requirement links:** [REQ-GOOGLE-CMP](</guide/requirements/index.md#req-google-cmp>).

**Code references:** None yet.
