Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions WISHLIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BLOCKING: The R4.A compose bullet says R4.E includes bidirectional TS extdeps + React component-source ingest, which conflicts with the locked Q3-a decision that R4.E's authority is .dag→JSX and TS source ingest is not load-bearing (INVARIANTS P2 single authority).

- 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
Expand Down
2 changes: 1 addition & 1 deletion docs/r3-program-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
Expand Down
Loading