# FVW v8 Compliance Audit — Non-AI-Bundle Modules

**Date:** 2026-07-17
**Method:** Direct file check (no LLM needed — 5 lines of bash, see below)
**Scope:** 7 modules outside the FVW v8 reference implementation (ai-bundle)
**Result:** All 7 modules are partially or fully non-compliant with FVW v8 §11 mandatory artefacts.

## Compliance Matrix

FVW v8 §11 mandatory artefacts for any constitutional module:
1. `module.json` — module metadata
2. `module-meta.json` — additional metadata
3. `recipe-book/codex.md` — behaviour spec (C1-C9)
4. `recipe-book/recipe.md` — product description, structural contract
5. `recipe-book/rules.md` — invariants, governance rules

| Module | module.json | module-meta.json | codex.md | recipe.md | rules.md | Status |
|---|---|---|---|---|---|---|
| **oscar-ask-unit** | ❌ | ❌ | ❌ | ❌ | ❌ | NON-COMPLIANT (0/5) |
| **oscar-chip-system** | ✅ | ❌ | ❌ | ❌ | ❌ | PARTIAL (1/5) |
| **oscar-credential-surface** | ✅ | ❌ | ❌ | ❌ | ❌ | PARTIAL (1/5) — has `lineage.md` (non-standard) |
| **oscar-freshcards** | ✅ | ❌ | ❌ | ❌ | ❌ | PARTIAL (1/5) |
| **oscar-peek-panel** | ✅ | ❌ | ❌ | ✅ | ❌ | PARTIAL (2/5) |
| **oscar-settings** | ✅ | ❌ | ❌ | ✅ | ❌ | PARTIAL (2/5) |
| **revibe** | ❌ | ❌ | ❌ | ❌ | ❌ | NON-COMPLIANT (0/5) |

## Reference (compliant) modules

The `ai-bundle` 12 sub-modules all have the full 5/5. They are the canonical
FVW v8 implementation in this app. Reference example: `app/src/modules/ai-bundle/ai-ask/`.

## Audit method (copy-paste)

The audit was done with this Python snippet — no LLM required, runs in
under a second, returns the full matrix:

```python
from pathlib import Path
required = [
    "module.json",
    "module-meta.json",
    "recipe-book/codex.md",
    "recipe-book/recipe.md",
    "recipe-book/rules.md",
]
for m in ["oscar-ask-unit", "oscar-chip-system", ...]:
    mod = Path(f"app/src/modules/{m}")
    print(m, [str((mod / f).exists()).upper() for f in required])
```

GLM was tried first (5 minutes, 0 errors) but produced verbose output that
required regex parsing. The direct file check is more reliable AND free.

## What needs to happen for full FVW v8 compliance

For each module, **4 new files per module** for the partially compliant
ones, **5 new files for the non-compliant ones**:

- `module-meta.json` (if missing) — short JSON, ~10 lines
- `recipe-book/codex.md` (if missing) — behaviour spec, 50-100 lines
- `recipe-book/recipe.md` (if missing) — product description, 50-100 lines
- `recipe-book/rules.md` (if missing) — invariants, 30-50 lines

The content is NOT boilerplate. Each file requires understanding what the
module does, what its public surface is, what its contract is, what its
invariants are. Drafting these is judgment work, not generation.

**Estimated cost:**
- 7 modules × ~150 lines per module = ~1000 lines of new docs
- ~3 hours of careful drafting (Mavis)
- Or ~30 minutes GLM draft + 1 hour Mavis review per module
- Total: 1-2 days of focused work

## Why this is deferred (not done now)

1. **Budget** — Mavis at 79% weekly, 5h daily reset. FVW v8 alignment is paperwork, not feature work.
2. **Risk** — wrong recipe content could lead future sessions astray. Each file needs careful review.
3. **No user-facing benefit** — Mark doesn't care about FVW v8 alignment. He cares that the app works.
4. **No bug fix** — these modules are working in production as-is.

## When to do this

- ✅ When adding a NEW module — make it v8-compliant from day one
- ✅ When Mavis budget is healthy (post-reset, >50% remaining)
- ✅ When Oscar is being prepared for external release or sale
- ✅ When you want a clean "ship-ready" marker for the codebase
- ❌ Not now, not this week

## Status of this audit

**Status: DEFERRED.** Modules are working in production. Audit doc is on
record. Future session can pick this up when budget allows.

**Files referenced:**
- AI Bundle v8 reference: `app/src/modules/ai-bundle/ai-ask/`
- This audit: `pact/extraction/fvw-v8-compliance-audit-2026-07-17.md`
- DNA: `pact/dna/app.dna.json` (lists §11 as ratified)
