Commit Graph

131 Commits

Author SHA1 Message Date
5792b7412a chore(work): finish 03-core-consent-foundation 2026-05-19 13:54:40 +02:00
ef9cfd243e docs: seed PRD for security headers + rate-limit + SBOM (ADR-025 Epic C)
Implementation seed for ADR-025 Epic C: six security headers middleware
with nonce-based CSP in core-shared/security (Next + TanStack adapters),
fourth conformance channel for rate-limit in core-shared/rate-limit
(IRateLimit + RateLimited brand + multi-budget manifest field +
no-undeclared-rate-limit ESLint rule), CycloneDX SBOM step in
release-please.yml. auth.signIn backfilled as canonical rate-limit
reference. ADR-023 amendment for SBOM captured. Status: approved —
ready for pnpm work decompose.
2026-05-19 13:09:20 +02:00
9956d73b10 chore(work): tick task in 03-core-consent-foundation 2026-05-19 13:06:52 +02:00
f5d08dc84a chore(work): finish 02-audit-enum-amendment 2026-05-19 12:29:20 +02:00
8cf9f4be98 chore(work): finish 01-subject-linkage-types 2026-05-19 12:13:16 +02:00
5abf7fe623 chore(work): decompose dsr-consent-and-cookie-banner epic
Generated 1 epic + 11 stories under docs/work/epics/ from the approved
PRD docs/work/prds/dsr-consent-and-cookie-banner.prd.md. Stories cover
subject-linkage types, ADR-018 audit enum amendment, core-consent
foundation + impl + react, core-dsr (4 interfaces), core-api router
composition, core-ui scaffold + CookieConsentBanner, auth signup
migration, and documentation. Ready for `pnpm work dispatch --execute`.
2026-05-19 11:55:05 +02:00
ae886a4499 docs: seed PRD for DSR + consent + cookie banner epic (ADR-025 Epic B)
Implementation seed for ADR-025 Epic B: two new optional cores
(@repo/core-dsr with 4 interfaces, @repo/core-consent with IConsent +
ConsentChecked brand + requiresConsent manifest field), CookieConsentBanner
in core-ui with EU-prominence defaults, subject-linkage types in
core-shared, ADR-018 amendment adding 4 new audit action types
(CONSENT_GRANT/WITHDRAW + RESTRICT/UNRESTRICT). 15 user stories ordered
by the in-epic sequencing hints. Status: approved — ready for
pnpm work decompose.
2026-05-19 11:41:25 +02:00
07caaa1695 chore(work): finish epic compliance-manifests-pii-retention-subprocessors 2026-05-18 22:23:29 +02:00
188625b4a8 chore(work): finish 07-pre-commit-and-ci-integration 2026-05-18 22:16:22 +02:00
add54f14ef chore(work): finish 06-compliance-generator-scripts 2026-05-18 22:12:12 +02:00
3ec30507d3 chore(work): tick task in 06-compliance-generator-scripts 2026-05-18 22:02:54 +02:00
d8dbc99bab chore(work): tick task in 06-compliance-generator-scripts 2026-05-18 21:53:18 +02:00
ab44b2f16d chore(work): tick task in 06-compliance-generator-scripts 2026-05-18 21:47:27 +02:00
3a73634d71 chore(work): finish 05-backfill-template-collections 2026-05-18 21:21:31 +02:00
97bf27b6db chore(work): tick task in 05-backfill-template-collections 2026-05-18 21:18:07 +02:00
68240ad0f3 chore(work): tick task in 05-backfill-template-collections 2026-05-18 21:14:04 +02:00
b5c16a76c1 chore(work): tick task in 05-backfill-template-collections 2026-05-18 21:09:27 +02:00
2f1aa849e7 chore(work): tick task in 05-backfill-template-collections 2026-05-18 21:05:30 +02:00
464df9aa9b chore(work): finish 04-retention-purge-job 2026-05-18 20:58:23 +02:00
d326270e1e chore(work): finish 03-adr-022-amendment-and-evaluate-library-skill 2026-05-18 20:46:04 +02:00
8486037f20 chore(work): finish 02-eslint-rule-pii-declaration-complete 2026-05-18 20:35:43 +02:00
fa1a10c88c chore(work): finish 01-pii-retention-type-primitives 2026-05-18 20:29:17 +02:00
c298f396b1 chore(work): decompose compliance-manifests epic
Generated 1 epic + 8 stories under docs/work/epics/ from the approved
PRD docs/work/prds/compliance-manifests-pii-retention-subprocessors.prd.md.
Stories cover type primitives, ESLint rule, ADR-022 amendment, retention
purge job, template backfill, three generator scripts, pre-commit + CI
integration, and docs/compliance/ reference files. Ready for
`pnpm work dispatch --execute` to begin implementation.
2026-05-18 20:06:14 +02:00
d3278c0aa1 docs: seed PRD for compliance manifests epic (ADR-025 Epic A)
Implementation seed for ADR-025 Epic A: declarative PII inventory +
retention + sub-processor manifests with three generators, pre-commit +
CI drift detection, background purge job, and ADR-022 trace
frontmatter extension for sub-processor fields (discriminated union).
Eleven user stories ordered for the decomposer; five open questions
with recommendations. Status: approved — ready for pnpm work decompose.
2026-05-18 19:55:37 +02:00
0c6f60fccf chore(work): finish epic product-analytics-channel 2026-05-18 18:05:29 +02:00
afe32c7d99 chore(work): tick task in 09-documentation 2026-05-18 18:03:08 +02:00
940a804944 chore(work): finish 08-react-provider 2026-05-18 17:56:52 +02:00
065ca1b6aa chore(work): finish 07-eslint-rule-no-undeclared-analytics-event 2026-05-18 17:44:55 +02:00
0f8e3b8caf chore(work): finish 06-analytics-protocol-bind-context 2026-05-18 17:40:19 +02:00
68d3d90d2d chore(work): finish 05-assert-feature-conformance-analyzed 2026-05-18 17:36:51 +02:00
81f75f756e chore(work): finish 04-manifest-schema-and-wire-use-case 2026-05-18 17:15:38 +02:00
ff1e0b052c chore(work): tick task in 04-manifest-schema-and-wire-use-case 2026-05-18 13:59:14 +02:00
edf354318b chore(work): finish 03-analyzed-brand-and-with-analytics-wrapper 2026-05-18 13:55:06 +02:00
a5ab698b41 chore(work): tick task in 03-analyzed-brand-and-with-analytics-wrapper 2026-05-18 13:46:48 +02:00
92294bc7ff chore(work): finish 02-recording-analytics 2026-05-18 13:38:16 +02:00
1434fe9d82 chore(work): finish 01-scaffold-core-analytics-package 2026-05-18 13:33:06 +02:00
80c702eb20 chore(work): tick task in 01-scaffold-core-analytics-package 2026-05-18 13:29:55 +02:00
b8d4cfe907 chore(work): decompose product-analytics-channel epic
Generated 1 epic + 9 stories under docs/work/epics/ from the approved
PRD docs/work/prds/product-analytics-channel.prd.md. Stories follow the
sequencing hints from the PRD (brand+wrapper → manifest+wireUseCase →
assertFeatureConformance → BindContext+ESLint → React provider → docs).
Ready for `pnpm work dispatch --execute` to begin implementation.
2026-05-18 12:46:25 +02:00
1595c9198e docs: seed PRD for product analytics channel epic (ADR-024)
Implementation seed for ADR-024. Nine user stories, ordered sequencing
hints for the decomposer (brand+wrapper → manifest+wireUseCase →
assertFeatureConformance → BindContext+ESLint → React provider → docs).
Status: approved — ready for `pnpm work decompose --execute` to generate
the epic + stories under `docs/work/epics/product-analytics-channel/`.
2026-05-18 12:35:00 +02:00
756e36c720 refactor(work): move epic folders into docs/work/epics/
The previous layout placed epic folders directly under docs/work/
alongside prds/ and _system/. Tightening: epics now live in their
own docs/work/epics/ subfolder, peer to prds/ and _system/. Same
shape as the existing prds/ bucket.

