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.
| ID | Task | Deliverable | Depends On | Status |
|---|---|---|---|---|
| M-NEXUS-F1-1 | Org model + CRUD API | POST/GET/PATCH/DELETE /orgs. Slug validation. | — | Done |
| M-NEXUS-F1-2 | Team + User management | POST/GET /orgs/{slug}/teams, /users. User-to-team assignment. | F1-1 | Done |
| M-NEXUS-F1-3 | API key system | SHA-256 hashed keys. Prefix routing. One-time display on create. Revoke. | F1-2 | Done |
| M-NEXUS-F1-4 | SQLAlchemy models | Organisation, OrgTeam, OrgUser, NodeType, Pipeline, PipelineRun models. Alembic migration. | F1-1 | Done |
| M-NEXUS-F1-5 | Test suite — tenancy | 34 tests in test_orchestration_tenancy.py passing. Covers: org CRUD, team membership, API key lifecycle, pipeline CRUD, run trigger, draft block. | F1-1..4 | Done |
| M-NEXUS-F2-1 | Pipeline definition model | Pipeline JSON graph (nodes + edges) stored as JSONB. Version field. Draft / active states. | F1-4 | Done |
| M-NEXUS-F2-2 | NodeType registry | Global + per-org node type catalogue. Type slug, config schema, input/output port definitions. | F1-4 | Done |
| M-NEXUS-F2-3 | Run tracking API | POST /pipelines/{id}/run (202 Accepted). GET runs list. GET run detail. Draft pipeline blocked (422). | F2-1, F2-2 | Done |
| ID | Task | Deliverable | Depends On | Est | Status |
|---|---|---|---|---|---|
| M-NEXUS-C1-1 | Canvas inventory + wire-up plan | Read WORMWOOD_APP.html fully. Document all existing components: tabs, nodes, edges, SSE indicator. List gaps vs. API. | F2-3 | 0.5d | Done |
| M-NEXUS-C1-2 | Org selector in topbar | Dropdown listing user's orgs. Select → loads org pipelines. Stored in localStorage. | C1-1 | 0.5d | Done |
| M-NEXUS-C1-3 | Pipeline profile switcher | Topbar dropdown: lists all pipelines for active org. Select → loads graph. Keyboard: Ctrl+K palette. | C1-2 | 1d | Done |
| M-NEXUS-C1-4 | Save pipeline to API | Toolbar Save button → PUT /pipelines/{id} with graph JSON. Handles create (no id) and update (existing id). | C1-1 | 0.5d | Done |
| M-NEXUS-C1-5 | Load pipeline from API | On org+pipeline select: GET /pipelines/{id}, parse graph JSON, render nodes + edges on canvas. | C1-3, C1-4 | 1d | Done |
| M-NEXUS-C2-1 | MICRO scale — class editor UI | Double-click Form/Store node → opens entity class definition panel. Fields list with type, required, BDT indicator. | C1-5 | 2d | Done |
| M-NEXUS-C2-2 | NANO scale — property editor UI | Double-click field row → opens property editor. Type selector, default, RBAC matrix per-role (visibility/editable/required), enum options list. | C2-1 | 2d | Done |
| M-NEXUS-C3-1 | PICO scale — rule editor UI | Click rule reference from NANO → opens Nexus rule editor. Condition expression, severity, version history. | C2-2 | 2d | Done |
| M-NEXUS-C3-2 | Breadcrumb navigation | Breadcrumb bar: Workflow / NodeName / ClassName / FieldName / RuleName. Click to ascend. Esc key ascends one level. | C3-1 | 0.5d | Done |
| ID | Task | Deliverable | Depends On | Est | Status |
|---|---|---|---|---|---|
| M-NEXUS-E1-1 | Run scheduler | Background 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-3 | 2d | Done |
| M-NEXUS-E1-2 | Node executor framework | Abstract NodeExecutor base class. Each node type registers an executor. Executor receives: node config, input payload, run context. Returns: output payload or raises. | E1-1 | 2d | Done |
| M-NEXUS-E1-3 | SSE event publisher | POST /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-1 | 1d | Done |
| M-NEXUS-E2-1 | Form node executor | Generates form URL, waits for ChameleonV2 submission webhook. On submit: validates against class schema, produces entity payload. | E1-2 | 1.5d | Done |
| M-NEXUS-E2-2 | Validate node executor | Calls Nexus rule engine with entity payload + rule set. Returns entity + per-field validation result. On failure: run status = validation_failed, details in log. | E1-2 | 1d | Done |
| M-NEXUS-E2-3 | Store node executor | Calls deltaPrism Mode 1 write API. Stores entity with run_id, class, field values. Returns entity_id. Handles create + upsert. | E1-2 | 1d | Done |
| M-NEXUS-E2-4 | Forward node executor | HTTP 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-2 | 1d | Done |
| M-NEXUS-E3-1 | Human Gate executor | Node 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-3 | 2d | Done |
| M-NEXUS-E3-2 | Run log writer | After 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-2 | 0.5d | Done |
| M-NEXUS-E3-3 | Run log viewer UI | Side 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-5 | 2d | Done |
| ID | Task | Deliverable | Depends On | Est | Status |
|---|---|---|---|---|---|
| M-NEXUS-CV-1 | ChameleonV2 schema pull from Nexus | ChameleonV2 calls GET /pipelines/{id}/nodes/{node_id}/schema at form render time. Parses class definition into form field list. | C2-1, E2-1 | 2d | Done |
| M-NEXUS-CV-2 | RBAC engine in ChameleonV2 | Per-role field visibility (hidden/visible), editability (read-only/editable), required override, enum option filtering, layout variant selection. Reads role from JWT/session. | CV-1 | 3d | Done |
| M-NEXUS-CV-3 | deltaPrism BDT controls | Currency (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-2 | 4d | Done |
| M-NEXUS-CV-4 | Flow-level CSS token styling | Pipeline definition includes style_ref (CSS token override file). ChameleonV2 loads and applies token overrides on mount. Enables per-client brand theming. | CV-2 | 1d | Done |
| M-NEXUS-DP-1 | deltaPrism Mode 2 — CDC triggers | On deltaPrism entity mutation, fire CDC event to configured Nexus webhook. Enables downstream pipeline triggers on data change. | E2-3 | 2d | Done |
| M-NEXUS-DP-2 | deltaPrism Mode 3 — GPU transform compilation | Nexus Pico rules + schema compiled to RAPIDS cuDF execution plan by deltaPrism compiler. Multi-step transform chains execute on GPU. Returns transformed entity batch. | CV-1 | 5d | Done |
| ID | Task | Deliverable | Depends On | Est | Status |
|---|---|---|---|---|---|
| M-NEXUS-P1 | Pipeline profile switcher | Top-level Nexus menu: dropdown listing org pipelines. Select → loads graph. Ctrl+K command palette. No page reload. | C1-3 | 1d | Done |
| M-NEXUS-P2 | Real-time canvas execution visualisation | SSE node state transitions, data packet edge animations, hover telemetry (duration, entity count), run progress indicator in topbar. | E1-3, C1-5 | 2d | Done |
| M-NEXUS-P3 | Run log viewer | Side-panel: run list, node log, entity log. Filter, search, export. Canvas node links to node log entry. | E3-3 | 2d | Done |
| M-NEXUS-D0 | Demo seeder + reset script | Python script: seeds org, teams, 1 user per RBAC role, pipeline definitions, node type registry. Reset: drop run history + entities, re-seed. Idempotent. | E2-3 | 1d | Done |
| M-NEXUS-D1 | Demo 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-1 | 3d | Done |
| M-NEXUS-D1-I | Demo runner interactive mode | --interactive flag: pauses at each Human Gate node, opens ChameleonV2 form in browser, resumes on submission. Role actor plays live. | D1 | 1d | Done |
| M-NEXUS-D2 | Sample data fixtures | Per-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). | D1 | 1d | Done |
| M-NEXUS-D3 | Nesto demo — 9-step worker onboarding | Full pipeline: Form (Submitter) → Atlas OCR → Validate → Store → Human Gate (HR Manager) → Store (decision) → Notify → Forward (×3). Autonomous <60s. | D1, D2, BL01, BL08 | 3d | Done |
| M-NEXUS-D4 | ENDO Marcin demo | SMS Ingest → Lead Form → Qualify → Schedule → SMS Reply → Store. Fully autonomous. | D1, D2, BL02 | 2d | Done |
| M-NEXUS-D5 | ENDO Irena demo | Upload Form → OCR → Categorise → Store → Email Forward. Low-confidence gate: Reviewer approves category. | D1, D2, BL01, BL10 | 2d | Done |
| M-NEXUS-D6 | ENDO Przemek demo | Voice Ingest → Transcribe → AI Transform → CEO Form → Approve → Forward. CEO gate pauses in interactive mode. | D1, D2, BL03, BL04 | 2d | Done |
| M-NEXUS-D7 | ARC offer demo | Project Form → AI Transform (Claude draft) → Freelancer Review Gate → Store → PDF Forward. Gate pauses in interactive mode. | D1, D2, BL04, BL08 | 2d | Done |
| M-NEXUS-D8 | ARC invoice + bank match demo | Bank CSV Ingest → Transform → Match Validate → Store → Tax Report Forward. Fully autonomous. | D1, D2, BL07 | 2d | Done |
| ID | Node Type | Required By | Est | Status |
|---|---|---|---|---|
| M-NEXUS-BL01 | Atlas OCR node executor | D3 (Nesto), D5 (Irena) | 3d | Done |
| M-NEXUS-BL02 | SMS Ingest node executor | D4 (Marcin) | 1d | Done |
| M-NEXUS-BL03 | Voice Ingest + Transcribe node | D6 (Przemek) | 2d | Done |
| M-NEXUS-BL04 | AI Transform node (Claude) | D6 (Przemek), D7 (ARC offer) | 1.5d | Done |
| M-NEXUS-BL05 | UAE Government Forward nodes — Mock (log + 200 OK) | D3 (Nesto step 9) | 1d | Done |
| M-NEXUS-BL06 | Gmail OAuth Ingest node | ARC email pipeline | 1.5d | Done |
| M-NEXUS-BL07 | Bank CSV Ingest node | D8 (ARC invoice) | 1d | Done |
| M-NEXUS-BL08 | PDF Generate node | D7 (ARC offer), D3 (Nesto optional) | 1.5d | Done |
| M-NEXUS-BL09 | SMS Send node — Mock (log + canvas display) | D3 (Nesto notify), D4 (Marcin reply) | 0.5d | Done |
| M-NEXUS-BL10 | Email Send node (SMTP) | D5 (Irena forward) | 0.5d | Done |
| M-NEXUS-BL11 | Webhook Trigger node | D4 (Marcin SMS webhook) | 0.5d | Done |
| M-NEXUS-BL12 | Schedule Trigger node | ARC email ingest (scheduled) | 0.5d | Done |
| ID | Decision | Resolution | Effect |
|---|---|---|---|
| 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. |