Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
2fccc2a
docs(briefs): Substrate bridge SourceSpan.file participation retireme…
briansrls May 7, 2026
8c5f054
docs(briefs): S5 Variant-aware projection carrier canvas (#1947)
briansrls May 7, 2026
d826950
docs(briefs): SourceSpan.file brief — same-slice prerequisite + secti…
briansrls May 7, 2026
f26a582
docs(briefs): SourceSpan.file brief — umbrella stays Open per P2 ledg…
briansrls May 7, 2026
beabfa4
docs(briefs): S5 CoproductProjection worker brief — γ ratified (#1947)
briansrls May 7, 2026
925a412
docs(briefs): SourceSpan.file brief — resolve Acceptance #4 / Cross-M…
briansrls May 7, 2026
5b3a9f8
WIP: R3 Substrate Mgr — lane through R3 close
briansrls May 7, 2026
2900228
docs(briefs): S5 brief — absorb Director pre-ratifications for 3 STOP…
briansrls May 7, 2026
313d1a6
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
0e8724b
docs(r3): Q-Reification Gate A receipt — Option A (Dag-as-carrier)
briansrls May 7, 2026
2601d7d
docs(briefs): S5 — delete superseded canvas + name dissolution trigge…
briansrls May 7, 2026
1b9f743
docs(r3): Q-Reification row — fix invariant cite (C-1 → P2)
briansrls May 7, 2026
55470a1
docs(briefs): S5 — name dissolution trigger for DeclarationRef alias …
briansrls May 7, 2026
8a1f5c7
docs: complete Q-Reification stale-cite sweep — e6-g1a brief :169 + Q…
briansrls May 7, 2026
5fc9221
docs(briefs): S5 — fix InputFieldRef mis-read; reframe observations #…
briansrls May 7, 2026
598776f
docs(briefs): S5 — consolidate split per-variant maps into single key…
briansrls May 7, 2026
4656801
docs(briefs): S5 — fix stale split-map vocab in path (a) + scope STOP…
briansrls May 7, 2026
0ac8ca7
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
85ceb85
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
9f0b9de
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
aac5b3b
docs(briefs): descent_execution_proof canvas — 4-residual coproduct-d…
briansrls May 7, 2026
622361c
docs(briefs): SourceSpan brief Row #6 — derive from bootstrap_authori…
briansrls May 7, 2026
e2741c4
docs(briefs): descent_execution_proof worker brief — γ ratified (2-va…
briansrls May 7, 2026
0a0491c
WIP: R3 Substrate Mgr — lane through R3 close
briansrls May 7, 2026
0cfea88
docs(briefs): descent_execution_proof — narrow EvidenceUnknown payloa…
briansrls May 7, 2026
ce12428
docs(briefs): descent_execution_proof — section-anchor cite for §10.3…
briansrls May 7, 2026
1a0756a
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
93c6f76
docs(briefs): T-CostLens-Composition canvas — Lens<SymbolicCost> comp…
briansrls May 7, 2026
054dcde
docs(briefs): T-Workflow-As-Data canvas — audit-receipt-honoring scop…
briansrls May 7, 2026
102071e
docs(briefs): T-CostLens-Composition worker brief — γ ratified; delet…
briansrls May 7, 2026
35c4585
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
34faf0c
Delete superseded T-CostLens canvas (worker brief is single live auth…
briansrls May 7, 2026
b7d808e
docs(briefs): T-WAD Slice 1 worker brief — β ratified; delete canvas
briansrls May 7, 2026
ae7972b
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
e611c0b
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
dac25f6
docs(briefs): T-LAS Demo (#1952) complexity-contract compile-error wo…
briansrls May 7, 2026
214f286
docs(briefs): T-LAS Demos #1953 + #1954 — cost-basis sibling worker b…
briansrls May 7, 2026
1f33e39
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
89bbd89
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
000d474
docs(briefs): T-CostLens — update Sub-issue from #1957 to #2141 (post…
briansrls May 7, 2026
1aecf40
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
4d87a03
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
f33f132
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
d0da4ef
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
6d13c60
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
7c5105a
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
d38716e
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
dc1d589
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
9d01f84
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
ef9126d
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
3cf53a4
docs(proposals): Q-Lens-Target-Context canvas (β-extended substrate-s…
briansrls May 7, 2026
89b0c70
docs(proposals): Q-Cost-Composition-Layering canvas (ε substrate-shap…
briansrls May 7, 2026
00551a8
WIP: R3 Substrate Mgr — lane through R3 close
briansrls May 7, 2026
33afd89
WIP: R3 Substrate Mgr — lane through R3 close
briansrls May 7, 2026
4209eb7
docs: ε ratified canonical for cost; β-extended deferred to N=2 — gat…
briansrls May 7, 2026
db88b10
docs(proposals): canvas inventory grounded in live src/v3/lenses/ reg…
briansrls May 7, 2026
65f86a6
docs(proposals): fix Director-ratification-ask typo + #37 gate-id cla…
briansrls May 7, 2026
c20a1a2
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
686027d
docs(proposals): Q-Lens-Target-Context — absorb PM canvas-review conc…
briansrls May 7, 2026
be9a9c9
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
2c9c343
docs(proposals): canvases — collapse stale ratification-ask sections …
briansrls May 7, 2026
7d708af
docs(proposals): Q-Lens-Target-Context — separate live N=1 from reope…
briansrls May 7, 2026
786dcf5
WIP: R3 Substrate Mgr — lane through R3 close
briansrls May 7, 2026
4f9918c
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
ae5f020
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 7, 2026
7d99eb5
Merge remote-tracking branch 'origin/main' into session/warm-wolf-698
briansrls May 8, 2026
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
116 changes: 116 additions & 0 deletions docs/proposals/q-cost-composition-layering-canvas.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Canvas — Q-Cost-Composition-Layering (ε substrate-shape question)

**Authority**: Director ratification of α-revised T-CostLens supersession at gunbc#828 #issuecomment-4400920572 — ε path (Rust-side cost-composition wiring; preserves `cost.dag` PROXY without introducing first-precedent .dag-side fold-over-realizations) elevated from slice-tier to canvas-tier.

**Cross-cutting parent**: PR #2171 α-revised pure-docs (cost.dag deferred-discussion + 5-option matrix + 4 findings) merged 2026-05-07.

**Sibling canvas**: `q-lens-target-context-canvas.md` (β-extended path; substrate-shape question on whether `.dag`-side lenses receive target-context).

**Status**: **canvas — Director-RATIFIED 2026-05-07 (ε standalone for cost; canonical-not-transitional)**; PROPOSAL maturation pending. Ratification at gunb-ai/gunbc#2181 #issuecomment-4401584012 — ε ratified as canonical-for-cost; β-extended DEFERRED to N=2 trigger event (when second lens surfaces target-context need); "both sequenced" REJECTED as bridge-with-named-dissolution anti-pattern.

## The factoring claim

**ε path proposes**: cost composition factors as **(target-agnostic-shape) × (target-specific-values)**, where:
- **Target-agnostic-shape** = the abstract `SymbolicCost` algebra (7-variant per `src/v3/std/algebra.dag:181-188` at HEAD: `ConstantCost(Int)` | `LinearCost(SizeVariable)` | `PolynomialCost { var, degree }` | `ProductCost(NonSingletonList<SymbolicCost>)` | `SumCost(NonSingletonList<SymbolicCost>)` | `LogCost(SizeVariable)` | `UnknownCost(String)`) + `Semiring<SymbolicCost>` composition (sequential via `SumCost` / `ProductCost`; branch / iterate via algebra ops)
- **Target-specific-values** = per-primitive realization-cost facts (`TypeRealization.cost: Int`, `CallableRealization.cost: Int`, etc.) loaded Rust-side at emit time

If this factoring is **structurally honest**, cost composition can happen Rust-side: the Rust consumer reads the abstract `SymbolicCost` shape from the `.dag`-side lens output, then composes target-specific values via Rust-side data-flow (HashMap-build over realization rows, lookup, multiply by abstract structural coefficients).

If this factoring is **NOT honest**, cost composition NEEDS .dag-side target-context — ε is parallel-representation debt (Rust-side wiring duplicates / bypasses the canonical Lens-framework authority).

## Test against `feedback_abstraction_layering` (Director-named anchor)

Per Director correction at gunbc#828 c#4400921658:

> `feedback_abstraction_layering` — objective concepts pure; LanguageSpec language-agnostic. Cite this as the framework anchor for whether emit-side cost-keyed composition respects abstraction layering.

**Abstraction-layering test**:

1. **Pure objective-concepts layer**: `SymbolicCost` algebra at `src/v3/std/algebra.dag:12+` carries the abstract shape. Per `feedback_abstraction_layering`, objective concepts must be pure — no language/target awareness leaks.
2. **LanguageSpec layer**: language-agnostic; describes structural per-target realization facts without committing to a specific language's idioms.
3. **Emit-side composition layer**: Rust-side `emit/{rust,python}_target.rs` reads LanguageSpec data + abstract `SymbolicCost` shape; composes per-target concrete cost via per-primitive HashMap-lookup.

**Layering compliance test**:
- ✓ Layer 1 (objective): `SymbolicCost` algebra is target-agnostic. Holds at HEAD.
- ✓ Layer 2 (LanguageSpec): per-primitive realization-cost facts are language-agnostic substrate-data. Holds at HEAD (`src/v3/spec/{rust,python,go}.dag` rows are spec-data, not Rust-specific dispatch).
- ⚠️ Layer 3 (emit-side composition): IF cost composition factors honestly, this layer is the natural home for (target-agnostic × target-specific) → concrete cost. IF factoring fails, this layer carries load-bearing logic that should have been substrate.

## Honest-factoring evidence

### Pro factoring (ε is structurally honest)

**Argument**: `SymbolicCost` is already target-agnostic. Per fierce-ram-21's grep at gunbc#2153 c#4399898495 (Slice 1 finding):

> `lenses/cost.dag` lens output is already `Lookup<SymbolicCost>`-typed; `Lookup<SymbolicCost>` MissingCost/HitCost machinery all already substrate. #38/#39 substrate-already-aligned.

Cost composition via `Semiring::sum`/`::product` is structural-fact at HEAD. The abstract algebra IS the load-bearing substrate. Per-primitive realization values are downstream data-flow that doesn't need .dag-side lens-fold authority — Rust consumer reads the abstract shape + multiplies per-primitive concrete values.

**Empirical test**: at HEAD, `lens_cost_symbolic_generated.rs` (or analogous Rust consumer) IS the natural home for emit-time cost composition. No substrate-shape change needed; ε is "make Rust-side composition explicit + document as the canonical path".

### Con factoring (ε is parallel-representation debt)

**Argument**: cost composition that reads target-realization-rows via Rust-side HashMap-build IS load-bearing logic. If Rust-side does the composition, the lens-framework abstraction stops at "abstract `SymbolicCost` shape from structural fold"; concrete cost values flow OUTSIDE the Lens<C> framework via Rust-side data-flow.

This means: **the lens-framework authority for cost composition is incomplete at the substrate layer** — Rust-side carries load-bearing semantics that should have been substrate. Per `feedback_parallel_representation_debt`, parallel-author-Rust-side-composition violates canonical-authority-consumption (Lens<C> exists; the cost-specific composition should consume it through, not bypass it).

**Empirical test**: future lenses needing target-context (e.g., emission_provenance per Q-Lens-Target-Context canvas) face the same dilemma — does each lens-with-target-context get its own Rust-side wiring? That's N parallel Rust-side compositions, each violating the lens-framework abstraction.

## Mgr-tier provisional reading

The factoring claim is **probably honest for cost specifically** but **probably NOT generalizable**:

- **Cost-specific honest**: `SymbolicCost` algebra is genuinely target-agnostic; per-primitive realization-cost is genuinely target-specific data; Rust-side composition is the natural home per `feedback_abstraction_layering`.
- **Not generalizable**: emission_provenance (and possibly other future lenses) may have target-keyed structural-needs that DON'T factor as cleanly. ε for cost works; ε for emission_provenance may not.

**Mgr provisional reading**: ε is the right framing **IF** cost is the only target-context-needing lens at HEAD AND the factoring honestly holds for cost specifically. Per Q-Lens-Target-Context canvas's cross-cutting analysis, cost.dag IS load-bearing target-context-needing; emission_provenance.dag is only secondary. If only cost has the need + the factoring is structurally honest for cost, ε is the more constrained path.

If multiple lenses surface target-context needs over time, ε's per-lens Rust-side wiring becomes parallel-representation debt → β-extended (Q-Lens-Target-Context option (i)) becomes the right path.

## Director ratification (RECEIVED 2026-05-07)

Director ratified at gunb-ai/gunbc#2181 #issuecomment-4401584012:

1. **Factoring test**: ratified honest for cost specifically per `feedback_abstraction_layering` (Layer 1 objective concepts pure; Layer 2 LanguageSpec language-agnostic; Layer 3 emit-side composition reads abstract shape × concrete values).
2. **Generalization scope**: per-lens Rust-side wiring is acceptable bounded to N=1 at HEAD; reopens at N=2 trigger event (sibling Q-Lens-Target-Context canvas DEFERRED until then).
3. **Path ratified**:
- **(ε) RATIFIED** as canonical-not-transitional for cost composition. Cost-specific Rust-side composition; preserves `cost.dag` PROXY; future lenses re-evaluate independently per N=2 trigger.
- **(β-extended option (i)) DEFERRED** to N=2 trigger event (sibling canvas).
- **(both, sequenced) REJECTED** as bridge-with-named-dissolution anti-pattern per `feedback_same_slice_dissolution_discipline`.

Closed-system disposition: if N=2 condition never fires, β-extended never fires — structurally correct under closed-system design.

## On ratification — sequencing

**If ε ratified**:
1. **Q-Cost-Composition-Layering PROPOSAL doc** matures (this canvas).
2. **T-CostLens follow-on slice** Rust-side wiring: `lens_cost_symbolic_generated.rs` (or analog) authors per-primitive realization-cost composition; `cost.dag` lens output stays abstract `SymbolicCost`-typed; PROXY status either retained or refined to "BEHAVIORALLY COMPLETE for abstract-shape; concrete composition Rust-side per ε ratification".
3. **§10.3 row refresh** + capability-register row updated per ε disposition.
4. **Cementing receipts**: gates #37 + #40 + #70 advance via Rust-side composition demonstrating end-to-end cost reading. #70 demonstration fixture lands per ε framing.
5. **Future lenses with target-context need**: re-ratify per-lens (re-open canvas if N>1).

**(Historical alternatives — REJECTED at ratification):** β-extended (option (i)) ratified-instead path and "both, sequenced" path both rejected per Director ratification (see Director ratification section above). Sequencing under those alternatives recorded only in the canvas-historical record at this point; not live.

## Framework discipline anchors

- **`feedback_abstraction_layering`** (Director-named for this canvas): objective concepts pure; LanguageSpec language-agnostic. Test: does ε's emit-side composition respect the layer separation, or does it leak target-specific logic into objective-concepts-layer? Mgr provisional reading: ε respects the layering IF the factoring is honest for cost.
- **`feedback_parallel_representation_debt`**: canonical-authority-consumption rule. Test: does ε's Rust-side wiring duplicate or bypass Lens<C> framework? Mgr provisional reading: ε is bounded to one consumer (cost) at HEAD; doesn't yet violate. Re-evaluates if N>1.
- **`feedback_same_slice_dissolution_discipline`**: bridge-with-named-dissolution anti-pattern. Test: does ε ship a bridge with a named-future-dissolution to β-extended? Mgr provisional reading: NO if Director ratifies ε as canonical-for-cost (not as "transitional until β-extended"). YES if Director ratifies "both sequenced" — that becomes a named-future-dissolution.

## Sibling canvas

**Q-Lens-Target-Context** addresses the broader cross-cutting question: should `.dag`-side lenses receive target-context generally? This canvas (Q-Cost-Composition-Layering) addresses the cost-specific factoring claim. The two canvases together give Director ratification surface across both substrate-shape decisions.

**Deeper cross-cutting axis**: target-context belongs `.dag`-side (β-extended) or emit-side (ε)? The two canvases articulate the choices; Director ratifies the load-bearing shape.

## Worker pin (post-ratification)

If ε ratified: T-CostLens follow-on slice — fierce-ram-21 (continuity from α-revised); Rust-side wiring is implementation-tier, not substrate-fact-introduction.

If β-extended ratified: Lens<C> refactor + downstream slices — see Q-Lens-Target-Context.

## Cross-Mgr coordination

- **Verification Mgr (#2075)**: ratchet authoring on §1.6 NYI → executable transitions sequences post-canvas-ratification.
- **Grounding Mgr (#1944)**: target-realization data is Grounding lane authority. Under ε, Rust-side consumer reads the data; under β-extended, lens fold reads via `LanguageSpec` parameter. Cross-Mgr coordination on data-availability shape.

— Authored by warm-wolf-698 (Substrate Mgr) 2026-05-07 per Director α-revised supersession at gunbc#828 #issuecomment-4400920572 + framework anchor correction at c#4400921658. Sibling to `q-lens-target-context-canvas.md` (β-extended path).
Loading
Loading