docs(work): story 05 — generator updates

This commit is contained in:
2026-05-13 00:02:05 +02:00
parent 19611fb92c
commit 8da21c0405

View File

@@ -0,0 +1,52 @@
---
id: 05-generator-updates
epic: conformance-system-v1
title: Generator updates — emit feature.manifest.ts + self-asserting bind-production
type: technical-story
status: in-progress
feature: turbo-generators
depends-on: [04-ci-drift-gate]
blocks: [06-feature-migrations]
---
## Goal
`pnpm turbo gen feature <name>` produces a feature that's conformance-
compliant out of the box: ships a `feature.manifest.ts` declaring the
scaffolded use case, and the scaffolded `bind-production.ts` calls
`assertFeatureConformance` at its tail.
## Why
Today, generating a new feature does NOT emit a manifest, so
`feature-must-have-manifest` would warn the moment the developer saves.
And `bindProductionX` doesn't self-assert. New features should be
conformance-ready by default.
## Done when
- `feature.manifest.ts.hbs` template exists, declaring the scaffolded
`getX` use case with mutates: false / empty arrays
- `bind-production.ts.hbs` imports `assertFeatureConformance` +
`<name>Manifest` and calls the assertion at the tail
- `config.ts` action emits the manifest file
- Running `pnpm turbo gen feature demo` into a tmp dir produces a
feature directory containing a valid `feature.manifest.ts`
- Existing snapshot tests pass (regenerate snapshots if needed)
## In scope
- Manifest template
- bind-production template update
- config.ts action wiring
- Snapshot regen
## Out of scope
- Multi-use-case feature scaffolding
- Generator changes to other generators (event/job/realtime)
- Backfilling manifests for existing features (milestone vi)
## Tasks
- [ ] Story scaffold
- [ ] feature.manifest.ts.hbs template
- [ ] bind-production.ts.hbs update
- [ ] config.ts action wiring
- [ ] Run generator into tmp; verify shape
- [ ] Snapshot regen (if needed) + verify tests pass
- [ ] Final verification + closeout