Authored design — 2026-09-15. Section 3. This cascade elaborates the existing checklist item. It is not a dispatch, implementation receipt or completion verdict. Work outside WM-01–14 still requires Joe’s explicit greenlight; having a cascade is necessary but not permission.
Section 3/4 index · Exact TODO · Cascade JSON
Prediction error has a source, host and consumer. A plotted difference is not evidence that the loop used it, and a host name does not change which node owns the computation.
R3a prediction error. PARTIAL: current binding and source-to-consumer edges in the qualifying record; preserve hosting distinctions. Built evidence: Projection source and measured consumer evidence
This is the checklist’s dated evidence account, not a new deployment census. Existing source/test evidence keeps its bounded credit. The acceptance obligation above governs this design.
Pattern: aif/term-to-channel-traceability
Identify predicted and observed quantities, units, domains and times. Produce an aligned pair from the same model/occurrence; comparing a terminal prediction with an intermediate measurement requires an explicit mapping.
Pattern: aif/term-to-channel-traceability
Apply the admitted residual or discrepancy definition and record its numeric semantics. Name source namespace, runtime host and catalogue node separately. Produce a residual receipt without silently replacing a categorical discrepancy by scalar subtraction.
Pattern: wm-connected-learning/observation-to-next-choice
Retain the update/precision consumer and the actual residual value it reads. Produce source-to-host-to-consumer edges, including source and effective configuration identity. A second recomputation must demonstrate equivalence rather than rely on the same field name.
Pattern: wm-connected-learning/observation-to-next-choice
Join those edges into the same-run record and retain the independent observation. Distinguish a valid zero residual from absent evidence and show how an applicable nonzero residual reaches its consumer.
Each node’s stated artifact is the input or constraint for the related node below. These are design dependencies, not a claim that a runtime scheduler automatically fires patterns. Existing WM producers are reused through the linked contracts; no second implementation is implied.
| From | To | Relation | Reason |
|---|---|---|---|
| R3a-1 | R3a-2 | requires-result | Comparable inputs make the error meaningful. |
| R3a-2 | R3a-3 | requires-result | The computed residual and hosting identity must reach the named consumer. |
| R3a-3 | R3a-4 | requires-result | Consumer evidence belongs to the occurrence being qualified. |
| R3a-4 | R3a-1 | revision-feedback | A failed distinguishing control or consumer mismatch reopens the original scope/meaning; retain the failed claim rather than weakening it. Relevant controls: Reject timestamp mismatch, absent observation converted to zero, wrong units and an unused residual. Include both zero and nonzero valid pairs. |
Retain the actual subject, source/model revision, task/occurrence, cutoff, producer and consumer for each interface. A missing field is a named gap; a default that changes the meaning is not an adapter. Reuse existing records where they satisfy these obligations. If a new component is indispensable, identify its exact TODO/cascade clause before seeking a separately bounded implementation instruction.
A dashboard shows zero because a missing observation was replaced by the prediction. A real zero from matching independent evidence is different. The error record and consumer must distinguish them even if the displayed number agrees.
This is a distinguishing design example, not a claimed production experiment.
Distinguishing controls: Reject timestamp mismatch, absent observation converted to zero, wrong units and an unused residual. Include both zero and nonzero valid pairs.
Closure rule: every part of the quoted obligation must be supported by the indicated artifacts and actual connections. A useful rejection proves the rejecting boundary only. One accepted subclause does not tick the whole item. A bellback must supply the exact reviewed subject, executed checks, independent verdict and remaining clauses.
Hosting reconciliation follows the catalogue and current source; do not relocate a node merely to match a drawing.
Dependency links describe required interfaces; they do not authorize work on those items. No implementation outside the existing TODO list is approved. Publication does not select a numerical law, settle an unresolved operator ruling or authorize a run.
All seeded patterns are applied above. The JSON pins their source bytes and the governing checklist/rulings. Historical formulas, thresholds and examples in a pattern remain scoped examples unless the governing contract adopts them. This draft adds no pattern-library entries and claims no independent semantic ratification.
Reference text; historical examples and prescriptions retain the scope stated above.
@flexiarg aif/term-to-channel-traceability
@title Term-to-Channel Traceability
@sigils [🏃/功]
@audience fulab agents, aif implementers
@tone technical
@style pattern
@see-also aif/evidence-precision-registry
@how aif/expected-free-energy-scorecard
@why no matching problem dossier node (@holds-at absent; not among the twenty dossier nodes R1-R17, R20, TRACE). Negative claim per the committed check futon2 holes labs library-loop runs l3_no_dossier_check.py, receipt runs L3-no-dossier-check.edn (enumerates every aif pattern's @holds-at against the dossier node set extracted from PROBLEMS-*.md headings). Rationale not invented (L3 rationale-backfill pilot, zai-1, 2026-09-05)
@how own mechanism: Require each score term to declare the observation channels and precision settings it consumed. (source: this pattern's ! conclusion line; L3 rationale-backfill pilot, zai-1, 2026-09-05)
! conclusion: Require each score term to declare the observation channels and precision settings it consumed.
+ context: A pattern-guided agent evaluates candidates with a multi-term expected free energy score built from heterogeneous evidence.
+ IF:
You want tuning decisions and failures to be diagnosable at the level of which evidence actually drove each score term.
+ HOWEVER:
Without explicit traceability, terms like risk or ambiguity silently absorb whatever signals are available, making post-hoc explanations indistinguishable from rationalization.
+ THEN:
Require every G term contribution to declare the observation keys it consumed, the precision channels applied, and the intermediate values used to compute that term, and persist this mapping alongside the score.
+ BECAUSE:
Explicit term-to-channel linkage prevents semantic drift in scoring terms and makes policy behavior mechanically inspectable.
+ NEXT-STEPS:
- DONE: Validate PSR :aif/g-terms provenance keys (term-id, observation-keys, precision-channels, intermediate-values, final-contribution) in check-psr. Evidence: src/futon3/hx/logic.clj
- DONE: Add (dominant-channels psr) analysis that flags when a single channel accounts for >60% of a term's value. Evidence: src/futon3/hx/logic.clj
- DONE: Add term provenance + dominant channel summaries to fulab pattern reports. Evidence: src/futon3/fulab/pattern_competence.clj, dev/lab-pattern-report.clj
- DONE: Emit :aif summaries in MUSN turn start/select/use responses and log them in musn_stream. Evidence: src/futon3/musn/service.clj, dev/musn_stream.clj, src/futon3/musn/schema.clj
- BLOCKED: Define :aif/term-provenance schema in tatami_schema.clj with keys [:term-id :observation-keys :precision-channels :intermediate-values :final-contribution]. blocked-by[tatami-schema]
- BLOCKED: Include term provenance in fulab-pattern-check CLI output for top-3 candidates. blocked-by[term-provenance-schema, fulab-pattern-check]