Files
Danijel Martinek 16a03e026b chore(work): decompose 2026-05-14-library-evaluation-policy epic
Decomposer produced 9 stories under docs/work/2026-05-14-library-
evaluation-policy/, ordered to land the schema foundation first and
the cross-referencing content (skill, guide, backfill) last:

01 - trace schema module + docs/library-decisions/ foundation
02 - pre-commit check script
03 - Claude PreToolUse / PostToolUse hooks
04 - evaluate-library skill
05 - human guide (docs/guides/adding-a-library.md)
06 - sandcastle reviewer prompt update
07 - generator pre-shipped traces for optional cores
08 - backfill traces for existing runtime deps
09 - CLAUDE.md Key Conventions bullet

Anchored by ADR-022 + the approved PRD at
docs/work/prds/2026-05-14-library-evaluation-policy.prd.md.
2026-05-14 06:52:02 +02:00

3.0 KiB

id, epic, title, type, status, feature, depends-on, blocks
id epic title type status feature depends-on blocks
07-generator-pre-shipped-traces 2026-05-14-library-evaluation-policy Generator templates — pre-shipped traces for optional core packages technical-story todo tooling
01-trace-schema-foundation

Goal

Update the five optional-core generator templates (events, realtime, audit, trpc, ui) so that when pnpm turbo gen core-package <name> runs, it copies pre-written decision: approved library traces into docs/library-decisions/ for every direct runtime dependency of that core package. Update the corresponding __snapshots__ files so the snapshot tests cover the new trace files.

Why

A developer who scaffolds an optional core via the generator should not immediately face a pre-commit failure for its bundled deps — the generator is the policy-compliant path, so the traces should land by construction. Without pre-shipped traces, the very act of using the generator would trigger the enforcement gate it's supposed to clear.

Done when

  • Each of the five generator templates (turbo/generators/templates/core-package/{events,realtime,audit,trpc,ui}/) contains a docs/library-decisions/ subtree with one .md trace file per direct runtime dependency of that core, dated at generation time (use the template variable for date, or freeze to the scaffold date with a comment), decision: approved, and citing the relevant ADR (events → ADR-015, realtime → ADR-016, audit → ADR-018; trpc and ui cite their closest ADR or null if none).
  • The generator copies these files into the workspace when run.
  • The turbo/generators/__snapshots__/core-package/<name>.snapshot.json files are updated to include the new trace files; pnpm turbo gen core-package events (or any other optional core) passes the existing snapshot test.
  • pnpm lint && pnpm fallow:audit pass.

In scope

  • turbo/generators/templates/core-package/events/ — pre-shipped trace(s).
  • turbo/generators/templates/core-package/realtime/ — pre-shipped trace(s).
  • turbo/generators/templates/core-package/audit/ — pre-shipped trace(s).
  • turbo/generators/templates/core-package/trpc/ — pre-shipped trace(s).
  • turbo/generators/templates/core-package/ui/ — pre-shipped trace(s).
  • Snapshot JSON updates for all five cores.
  • Generator copy logic (if not already handled by the template mechanism).

Out of scope

  • Backfill traces for already-installed optional cores in the live workspace — Story 08.
  • Generator templates for non-core-package generators (feature, event, job, realtime, component) — no runtime deps are emitted by those generators.

Tasks

  • Inventory the direct runtime deps of each of the five optional core generator templates (read each template's package.json); write one approved trace file per dep in the correct generator template subtree with ADR citation; update the five snapshot JSON files to include the new trace file entries; verify pnpm turbo gen core-package events (or equivalent dry-run) matches the updated snapshot; all gates pass on this single commit.