Final docs/work/ layout:
  README.md
  prds/<slug>.prd.md
  _system/_state.json
  epics/<slug>/_epic.md + <story-folder>/_story.md

Renames (git mv preserves history):
- docs/work/binder-wrap-helper/
    -> docs/work/epics/binder-wrap-helper/
- docs/work/library-evaluation-policy/
    -> docs/work/epics/library-evaluation-policy/
- docs/work/ci-security-and-supply-chain/
    -> docs/work/epics/ci-security-and-supply-chain/

Tooling updates:
- state-builder.mjs walks workRoot/epics/ directly; SKIP_FOLDERS
  obsoleted (no more sibling folders to filter out).
- dispatch.mjs's findNextTask, tickStoryBulletInEpic, and
  flipEpicDoneIfAllStoriesDone all join with "epics" segment.
- prd-ship.mjs's deriveShippingCommits walks workRoot/epics/ and
  git-logs docs/work/epics/<epic>/.
- decomposer.prompt.md emits epics under docs/work/epics/<epic-id>/.
- handoff + grill-with-docs glossary references updated.
- Glossary entry for Epic updated.

Reserved future shape: when a task-tracker integration (ClickUp,
Linear) ships, the epics/ subfolder hosts <task-id>-<slug>/
folders. Today it just hosts bare slugs.
2026-05-14 21:21:51 +02:00
bae4b66fa4 refactor(work): drop date prefixes + move _state.json into _system/
Convention shift: epic folders + PRD filenames + frontmatter id
fields are now bare slugs. The created: timestamp (Phase 2) carries
the date; folder names don't repeat it. A future <task-id>-<slug>
shape (e.g. ClickUp) lands cleanly when that integration ships.

