Nishi Frontier Program — the critical-path project plan
A PMP-grade plan for taking the from-god graph ecosystem to frontier on every node: a work-breakdown structure with a computed critical path, float, a Gantt, a dependency network, milestones, resource loading, and the live domain board — all wired to our own instruments and modeled as data our dependency engine consumes.
v3 PMP · published 2026-07-17 · unit = one work-session (a focused team+Claude block); external lead times noted in calendar. CPM computed by forward/backward pass over the dependency network below (48 tasks). Backlog is real data at knowledge/registry/frontier_queue.tsv — consumed by nx_frontier (READY/BLOCKED) today; CPM+visuals emitted by nx_frontier_board (F-202, staged — see §How this is wired).
1 · The critical path (computed, zero float)
R-N0 native-contract-v1 → R-N1 pabi-native core (byte-exact) → R-N2 Linux guest lane → R-N3 UEFI image → R-N4 sovereign transport → R-N5 os-compare measured. This chain drives the whole "superior on all fronts, measured" milestone (M7); every session slipped here slips M7 one-for-one. Staff it first, protect its slack, never borrow from it.
Project span (all lanes, max parallelism) = 14 sessions of critical work + external board lead time for the silicon-boot milestone. The seven lanes run concurrently on disjoint file footprints (confirmed by the resource model in §7); the plumbing that makes the plan self-updating (F-201…208) runs alongside them.
2 · The three findings a PMP read surfaces
3 · Milestones (target session-offset from the computed schedule)
| # | milestone | gated by (task) | target | meaning |
|---|---|---|---|---|
| M1 | First real GPU execution | F-101b first sovereign submit | t≈2 | gpu TOY→FUNCTIONAL; F-001 done → starts immediately |
| M8 | First measured revenue funnel | F-301 | t≈2 | the mission fuel begins; live products already exist |
| M4 | Swarm first earned L4 | F-105c multinode proof | t≈3 | first domain above the maturity floor by real multi-node evidence |
| M5 | First AHEAD verdict in ecosystem history | F-106c head-to-heads | t≈4 | a measured win vs Playwright/BackstopJS — not a self-gate |
| M3 | Forge core native on NishiOS | F-103b pabi-native core | t≈4 | the deterministic core (compiler+judge+store) on sovereign metal |
| M2 | Autonomy loop closed | F-208 auto-feeder | t≈8 | the graph files its own backlog; /plan self-emits |
| M6 | Own CPU boots on own bitstream | F-107d | board-gated | effort ready ~t9; actual date = ULX3S arrival + 1 |
| M7 | NishiOS superior on all fronts, MEASURED | F-103f os-compare | t≈14 | the frontier flagship; end of the critical path |
4 · Work-breakdown structure + CPM table (48 tasks, computed)
Every task: duration (sessions), predecessors, earliest start/finish (ES/EF), total float, and critical flag. Red rows = zero float = on the critical path. Float = how many sessions this task can slip before it delays M7. Source data: frontier_queue.tsv (id·dur·owner·deps), CPM computed by forward/backward pass.
| id | task | owner | dur | preds | ES | EF | float | status |
|---|---|---|---|---|---|---|---|---|
| — Day-0 unlocks + debt (eat-debt law: precede lane work) — | ||||||||
| F001 | GPU key (Vast.ai) | operator | 0 | — | 0 | 0 | — | ☑ DONE |
| F002 | ULX3S board | operator | 0 | — | 0 | 0 | ext | ◔ ORDERED (lead time) |
| F003 | verify tree deletions | engineer | 1 | — | 0 | 1 | 5 | gates F107,F207 |
| F004 | serve rebuild + remeasure | modelwright | 1 | — | 0 | 1 | 13 | ☑ DONE 07-17 |
| F005 | reader-breaker deploy | supervisor | 1 | — | 0 | 1 | 13 | crashloop live |
| F006 | ecomat re-seed | census | 1 | — | 0 | 1 | 6 | feeds F202 |
| F007 | autofix sweep | team | 1 | — | 0 | 1 | 13 | open |
| — Program plumbing (the autonomy loop) — | ||||||||
| F201 | frontier store | pm | 1 | F006 | 1 | 2 | 6 | store-law |
| F202 | board organ (CPM + emit) | pm | 3 | F201 | 2 | 5 | 6 | makes /plan self-emit |
| F203 | ws_put → WMS | pm | 1 | F201 | 2 | 3 | 8 | SSOT |
| F204 | cron + cadence hook | conductor | 1 | F202,F203 | 5 | 6 | 6 | autonomous |
| F205 | MCP/API row | pm | 1 | F202,F210 | 5 | 6 | 8 | expose |
| F206 | RACI rows | pm | 1 | F201 | 2 | 3 | 8 | own |
| F207 | HR staffing join | hr | 2 | F003,F206 | 3 | 5 | 8 | staffed |
| F208 | auto-feeder (M2) | pm | 2 | F204 | 6 | 8 | 6 | closes the loop |
| F209 | evidence check-in | librarian | 1 | F202 | 5 | 6 | 8 | no silent wins |
| F210 | tools-plane admin API | engineer | 2 | — | 0 | 2 | 11 | unblocks MCP+retires cap workaround |
| — GPU lane (float 6; starts NOW, F-001 done) — | ||||||||
| F101a | provision + deploy | engineer-gpu | 1 | F001 | 0 | 1 | 6 | bundle 15/15 |
| F101b | first sovereign submit (M1) | engineer-gpu | 1 | F101a | 1 | 2 | 6 | TOY→FUNCTIONAL |
| F101c | C0 FP32 GEMM | engineer-gpu | 1 | F101b | 2 | 3 | 6 | honest floor |
| F101d | C1 tensor-core BF16 | engineer-gpu | 2 | F101c | 3 | 5 | 6 | ISA already bit-exact |
| F101e | C2 ≥90% cuBLAS | engineer-gpu | 2 | F101d | 5 | 7 | 6 | measured board |
| F101f | C3 determinism exceed | engineer-gpu | 1 | F101e | 7 | 8 | 6 | integer IMMA moat |
| — NISHIOS lane — THE CRITICAL PATH (float 0) — | ||||||||
| F103a | Native Contract v1 | engineer-os | 1 | — | 0 | 1 | 0 | CRITICAL |
| F103b | pabi-native core, byte-exact (M3) | engineer-os | 3 | F103a | 1 | 4 | 0 | CRITICAL |
| F103c | Linux guest lane (bridge) | engineer-os | 2 | F103b | 4 | 6 | 0 | CRITICAL |
| F103d | UEFI image on real metal | engineer-os | 3 | F103c | 6 | 9 | 0 | CRITICAL |
| F103e | sovereign transport (sockets→QUIC) | engineer-os | 3 | F103d | 9 | 12 | 0 | CRITICAL |
| F103f | os-compare measured (M7) | engineer-os | 2 | F103e | 12 | 14 | 0 | CRITICAL — flagship |
| — Compiler lane (float 7; single-owner) — | ||||||||
| F104a | inliner miscompile fix | engineer-compiler | 2 | — | 0 | 2 | 7 | instr-walk clone |
| F104b | enable + measure | engineer-compiler | 1 | F104a | 2 | 3 | 7 | close 1.97×/3.0× |
| F104c | aarch64 backend | engineer-compiler | 4 | F104b | 3 | 7 | 7 | mobile/Pi unlock |
| — Browser lane (float 9) — | ||||||||
| F102a | w=0 collapse + float/pos | engineer-browser | 2 | — | 0 | 2 | 9 | next rock |
| F102b | OCR recall ratchet | engineer-browser | 1 | F102a | 2 | 3 | 9 | wiki >766 |
| F102c | TLS session reuse | engineer-browser | 1 | — | 0 | 1 | 13 | certloop<100ms |
| F102d | font fidelity | engineer-browser | 2 | F102b | 3 | 5 | 9 | tight-parity ratchet |
| — Swarm (float 11) · Experiential (float 10) — | ||||||||
| F105a | worker auth/enroll | engineer-swarm | 2 | — | 0 | 2 | 11 | kills security L0 |
| F105b | VRAM beacon | engineer-swarm | 1 | — | 0 | 1 | 12 | windows collector |
| F105c | multinode proof (M4) | engineer-swarm | 1 | F105a,F105b | 2 | 3 | 11 | first earned L4 |
| F106a | console/error capture | racing | 1 | — | 0 | 1 | 10 | 6/8 attested |
| F106b | CI sweep orchestration | racing | 1 | F106a | 1 | 2 | 10 | — |
| F106c | head-to-heads (M5) | racing | 2 | F106b | 2 | 4 | 10 | first AHEAD |
| — Silicon (float 5 effort; calendar-gated by board) — | ||||||||
| F107a | csr/clint/uart emitters | engineer-silicon | 3 | F003 | 1 | 4 | 5 | — |
| F107b | top netlist | engineer-silicon | 2 | F107a | 4 | 6 | 5 | — |
| F107c | PnR + bitstream | engineer-silicon | 2 | F107b | 6 | 8 | 5 | — |
| F107d | ULX3S boot (M6) | engineer-silicon | 1 | F107c,F002 | 8 | board | * | board-gated |
| — Value / revenue (the mission fuel) — | ||||||||
| F301 | revenue funnel measured (M8) | pm+fin | 2 | — | 0 | 2 | 10 | live products exist |
| F302 | reinvest ledger | fin | 1 | F301 | 2 | 3 | 10 | nx_fin_serve |
| F303 | living-wage model | hr+fin | 1 | F302,F207 | 5 | 6 | 8 | mission bridge |
5 · Gantt — the whole program on one timeline
Bars positioned by earliest-start × duration (one grid = one session). Red = critical path (NishiOS) · amber = GPU + silicon · blue = autonomy loop · green = early-win milestones · ◆ = milestone. Silicon boot is dashed (calendar-gated by board arrival, not effort).
6 · Critical-path network (the chain that sets the finish)
The critical path is a single serial chain — that is exactly why it governs. Each node is strictly gated by the prior (a native core needs the contract; UEFI needs the core; os-compare needs a booting OS). No amount of extra people compresses it; only early staffing and zero blocking help.
7 · Resource loading — who is the bottleneck
Each lane has one owning role; tasks within a lane are serial. So the schedule is feasible with exactly the seven lane-owners + the plumbing/support roles — no owner is ever double-booked, which is why "7 concurrent workstreams" is the correct parallelism, not an arbitrary number.
| owning role | busy sessions | span | utilization | slack |
|---|---|---|---|---|
| engineer-os | 14 | t0–t14 | 100% | 0 — THE bottleneck |
| engineer-silicon | 8 | t1–t8 (+board) | ~100% then calendar-wait | effort slack 5; then board-gated |
| engineer-gpu | 8 | t0–t8 | 100% of its 8 | 6 (whole chain floatable) |
| engineer-compiler | 7 | t0–t7 | 100% of its 7 | 7 |
| engineer-browser | 6 | t0–t5 | high | 9 |
| engineer-swarm · racing | 4 · 4 | t0–t3 · t0–t4 | early | 11 · 10 |
| pm | ~9 | t0–t8 (plumbing + value + rank/oversight) | high | spread |
| census · modelwright · supervisor · hr · conductor · librarian · fin | 1–2 each | debt + plumbing | low | ample |
8 · The domain board — every /compare node, coverage vs EARNED maturity
Wired from the live nishi_compare_index (46 domains) × the maturity ruler. Coverage = capability-presence (inflatable, honest-labeled). Maturity = evidence-capped L0–L5 (≈ coverage × 0.2 at floor; climb by earning LIVE→MCP→multi-node→hardened). The gap is the anti-navel-gazing signal: it is the real backlog of hardening work, and it is exactly what the autonomy feeder (F-208) turns into new F-rows.
| domain | coverage | maturity | the honest read |
|---|---|---|---|
| swarm | 944 | 356 | the ONLY domain above floor — earned live+MCP; 6 sovereign exceeds |
| crm · projectmgmt · workermesh · ads | 1000 | ~200 | presence-complete; depth varies; pm has 4 measured exceeds |
| cms 964 · containers 950 · videoops 944 | ~950 | ~190 | containers: idle 0MB vs 2774, cold 976ms measured exceeds |
| connect 857 · search 812 · surveys 800 | ~820 | ~165 | connect + surveys are LIVE apps; search gaps = neural-rerank/web-scale |
| medbilling 785 · authz 764 · deploy 720 · webscraping 705 · librarian 695 | ~735 | ~148 | deploy control plane deploys ITSELF; librarian 8 trust exceeds |
| automation 676 · deepresearch 666 · videocodec 666 · instrument 666 | ~670 | ~134 | codec MEASURED R-D ~1.5–2× H.264 bits; automation full exec semantics |
| comms 619 · referee 600 · dataeng 586 · janitor 583 | ~600 | ~120 | comms own-codec E2EE, no WebRTC; referee cheat-proof grading |
| sending 514 · lang 500 · warden 500 · racing 500 | ~500 | ~100 | lang honestly 500 by the CWE memory-safety block (no navel-gazing) |
| modelwright 476 · team 473 · doctor 470 · genealogy 444 | ~465 | ~93 | team's absent = LLM code authoring (the forge arc answers it) |
| office 406 · supervisor 347 · llm | ~380 | ~75 | the honestly-lowest; llm serve REMEASURED (F-004): i8 decode ~23 tok/s, i32 ~15 tok/s on a healthy 17-thread build (the 2.40 was prefill, not decode) |
| radars: computational · career · sharing · civic · soda | — | — | frontier radars: 2025/26 opportunity maps, researcher-fed |
| physical (soon): foodscience · water | — | — | design engines (49 + 3 gated organs) — the physical F-301 candidates |
| boards: autograde · pitwall · archboard · atlas | live | — | the self-grading / roadmap / architecture / graph surfaces this program composes |
The aggregate: coverage across the plane is ~5× the earned maturity. That gap is not failure — it is the measured, prioritized hardening backlog, and closing it (LIVE→MCP→multi-node per domain) is what moves the ecosystem's 328‰ toward S-class. The feeder (F-208) reads this table and momentum radars to file the next rocks automatically.
9 · Experiential census (top-down, 19 axes) — GAP 11 / PARITY 8 / AHEAD 0
From the self-emitting /experiential. Competitor attestation = sovereign-fetched READMEs (playwright/puppeteer/cypress/selenium/axe-core/lighthouse/backstop/browser-use). PARITY caps until a measured win; the AHEAD conversion is lane F-106.
| PARITY (8) — our organ on disk | GAP (11) — absent, attested by N/8 |
|---|---|
| drive browser · screenshot · input drive · auto-wait · visual-diff · live-run findings · page/asset verify · UI/CX judging | console/error capture (6) · CI sweep orchestration (5) · cross-browser/WebKit (4/1) · agentic play (4) · media playtest (4) · network interception (3) · a11y WCAG (3) · perf vitals (2) · trace/replay (2) · mobile emulation (2) |
10 · The ladder from god (condensed — state + named next)
| rung | state (honest) | named next |
|---|---|---|
| 0 Own silicon | RV64IM CPU proven in sim (QEMU-cross); ALU/decoder gate-emit verified | csr/uart emit → netlist → PnR → ULX3S boot (F-107) |
| 0b Boards/actuation | PCB manufacturable (Gerber/drill/CAM); robotics firmware sim-proven | bind HAL to real MMIO |
| 1 3rd-party CPUs | x86-64 production + Windows PE/DLL; RV64 toolchain+JIT; aarch64 ABSENT | aarch64 backend (F-104c) = mobile unlock |
| 2 GPU | tensor-core ISA bit-exact 3 vendors; G4 path witnessed on 5080; 636 tok/s floor | first real-silicon execute (F-101, key READY) |
| 3 Firmware/boot | spore GREEN in emulator/file-model; never-brick mechanical | UEFI image on real metal (F-103d) |
| 4 NishiOS | census 18/21; pabi seam 15/15 — GREENFIELD, not a Linux clone | Native Contract v1 → os-compare (F-103, CRITICAL PATH) |
| 5 Language/compiler | self-hosted, 25/25, −1.1% vs gcc; memory-safety ABSENT | inliner → aarch64 (F-104) |
| 6 Network | own TLS 1.3 production; certloop 980ms | session reuse → QUIC/HTTP3/BBR (F-102c, F-103e) |
| 7 Fleet/control | 15/15 UP; mgmt 1000/1000; 60 MCP tools; leash+cadence live | observability; reader-breaker (F-005, F-401) |
| 8 Swarm | full loop live; honest 356 (only above floor) | worker auth → multinode proof (F-105) |
| 9 Models/forge | no-float integer stack; A1 honest RED; serve REMEASURED ✓ (i8 ~23 tok/s; i32 201→109 ms/tok ≈1.85×, reg-alloc dividend) | GPU seat → 636 tok/s (F-101); forge best-of-N |
| 10 Browser | height axis CLOSED (2227px); OCR recall regression open | w=0 collapse + float (F-102a) |
| 11 Experiential | GAP 11 / PARITY 8 / AHEAD 0 | console capture → head-to-heads (F-106) |
11 · RACI — the house lived in (PM Accountable everywhere)
| function | R | A | C | I |
|---|---|---|---|---|
| Measure/grade every node | census + researcher | pm | critic/adversary | all |
| Rank backlog (impact×gap×momentum) | pm | pm | architect+researcher | operator |
| Assign/staff lanes | hr | pm | conductor | crew |
| Execute rungs | lane engineers | pm | architect | referee |
| Verify/ratchet (erosion=RED) | referee+adversary | pm | — | operator |
| Publish evidence + this page | librarian+sites | pm | — | all |
| Shared-resource scheduling | conductor+supervisor | pm | — | — |
| Product/revenue funnels | pm+fin | operator | hr | all |
Roster / what each teammate watches: pm ranks+owns the door · researcher 2025/26 corpora · census disk-vs-evidence · referee grades check-ins · adversary/critic refute every green · architect daily family-tree board · genealogist lineage of every organ (roots-to-god, provenance to seed) · librarian files /evidence · janitor debt+orphans · doctor diagnosis loop · conductor queue+cadence · supervisor fleet+leash · hr staffing+wage ledger (⚠nx_hr* deletions = F-003 gate) · warden policy+money-safety · fin revenue ledger · modelwright model lane · racing crew head-to-heads · engineer lanes ×7 in §4.
12 · Autonomy — 70% → 100%
- Zero-Claude today: cadence loop (60s queue-tend + leash-walk, survived the app crash) · arch board cron 06:20 · autograde pulse (re-grades + republishes itself) · guard respawns · leash reclaim · admission gating.
- The loop (F-204/208): MEASURE → RANK → ASSIGN → EXECUTE → VERIFY → PUBLISH → FEED (files new F-rows from maturity-gap × momentum). Gauge = autograde's zero-Claude share, 70%→100%. The forge closes the last mile once the model lane clears its RED.
13 · Value + revenue — the mission fuel (funnels honestly unmeasured)
| product (live) | state | funnel |
|---|---|---|
| AndelinWest client portals · ad network (pay-on-results) · medbilling advocacy portal | LIVE | F-301 candidates — unmeasured |
| surveys · connect · office/CRM · video · gallery · wiki · games | LIVE | portfolio |
| physical: water-from-air · craft soda · food science · PCB/robotics fab | design engines gated; no SKUs yet | plans/kits track |
F-302 makes income visible on nx_fin_serve; F-303 publishes the living-wage staffing curve here. Revenue → reinvest → staffed roles is reported, not asserted.
14 · Progress ledger (newest first)
| date | landed | evidence |
|---|---|---|
| 07-17 | F-004 CLOSED: no-float serve ELF rebuilt+restaged (current compiler, both _offc names); REMEASURED — bench i32-lossless 201→109 ms/tok median ≈1.85× (reg-alloc dividend), i8 67 unchanged; serve /gen warm i8 43 ms/tok ≈23 tok/s decode. ★HONESTY: the “511-thread thrasher” premise did NOT reproduce — staged binary boots 17 threads (cpu_count=16); the “2.40 tok/s” figure was prefill, not decode | knowledge/index/speedbench.out (5-run median) |
| 07-17 | /plan v3 PMP: computed critical path (NishiOS, 14s, 0 float) + WBS/CPM table (48 tasks) + Gantt + dependency network + resource loading; backlog written as real queue data frontier_queue.tsv (wired to nx_frontier engine); domain board wired from live compare index | this page + the queue file |
| 07-17 | DEBTS EATEN: stray plan/index.html → 301 redirect (verified) · durable scoped publish cap (ends ssh-per-republish) · F-210 filed as the API-pure fix | edge 301 · .prev chain |
| 07-16 | Program chartered; greenfield-NishiOS doctrine banked; Vast.ai READY (F-001), ULX3S ORDERED (F-002) | front-door memory |
| 07-16 | Browser height axis CLOSED (2227px); GPU sovereign path witnessed on 5080; compiler −1.1% vs gcc; memory-rail budget shipped | nx_visual_diff · sovpath_witness · autograde |
15 · How this is wired (the honest architecture)
- The backlog is DATA, not prose: 48 tasks live at
knowledge/registry/frontier_queue.tsvin the exact 9-column format the existingnx_frontierengine reads — so READY-vs-BLOCKED (each blocked task naming its first unmet predecessor) is derivable today by our own dependency engine, not drawn by hand. - The CPM + Gantt + network on this page were computed this session by forward/backward pass over that data. The durable, self-emitting version is
nx_frontier_board.nx(rung F-202) — it EXTENDSnx_frontierwith the critical-path/float pass + the SVG emit + a compose of the live instruments, and emits this page from the run so it can never drift (the same sync-by-construction pattern as /experiential). Status: staged — one build (nx_sov_build_run nx_frontier_board//api/build) from live. Until it lands, this page is hand-published via the zero-ssh recipe. That is the honest line: the model and data are graph-native now; the emitter is the next rung. - Live instruments composed:
nx_ecosystem_maturity_rollup(328‰) ·nishi_compare_index(46 domains) ·nx_workflowWMS board (1,614 registry rows) ·nx_status(15/15 fleet) ·nx_https_get(edge verify). The family-tree SVGs render today at /compare/atlas from the 16,222-node eco_graph; wiring them straight into /plan needs the eco_graph tools' cap (F-205/F-210). - Not sprawl by construction: the plan composes the existing graph/queue/compare/rollup organs; F-203 puts every F-row into the WMS registry SSOT so this page and
nx_ws_boardrender the same truth.
Republish (zero-ssh): nx_fs_write chunks → nx_site_publish → nx_https_get verify · durable scoped cap banked · self-emitting page = F-202. Backlog SSOT migrates to the WMS registry at F-203.