# DO-001 — Reconstruction Mode = Sovereign SPA Mode

**Date:** 2026-06-29
**Status:** Locally binding via OSCR- (proposed upstream to FVW v8 §33.5)

---

## Decision

Oscar declares its reconstruction mode as **Sovereign SPA Mode** — a third mode beyond FreshVibe App Mode and Studio Module Mode.

## Properties of Sovereign SPA Mode

| Property | Value |
|---|---|
| Framework | React 18 + TypeScript + Vite |
| UI library | None (vanilla CSS or CSS modules) — explicitly NO Mantine |
| Container | Standalone (Cloudflare Pages, Vercel, etc.) |
| Imports from FVW | Zero |
| State management | React hooks (useState, useContext, useReducer) |
| Theme tokens | CSS custom properties (no Mantine theme) |
| Persistence | IndexedDB (browser-only) + localStorage (namespaced) |
| Deployment | Static SPA (no SSR) |

## Why a third mode?

Per FVW v8 §33 ratified, only two modes are declared:
- FreshVibe App Mode (vanilla HTML/CSS/JS)
- Studio Module Mode (React + TS + Mantine + Vite, in FVS Studio container)

Oscar is neither:
- Oscar uses React (not App Mode)
- Oscar has no Mantine (not Studio Module Mode)
- Oscar is not in FVS Studio container (sovereign)
- Oscar imports nothing from FVS (sovereignty invariant)

A third mode is required to honestly describe Oscar.

## Upstream proposal

Per §33, propose adding **§33.5 — Sovereign SPA Mode** to FVW v8 doctrine. Text:

```markdown
## 33.5 — Sovereign SPA Mode (third mode)

A workspace is in Sovereign SPA Mode iff:
- Framework is React + TypeScript + Vite (no Mantine)
- Container is standalone (no FVS Studio container)
- Zero FVW/FVS imports
- Persistence is IndexedDB (browser-only)
- localStorage is namespaced (per-workspace prefix)

This mode is for sovereign apps that:
- Use the React framework family (for ergonomic component composition)
- Are not part of the FreshVibe Studio ecosystem
- Maintain their own Pact, brand, runtime, and test suite
```

## Effect on Oscar

Oscar's `recipe.md` Section B.0 declares this mode. All 12 modules inherit. Migration paths:
- Rebuild in App Mode? Possible but loses React ergonomics.
- Rebuild in Studio Module Mode? Violates sovereignty (Mantine imports).
- Rebuild in Sovereign SPA Mode (different framework e.g., Svelte)? Engine-specific swap; same recipe.

## Cross-references

- `pact/platform/app-pact.md` §2 (Reconstruction Mode Declaration)
- `pact/recipes/assistant/recipe.md` §B.0
- `pact/recipes/<module>/recipe.md` §B.0 (every module)
- `pact/recipes/<module>/rules.md` §1 (every module)

