Project Management Office (PMO). PMO is program and project management: WBS, gates, resources, and the plan that engineering change and the floor can see. It is not a Gantt island disconnected from product identity.
In industry this is Microsoft Project / Primavera / PPM-suite-class program management capability. In N23D it is not a seat next to someone else’s stack. It is a peer module on one native Rust binary — N23D — 100% Rust we write.

Same product. The project is on the same identity as the product. A gate that cannot name the VariantId is a slide, not a gate. People on the plan are BUS persons. Money is a legal entity’s books. Changes that cross domains route through CCB.
What PMO actually does
- Portfolio prioritization and capacity. Project charter, work breakdown structure, schedule. Critical path method with finish-to-start, start-to-start, finish-to-finish, and start-to-finish links, plus calendars. Constraints, leads, lags. Critical path is computed here.
- Resource pools, skills, leveling. Baseline plus earned value: planned value, earned value, actual cost, schedule and cost variance, SPI, CPI, estimate at completion. Textbook formulas, not a dashboard vibe.
- Risk and issue register for project risks. Product FMEA stays in QMS.
- Stage-gate and phase-gate with an artifact checklist: PLM change released, quality plan approved, ERP budget. Evidence is links to those objects, not attached slide decks as the record. A gate cannot pass without the linked PLM release id.
- Timesheets to ERP labor and project cost. Multi-project inter-dependencies. Templates: NPI, capital equipment, facility.
- A won CRM opportunity can spawn an NPI project. An engineering change can be a project task. The project does not replace the change order.
- CPM is ours. We do not shell out to Microsoft Project. 100% Rust we write. No Primavera or Project Server as the runtime.

How N23D puts this in one place
Most stacks fail the day after save, when the model, the ticket, or the invoice becomes someone else’s import. N23D removes that day. This module reads the same record as the others.
- one native Rust binary: N23D. 100% Rust we write. No vendor kernel, ledger, PLC runtime, HRIS, or ITSM as the source of truth. File readers and protocol bridges are interchange.
- One identity plane: Item, VariantId, Person, and AssetId are global. Invoice, work order, inventory, quote, pay result, and NCR sit on a LegalEntityId.
- One digital thread: modules read the same record. There is no daily STEP shuffle as the workflow. Check-in is PLM save. CAM does not fork the body.
- Command::Core is the identity and policy plane. CCB is the full-spectrum change spine (not a second vault). TIX holds operational life of assets; ERP sees only the financial view.
- Materials only from MAT. CAD selects VariantId. Missing density means mass is unknown — we do not invent a number so a BOM or plot closes.
- ERP is one company’s books. BUS holds HR, org, legal entities, and group consolidation. HoldCo is not a plant. No fake Form 1120. No fake Lohnsteuer.
- A slip is visible to PLM and MES. Charge codes belong to a LegalEntityId.
- HoldCo work allocates through intercompany — BUS knows the graph; ERP posts the pair.
- The plan, the ECO, and the work order are one record with three views.

What we will not fake
This is the product promise, not a claim that every solver and every pack already ships in the binary today. Industry-class names below are capability equals. They are not products we ship.
- We do not ship Microsoft Project as the runtime.
- A slide pack called a gate is not a gate.
- PMO does not invent a second catalog or a second person roster.
If the plan still cannot name the body, we failed. The plan and the product are the same record.
Natively connected, not glued together
N23D runs one data model across design, make, operate, and the business. Nothing is exported as the daily path. Nothing is re-keyed. Nothing is lost in translation between vendors.
- One data model. A part, an order, a nonconformance, a ticket, and a change point at the same objects. No mapping tables, no nightly sync, no drift.
- No export/import loss. Geometry, tolerances, revisions, asset state, and history stay intact because they never leave the system as the daily path.
- Auditability by default. Every change is versioned and attributable, so traceability is a query, not a project.
- Speed. 100% Rust: native performance, small footprint, no runtime surprises.
- Sovereignty. Your data, your infrastructure, your rules. No lock-in.
