diff --git a/docs/work/conformance-system-v1/05-generator-updates/_story.md b/docs/work/conformance-system-v1/05-generator-updates/_story.md new file mode 100644 index 0000000..830f154 --- /dev/null +++ b/docs/work/conformance-system-v1/05-generator-updates/_story.md @@ -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 ` 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` + + `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