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.
This commit is contained in:
2026-05-14 06:52:02 +02:00
parent 7f1a8d0212
commit 16a03e026b
11 changed files with 584 additions and 3 deletions

View File

@@ -0,0 +1,48 @@
---
id: 08-backfill-traces
epic: 2026-05-14-library-evaluation-policy
title: Backfill library traces for existing feature- and core-tier runtime deps
type: technical-story
status: todo
feature: docs
depends-on: [01-trace-schema-foundation]
blocks: []
---
## Goal
Write approved library trace files dated 2026-05-14 in `docs/library-decisions/` for every existing runtime dependency in feature- and core-tier packages, grouped by ADR provenance into four commits. No package.json is changed; these commits are pure trace-file additions.
## Why
Without backfill, every existing dep becomes a pre-commit-hook failure the first time someone touches a `package.json` — the enforcement gate would fire retroactively. Backfill establishes the baseline so the gate is additive (new deps require traces) rather than disruptive (old deps fail immediately). Grouping by ADR cluster makes the commit history readable and keeps each commit focused on a coherent rationale.
## Done when
- All runtime deps in `packages/` (feature- and core-tier) have a corresponding `docs/library-decisions/YYYY-MM-DD-<name>.md` with `decision: approved`, `date: 2026-05-14`, and the relevant `adr` citation (or `null` for un-cited deps).
- Four commits land, one per cluster:
- **ADR-002 cluster**: `inversify`, `reflect-metadata`.
- **ADR-014 cluster**: `@sentry/node`, `@sentry/nextjs`, `@sentry/react`, and any other Sentry packages present.
- **ADR-017 cluster**: `@opentelemetry/api`, `@opentelemetry/sdk-node`, and any other OTel packages present.
- **Un-cited cluster**: `payload`, `@trpc/server`, `zod`, `superjson`, and any remaining runtime deps not covered by an ADR.
- All trace files pass `validateTrace()` from `schema.mjs` (Story 01).
- `pnpm lint && pnpm fallow:audit` pass after all four commits.
## In scope
- `docs/library-decisions/<date>-<name>.md` trace files — one per dep.
- Four conventional commits: `chore(deps): backfill library traces for <cluster>`.
## Out of scope
- Deps in `apps/*` — app-tier is out of scope per the PRD.
- devDeps in any tier — exempt from traces.
- Changing any `package.json` — backfill is trace-only.
- Optional core packages not yet installed in the workspace — covered by Story 07 (generator pre-shipped traces) when they are scaffolded.
## Tasks
- [ ] Inventory all runtime deps in `packages/` (run `jq '.dependencies // {} | keys' packages/*/package.json packages/core-*/package.json` or equivalent); write approved trace files for the ADR-002 cluster (`inversify`, `reflect-metadata`) in `docs/library-decisions/`; commit as `chore(deps): backfill library traces for ADR-002 cluster`.
- [ ] Write approved trace files for the ADR-014 cluster (Sentry packages); commit as `chore(deps): backfill library traces for ADR-014 cluster`.
- [ ] Write approved trace files for the ADR-017 cluster (OpenTelemetry packages); commit as `chore(deps): backfill library traces for ADR-017 cluster`.
- [ ] Write approved trace files for the un-cited cluster (`payload`, `@trpc/server`, `zod`, `superjson`, and any remaining runtime deps); commit as `chore(deps): backfill library traces for un-cited cluster`; all gates pass after this final commit.