feat(directives): scavenge from intent_dsl_survey + handoffs/: 5 directives

This commit is contained in:
ed
2026-07-04 00:15:27 -04:00
parent ebca201d39
commit 883f7ec5c1
10 changed files with 160 additions and 0 deletions
@@ -0,0 +1,9 @@
# pipeline_immediate_mode_no_object
## v1
**Why this iteration:** Lifted from `conductor/tracks/intent_dsl_survey_20260612/spec.md:189` (Section 5 Claim 2 — "the DSL's pipeline is immediate-mode in pipeline composition. Each `->`-delimited stage is a method invocation, not a Pipeline object."). The O'Donnell IMGUI parallel — "widgets are method invocations, not objects" — is the load-bearing argument; the project inherits the immediate-mode philosophy at the pipeline level.
**Source:** `conductor/tracks/intent_dsl_survey_20260612/spec.md:189`
---
**Lifted:** 2026-07-02 (scavenge pass — directive library expansion from intent_dsl_survey track)
@@ -0,0 +1,24 @@
# DSL pipelines are immediate-mode — there is no Pipeline object to query, name, or pass across executions
## The pipeline contract
A `->`-delimited chain of DSL verbs exists ONLY while the program is executing. Once execution ends, the pipeline's state is gone. There is no Pipeline object you can:
- Query for the current value
- Name and pass to another verb
- Re-use across executions
- Hold in a variable
The only way to "name" a chain is to wrap it in a function: `func my_pipeline(x: T) -> U { ... }`.
Per `conductor/tracks/intent_dsl_survey_20260612/spec.md:189`: "the DSL's pipeline is *immediate-mode in pipeline composition*. Each `->`-delimited stage is a method invocation, not a Pipeline object. The pipeline exists *only* while the DSL program is being executed; once execution ends, the pipeline's state is gone. ... the `->` chain has no 'pipeline object' you can query, name, or pass around."
## Why
A retained Pipeline object would require the parser/VM to track state across executions, which (a) doubles the cognitive load on the parser, (b) makes pipelines harder to reason about, and (c) defeats the immediate-mode execution model the DSL inherits from O'Donnell's IMGUI / "widgets are method invocations, not objects."
## What this means in practice
- The DSL parser does NOT construct an intermediate AST object that is retained after parse; it emits operations directly (per Onat's xchg model).
- A pipeline value is consumed by the next verb in the chain or the function exits; there is no "the pipeline" as a first-class value.
- Re-using a chain requires wrapping it in a function, not naming the chain itself.