# `mgf-brand-web` — scope policy

> What belongs in the Magogi brand-web kit (family **SP**). A proposed addition
> is in scope only if it passes the §3 gate.

## §1 In scope (SP-01)

The **reusable, framework-agnostic web implementation of the Magogi brand**:

- **Design tokens** (`tokens.css`) — colour, type, spacing, radius, motion,
  dark mode — reconciled to the Brand Book; the source of truth for MGF surfaces.
- **Base + component + operator CSS** (`base.css`, `components.css`,
  `instruments.css`, `console.css`) — element defaults, buttons, cards, tables,
  status badges, forms, nav, empty state, Evidence Ledger; the operator
  instrument vocabulary; the shared `.mgf-console` shell (M1 P4.1 — the lifted
  fed↔test chrome).
- **Self-hosted assets** — the three OFL fonts, Cornerstone-Orbit logo marks +
  favicon, Federation-Lattice patterns, the icon sprite (vendored
  byte-identical from `mgf-brand`, which stays the source of record).
- **Shared Jinja templates as package DATA** (`templates/mgf/` — the console
  shell, the macro pack, the living styleguide). Consumers render them with
  their own Jinja; the kit itself imports no template engine.
- **Tiny accessors** (`static_dir()`, `templates_dir()`) so consumers can
  mount the assets and extend the templates.

The boundary: **shared, drop-in brand styling + shell markup any MGF web tool
can consume**, shipped as package data, with **zero framework coupling**.

## §2 Out of scope (SP-02)

| Not here | Why | Where instead |
|---|---|---|
| App-specific layout / pages | per-consumer | the consuming app (e.g. `mgf-cloud-app`'s `app.css`) |
| JS frameworks / interactivity (htmx, etc.) | the kit is CSS + assets only | the consumer vendors its own JS |
| Server/runtime/CLI logic | it's an asset package, not a service | a service sibling |
| The brand source-of-record (logo SVGs masters, brand book) | that's `mgf-brand` | `mgf-brand` |

## §3 Scope-creep gate (SP-03)

A PR MUST answer: (1) is it brand styling/assets reusable across MGF surfaces
(else it belongs in the consumer)? (2) does it keep the package **framework-free**
(import-linter contract)? (3) does it stay reconciled to the Brand Book / token
source of truth? Any "no/unclear" blocks it.

## §6 Revisiting scope (SP-06)

Revisited at every MAJOR boundary; re-affirms the framework-free + single-source
invariants.
