# Oscar Platform — Sovereignty Baseline (Phase A0)

**Extracted:** 2026-06-29 11:20 UTC
**Purpose:** Anti-drift baseline for sovereignty boundary
**Source:** `pact/platform/sovereignty.md`

---

## 1. The 6 Sovereignty Principles (FROZEN)

### Principle 1: No FreshVibe Studio integration

Forbidden imports (any Oscar file):
```ts
import { ... } from 'freshvibe-studio';
import { ... } from '@fvs/...';
import { ... } from '../../../modules/.../...';  // FVS relative imports
import { ... } from '../../../../recon/freshvibestudio/studio/...';
```

### Principle 2: No workspace selector

Oscar is the app. No workspace concept. The 5 views (Home / Surveys / Notes / Reports / Settings) are first-class views, not workspaces.

**Note:** Phase 10 added "Writing" as a 6th view chip; per Phase 10 SOV check this still passes.

### Principle 3: No FVS Pact promotion

Oscar fragment_ids use `oscar-*` prefix. They never appear in FVS's `pact/platform/`.

### Principle 4: Sovereign identity

| Property | Value |
|---|---|
| Repo | `avidtech6/oscar-platform` |
| Brand | forest green + Cormorant Garamond (`branding/palette.ts`) |
| Domain | `oscar.freshvibe.studio` (operator wires DNS) |
| CF Pages project | `oscar-platform` |
| IDB namespace | `oscar-platform` (per-store: `oscar-trees`, etc.) |
| localStorage prefix | `oscar:` |

### Principle 5: Permitted imports

Oscar files may import ONLY from:
- Other Oscar files (`./`, `../`, `@shell/*`, `@views/*`, etc.)
- npm packages (React, Mantine, idb, pdfmake, etc.)
- Public assets (`/logo.svg`, etc.)

Nothing else.

### Principle 6: Verification

Sovereignty is enforced by:
1. Static checks: `audit/check-sovereignty.ts` greps for forbidden patterns
2. Build-time checks: `vite build` fails if any forbidden import resolves
3. CI gate: `.github/workflows/ci.yml` runs all checks

**Single violation = sovereignty breach = build failure.**

---

## 2. Enforcement Inventory (FROZEN)

| Enforcement | File | Invariant IDs |
|---|---|---|
| Static grep | `pact/vp/sovereignty-checks.ts` | SOV-1.1 through SOV-1.3 |
| Branding presence | `pact/vp/sovereignty-checks.ts` | SOV-2.1 through SOV-2.5 |
| Build checks | `pact/vp/build-checks.ts` | includes gitignore, tsconfig strict, CF deploy |
| CI gate | `.github/workflows/ci.yml` | runs all suites |

**Invariant count:** 8 sovereignty + 11 build = 19 sovereignty-related invariants.

---

## 3. Forbidden Patterns (FROZEN)

The following patterns MUST NOT appear in any Oscar source file:

| Pattern | Reason |
|---|---|
| `@fvs/*` | FVS package convention |
| `freshvibe-studio` | FVS package name |
| `/recon/freshvibestudio/studio/` | FVS relative path |
| `../../../modules/` from app/src | FVS relative path |
| `@mantine/*` | Oscar's sovereign mode excludes Mantine |
| Anything matching `oscar-arboriculture-provider` in non-Oscar code | Provider ID |
| Non-`oscar.*` fragment_ids in `pact/fragments/*.md` | Naming convention |

---

## 4. Detection Method

Per `pact/vp/sovereignty-checks.ts`:
- Read all .ts/.tsx files in `app/src/`
- Apply forbidden-pattern grep
- Report any match as SOV-CRITICAL

Build-time checks extend this at `vite build` time, catching any import that resolves to FVS code.

---

## 5. Drift Detection

A change to `app/src/**` is sovereignty-drift if:
- Any new forbidden-pattern match appears
- `branding/palette.ts` is removed or modified to not declare forest green
- `localStorage` keys lose `oscar:` prefix
- IDB store names lose `oscar-` prefix

Detection: `vp/sovereignty.test.ts` (rename from `audit/sovereignty-checks.test.ts`).

---

## END OF SOVEREIGNTY BASELINE

*6 sovereignty principles frozen. Anti-drift enforcement captured.*
