Files
agentic-dev/docs/work/library-evaluation-policy/08-backfill-traces/_story.md
Danijel Martinek 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

3.2 KiB

id, epic, title, type, status, feature, depends-on, blocks, created, updated
id epic title type status feature depends-on blocks created updated
08-backfill-traces library-evaluation-policy Backfill library traces for existing feature- and core-tier runtime deps technical-story done docs
01-trace-schema-foundation
2026-05-14T06:52:02+02:00 2026-05-14T19:16:52.691Z

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.