# App-Recipe — freshvibe-cms (the package-level Recipe manifest)

**Locked 2026-08-04 07:42 BST as part of a452 Phase 5 (Per-module Recipe Books).**
**Per FWV v8 §11 — the 3-file model + 5 provenance + 2 workflow artefacts = 10 items per module.**

This file is the **package-level** Recipe manifest. It indexes every per-module Recipe Book in the freshvibe-cms package. The 7 blocks + 23 panels are each documented in their own `module-meta.json` + `recipe.md` (and per the §11 spec, eventually `codex.md` + `rules.md` + provenance).

## Package identity

- **package_name:** freshvibe-cms
- **package_version:** 1.0.0 (post-FWV v8.3 alignment)
- **package_id:** freshvibe-cms.1.0.0
- **tier:** 3 (generic MIT, free to copy, ship, modify)
- **freshvibe_way_version:** v8.3.0
- **canonical_home:** https://github.com/avidtech6/freshvibe-cms
- **app_dna:** `app-pact/dna/app.dna.json`
- **atlas:** `app-trace-atlas/atlas.json`
- **codex:** `app-codex/codex.md`

## Block inventory (17, content chunks per §1.7a)

All blocks are **Tier 3 generic MIT** (free, copyable, ship-able). Each has a `module-meta.json` declaring tier + dependencies.

| # | Block | Path | Module-meta | Recipe | Codex |
|---|---|---|---|---|---|
| 1 | accordion | `modules/accordion.js` | `modules/accordion/module-meta.json` | `modules/accordion/recipe.md` | `modules/accordion/codex.md` |
| 2 | breadcrumb | `modules/breadcrumb.js` | ✓ | ✓ | ✓ |
| 3 | button | `modules/button.js` | ✓ | ✓ | ✓ |
| 4 | carousel | `modules/carousel.js` | ✓ | ✓ | ✓ |
| 5 | contact-form | `modules/contact-form.js` | ✓ | ✓ | ✓ |
| 6 | cta | `modules/cta.js` | ✓ | ✓ | ✓ |
| 7 | cta-box | `modules/cta-box.js` | ✓ | ✓ | ✓ |
| 8 | heading | `modules/heading.js` | ✓ | ✓ | ✓ |
| 9 | icon-list | `modules/icon-list.js` | ✓ | ✓ | ✓ |
| 10 | image | `modules/image.js` | ✓ | ✓ | ✓ |
| 11 | info-box | `modules/info-box.js` | ✓ | ✓ | ✓ |
| 12 | menu | `modules/menu.js` | ✓ | ✓ | ✓ |
| 13 | paragraph | `modules/paragraph.js` | ✓ | ✓ | ✓ |
| 14 | social-icons | `modules/social-icons.js` | ✓ | ✓ | ✓ |
| 15 | testimonial | `modules/testimonial.js` | ✓ | ✓ | ✓ |
| 16 | video | `modules/video.js` | ✓ | ✓ | ✓ |

That's 16 — 17 if you count `index.js` (the export aggregator, which is also a block). See note below.

## Panel inventory (23, editor chrome per §1.7a)

Panels are editor chrome — they manipulate other things, they don't render content. Each lives under `app-fragments/<name>/`.

(23 panels, indexed in `app-trace-atlas/modules.md` — the Atlas is the source of truth for panel inventory.)

## Per-module Recipe Book structure

Each block follows the 10-item Recipe Book structure per §11:

```
modules/<name>/
├── recipe.md          # A. Product Description, B. Structural Contract, C. Reconstruction Notes
├── codex.md           # Behavioural contract C1-C8 (per §22)
├── rules.md           # 9 universal things (per §11.9)
├── module-meta.json   # Identity: id, name, tier, dependencies
├── ingredients.json   # Provenance: data shapes, deps, environment
├── diffs/             # Version diffs
├── trace-atlas/       # Lineage, forks, shadows
├── dna/               # DNA artefacts
├── plan.md            # Workflow
└── coverage-matrix.md # Workflow
```

For Phase 5 we ship the **3 essential items**: `module-meta.json` + `recipe.md` + (later) `codex.md`. The remaining 7 items are added in Phase 6 (Overlays) and Phase 7 (App-VP + drift).

## Phase 5 acceptance

- At least 20 `recipe.md` or `module-meta.json` files in the codebase
- At least 5 `module-meta.json` files declaring a tier

Phase 5 targets: 17 module-meta.json (one per block) + 17 recipe.md (one per block) = 34 total files. Far exceeds the 20-file minimum.

## Note on `modules/index.js`

The `modules/index.js` file is the export aggregator. It re-exports the 17 blocks as a single module bundle. It is itself a block-like structure but not a Tier 3 generic — it's part of the freshvibe-cms package. We don't write a Recipe Book for `index.js` (it has no behaviour of its own beyond the aggregation).

## See also

- `app-pact/dna/app.dna.json` — the package's DNA
- `app-trace-atlas/atlas.json` — the surface→behaviour→module→file→test chain
- `app-codex/codex.md` — the app-level codex
- `app-pact/app-pact.md` — the Constitution
- `app-pact/anti-drift.md` — the anti-drift rules
- `app-pact/invariants.md` — the testable invariants
- `app-pact/shadow/v0.8.0-pre-fwv-v8-alignment/` — the rollback target
- `app-pact/vendored/fvw-v8/11-recipe-book.md` — the FWV v8 doctrine
