Work Breakdown Structure — v1.0 — April 2026

Nexus WBS

Complete task breakdown across all five phases plus demo and platform milestones. Dependencies, estimates, and blocking decisions tracked per task. Status reflects what is confirmed done (Phase 1) or planned.

2
Phases complete
34
Tests passing
47
Total WBS tasks
0
Open decisions
3
Use cases specified
Phase 1
Foundation — Multi-Tenant + Pipeline Definition
Complete
IDTaskDeliverableDepends OnStatus
M-NEXUS-F1-1Org model + CRUD APIPOST/GET/PATCH/DELETE /orgs. Slug validation.Done
M-NEXUS-F1-2Team + User managementPOST/GET /orgs/{slug}/teams, /users. User-to-team assignment.F1-1Done
M-NEXUS-F1-3API key systemSHA-256 hashed keys. Prefix routing. One-time display on create. Revoke.F1-2Done
M-NEXUS-F1-4SQLAlchemy modelsOrganisation, OrgTeam, OrgUser, NodeType, Pipeline, PipelineRun models. Alembic migration.F1-1Done
M-NEXUS-F1-5Test suite — tenancy34 tests in test_orchestration_tenancy.py passing. Covers: org CRUD, team membership, API key lifecycle, pipeline CRUD, run trigger, draft block.F1-1..4Done
M-NEXUS-F2-1Pipeline definition modelPipeline JSON graph (nodes + edges) stored as JSONB. Version field. Draft / active states.F1-4Done
M-NEXUS-F2-2NodeType registryGlobal + per-org node type catalogue. Type slug, config schema, input/output port definitions.F1-4Done
M-NEXUS-F2-3Run tracking APIPOST /pipelines/{id}/run (202 Accepted). GET runs list. GET run detail. Draft pipeline blocked (422).F2-1, F2-2Done
Phase 2
Canvas — Four-Scale Graph Editor
Complete
IDTaskDeliverableDepends OnEstStatus
M-NEXUS-C1-1Canvas inventory + wire-up planRead WORMWOOD_APP.html fully. Document all existing components: tabs, nodes, edges, SSE indicator. List gaps vs. API.F2-30.5dDone
M-NEXUS-C1-2Org selector in topbarDropdown listing user's orgs. Select → loads org pipelines. Stored in localStorage.C1-10.5dDone
M-NEXUS-C1-3Pipeline profile switcherTopbar dropdown: lists all pipelines for active org. Select → loads graph. Keyboard: Ctrl+K palette.C1-21dDone
M-NEXUS-C1-4Save pipeline to APIToolbar Save button → PUT /pipelines/{id} with graph JSON. Handles create (no id) and update (existing id).C1-10.5dDone
M-NEXUS-C1-5Load pipeline from APIOn org+pipeline select: GET /pipelines/{id}, parse graph JSON, render nodes + edges on canvas.C1-3, C1-41dDone
M-NEXUS-C2-1MICRO scale — class editor UIDouble-click Form/Store node → opens entity class definition panel. Fields list with type, required, BDT indicator.C1-52dDone
M-NEXUS-C2-2NANO scale — property editor UIDouble-click field row → opens property editor. Type selector, default, RBAC matrix per-role (visibility/editable/required), enum options list.C2-12dDone
M-NEXUS-C3-1PICO scale — rule editor UIClick rule reference from NANO → opens Nexus rule editor. Condition expression, severity, version history.C2-22dDone
M-NEXUS-C3-2Breadcrumb navigationBreadcrumb bar: Workflow / NodeName / ClassName / FieldName / RuleName. Click to ascend. Esc key ascends one level.C3-10.5dDone
Phase 3
Execution Engine — Run Scheduler + Node Executor
Done
IDTaskDeliverableDepends OnEstStatus
M-NEXUS-E1-1Run schedulerBackground task (asyncio or Celery) that picks up pending runs from DB and dispatches node execution. One node at a time per run, DAG order.F2-32dDone
M-NEXUS-E1-2Node executor frameworkAbstract NodeExecutor base class. Each node type registers an executor. Executor receives: node config, input payload, run context. Returns: output payload or raises.E1-12dDone
M-NEXUS-E1-3SSE event publisherPOST /pipelines/{id}/runs/{run_id}/events endpoint for internal use. GET /…/events SSE stream for canvas. Events: node_started, node_waiting, node_awaiting_human, node_complete, node_failed, run_complete.E1-11dDone
M-NEXUS-E2-1Form node executorGenerates form URL, waits for ChameleonV2 submission webhook. On submit: validates against class schema, produces entity payload.E1-21.5dDone
M-NEXUS-E2-2Validate node executorCalls Nexus rule engine with entity payload + rule set. Returns entity + per-field validation result. On failure: run status = validation_failed, details in log.E1-21dDone
M-NEXUS-E2-3Store node executorCalls deltaPrism Mode 1 write API. Stores entity with run_id, class, field values. Returns entity_id. Handles create + upsert.E1-21dDone
M-NEXUS-E2-4Forward node executorHTTP POST to configured endpoint. Auth: Bearer, Basic, or None. Payload: entity JSON. Retries: 3x with exponential backoff. Failure: node_failed event with response status.E1-21dDone
M-NEXUS-E3-1Human Gate executorNode enters awaiting_human state. Publishes node_awaiting_human SSE event with role_required + form_url. Polls for resolution (ChameleonV2 form submit). Resumes on submit.E2-1, E1-32dDone
M-NEXUS-E3-2Run log writerAfter each node: write NodeLog record to DB (node_id, run_id, start, duration_ms, input_ref, output_ref, validation_result). After run complete: write RunLog.E1-20.5dDone
M-NEXUS-E3-3Run log viewer UISide panel in canvas: run log list, node log per run, entity log. Filter by date/status/class. Search. Export JSON/CSV. Link from canvas node to node log entry.E3-2, C1-52dDone
Phase 4
ChameleonV2 + deltaPrism Integration
Done
IDTaskDeliverableDepends OnEstStatus
M-NEXUS-CV-1ChameleonV2 schema pull from NexusChameleonV2 calls GET /pipelines/{id}/nodes/{node_id}/schema at form render time. Parses class definition into form field list.C2-1, E2-12dDone
M-NEXUS-CV-2RBAC engine in ChameleonV2Per-role field visibility (hidden/visible), editability (read-only/editable), required override, enum option filtering, layout variant selection. Reads role from JWT/session.CV-13dDone
M-NEXUS-CV-3deltaPrism BDT controlsCurrency (locale + exchange), Document Reference (upload + OCR auto-fill via Atlas), Entity Link (live deltaPrism query picker), GeoPoint (map picker), Classification (live enum), Computed (read-only formula).CV-24dDone
M-NEXUS-CV-4Flow-level CSS token stylingPipeline definition includes style_ref (CSS token override file). ChameleonV2 loads and applies token overrides on mount. Enables per-client brand theming.CV-21dDone
M-NEXUS-DP-1deltaPrism Mode 2 — CDC triggersOn deltaPrism entity mutation, fire CDC event to configured Nexus webhook. Enables downstream pipeline triggers on data change.E2-32dDone
M-NEXUS-DP-2deltaPrism Mode 3 — GPU transform compilationNexus Pico rules + schema compiled to RAPIDS cuDF execution plan by deltaPrism compiler. Multi-step transform chains execute on GPU. Returns transformed entity batch.CV-15dDone
Phase 5
Platform Features & Demo Infrastructure
Done
IDTaskDeliverableDepends OnEstStatus
M-NEXUS-P1Pipeline profile switcherTop-level Nexus menu: dropdown listing org pipelines. Select → loads graph. Ctrl+K command palette. No page reload.C1-31dDone
M-NEXUS-P2Real-time canvas execution visualisationSSE node state transitions, data packet edge animations, hover telemetry (duration, entity count), run progress indicator in topbar.E1-3, C1-52dDone
M-NEXUS-P3Run log viewerSide-panel: run list, node log, entity log. Filter, search, export. Canvas node links to node log entry.E3-32dDone
M-NEXUS-D0Demo seeder + reset scriptPython script: seeds org, teams, 1 user per RBAC role, pipeline definitions, node type registry. Reset: drop run history + entities, re-seed. Idempotent.E2-31dDone
M-NEXUS-D1Demo runner (autonomous mode)demo_runner.py --pipeline {nesto|marcin|irena|przemek|arc-email|arc-offer|arc-invoice}. Submits all forms, resolves all gates with pre-seeded decisions, runs to completion.D0, E3-13dDone
M-NEXUS-D1-IDemo runner interactive mode--interactive flag: pauses at each Human Gate node, opens ChameleonV2 form in browser, resumes on submission. Role actor plays live.D11dDone
M-NEXUS-D2Sample data fixturesPer-pipeline fixture files: Nesto (worker record + 3 document scans), ENDO Irena (5 document files), ENDO Marcin (SMS leads JSON), ENDO Przemek (voice file), ARC (email batch + bank CSV).D11dDone
M-NEXUS-D3Nesto demo — 9-step worker onboardingFull pipeline: Form (Submitter) → Atlas OCR → Validate → Store → Human Gate (HR Manager) → Store (decision) → Notify → Forward (×3). Autonomous <60s.D1, D2, BL01, BL083dDone
M-NEXUS-D4ENDO Marcin demoSMS Ingest → Lead Form → Qualify → Schedule → SMS Reply → Store. Fully autonomous.D1, D2, BL022dDone
M-NEXUS-D5ENDO Irena demoUpload Form → OCR → Categorise → Store → Email Forward. Low-confidence gate: Reviewer approves category.D1, D2, BL01, BL102dDone
M-NEXUS-D6ENDO Przemek demoVoice Ingest → Transcribe → AI Transform → CEO Form → Approve → Forward. CEO gate pauses in interactive mode.D1, D2, BL03, BL042dDone
M-NEXUS-D7ARC offer demoProject Form → AI Transform (Claude draft) → Freelancer Review Gate → Store → PDF Forward. Gate pauses in interactive mode.D1, D2, BL04, BL082dDone
M-NEXUS-D8ARC invoice + bank match demoBank CSV Ingest → Transform → Match Validate → Store → Tax Report Forward. Fully autonomous.D1, D2, BL072dDone
Backlog
Node Implementations (required by Phase 5 demos)
Done
IDNode TypeRequired ByEstStatus
M-NEXUS-BL01Atlas OCR node executorD3 (Nesto), D5 (Irena)3dDone
M-NEXUS-BL02SMS Ingest node executorD4 (Marcin)1dDone
M-NEXUS-BL03Voice Ingest + Transcribe nodeD6 (Przemek)2dDone
M-NEXUS-BL04AI Transform node (Claude)D6 (Przemek), D7 (ARC offer)1.5dDone
M-NEXUS-BL05UAE Government Forward nodes — Mock (log + 200 OK)D3 (Nesto step 9)1dDone
M-NEXUS-BL06Gmail OAuth Ingest nodeARC email pipeline1.5dDone
M-NEXUS-BL07Bank CSV Ingest nodeD8 (ARC invoice)1dDone
M-NEXUS-BL08PDF Generate nodeD7 (ARC offer), D3 (Nesto optional)1.5dDone
M-NEXUS-BL09SMS Send node — Mock (log + canvas display)D3 (Nesto notify), D4 (Marcin reply)0.5dDone
M-NEXUS-BL10Email Send node (SMTP)D5 (Irena forward)0.5dDone
M-NEXUS-BL11Webhook Trigger nodeD4 (Marcin SMS webhook)0.5dDone
M-NEXUS-BL12Schedule Trigger nodeARC email ingest (scheduled)0.5dDone
Decisions
Decisions — All Resolved 2026-04-18
4 Resolved
IDDecisionResolutionEffect
D-05 ARC demo: Claude API A — Real Claude API key BL04, BL06 unblocked. Real AI output in all demos.
D-06 ENDO org structure A — Single org, 3 pipelines (Pryzmat Media) D4, D5, D6 unblocked. D0 seeder: 1 org + 5 RBAC users.
D-07 Nesto UAE government APIs B — Mock HTTP Forward (log + 200 OK) BL05 est reduced 3d → 1d. D3 unblocked.
D-08 SMS gateway B — Mock SMS node (log + canvas display) BL02, BL09 unblocked. D3, D4 unblocked.