| name | northstar-navigator |
| category | governance |
| version | 1.0.0 |
| priority | P1 |
| auto_load | true |
| license | internal |
| triggers | ["deciding what to build, skip, finish, or defer toward production","any \"is this done / is this real / can we ship\" judgement","tempted to add a dependency, mock, duplicate system, repo, or speculative cron/skill"] |
| description | The compass for Unite-Hub's road to /shipit. Defines the single NorthStar (a real, comprehensive,
working founder CRM in production, every section GREEN), the binding definition of GREEN, and the
No-Invaders Manifest that keeps the build honest and surgical. Consult BEFORE deciding what to
build/skip/finish โ it resolves "200 โ real" temptations and scope-creep pressure. P1, auto-loaded.
|
| metadata | {"locale":"en-AU","owner":"phill","tenant":"founder_id"} |
| context | fork |
NorthStar Navigator
The map, not the diary. Read before you decide what to build, skip, or call done.
The NorthStar
A real, comprehensive, working founder CRM โ live in production โ where every section is GREEN.
Not a demo. Not a green CI tick. Not a page that returns HTTP 200. A CRM Phill can run his
businesses from, where every screen shows his real data, scoped to him, behind real auth, with
honest loading/error states, proven by a passing verify loop. 200 โ real. A rendered page is
not evidence; real founder-scoped data behind auth is.
Definition of GREEN (all five, with proof)
A section is GREEN only when ALL of the following are demonstrably true:
- Real data โ reads/writes live Supabase (or a genuinely-connected integration), never mock-as-real.
- Auth โ
getUser() server-side (Supabase PKCE); unauthenticated โ 401.
- Founder-scope โ every query
.eq('founder_id', founderId); never workspace_id.
- Loading + error โ
loading.tsx and error.tsx (or inline boundaries) exist and render.
- Verify-pass โ
pnpm run type-check && pnpm run lint && pnpm run test && pnpm build passes.
Missing any one โ AMBER. Fabricated-as-real โ RED. Mark the ledger honestly; never round up.
The No-Invaders Manifest
Invaders are the seven ways a build drifts away from the NorthStar. Reject each on sight.
| # | Invader | The rule |
|---|
| 1 | Fake-as-real | No mock/hardcoded data presented as live. Surface source; prefer honest "not_connected" empty-state. Mocks only in tests/dev. |
| 2 | Scope-creep | Build only what the task asks. No "while I'm here" features, refactors, or polish. |
| 3 | New dependencies | Use what's already in the repo. No new packages without Board sign-off. |
| 4 | Duplicate systems | Search before creating. No second auth/client/util/table doing an existing job. |
| 5 | New repos / clones | One canonical repo per product. Never clone to a do_not_clone_to[] path. |