Descriptor-Driven MAP Implementation Milestone Plan (v1.6)¶
Change Log¶
v1.6¶
- rebases the dance portions of the synthesized roadmap onto
dances-impl-plan.mdv2.0 - treats Dance
PRO1as delivered baseline and removes abandoned DancePRO2/PRO3/PRS1-PRS5planning items - replaces the old split dance posture with the revised Wave 5 sequence:
Dance PR2throughDance PR8 - removes deferred dance dynamic-binding work from Wave 9 because it is now scoped inside the revised Wave 5 dance plan
v1.5¶
- adds a status correction after the query/navigation design pivot
- treats
HolonCollection, notBoundHolonCollection, as the current plural holon-backed carrier - clarifies that Query PRs are no longer on the DAHN critical path merely to settle shared operand types
- points readers to
runtime-shared-types.mdv1.2 andqueries-impl-plan.mdv2.1 for the current navigation/query posture
v1.4¶
- aligns the synthesized roadmap with the updated component implementation plans for queries, dances, commands, the TypeScript SDK, and DAHN Phase 0
- treats the runtime shared type foundation as a cross-surface baseline rather than a query-local operand effort
- makes bound-first
HolonReference/BoundHolonCollectioncontracts the primary query/dance/command/SDK/DAHN posture - clarifies
BaseValue,Row,RowSet, and laterRecord/RecordStreamas secondary materialized projection/result shapes - incorporates the new Commands implementation plan and its
PRO/PRSsplit - updates TS and DAHN sequencing around public SDK descriptor handles,
DanceV2(DanceInvocation),BoundHolonCollection, and bridge-payload migration - preserves descriptor ownership of semantics while narrowing Commands to IPC ingress, adapter, lifecycle policy, and descriptor-bound routing
This document is the synthesized cross-component implementation roadmap for the current descriptor-driven MAP architecture.
Status note: This roadmap still contains older wave-level references to
BoundHolonCollection, Query PRO2 envelopes, and Query PRO3 as part of the DAHN dependency chain. The current design source of truth is now runtime-shared-types.md and queries-impl-plan.md v2.1. Until this roadmap is fully rebaselined, readHolonCollectionas the current plural holon-backed carrier and do not treat saved-plan or declarative-query work as blocking initial DAHN delivery.
Its purpose is to translate several component-level design specs and implementation plans into one dependency-aware execution sequence, so that work across descriptors, validation, queries, dances, commands, TypeScript surfaces, and DAHN can proceed without duplicated semantics, premature hardening, or avoidable rework.
In particular, this plan synthesizes across:
- the descriptor design and descriptor implementation plan
- the validation architecture and dependency gravity model
- the query architecture and query implementation plan
- the dance design and dance implementation plan
- the commands specification and commands implementation plan
- the runtime shared types foundation
- the TypeScript MAP SDK implementation specification
- the DAHN specs, blueprint, and implementation plan
Rather than replacing those component documents, this plan coordinates them. It identifies which capabilities are foundational, which downstream streams can begin safely in parallel, and which work must wait until descriptor-owned structure or semantics are real.
The guiding principle is:
- descriptors are the semantic root
- validation, queries, dances, commands, TS SDK surfaces, and DAHN should consume descriptor semantics rather than invent parallel systems
- implementation should separate structural foundations from semantic behavior and from TS / UX integration
- runtime shared types are the cross-surface contract vocabulary reused by commands, queries, dances, SDKs, and DAHN
HolonReferenceandHolonCollectionare the current primary holon-backed runtime shared types for holon-backed execution and resultsBaseValue/Row/RowSetshould be read primarily as shared materialized contract and projection shapes rather than as the full internal execution substrate- Commands own IPC ingress, wire/domain binding, structural scope, and lifecycle policy; they do not own query, dance, or descriptor semantics
Provisional Effort Estimates¶
These estimates use the lightweight implementation-point scale:
1= tightly bounded2= small3= medium5= large8= unusually uncertain or cross-cutting
Wave totals below are provisional rollups of likely issue/PR slices rather than commitments.
Confidence reflects how much of the wave is already issue-defined and how stable its dependency surface currently looks.
| Wave | Best Estimate | Range | Confidence | Notes |
|---|---|---|---|---|
| Wave 0 — Structural Groundwork | 22 | 20-24 | High | Retrospective calibration from delivered foundational work. |
| Wave 1 — Schema-Backed Descriptor Surface | 18 | 15-22 | Medium-Low | Carries early Query PRO1/PRO2, Dance PRO1, command contract inventory, and DAHN adapter refinement alongside Descriptor PR2. |
| Wave 2 — Descriptor-Owned Value Semantics | 20 | 15-24 | Low | Carries early Query PRO3, dance semantic-validation prep, command runtime shared type adoption, and descriptor semantic work. |
| Wave 3 — Validation Integration | 13 | 10-16 | Low-Medium | Validation layering is conceptually clear, but implementation depends heavily on what Descriptor Phase 3 actually delivers. |
| Wave 4 — Query Runtime Shared Type, Contract, and Structural Semantics | 20 | 16-24 | Low-Medium | Broader than before because it now includes runtime shared type, contract, and descriptor-semantic work, but the split reduces ambiguity. |
| Wave 5 — Dance Holonic Contract and Execution Alignment | 32 | 26-38 | Medium | Now reflects the revised post-PRO1 sequence from Dance PR2 through Dance PR8, including schema alignment, ingress, query/navigation dances, activation, and test migration. |
| Wave 6 — Command IPC Contract, Descriptor Anchoring, and Routing | 16 | 11-20 | Low | Expanded now that Commands has an explicit PRO/PRS implementation plan and bridge-payload migration obligations. |
| Wave 7 — TypeScript Interface Realignment | 22 | 17-27 | Low | Now includes bound-first SDK result mapping, descriptor handles, DanceInvocation, and query bridge migration. |
| Wave 8 — Real DAHN Integration | 18 | 13-21 | Low | Depends on TS descriptor/bound-reference surfaces and multiple prior DAHN PRs, so scope is visible but not yet stable. |
| Wave 9 — Advanced Query Evolution | 13 | 10-18 | Low | Now focused on planner and declarative query evolution after the revised dance activation/binding work moves into Wave 5. |
Practical interpretation:
- high confidence means the estimate is useful for planning and calibration
- medium confidence means the estimate is directionally useful but should be revisited as issues are defined
- low confidence means the estimate is mainly a placeholder for wave-scale comparison and should not be treated as a commitment
Recommended practice:
- re-estimate each wave after its major issues/PR slices are defined
- treat these totals as planning aids, not performance commitments
- prefer estimating issue/PR slices directly once a wave becomes active
Testing Posture by Wave / PR¶
Implementation sequencing should be matched by test sequencing.
The main rule is:
- introduce the strongest tests only when the corresponding runtime contract is actually intended to stabilize
That means:
- early structural work should prefer unit tests and narrow seam/boundary tests
- semantic convergence work should add richer contract tests once descriptor-owned meaning is in scope
- integration tests should be introduced when a cross-module execution contract is part of the intended deliverable
- end-to-end or framework-backed tests should not be used to harden provisional semantics too early
Testing Guidance by Work Type¶
| Work Type | Preferred Tests | Avoid Too Early |
|---|---|---|
| Structural descriptor surfaces | unit tests, schema-backed lookup tests, inheritance/effective-access tests | broad integration tests that assume later semantic behavior |
| Validation layer classification / PVL / Nursery boundaries | unit tests, classification tests, bounded seam tests | end-to-end semantic validation flows before descriptor semantics are real |
Query PRO contract work |
unit tests, runtime-shared-type tests, envelope/contract tests, compatibility tests | descriptor-semantic, planner, or declarative integration tests before the contract substrate stabilizes |
Query PRS semantic work |
unit tests, descriptor-aware execution tests, semantic seam tests | declarative/planner integration tests before navigation algebra and predicate semantics stabilize |
| Dance contract / discovery / execution-alignment work | unit tests, schema/wrapper tests, lookup tests, dispatch seam tests | broad runtime-binding or end-to-end execution tests before activation and semantic validation are in scope |
| Dance semantic / activation / migration work | semantic integration tests, targeted activation tests, migration/regression tests | broad dynamic-loading or end-to-end runtime tests before the static execution posture is stable |
Command PRO contract work |
wire/domain seam tests, result mapping tests, runtime-shared-type adoption tests | descriptor-bound routing tests before command descriptor anchoring exists |
Command PRS descriptor/routing work |
command descriptor lookup tests, lifecycle policy tests, static routing tests | dynamic command implementation tests; Commands should not absorb query/dance semantics |
| TS SDK realignment | public/internal boundary tests, result-decoder tests, descriptor-handle tests | DAHN-owned duplicate descriptor APIs or direct SDK-internal imports |
| DAHN shell / adapter seams | seam tests, adapter-boundary tests, registry/loader tests | semantic rendering tests before TS descriptor/bound-reference surfaces are ready |
| Dynamic binding / advanced runtime work | targeted integration tests, runtime contract tests, end-to-end binding tests | none once those runtime contracts are intentionally in scope |
Dance-Specific Guidance¶
For the dance track, testing should generally tighten in this order:
- Dance PRO1 / delivered baseline:
- preserve the already-delivered invocation/result envelope coverage
-
do not reopen its scope merely to absorb later design simplifications
-
Dance PR2:
- schema import tests
- wrapper/contract tests
- request/response relationship-shape tests
-
no broad execution-framework integration tests yet
-
Dance PR3:
- descriptor-affordance lookup tests
- inherited/effective lookup tests
-
request/response metadata discovery tests
-
Dance PR4:
DanceInvocationingress tests- static execution-path seam tests
-
narrow integration tests where static host-local execution is the intended contract
-
Dance PR5:
- query/navigation dance contract tests
- projection/result-shape tests
-
targeted common-runtime-path integration tests
-
Dance PR6:
- descriptor-semantic validation tests
- operator/validation alignment tests
-
no dance-local semantic reinvention tests
-
Dance PR7:
- targeted activation/selection tests
-
runtime contract tests for implementation loading and eligibility
-
Dance PR8:
- migration/regression tests
- old-world/new-world coexistence tests where temporary parallel buildout still exists
Query-Specific Guidance¶
For the query track, testing should generally tighten in this order:
- Query PRO1:
- unit tests
- runtime shared type family tests
- result-shape normalization tests
- projection-shape boundary tests confirming that
BaseValue/Row/RowSetare not overread as the full intermediate execution model -
bound-first tests around
HolonReferenceandBoundHolonCollection -
Query PRO2:
- envelope/contract tests
- compatibility tests for new query request/result shapes
-
contract-path tests preserving a clean seam between materialized request/result shapes and bound-first internal execution state
-
Query PRO3:
- navigation algebra contract tests
- operand flow tests
-
narrow interpreter/substrate tests
-
Query PRS1:
- descriptor-backed structural lookup tests
- declared/inverse relationship distinction tests
-
seam tests around
ResolvedTypeas internal support only -
Query PRS2:
- descriptor-backed predicate/operator tests
-
unsupported-operator error tests
-
Query PRS3+:
- progressively richer distributed, planner, and declarative integration tests only once those contracts are intentionally in scope
Command-Specific Guidance¶
For the command track, testing should generally tighten in this order:
- Command PRO1:
- unit tests
- payload/result disposition tests
BoundHolonCollectionresult/operand posture tests-
compatibility tests for bridge forms such as
DanceRequest,QueryExpression, andHolonCollection -
Command PRO2:
- wire/domain binding tests
- result mapping tests
- dependency-boundary tests proving
map_commands_runtimedoes not depend onmap_commands_wire -
no descriptor-routing tests yet
-
Command PRS1:
- command schema anchor tests
CommandDescriptorwrapper tests-
CommandLifecyclePolicyrename and metadata tests -
Command PRS2:
HolonDescriptor/TransactionDescriptorcommand lookup tests-
inherited/effective affordance lookup tests
-
Command PRS3+:
- descriptor-bound routing tests
- lifecycle policy enforcement tests
- TS/DAHN affordance compatibility tests once descriptor-discovered commands are intended to be executable
Issue-Level Rule¶
Each issue / PR spec should explicitly state:
- whether unit tests are sufficient
- whether seam/boundary tests are required
- whether integration tests are required
- whether framework-backed integration tests are appropriate yet
- what dependencies must land before stronger integration tests should be added
This prevents teams from using tests to harden behavior that the roadmap still intends to keep provisional.
Wave 0 — Structural Groundwork¶
Goal¶
Establish the minimum structural substrate that everything else can safely build on.
Major Deliverables¶
- Descriptor PR1 / Issue 453:
- runtime descriptor wrappers
DescriptortraitTypeHeaderReadableHolon::holon_descriptor()- inheritance traversal helpers
- DAHN PR 1:
- contracts and skeleton
- DAHN PR 2:
- visualizer registry and minimal canvas
- DAHN PR 4:
- trivial selector
- DAHN PR 8 (partial):
- boundary and seam tests that do not require real descriptor semantics
Why This Wave Exists¶
This wave prevents downstream work from hardcoding:
- inheritance flattening
- structural lookup
- transport leakage into TS
- UX/runtime seams that will later fight the descriptor model
| Work Item | Can Start | Blocked By |
|---|---|---|
| Descriptor PR1 | immediately | none |
| DAHN PR1 | immediately | none |
| DAHN PR2 | immediately | none |
| DAHN PR4 | immediately | none |
| DAHN PR8 (boundary-only subset) | immediately | none |
Exit Criteria¶
- thin runtime descriptor wrappers exist
- flattened structural traversal exists
- no downstream stream needs to invent its own structural lookup foundation
- DAHN shell work exists without semantic coupling
Wave 1 — Schema-Backed Descriptor Surface¶
Goal¶
Make descriptor structure real and consumable rather than merely wrapped.
Major Deliverables¶
- Descriptors Phase 2:
- schema-backed accessors for
HolonDescriptor,PropertyDescriptor,RelationshipDescriptor - declared/inverse relationship accessors
- schema-backed accessors for
- tests against authoritative core schema
- explicit handling of current-schema deficiencies
- Query runtime shared type and envelope prep
- command contract inventory and bridge-type disposition prep
Why This Wave Exists¶
Wave 0 gives wrappers and traversal. Wave 1 gives real usable structure.
This is the point where downstream systems can stop saying “in principle descriptors will provide this” and start depending on:
- property lookup
- relationship lookup
- inverse relationship lookup
- effective flattened structural access
| Work Item | Can Start | Blocked By |
|---|---|---|
| Descriptor Phase 2 | after Wave 0 starts | Descriptor PR1 |
| Query PRO1 prep — Runtime Shared Types Foundation Alignment | during Wave 1 | none |
| Query PRO2 prep — Query Envelope and Contract Stabilization | during Wave 1 | Query PRO1 |
| Dance PRO1 prep — Shared Invocation / Result Envelope Foundation | during Wave 1 | none |
| Command PRO1 prep — IPC Contract and Runtime Shared Type Alignment | during Wave 1 | runtime shared type foundation |
| Command PRO2 prep — Wire / Domain Binding and Result Mapping Stabilization | during Wave 1 | Command PRO1 |
| DAHN adapter design refinement | during Wave 1 | Descriptor PR1 |
Exit Criteria¶
- effective structural descriptor access is real
- schema-backed descriptor surface is test-backed
- downstream consumers can target descriptors as an actual API surface
Wave 2 — Descriptor-Owned Value Semantics¶
Goal¶
Move the first real semantics into descriptors through ValueDescriptor.
Major Deliverables¶
- Descriptors Phase 3:
is_valid()supports_operator()apply_operator()
- initial operator semantics implemented in Rust
- no global operator registry
- compatibility with future schema-backed operators
Why This Wave Exists¶
This is the semantic keystone for:
- validation
- query predicates
- query-builder affordances
- dance input checking and filter-like behavior
- DAHN property rendering and future editing hints
Without this wave, every other stream risks inventing its own:
- value validation logic
- operator support logic
- comparison semantics
| Work Item | Can Start | Blocked By |
|---|---|---|
| Descriptor Phase 3 | after Wave 1 is sufficiently real | Descriptor PR1, Descriptor Phase 2 |
| Validation PR3 prep — Nursery Bounded Descriptor Rule Integration | during Wave 2 | Descriptor Phase 2 |
| Query PRO3 prep — Navigation Algebra Contract Stabilization | during Wave 2 | Query PRO1, Descriptor Phase 2 |
| Query PRS2 prep — Descriptor-Owned Predicate and Operator Alignment | during Wave 2 | Descriptor Phase 2 |
| Dance PR2 prep — Core Schema and Contract Alignment | during Wave 2 | Dance PRO1, core schema governance |
| Dance PR6 prep — Descriptor-Semantic Validation | during Wave 2 | Descriptor Phase 2 |
| Command PRS1 prep — Command Descriptor Schema Anchoring | during Wave 2 | Descriptor Phase 2 |
| Command PRS2 prep — Descriptor-Afforded Command Discovery | during Wave 2 | Command PRS1 |
| DAHN property presentation heuristics | during Wave 2 | Descriptor Phase 2 |
Exit Criteria¶
ValueDescriptoris the accepted home of value semantics- validation and query streams can both target one semantic source
- no new freestanding operator subsystem is needed elsewhere
Wave 3 — Validation Integration¶
Goal¶
Make validation consume descriptor semantics while preserving PVL / Nursery boundaries.
Major Deliverables¶
- VAL0 — Core constraint/rule vocabulary and Validation-extension package-load acceptance:
- generalized
Constraintsand Core constraint types - classified
ValidationRule/ValidationBindingsvocabulary - Core bootstrap and Validation-extension load proof
- generalized
- Capability 1 — Basic descriptor-aware Commit conformance:
- effective constraint and binding collection
- static constraint-type and rule dispatch
- required-property, undescribed-property, and native-kind cohort
- Capability 2 — descriptor self-conformance, including
DS-CONSTRAINT-* - Capability 3 — configured value constraints, enum, default, and key conformance
- Capability 4 — relationship conformance and bounded effective cardinality-constraint evaluation
Why This Wave Exists¶
The updated validation architecture says:
- descriptors and configured constraints own semantics
- validation layers own evaluation authority
- PVL remains descriptor-independent
So Commit validation should consume descriptor semantics as soon as Waves 1 and 2 make that possible, without routing descriptor-defined rules into PVL.
| Work Item | Can Start | Blocked By |
|---|---|---|
| VAL0 — Core constraint/rule vocabulary and package-load acceptance | during Wave 2 | Core schema/TDL migration, Descriptor Phase 2 |
| Capability 1 — basic descriptor-aware Commit conformance | after VAL0 | Descriptor Runtime Platform APIs |
| Capability 2 — descriptor self-conformance | after Capability 1 | Descriptor Runtime effective products |
| Capability 3 — value, enum, default, and key conformance | after Capability 1 and relevant Capability 2 support | Descriptor Runtime and loader completion |
| Capability 4 — relationship conformance and cardinality constraints | after Capabilities 1 and 2 | Relationship products and bounded transaction snapshot |
Exit Criteria¶
- configured constraints and non-constraint validation rules have distinct semantic roles
- descriptor-owned semantics are classified by evaluation layer
- bounded vs open-world enforcement boundaries remain explicit
Wave 4 — Query Runtime Shared Type, Contract, and Structural Semantics¶
Goal¶
Stabilize the new query runtime shared type, envelope, and execution substrate posture while continuing the descriptor-dependent structural and semantic query work.
Major Deliverables¶
- Query PRO1 / Phase 1 — Runtime Shared Types and Envelope Foundation:
- query adoption of the canonical runtime shared type family
- primary bound posture around
HolonReference,BoundHolonCollection, and contract-significantSmartReference - secondary materialized projection posture around
BaseValue,Row,RowSet, and laterRecord/RecordStream - explicit normalization away from legacy
Node/NodeCollection/QueryPathMap
- Query PRO2 / Phase 2 — Query Envelope and Contract Stabilization:
- query envelope and contract posture for the new query substrate
- long-term query result-shape direction distinct from the legacy path
- end-to-end contract path from TS through Commands to the shared substrate boundary
- Query PRO3 / Phase 3 — Navigation Algebra Contract Stabilization:
- navigation/query contract stabilization over bound-first execution:
HolonReferenceBoundHolonCollectionBaseValueRowRowSet- path toward
Record/RecordStream
- minimal navigation algebra as the execution substrate
- navigation/query contract stabilization over bound-first execution:
- Query PRS1 / Phase 2 — Parallel Descriptor-Backed Structural Resolution:
- query runtime alignment around descriptor-backed structure
ResolvedType/ structural projection reframed as internal support, not caller-facing semantic truth
- Query PRS2 / Phase 4 — Descriptor-Owned Predicate and Operator Alignment:
- descriptor-aware navigation/filter execution rules
- no query-owned permanent operator semantic subsystem
- Query PRS3 / Phase 5 — Distributed Descriptor-Consistent Query Semantics:
- distributed query behavior that preserves descriptor meaning under sovereignty constraints
Why This Wave Exists¶
Queries need two things in parallel:
- a primary holon-bound runtime shared type posture for deferred-projection execution
- an earlier-stabilizing contract shape for runtime shared types, envelopes, and execution substrate
- descriptor-backed structural and predicate semantics that keep query meaning aligned with the descriptor model
This wave makes sure:
- algebra remains the execution substrate
- descriptors remain the semantic source
- bound-first execution remains the primary intermediate representation
- materialized projection models are ready for reuse in dance refactor, SDKs, and DAHN without becoming the full internal execution model
| Work Item | Can Start | Blocked By |
|---|---|---|
| Query PRO1 / Phase 1 — Runtime Shared Types and Envelope Foundation | after Wave 1 starts | runtime shared type foundation |
| Query PRO2 / Phase 2 — Query Envelope and Contract Stabilization | after Wave 1 starts | Query PRO1 |
| Query PRO3 / Phase 3 — Navigation Algebra Contract Stabilization | after Wave 1 starts | Query PRO1, Query PRO2, Query PRS1 / Phase 2, Descriptor Phase 2 |
| Query PRS1 / Phase 2 — Parallel Descriptor-Backed Structural Resolution | after Wave 1 starts | Descriptor Phase 2 |
| Query PRS2 / Phase 4 — Descriptor-Owned Predicate and Operator Alignment | after Wave 2 starts | Query PRS1 / Phase 2, Query PRO3 / Phase 3, Descriptor Phase 3 |
| Query PRS3 / Phase 5 — Distributed Descriptor-Consistent Query Semantics | during Wave 4 | Query PRO3 / Phase 3, Query PRS2 / Phase 4 |
| Query PRS4 prep / Phase 5 — Planner Algebra Foundation | during Wave 4 | Query PRO3 / Phase 3, Query PRS2 / Phase 4 |
Exit Criteria¶
- query execution no longer owns value semantics independently
- descriptor-aware algebra is the clear direction
- bound-first runtime shared type posture is established as the primary intermediate representation
- query contract shapes are stable enough for command, dance, SDK, and DAHN reuse
- materialized projection forms are available without forcing eager row-shaped internal execution
Wave 5 — Dance Holonic Contract and Execution Alignment¶
Goal¶
Bring the post-PRO1 dance implementation into conformance with the revised holonic design, from schema alignment through static execution, query/navigation dances, activation, and old-world drawdown.
Major Deliverables¶
- Dance PRO1 / delivered baseline:
- early
DanceInvocation/ dance-envelope foundation remains delivered and fixed in scope
- early
- Dance PR2 — Core Schema and Contract Alignment:
DanceType.RequestType -> HolonTypeDanceInvocation.Request -> HolonTypeDanceResponseType.ResponseBody -> HolonTypeProjectionas the shell for value-shaped request/response/projection records- old-world dance schema surfaces retained only as deprecated descriptors during parallel buildout
- Dance PR3 — Descriptor-Afforded Dance Discovery:
- dance lookup through
HolonDescriptor - inherited/effective dance affordances through flattened
Extends - no second dance registry
- dance lookup through
- Dance PR4 — Command Ingress and Static Execution Alignment:
DanceV2ingress throughDanceInvocation- shared canonical
DanceInvocationbuilder/factory reused by Commands and Trust Channels - TS SDK
DanceV2helper over the shared canonical builder/factory ForDance-based implementation binding- static host-local execution posture over the common runtime surface
- Dance PR5 — Query and Navigation Dances:
- query/navigation operations delivered as ordinary dances
Projection/ transient projection-shape posture for value-based request or result bodies- common runtime surface for query-like and side-effecting dances
- Dance PR6 — Descriptor-Semantic Validation:
- descriptor-owned validation/operator semantics consumed by dances
- no dance-local semantic duplication
- Dance PR7 — Dynamic Implementation Activation and Selection:
- dynamic activation/loading posture
- ABI-compat, integrity, and policy-eligibility checks
- implementation selection by dance, not by target-type-specific method dispatch
- Dance PR8 — Test Migration and Old-World Drawdown:
- convert tests to the new-world dance model as support becomes real
- keep temporary old-world surfaces only where still needed for parallel buildout
Why This Wave Exists¶
The revised dance design simplified the model substantially:
DanceInvocationand successful dance responses are ordinary transient holons- request and response bodies are reached by holon reference
- descriptor-backed affordance lookup owns dance discovery
- query/navigation operations are ordinary dances
- old-world/new-world coexistence is handled by parallel buildout and test migration, not runtime translation
That simplification removes the old PRO2 / PRO3 / PRS split. The remaining work is better represented as one post-PRO1 delivery sequence whose middle phases depend on descriptors, commands, and query/runtime shared types, but whose target design is now one coherent holonic contract.
| Work Item | Can Start | Blocked By |
|---|---|---|
| Dance PRO1 / delivered baseline | complete | none |
| Dance PR2 — Core Schema and Contract Alignment | after Wave 1 starts | Dance PRO1, core schema governance |
| Dance PR3 — Descriptor-Afforded Dance Discovery | after Wave 1 starts | Dance PR2, Descriptor Phase 2 |
| Dance PR4 — Command Ingress and Static Execution Alignment | after Wave 1 starts | Dance PR2, Dance PR3, Command PRO2 |
| Dance PR5 — Query and Navigation Dances | after Wave 4 starts | Dance PR2, Dance PR3, Dance PR4, Query PRO3, Query PRS1 / Phase 2 |
| Dance PR6 — Descriptor-Semantic Validation | after Wave 2 starts | Dance PR2, Dance PR3, Descriptor Phase 3, Validation PR3 / Phase 3 |
| Dance PR7 — Dynamic Implementation Activation and Selection | after Wave 5 core phases stabilize | Dance PR4, Dance PR5, Dance PR6 |
| Dance PR8 — Test Migration and Old-World Drawdown | after Wave 5 core phases stabilize | Dance PR4, Dance PR5, Dance PR6, Dance PR7 |
Exit Criteria¶
- new-world dance schema and wrappers match the revised holonic contract
- dances are discovered from descriptors through
HolonDescriptor DanceInvocationand theDanceV2ingress path are aligned- query/navigation operations can execute as ordinary dances
- dance code is not a second semantic home for filtering or validation
- dynamic activation/selection is available without reintroducing target-type-specific dispatch
- test posture is migrating away from old-world dance surfaces
Wave 6 — Command IPC Contract, Descriptor Anchoring, and Routing¶
Goal¶
Align the MAP Commands IPC contract with runtime shared types, then bring commands into the descriptor-owned behavior model without making Commands the semantic home of query or dance behavior.
Major Deliverables¶
- Command PRO1 — IPC Contract and Runtime Shared Type Alignment:
- command payload/result disposition
- plural command result convergence on
BoundHolonCollection - bridge-type classification for
DanceRequest,QueryExpression,HolonCollection, and directHolon
- Command PRO2 — Wire / Domain Binding and Result Mapping Stabilization:
- adapter-owned wire-to-domain binding
- domain-to-wire result mapping
- no
*Wireleakage below the binding seam
- Command PRS1 — Command Descriptor Schema Anchoring:
CommandType- schema-backed
CommandDescriptor AffordsCommandCommandLifecyclePolicyrename for lifecycle metadata
- Command PRS2 — Descriptor-Afforded Command Discovery:
HolonDescriptor,HolonSpaceDescriptor, andTransactionDescriptorcommand lookup- effective inherited command affordance discovery
- Command PRS3 — Descriptor-Bound Runtime Routing and Policy Enforcement:
- lifecycle policy enforcement through descriptor-resolved command metadata
- static Rust-local command dispatch anchored in descriptor lookup
- Command PRO3 — Query and Dance Ingress Contract Convergence:
DanceV2(DanceInvocation)as new-world dance ingressQueryExpressionscoped as transitional query bridge payload
- Command PRS4 — Dispatch Redistribution and TS / DAHN Readiness:
- central dispatch shrinks where descriptor-local static routing is ready
- command affordances become consumable by TS and DAHN
Why This Wave Exists¶
Commands are less critical than value semantics for validation/query coherence, but they matter for:
- runtime consistency
- DAHN affordance surfaces
- future TS API alignment
- keeping behavior discovery uniform
- preserving the single IPC ingress and wire/domain sandwich model while descriptor-owned behavior discovery expands
| Work Item | Can Start | Blocked By |
|---|---|---|
| Command PRO1 / runtime shared type alignment | after Wave 1 starts | runtime shared type foundation |
| Command PRO2 / wire-domain binding and result mapping | after Command PRO1 starts | Command PRO1 |
| Command PRS1 / command descriptor schema anchoring | after Wave 1 | Descriptor Phase 2 |
| Command PRS2 / descriptor-afforded command discovery | after Command PRS1 | Command PRS1, descriptor inherited lookup |
| Command PRS3 / descriptor-bound routing and policy | after Command PRS2 | Command PRO2, Command PRS2 |
| Command PRO3 / query and dance ingress convergence | after relevant query/dance contract work | Query PRO2, Dance PR4, Command PRO2 |
| Command PRS4 / dispatch redistribution and TS / DAHN readiness | after Command PRS3 | Command PRS3, TS descriptor client planning |
| DAHN affordance menu expansion for commands | after command descriptor surface exists | Descriptor command routing, TS realignment prep |
Exit Criteria¶
- commands have descriptor ownership
- command payloads and results align with runtime shared types
- wire/domain separation remains intact
- bridge payloads are isolated and migration-scoped
- central dispatch is shrinking where descriptor-local routing is ready
- behavior discovery becomes more uniform across commands and dances
Wave 7 — TypeScript Interface Realignment¶
Goal¶
Expose descriptor-oriented surfaces to TS so DAHN and other clients can consume the real model.
Major Deliverables¶
- Descriptors Phase 7:
- TS descriptor clients
- descriptor-oriented public SDK shape
- thin descriptor handles
- public SDK
HolonReferenceandBoundHolonCollectioncontract surfaces DanceInvocation/DanceV2public SDK path- query API aligned toward the Query PRO2 contract rather than legacy
QueryExpression - command result decoding aligned with runtime shared type posture
- no TS-side inheritance flattening
- no TS semantic shadow model
Why This Wave Exists¶
Until this wave lands, TS/DAHN can only partially align with the descriptor model.
This is the real bridge from core semantics to:
- DAHN
- SDK consumers
- future query builders
- UX surfaces
| Work Item | Can Start | Blocked By |
|---|---|---|
| TS descriptor client design | during Wave 6 | Descriptor Phase 2 |
| TS runtime shared type / result mapping realignment | during Wave 6 | Command PRO1, Command PRO2, runtime shared type foundation |
| TS implementation realignment | after descriptor/core semantics are stable enough | Descriptor Phases 2-6, Command PRO/PRS early tracks |
| DAHN real adapter implementation | after TS realignment begins | TS descriptor surfaces, bound-reference SDK surfaces |
| Query-builder TS/API design | after TS realignment begins | TS descriptor surfaces, Descriptor Phase 3 |
Exit Criteria¶
- TS no longer needs to guess descriptor meaning
- DAHN and other clients can consume thin descriptor handles directly
- public SDK plural holon-backed results converge on
BoundHolonCollection - legacy bridge payloads such as
DanceRequestandQueryExpressionare not the long-term public SDK center - no TS-side inheritance or operator semantics are invented
Wave 8 — Real DAHN Integration¶
Goal¶
Turn the DAHN shell into a genuinely descriptor-driven experience layer.
Major Deliverables¶
- DAHN PR 3:
- SDK-backed adapter seam
- public SDK
HolonReference/BoundHolonCollectionconsumption
- DAHN PR 5:
- affordance hierarchy and action menu
AffordanceNode[]built from command and dance descriptor handles
- DAHN PR 6:
- generic
HolonNodeVisualizer
- generic
- DAHN PR 7:
- host UI mount and bring-up
- DAHN PR 8:
- full hardening and boundary tests
Why This Wave Exists¶
Earlier DAHN work can land as scaffolding, but real descriptor-driven rendering and affordance presentation should wait until TS descriptor and bound-reference surfaces exist.
| Work Item | Can Start | Blocked By |
|---|---|---|
| DAHN PR3 | after Wave 7 begins | TS descriptor surfaces, bound-reference SDK surfaces |
| DAHN PR5 UI shell | earlier as scaffold | none |
| DAHN PR5 semantic completion | later | Descriptor command/dance surfaces, TS realignment |
| DAHN PR6 | after Wave 7 begins | TS descriptor surfaces, Descriptor Phase 2 |
| DAHN PR7 | after PR3 and PR6 are real | DAHN PR3, DAHN PR6 |
| DAHN PR8 full | after semantic DAHN seams exist | DAHN PR3-7 |
Exit Criteria¶
- DAHN can render real descriptor-defined properties, relationships, and affordances
- property presentation is value-type-aware
- affordance surfaces reflect descriptor-discovered commands and dances
- DAHN's default data posture is bound references and bound collections, not materialized query rows
- no internal SDK leakage into DAHN
Wave 9 — Advanced Query Evolution¶
Goal¶
Layer in the more ambitious query/runtime features after the semantic foundations are stable.
Major Deliverables¶
- Query PRS4 / Phase 5 — Planner Algebra Foundation:
- query planner algebra expansion
- descriptor-aware logical operator posture
- Query PRS5 / Phase 6 — Declarative Compilation and Optimization Evolution:
- declarative OpenCypher/GQL compilation
- physical planning and optimization
- schema-backed operator metadata
- richer command metadata
Why This Wave Exists¶
These are important, but they should not be allowed to destabilize the semantic base.
They depend on having:
- descriptor-owned semantics
- stable query/runtime shared type and envelope models
- stable TS/UX surfaces
| Work Item | Can Start | Blocked By |
|---|---|---|
| Query PRS4 / Phase 5 — Planner Algebra Foundation | after Wave 4 | Query PRO3 / Phase 3, Query PRS2 / Phase 4, Query PRS3 / Phase 5 |
| Query PRS5 / Phase 6 — Declarative Compilation and Optimization Evolution | after planner substrate exists | Query PRS4 / Phase 5 |
| Schema-backed operator metadata | after Descriptor Phase 3 | Descriptor operator runtime |
| Richer command metadata | after Descriptor Phase 6 | Command descriptor routing |
Exit Criteria¶
- declarative query evolution builds on descriptor-aware algebra rather than reintroducing semantic duplication
- advanced runtime features no longer pressure teams to invent parallel models
Cross-Wave Critical Dependencies¶
Absolute Critical Path¶
- Descriptor PR1
- Descriptor Phase 2
- Descriptor Phase 3
- Validation VAL0 and Capabilities 1-4
- Query PRO1-PRO3 + PRS1-PRS3
- Dance PR2-PR8
- Command PRO/PRS early tracks
- TypeScript interface realignment
- Real DAHN integration
Key Semantic Dependency Rules¶
- Validation VAL0 should not finalize before the Core constraint/rule schema and TDL migration are coherent and Core bootstrap remains descriptor-independent at PVL.
- Validation Capability 3 should not finalize before
ValueDescriptorsemantics and configured value constraints exist. - Query PRS2 / Phase 4 should not finalize before
ValueDescriptoroperators exist. - Query PRS4 / Phase 5 should not harden before navigation algebra contracts and descriptor-aware predicate semantics are stable.
- Dances should not finalize request/result structures before the runtime shared type foundation and query contract posture stabilize.
- Dance PR6 should not finalize before
ValueDescriptorsemantics exist. - Commands should not make
DanceRequest,QueryExpression, orHolonCollectionthe long-term public contract center. - TS SDK work should not expose internal command builders, wire types, or DAHN-local descriptor mirrors.
- DAHN should not finalize real adapter/visualizer semantics before TS descriptor and bound-reference surfaces exist.
- Dance PR7 should not start before Dance PR4 static execution alignment and Dance PR6 semantic validation are real.
Parallel Work Summary¶
Safely Parallel Early¶
- Descriptor PR1
- DAHN PR1, PR2, PR4
- Validation PR1 / Phase 1 classification prep
- Query PRO1 issue definition
- Query PRO2 issue definition
- Query PRO1 / runtime shared type foundation alignment
- Query PRO2 / envelope and contract stabilization
- Query PRS1 issue definition
- Dance PR2 issue definition
- Command PRO1 / command runtime shared type adoption
- Command PRO2 / wire-domain seam stabilization
- dance design sprint follow-through
- DAHN PR8 boundary-only subset
Parallel Once Descriptor Structure Exists¶
- Validation PR1 / Phase 1 classification work
- Validation PR2 / Phase 2 PVL integration
- Query PRS1 / parallel structural resolution
- Query PRO3 / navigation algebra contract work
- Dance PR3 / descriptor-afforded discovery work
- Dance PR4 / static execution alignment prep
- Dance PR6 / semantic validation prep
- Command PRS1 / command descriptor schema anchoring
- Command PRS2 / descriptor-afforded command discovery
- TS descriptor client design
Parallel Once TS Realignment Starts¶
- DAHN PR3
- DAHN PR6
- query-builder/client API design
- DAHN affordance hierarchy work using
AffordanceNode[]
Recommended Execution Order¶
Recommended Named Waves¶
- Structural Groundwork
- Schema-Backed Descriptor Surface
- Descriptor-Owned Value Semantics
- Validation Integration
- Query Runtime Shared Type, Contract, and Structural Semantics
- Dance Holonic Contract and Execution Alignment
- Command IPC Contract, Descriptor Anchoring, and Routing
- TypeScript Interface Realignment
- Real DAHN Integration
- Advanced Query Evolution
Short Practical Reading¶
If we want the fewest reversals and the least duplicated logic, the safest sequence is:
Descriptors 1-3 -> Validation PR1-PR4 + Query PRO/PRS early tracks -> Dance PR2-PR6 + Command PRO/PRS early tracks -> TS realignment -> DAHN -> Dance PR7-PR8 + Query PRS4-PRS5
That sequence keeps semantic ownership centralized and lets each later wave consume real descriptor behavior rather than speculative placeholders.