1. Current State (2026-05-02)
| Metric | Value |
|---|---|
| Version | 1.2.2 |
| Components | 68 exported |
| Tests | 1047 passing, 94.66% statement coverage |
| Build | TypeScript clean, Vite UMD + ESM |
| Repository | CodeCommit eu-west-2 |
| Deployment Targets | React (ESM), UMD (CDN script tag) |
Completed Milestones
| ID | Name | Status |
|---|---|---|
| M-NEXUS-CV-0 | Infrastructure Restoration | COMPLETE |
| M-NEXUS-CV-1 | Nexus Integration Layer (schema binding, RBAC, Human Gate, ARC adapter) | COMPLETE |
| M-NEXUS-CV-5 | Schema-Driven Layout Engine | COMPLETE |
Remaining Milestones (from existing plan)
| ID | Name | Status |
|---|---|---|
| M-NEXUS-CV-2 | Business Data Type Layer | NOT STARTED |
| M-NEXUS-CV-3 | Validation Engine | NOT STARTED |
| M-NEXUS-CV-4 | Style System and Mobile | NOT STARTED |
2. Consistency Issues Found in Existing Docs
| Issue | Location | Problem | Resolution |
|---|---|---|---|
| ROADMAP.md shows M-NEXUS-CV-1 S1a "60%" | docs/ROADMAP.md | SESSION_REVIVAL confirms S1a COMPLETE | Update ROADMAP.md status to COMPLETE |
| MILESTONES.md CAP-04 says "OCR trigger" | docs/MILESTONES.md | Chameleon does NOT do OCR. It collects a file and passes to callback. | Rewrite CAP-04 DoD: file input + onUpload callback, no OCR status |
| SPRINT_PLAN S3 says "Document Reference BDT + Entity Link BDT" | docs/SPRINT_PLAN.md | S3 scope description references "OCR" in Document Reference. | Rename to "File Reference BDT" or clarify scope is file+callback only |
| USE_CASES.md Step 2 says "Atlas OCR auto-fill" | docs/USE_CASES.md | Chameleon collects file. Pipeline returns extracted values. Chameleon may receive updated field values via prop refresh. | Clarify: Chameleon uploads, pipeline fills, Chameleon re-renders with new values |
| Gap Analysis CAP-04 title: "Document Reference BDT (with OCR)" | CHAMELEON_GAP_ANALYSIS_2026-04-20.html | No OCR in Chameleon | Drop "(with OCR)" from capability name |
| M-NEXUS-CV-5 not in MILESTONES.md | docs/MILESTONES.md | Layout engine was added post-initial plan | Add M-NEXUS-CV-5 section to MILESTONES.md |
nexusFormNodeUrl prop still in ChameleonForm.d.ts |
docs/chameleon/ (Wormwood dist copy) | Sprint Plan states consumer-agnostic naming: must be remoteSchemaUrl |
This is a dist artifact -- verify source uses generic name |
3. Roadmap: Nexus-Requirements-Driven
Phase 1: Form Completeness (M-NEXUS-CV-2 + CV-3 merged)
Unblocks: Nesto (UC-D1), AES (UC-P2), ENDO (UC-P3)
Sprint: S3-S4 (merged into one delivery)
Critical path item: Without this, no use case with file uploads or validation can ship.
| Capability | Description | Use Cases | Priority |
|---|---|---|---|
| V-CAP-02a: File Reference | fieldType: 'file' -- styled file input, onUpload callback with file metadata, preview thumbnail. Chameleon passes file to caller. |
Nesto, ENDO, EDR | P1 |
| V-CAP-02b: Entity Link | fieldType: 'entity_link' -- typeahead search field, queries lookupUrl, returns {entityId, entityLabel} |
Nesto, ARC, AES | P1 |
| V-CAP-02c: Computed Display | fieldType: 'computed' -- read-only value display, visually distinct, excluded from form data |
Nesto, AES, EDR | P1 |
| V-CAP-04a: Pattern Validation | validation.pattern regex + presets (email, phone, passport) |
Nesto, AES | P1 |
| V-CAP-04b: Min/Max | validation.min, validation.max, validation.minLength, validation.maxLength |
All | P1 |
| V-CAP-04c: Conditional Visibility | visibleWhen with AND/OR compound conditions |
Nesto (POLO field), AES (adaptive routing) | P1 |
| V-CAP-04d: Async Custom Validator | validation.custom function receiving all form values, returns error or null |
Nesto (VR-01..VR-17 surface), ENDO | P2 |
Definition of Done:
- All field types render and return correct values
- Conditional visibility hides/shows fields and excludes hidden values from submission
- Nesto Step 2 (upload docs) and Step 4 (validation errors displayed) render end-to-end
- 80%+ branch coverage on new code
- Existing 1047 tests still pass
Phase 2: Presentation and Branding (M-NEXUS-CV-4)
Unblocks: Multi-tenant white-label (Nesto employer portals), mobile Worker form
Sprint: S5
| Capability | Description | Use Cases | Priority |
|---|---|---|---|
| V-CAP-05a: styleRef injection | styleRef prop fetches CSS skin, injects scoped to form root |
Nesto (employer branding), AES (institution branding) | P2 |
| V-CAP-05b: Mobile-first Submitter | 1-column responsive layout, 44px tap targets, keyboard-appropriate inputs | Nesto (Worker SMS-link form) | P2 |
| V-CAP-05c: Theme system expansion | Built-in themes beyond light/dark/omnissiah | All | P3 |
Definition of Done:
- styleRef CSS applied without global leak
- Submitter variant passes at 375px/414px/768px viewports
- Nesto employer skin renders correctly
Phase 3: ChameleonBI (New Capability)
Origin: Osiris prototype (E:/repos/archive/Osiris) -- PowerBI analysis/reconstruction
Requirement source: Nexus Use Case Register Section 5.1, EDR (UC-P1), AES (UC-P2)
Target: Dashboard and reporting layer that consumes DashboardNode / ListViewNode / NavMenuNode outputs
| Capability | Description | Use Cases | Priority |
|---|---|---|---|
| BI-01: Schema-driven dashboard | Dashboard layout defined in schema (same pattern as form layout). Metric cards, tables, charts positioned by schema. | EDR, AES, ARC | P2 |
| BI-02: DashboardNode consumer | Accepts DashboardNode output (metrics array) and renders ArcDashboardGrid or configurable card grid | EDR, AES | P2 |
| BI-03: ListViewNode consumer | Accepts ListViewNode output (columns + rows) and renders ArcDataTable with sort/filter/pagination | EDR, AES, ARC | P2 |
| BI-04: NavMenuNode consumer | Accepts NavMenuNode output (menu items) and renders navigation shell (sidebar, topbar, tabs) | All multi-screen apps | P2 |
| BI-05: Chart components | Line, bar, pie, scatter charts from schema (data source = API endpoint or inline data) | EDR (trend analysis), AES (score distribution) | P3 |
| BI-06: Real-time data refresh | Polling or SSE subscription for live dashboard updates | EDR (ingestion monitor) | P3 |
| BI-07: Export (PDF/CSV) | Render current dashboard state to PDF or export table data as CSV | All | P3 |
Relationship to existing components:
- ArcDashboardGrid and ArcDataTable already exist (v1.2.2)
- BI-02 and BI-03 are schema-binding wrappers around these existing components
- BI-01 leverages the Layout Engine (M-NEXUS-CV-5) for positioning
- BI-04 is new (navigation shell)
- BI-05 extends the existing placeholder chart components into production-grade
Definition of Done:
- Schema-defined dashboard renders from DashboardNode + ListViewNode outputs
- Navigation shell supports multi-view switching
- EDR monitoring dashboard renders end-to-end from pipeline output
- AES results dashboard renders scores, pass/fail, per-student breakdown
Phase 4: New Deployment Targets
Source: Nexus Deployment Matrix Section 3.3 (View Layer Implementations)
| Target | Rendering Approach | Status | Priority | Use Cases |
|---|---|---|---|---|
| React ESM | npm package, tree-shakeable | COMPLETE | -- | All |
| UMD CDN | IIFE bundle, script tag inclusion | COMPLETE (48KB) | -- | Air-gapped, non-React hosts |
| Power Apps | Schema-to-PowerFx control mapper | PLANNED | P3 | Nesto Phase 4, Microsoft-native enterprises |
| SharePoint SPFx | SPFx web part wrapping ChameleonV2 React | PLANNED | P3 | SharePoint-heavy organisations |
| Excel Forms | VBA UserForm / Office Scripts generator | PLANNED | P4 | Offline analysts, legacy data entry |
| CLI / Terminal | Text-based prompts from schema | PLANNED | P4 | DevOps, batch ingestion, testing |
| PDF Static | Server-side render to static PDF | PLANNED | P4 | Audit/compliance read-only output |
Power Apps Target (P3 -- Highest New Target Priority)
Nesto Phase 4 explicitly requires Power Platform deployment. This means:
- Schema Compiler: JSON form schema -> Power Apps canvas app definition (YAML/msapp format)
- Field Mapping: ChameleonV2 field types -> Power Apps controls (TextInput, Dropdown, DatePicker, AttachmentControl, etc.)
- RBAC Mapping: ChameleonV2 role-based visibility -> Dataverse row-level security + Power Apps Visible/DisplayMode properties
- Validation Mapping: ChameleonV2 validation rules -> PowerFx IsMatch(), Value validation patterns
- Human Gate: Power Automate Approvals connector triggered from Power Apps button
This is NOT a re-implementation of ChameleonV2 in PowerFx. It is a compiler that takes a Chameleon schema and generates a Power Apps definition. The schema remains the single source of truth.
CLI Target (P4 -- Developer Tooling)
Schema renders as interactive terminal prompts (like npm init). Useful for:
- Pipeline testing without browser
- Batch data ingestion (JSON stdin mode)
- CI/CD integration testing
Phase 5: Platform Maturity
| Capability | Description | Priority | Milestone |
|---|---|---|---|
| PM-01: npm publish pipeline | Automated version bump, changelog, npm publish on merge to main | P2 | Infra |
| PM-02: Storybook | Component gallery with all 68 components rendered | P3 | DX |
| PM-03: Schema validation tool | CLI tool that validates a schema JSON before runtime | P2 | DX |
| PM-04: Migration tool | Upgrade schemas from v1.x to v2.x format changes | P4 | Maintenance |
| PM-05: Performance budget | Bundle size tracking, render time benchmarks per component | P3 | Quality |
| PM-06: Accessibility audit | WCAG 2.1 AA compliance verification across all components | P2 | Quality |
4. Critical Path
Phase 1 (Form Completeness)
|
v
Phase 2 (Style + Mobile) -----> Phase 3 (ChameleonBI)
v v
Phase 4a (Power Apps) Phase 4b (SPFx/CLI/PDF)
|
v
Phase 5 (Platform Maturity)
Phases 1 and 2 are sequential -- validation and file inputs must work before branding.
Phase 3 can start after Phase 1 -- dashboards need data types but not mobile styling.
Phase 4 can start after Phase 2 -- deployment targets need the complete feature set.
Phase 5 runs parallel -- infrastructure improvements are independent.
5. Use Case Dependency Map
Which use cases are unblocked at each phase:
| Phase | Capability Delivered | Use Cases Unblocked |
|---|---|---|
| Phase 1 complete | File input, entity link, computed, validation, conditional visibility | Nesto (full form flow), AES (assessment forms), ENDO (document intake) |
| Phase 2 complete | White-label branding, mobile Submitter | Nesto (employer portal, worker SMS form) |
| Phase 3 complete | Schema-driven dashboards, nav shell, chart components | EDR (monitoring dashboard), AES (results dashboard), ARC (pipeline dashboard) |
| Phase 4a complete | Power Apps deployment | Nesto Phase 4 (Microsoft-native), any Microsoft-shop client |
| Phase 4b complete | SPFx, CLI, PDF | SharePoint enterprises, DevOps testing, compliance/audit outputs |
6. Nexus View Layer Capability Status (V-CAP)
From Deployment Matrix -- current delivery status for the React target:
| V-CAP | Capability | Status | Phase |
|---|---|---|---|
| V-CAP-01 | Schema forms | COMPLETE | -- |
| V-CAP-02 | Field types (file, entity_link, computed) | NOT STARTED | Phase 1 |
| V-CAP-03 | RBAC filter | COMPLETE | -- |
| V-CAP-04 | Validation (pattern, min/max, conditional, async) | NOT STARTED | Phase 1 |
| V-CAP-05 | Style tokens (styleRef, mobile) | NOT STARTED | Phase 2 |
| V-CAP-06 | Group layout | COMPLETE (Layout Engine) | -- |
| V-CAP-07 | Options render (select, checkbox, radio, badge) | COMPLETE | -- |
| V-CAP-08 | Entity pre-population | NOT STARTED | Phase 1 |
| V-CAP-09 | ARC adapter | COMPLETE | -- |
| V-CAP-10 | UMD bundle | COMPLETE | -- |
| V-CAP-11 | List view (ArcDataTable) | COMPLETE | -- |
| V-CAP-12 | Dashboard (ArcDashboardGrid) | COMPLETE (basic), schema-driven Phase 3 | Phase 3 |
7. Version History
| Version | Date | Changes |
|---|---|---|
| CHR-1.0 | 2026-05-02 | Initial Nexus-driven Chameleon roadmap. 5 phases, ChameleonBI spec, deployment targets, consistency fixes identified. |