Materialises the output of the improve-codebase-architecture skill's
grilling loop on Candidate 1 (binder duplication), sub-shape (a)
(helper-inside-binder).
Captured decisions:
- New wireUseCase helper at @repo/core-shared/conformance/
- Composes the existing withSpan + withCapture (+ optional
withAudit) wrappers; doesn't replace them
- Per-feature binders shrink to decision content + N wireUseCase
calls instead of N x ~12 lines of inline wrapping
- All 5 features migrated (10 binder files, ~24 inline wrap sites)
- Brand attachment stays in the existing wrappers
- Generator template emits the new shape so future scaffolds
don't regress
Sub-shape (b) (pre-wired factory exports) explicitly rejected in
favour of (a) — keeps the wrapping a binder concern, preserves
ADR-008's per-feature DI isolation.
Status: draft. Will not pass through pnpm work decompose until a
human reviewer flips status to approved. Expected to land as one
mid-sized epic with the helper + per-feature migrations as separate
stories.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
docs/work — the local task system
Filesystem-backed Epic/Story/Task hierarchy used by AI agents and humans alike.
See docs/architecture/agent-first-workflow-and-conformance.md for the full
design. Until the work-system-v1 epic ships orchestration tooling, this
folder is human-driven — agents read the files for context, humans flip
checkboxes.
Layout
prds/<date>-<slug>.prd.md— source PRDs<epic-slug>/_epic.md— one folder per epic<epic-slug>/<story-slug>/_story.md— one folder per story<epic-slug>/<story-slug>/<task-slug>.task.md— one file per task_templates/— copy-paste templates (added in work-system-v1)_state.json— derived index (added in work-system-v1)
PRD lifecycle
PRD status frontmatter field: draft → in-review → approved → shipped.
- draft → in-review — author flips when ready for review (manual)
- in-review → approved — human reviewer flips on acceptance (manual)
- approved → shipped — auto-flipped by
pnpm work prd-ship <prd-id>when the seed epic finishes. The state-builder surfaces this signal under_state.json→needs_prd_ship[]so the orchestrator (or a reviewer running the sandcastle workflow) can act on it.
The decomposer refuses to run on draft PRDs. Once approved, the seed epic is generated; once the epic completes, the PRD is automatically flipped to shipped along with its commit list.