diff --git a/WISHLIST.md b/WISHLIST.md index 368e9ac87e1..7f8f3fb3453 100644 --- a/WISHLIST.md +++ b/WISHLIST.md @@ -167,6 +167,34 @@ R4.A (omni-ingestion), R4.B (queries-as-data via Introspect lens), R4.C (low-lev **Composes with R4.A/B/C**: R4.D is the meta-wish that makes the other three meaningful — without it, "many projections from one substrate" is descriptive, not load-bearing. +### R4.E — Full-stack-from-one-`.dag` with React framework substrate + +**Promise** (operator directive 2026-05-13 + Director ratification msg_7d51b699 on R4 path-b canvas PR #2847 squash `1f88306a5d`): one `.dag` source program emits a complete full-stack application — Rust backend + TS client + React UI + OpenAPI wire contract + SQL DDL schema + Markdown docs — all sharing one canonical `Dag` per gate #28 invariant extension. + +**Phases** (per ratified canvas `docs/design-r4-full-stack-omni-emission-canvas.md` §10): +- **R4-Phase-1**: TS LanguageSpec carrier landing (Q1-b ratified — `TypingDiscipline = Nominal | Structural` extension to `InhabitantDecl`) +- **R4-Phase-1.5**: HookKind Practice-4-promotion canvas (pre-Phase-2 dispatch requirement per Director directive) +- **R4-Phase-2**: React framework substrate carriers (Q2-a ratified — Shape-A; components ARE TS source code) + JSX emission +- **R4-Phase-3**: Cross-target consistency invariant extension (Q4 ratified — EXTEND gate #28, NOT new parallel gate) +- **R4-Phase-4**: Lens framework composition (Q5-a ratified — Component as Behavior::Bind) +- **R4-Phase-5**: Visceral demo extension — extend R3 path (a) TODO demo with React UI + TS client deriving from same `.dag` + +**Authority chain**: +- Operator directive 2026-05-13 verbatim: *"i wanted to generate a full stack program from one .dag program ... can we integrate with a common frontend framework like react, model the framework/language layers properly, and emit an entire full stack application - including db stuff like sql?"* +- Operator ratification verbatim: *"lets do a + b - i think this is super help[ful] and doesn't seem too difficult - i have more than enough staffing avail"* +- Director ratification msg_7d51b699: Q1-b / Q2-a / Q3-a / Q4-extend / Q5-a / Practice-4 🟡 YELLOW + 2 anti-patterns added +- Director scope-extension msg_2c1bfb0e (gate #105 carrier negative-degree admission scope): Q6/Q7/anti-pattern #9 + 🟢 GREEN Practice-4 for signed-Rational extension (separate but adjacent ratification) + +**Composes with**: +- R4.A omni-ingestion: bidirectional TS extdeps + React component-source ingest +- R4.B Introspect-lens: TypeScript-aware queries (find component / hook usage / prop typing) via lens framework +- R4.C low-level emission: R4.E is Shape-A high-level; orthogonal axis +- R4.D faithfulness: full-stack faithfulness witness — Rust backend + TS client + React UI all proven coherent against one Dag + +**Connection to R3**: gates #25 / #26 / #27 / #28 / #29 are R4.E foundation; R3 path (a) demo (`adhoc-e9bb6ef1-b4d` / PR #2848) cashes 4-layer-from-one-.dag for the Rust + OpenAPI + Markdown + SQL DDL projections; R4.E extends to TS + React. + +**Distinct from R4.E-adjacent multi-program-coordination canvas** (deferred per Director ratification msg_3bf3df9c): R4.E covers single-program-multi-target; multi-program-network-coordinated emission gets its own R4 canvas authored post-path-b-implementation-firstphases. Interrogation forward-pointer at `docs/r3-close-interrogation.md` §3.8. + --- ## R5+ — speculative diff --git a/docs/r3-program-plan.md b/docs/r3-program-plan.md index 2e869891b09..b7785de7560 100644 --- a/docs/r3-program-plan.md +++ b/docs/r3-program-plan.md @@ -253,7 +253,7 @@ This principle is NOT a separate lane; it's a per-lane gate-shape requirement ap | 25 | `omni_openapi_backend_emission_demo` | demonstration | T-Omni-Shape-B | **CONSUMER_LANDED + PASSING** (PR #2251 — Shape B OpenAPI 3.1 projection demo via `src/v3/compiler/src/omni_shape_b_openapi.rs` + `tests/integration/m1_5_omni_shape_b_openapi_test.rs`; **PR #2587** squash `77678c04` — runnable Rust backend emission demo extension landed 2026-05-10; orphan PR #2410 closed as superseded) | one workflow → OpenAPI + backend | | 26 | `omni_documentation_drift_lock_demo` | demonstration | T-Omni-Shape-B | **CONSUMER_LANDED + PASSING** (PR #2596 — `omni_documentation_drift_lock_demo` integration test landed 2026-05-10) | Markdown drift-locks against impl | | 27 | `omni_sql_ddl_alternative_demo` | demonstration | T-Omni-Shape-B | **CONSUMER_LANDED + PASSING** (Shape B SQL DDL projection demo via `src/v3/compiler/src/omni_shape_b_openapi.rs` + `tests/integration/m1_5_omni_shape_b_openapi_test.rs`) | alternative SQL DDL projection consumes the same workflow DAG as the runnable backend and lists exactly the backend route exposure set | -| 28 | `omni_layers_share_one_node_tree` | structural-fold | T-Omni-Shape-B | **CONSUMER_LANDED + PASSING** | `m1_5_omni_shape_b_openapi_test.rs` `omni_layers_share_one_node_tree` — one `compile_to_dag` per workflow; Shape A `emit_rust` + canonical route extraction + Shape B OpenAPI YAML + Markdown + SQL DDL projections share the same `Dag` | +| 28 | `omni_layers_share_one_node_tree` | structural-fold | T-Omni-Shape-B | **CONSUMER_LANDED + PASSING** | `m1_5_omni_shape_b_openapi_test.rs` `omni_layers_share_one_node_tree` — one `compile_to_dag` per workflow; **NAME is layer-count-agnostic** (invariant is general per Director Q4 ratification msg_7d51b699 on R4 path-b canvas PR #2847 squash `1f88306a5d`). Current PASSING projection set: Shape A `emit_rust` + canonical route extraction + Shape B OpenAPI YAML + Markdown + SQL DDL. **R4 extension scope** per ratified R4 path-b canvas `docs/design-r4-full-stack-omni-emission-canvas.md` (R4-Phase-1..5; NOT shipped at R3-close — authorized for R4 implementation post-R3): TS (Shape-A) + React (Shape-A) projections **in scope**; test surface extends to assert N-target consistency from same Dag (`m1_5_omni_shape_b_openapi_test.rs` may rename to `omni_layers_consistency_test.rs` per Director extension shape). **Anti-pattern** (Director-ratified anti-pattern #6 from canvas §11): introducing parallel `omni_*_share_one_node_tree` gates when invariant is already cashed at #28 — direct INVARIANTS P1 violation; single canonical authority. | | 29 | `anthropic_wire_typed_serde_alignment` | substrate-shape | T-Anthropic-Wire | **PASSING** (PR #2208 G5 Anthropic re-dispatch + PR #2164 variant-aware projection; ratchets `anthropic_request_coproduct_wire_contracts_emit_targeted_serde` at `src/v2/tests/src/pipeline.rs:6482` + `anthropic_messages_request_body_json_matches_messages_wire_tags` at `src/v2/tests/src/pipeline.rs:6918` green at HEAD `9d9f7d786` per cluster-I close-shape per [`docs/audit/r3-cluster-analysis-2026-05-09.md`](audit/r3-cluster-analysis-2026-05-09.md) §2 row I; 200-body residual tracked separately by `structural_coverage_gap_anthropic_messages_200_residual` / coproduct slice 3 brief, NOT in #29 scope) | typed end-to-end | | 30 | `anthropic_unit_enum_role_serialization_correct` | structural-fold | T-Anthropic-Wire | **CONSUMER_LANDED** (PR #2208 G5 Anthropic re-dispatch; refresh per cluster-analysis audit §1) | role enum serializes correctly | | 31 | `bridge_source_span_file_participation_retired` | state-check | T-Bridge-Retirement | **PASSING** (PR #2586 — correction file participation bridge retired 2026-05-10) | typed-identity-surface authority |