- 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).
24 lines
1.2 KiB
Markdown
24 lines
1.2 KiB
Markdown
---
|
||
id: 2026-05-13-binder-wrap-helper
|
||
prd: docs/work/prds/2026-05-13-binder-wrap-helper.prd.md
|
||
title: Collapse binder duplication via wireUseCase helper
|
||
type: epic
|
||
status: done
|
||
features: [core-shared, auth, blog, media, marketing-pages, navigation]
|
||
created: 2026-05-13
|
||
---
|
||
|
||
## Goal
|
||
|
||
Introduce a `wireUseCase(...)` helper in `@repo/core-shared/conformance/` that encapsulates the `withSpan + withCapture (+ optional withAudit)` composition. Refactor all five features' binders to call the helper. Update the feature generator templates to emit the new call shape by default.
|
||
|
||
## Why
|
||
|
||
Five of `pnpm fallow`'s top-ten clone groups come from binder pairs across features. The inline wrapping runs 30–79 duplicated lines per binder pair. The helper becomes the single source of truth for the wrapping shape; per-feature binders shrink to their decision content plus a list of `wireUseCase` calls.
|
||
|
||
## Stories
|
||
|
||
- [x] [01 — Introduce `wireUseCase` helper in core-shared](01-wire-use-case-helper/_story.md)
|
||
- [x] [02 — Migrate all five feature binders to `wireUseCase`](02-migrate-feature-binders/_story.md)
|
||
- [x] [03 — Update generator templates to emit `wireUseCase` call shape](03-update-generator-templates/_story.md)
|