Renames (git mv preserves history):
- docs/work/2026-05-13-binder-wrap-helper/
    -> docs/work/binder-wrap-helper/
- docs/work/2026-05-14-library-evaluation-policy/
    -> docs/work/library-evaluation-policy/
- docs/work/2026-05-14-ci-security-and-supply-chain/
    -> docs/work/ci-security-and-supply-chain/
- docs/work/prds/2026-05-13-binder-wrap-helper.prd.md
    -> docs/work/prds/binder-wrap-helper.prd.md
- docs/work/prds/2026-05-13-coverage-architecture.prd.md
    -> docs/work/prds/coverage-architecture.prd.md
- docs/work/prds/2026-05-14-library-evaluation-policy.prd.md
    -> docs/work/prds/library-evaluation-policy.prd.md
- docs/work/prds/2026-05-14-ci-security-and-supply-chain.prd.md
    -> docs/work/prds/ci-security-and-supply-chain.prd.md

Frontmatter updates inside the renamed files: epic id, epic prd,
story epic, PRD id, PRD builds-on all drop date prefixes.

System folder + state file move:
- New docs/work/_system/ holds framework-managed state.
- docs/work/_state.json -> docs/work/_system/_state.json.
- state-builder.mjs adds _system to SKIP_FOLDERS.
- cli.mjs + state-sync-guard.mjs + .husky/pre-commit point at the
  new path.

template-reset-v1 epic deleted entirely (one-off cleanup epic from
the pre-date-convention era; status was already done).

Generator-template updates (so new artifacts ship in the right
shape):
- .sandcastle/decomposer.prompt.md emits bare-slug folder names +
  ISO created: timestamp.
- .claude/skills/to-prd/SKILL.md template uses bare-slug filename +
  bare-slug id field + ISO created: timestamp.

Doc reference updates: glossary, runbook, agent-first-workflow-
and-conformance, reviewer prompt, ADR-020, ADR-022, ADR-023 all
point at the new paths/slugs.
2026-05-14 21:16:51 +02:00
90fc2853f2 feat(work): add ISO timestamps + auto-bump on staged work-doc changes
- New scripts/work/bump-updated-timestamps.mjs stamps the `updated:`
  frontmatter field to the current ISO 8601 UTC timestamp on every
  staged docs/work/**/*.md file. Idempotent; adds the field after
  `created:` if missing.
- .husky/pre-commit invokes the bump script as step 2 (before
  rebuild-state) so _state.json sees the fresh timestamp.
- Backfill all existing work docs (4 PRDs + 3 epics + 21 stories):
    * created: promoted from \`YYYY-MM-DD\` -> ISO timestamp using
      git log --diff-filter=A on each file (first-commit date for
      stories that had no \`created:\` line, midnight UTC for PRDs
      and epics that had date-only created).
    * updated: added from \`git log -1 --format=%aI\` on each file
      (last-commit timestamp); will be re-stamped to "now" by the
      pre-commit hook on this commit.

Stories that had no \`created:\` line now get one.
2026-05-14 21:10:34 +02:00
3fc5c0f1ca feat(work): auto-tick epic story bullets when a story finishes
- Add tickStoryBulletInEpic(workRoot, epic, story) helper that finds
  the bullet in the parent epic's `## Stories` section linking to the
  given story folder and flips `- [ ]` to `- [x]`. Idempotent.
- applyApprovedState now ticks the parent epic bullet whenever a
  story flips to status: done (alongside the existing per-task tick
  and epic-status flip). Epic file gets staged on either ticked-or-
  flipped, not just flipped.
- Backfill all 3 existing epics: 21 bullets ticked to match their
  already-done story statuses (binder-wrap-helper x3, library-
  evaluation-policy x9, ci-security-and-supply-chain x9).
2026-05-14 21:05:06 +02:00
dd58974067 chore(work): finish epic 2026-05-14-ci-security-and-supply-chain 2026-05-14 20:17:29 +02:00
bb5502737c chore(work): tick task in 09-ci-security-guide-and-docs 2026-05-14 20:14:57 +02:00
33ed9e97e4 chore(work): finish 08-reviewer-prompt-update 2026-05-14 20:05:17 +02:00
41bf107fc4 chore(work): finish 07-gitleaks-precommit 2026-05-14 20:01:16 +02:00
2f57003b55 chore(work): finish 06-codeql-and-audit-signatures 2026-05-14 19:56:40 +02:00
1979041197 chore(work): tick task in 06-codeql-and-audit-signatures 2026-05-14 19:54:42 +02:00
331573bc4f chore(work): finish 05-trace-revalidation-workflow 2026-05-14 19:53:07 +02:00