Portfolio control plane
Morning visibility without a backend.
This portal runs entirely as static files. JSON snapshots under docs/portal/data/ drive the board;
your choices on the Settings page persist in the browser and reshape how tables and billing read.
Tactical surfaces
- Notion operator layer — Deadlines, archive links, and runway in one morning pass.
- Packet readiness — Chronology, treatment trail, and damages notes staged upstream.
- Live deposition tailoring — Same corpus powers witness outlines while the room is warm.
Matter posture
Operator-facing case board
Matter identifiers and runway labels respect your Settings toggles.
| Matter | Label | Posture | Runway | Status |
|---|
Runway
Deadlines board
Bands show urgency when runway badges are enabled in Settings.
| Date | Matter | Event | Band |
|---|
Corpus browser
Artifact index
Flat-file catalog discipline, rendered as a fast table.
| ID | Type | Matter | Summary | Date |
|---|
Phenomenology registry
Pattern hits
Named taxonomy entries trace behavior across the corpus.
Character map
Cast
Aliases cluster recurring actors across matters.
Engagement model
Billing snapshot
Rate comes from Settings (demo). Line items load from data/billing.json.
Totals update instantly when you change currency or hourly rate.
Line items
| Matter | Phase | Hours | Extended |
|---|
Operator preferences
Portal settings
Nothing leaves this browser. Preferences are stored with localStorage and tune density,
disclosure of matter IDs, runway badges, motion, and the demo billing rate.