chore(work): finish 03-core-consent-foundation

This commit is contained in:
2026-05-19 13:54:40 +02:00
parent 1cab88916a
commit 5792b7412a
3 changed files with 10 additions and 18 deletions

View File

@@ -1,5 +1,5 @@
{ {
"updated_at": "2026-05-19T11:09:21.707Z", "updated_at": "2026-05-19T11:54:41.194Z",
"epics": { "epics": {
"binder-wrap-helper": { "binder-wrap-helper": {
"status": "done", "status": "done",
@@ -262,10 +262,10 @@
] ]
}, },
"03-core-consent-foundation": { "03-core-consent-foundation": {
"status": "in-progress", "status": "done",
"title": "core-consent foundation — types, brand, withConsent wrapper, conformance extension, ESLint rule", "title": "core-consent foundation — types, brand, withConsent wrapper, conformance extension, ESLint rule",
"ac_total": 2, "ac_total": 2,
"ac_completed": 1, "ac_completed": 2,
"depends_on": [ "depends_on": [
"02-audit-enum-amendment" "02-audit-enum-amendment"
], ],
@@ -571,8 +571,8 @@
"ready": [ "ready": [
{ {
"epic": "dsr-consent-and-cookie-banner", "epic": "dsr-consent-and-cookie-banner",
"story": "03-core-consent-foundation", "story": "04-core-consent-implementation",
"title": "core-consent foundation — types, brand, withConsent wrapper, conformance extension, ESLint rule" "title": "core-consent implementation — Payload impl, DI binders, migration helpers, tRPC router"
}, },
{ {
"epic": "dsr-consent-and-cookie-banner", "epic": "dsr-consent-and-cookie-banner",
@@ -591,14 +591,6 @@
} }
], ],
"blocked": [ "blocked": [
{
"epic": "dsr-consent-and-cookie-banner",
"story": "04-core-consent-implementation",
"title": "core-consent implementation — Payload impl, DI binders, migration helpers, tRPC router",
"waiting_on": [
"dsr-consent-and-cookie-banner/03-core-consent-foundation"
]
},
{ {
"epic": "dsr-consent-and-cookie-banner", "epic": "dsr-consent-and-cookie-banner",
"story": "05-core-consent-react", "story": "05-core-consent-react",

View File

@@ -3,12 +3,12 @@ id: 03-core-consent-foundation
epic: dsr-consent-and-cookie-banner epic: dsr-consent-and-cookie-banner
title: core-consent foundation — types, brand, withConsent wrapper, conformance extension, ESLint rule title: core-consent foundation — types, brand, withConsent wrapper, conformance extension, ESLint rule
type: technical-story type: technical-story
status: in-progress status: done
feature: core-consent feature: core-consent
depends-on: [02-audit-enum-amendment] depends-on: [02-audit-enum-amendment]
blocks: [04-core-consent-implementation] blocks: [04-core-consent-implementation]
created: 2026-05-19T12:00:00Z created: 2026-05-19T12:00:00Z
updated: 2026-05-19T11:06:54.354Z updated: 2026-05-19T11:54:41.015Z
--- ---
## Goal ## Goal
@@ -54,4 +54,4 @@ Manifest-first ordering requires that the consent type surface and structural en
## Tasks ## Tasks
- [x] Run `pnpm turbo gen core-package consent` + add `ConsentCategory`, `ConsentState`, `UserConsentState` types in `core-consent/consent-types.ts` + `IConsent` interface in `core-consent/consent.interface.ts` + `ConsentChecked` brand + `isConsentChecked` helper in `core-shared/conformance/brands.ts` + `withConsent` wrapper in `core-consent/with-consent.ts` with unit tests asserting brand attachment and factory passthrough + `requiresConsent: ConsentCategory[]` field in the feature manifest schema (default `[]`) + extend `assertFeatureConformance` to require `ConsentChecked` brand when `requiresConsent.length > 0` with a synthetic fixture test asserting the boot failure; all gates pass. - [x] Run `pnpm turbo gen core-package consent` + add `ConsentCategory`, `ConsentState`, `UserConsentState` types in `core-consent/consent-types.ts` + `IConsent` interface in `core-consent/consent.interface.ts` + `ConsentChecked` brand + `isConsentChecked` helper in `core-shared/conformance/brands.ts` + `withConsent` wrapper in `core-consent/with-consent.ts` with unit tests asserting brand attachment and factory passthrough + `requiresConsent: ConsentCategory[]` field in the feature manifest schema (default `[]`) + extend `assertFeatureConformance` to require `ConsentChecked` brand when `requiresConsent.length > 0` with a synthetic fixture test asserting the boot failure; all gates pass.
- [ ] Add `no-undeclared-consent-check` ESLint rule (warn severity) in `packages/core-eslint/rules/` + extend `_manifest-ast.js` to extract `requiresConsent` + add RuleTester fixtures; update CLAUDE.md and `docs/guides/conformance-quickref.md` rule count 11 → 12; all gates pass. - [x] Add `no-undeclared-consent-check` ESLint rule (warn severity) in `packages/core-eslint/rules/` + extend `_manifest-ast.js` to extract `requiresConsent` + add RuleTester fixtures; update CLAUDE.md and `docs/guides/conformance-quickref.md` rule count 11 → 12; all gates pass.

View File

@@ -16,7 +16,7 @@ features:
auth, auth,
] ]
created: 2026-05-19T12:00:00Z created: 2026-05-19T12:00:00Z
updated: 2026-05-19T10:29:21.283Z updated: 2026-05-19T11:54:41.015Z
--- ---
## Goal ## Goal
@@ -31,7 +31,7 @@ Epic A delivered declarative PII inventory + retention + sub-processors. Epic B
- [x] [01 — Subject-linkage types in core-shared](01-subject-linkage-types/_story.md) - [x] [01 — Subject-linkage types in core-shared](01-subject-linkage-types/_story.md)
- [x] [02 — Audit action enum amendment (ADR-018)](02-audit-enum-amendment/_story.md) - [x] [02 — Audit action enum amendment (ADR-018)](02-audit-enum-amendment/_story.md)
- [ ] [03 — core-consent foundation: types + brand + withConsent + conformance + ESLint rule](03-core-consent-foundation/_story.md) - [x] [03 — core-consent foundation: types + brand + withConsent + conformance + ESLint rule](03-core-consent-foundation/_story.md)
- [ ] [04 — core-consent implementation: Payload impl + DI + migration helpers + tRPC router](04-core-consent-implementation/_story.md) - [ ] [04 — core-consent implementation: Payload impl + DI + migration helpers + tRPC router](04-core-consent-implementation/_story.md)
- [ ] [05 — core-consent React subpath: ConsentProvider + useConsent()](05-core-consent-react/_story.md) - [ ] [05 — core-consent React subpath: ConsentProvider + useConsent()](05-core-consent-react/_story.md)
- [ ] [06 — core-dsr: scaffold + interfaces + Payload impls + handlers + dsrRouter](06-core-dsr/_story.md) - [ ] [06 — core-dsr: scaffold + interfaces + Payload impls + handlers + dsrRouter](06-core-dsr/_story.md)