diff --git a/docs/design/INDEX.md b/docs/design/INDEX.md index 190fa24..9257ef0 100644 --- a/docs/design/INDEX.md +++ b/docs/design/INDEX.md @@ -306,9 +306,22 @@ completion, not a contract change. A strategy composite is simply the K=1 case they live at the blueprint boundary and in render (`[out:]` markers, #13) but are dropped at lowering — `ItemLowering::Composite.output` is `Vec<(usize, usize)>`, raw index pairs only, so the compilat is name-free (verified: the -compiled-view render stayed bit-identical across this change). Input-role and -param **names** at the same boundary remain index-only pending #41 (the legibility -sibling that depends on this cycle). +compiled-view render stayed bit-identical across this change). +**Realization (cycle 0019 — name the composite boundary, #41).** The same +named-projection shape now covers the other two boundary edge-kinds, so **all +three** are uniform: `input_roles` is a `Vec` (was a bare +`Vec>`) and a composite carries `params: Vec`, alongside `output: Vec`. Each is an ordered, positionally-indexed +**named projection** of interior handles. Param aliasing is a **pure naming overlay**, +not curation: `param_space()` relabels an aliased slot's surface name **in place** — +slot order, arity, and kinds are unchanged, so the sweep surface is identical and the +`param_space_mirrors_compiled_flat_node_param_order` anchor stays green. Like the +output names, role and param **names** are **non-load-bearing** (C23): they live at +the blueprint boundary and in render (`[in:]` / `[param:]` markers) but +are dropped at lowering — the compilat is wired by raw index and a dangling alias is +rejected at compile (`BadInteriorIndex`), not silently lowered. The full composite +boundary signature (named inputs, params, multi-outputs) is now legible without +changing the compilat. ### C10 — Strategy output is an intent/exposure stream; position management is a decoupled derived layer; brokers are downstream nodes **Guarantee.** A strategy's primary, backtestable output is **not** an equity