---
id: 06-feature-migrations
epic: conformance-system-v1
title: Migrate blog/media/navigation/marketing-pages to conformance pattern
type: technical-story
status: done
feature: <cross-feature>
depends-on: [05-generator-updates]
blocks: []
---

## Goal
Every feature in the repo has a manifest + a self-asserting bindProduction.
After this milestone, `feature-must-have-manifest` flips from WARN to ERROR.

## Why
Three of the four enforcement layers already exist; the only thing keeping
them from being fully effective is that 4 of 5 features still don't have
manifests. This story closes that gap.

## In scope
- `feature.manifest.ts` for blog / media / navigation / marketing-pages
- Manifest re-export from each feature's `src/index.ts`
- `bind-production.ts` update for each: imports + tail `assertFeatureConformance` call
- Flip `feature-must-have-manifest` from `warn` to `error` in base.js

## Out of scope
- Adding publishes/audits to existing use cases (declared empty for now)
- Cross-feature event wiring (blog→marketing welcome flows, etc.)
- Migrating realtime channels or jobs into manifests

## Tasks
- [x] Story scaffold
- [x] blog manifest + binding + re-export
- [x] media manifest + binding + re-export
- [x] navigation manifest + binding + re-export
- [x] marketing-pages manifest + binding + re-export
- [x] Flip feature-must-have-manifest to error
- [x] Final verification + closeout
