You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6cc6f79
Browse filesBrowse the repository at this point in the historyBrowse files
docs(adr-154 §14): two new risk-register rows from this iteration's findings
Captures two decisions/lessons so future commits don't re-open them
as open questions.
Row 1 — Cross-path envelope decision.
The bucket-sort contract (commit 23) delivered canonical in-bucket
dispatch order but NOT cross-path bit-exact spike traces. Root cause
(discovery #15): active-set pruning is a legitimate correctness
deviation from the dense baseline; both paths are correct-by-ADR.
Decision recorded: shipped contract is within-path bit-exact plus
cross-path ≤ 10 % spike-count envelope (measured 0.5 %). Not a
threshold to weaken or tighten — the envelope is the level at which
the claim is publishable. Prevents future commits from treating the
divergence as a 'bug' and burning time trying to close it.
Row 2 — Cheap-alternative parentheticals rarely survive.
Each time a commit names a 'cheaper alternative for a future
iteration' (Opt D, lazy-skip, bucket-radix), measurement on the
subsequent iteration tends to under-deliver: Opt D was 1.00×
top-line despite the 1.5× kernel-only projection; lazy-skip was
null at saturation; GPU SDPA remains unmeasured. Mitigation: future
parentheticals must name *the workload they would win on*, not
just a projected percent. Otherwise they're speculative and
labelled as such.
Updated the existing 'pre-measurement diagnosis mis-directs the next
optimization' row with the current 7-of-15 disproven data point and
the new observation that the 2-of-15 successes (adaptive cadence,
Leiden refinement) both shared the same pattern — structure the
problem on an orthogonal axis. That rule is now the default mental
model for choosing the next lever, recorded here.
Also tightened the risk-register closing paragraph: the register is
what running-into-things has surfaced across the branch, not what
the first N commits surfaced, now that the list is past the N=14
framing.
No code changes. All tests unchanged.
Co-Authored-By: claude-flow <ruv@ruv.net>
EOF
)
Copy file name to clipboardExpand all lines: docs/adr/ADR-154-connectome-embodied-brain-example.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -440,9 +440,11 @@ This section enumerates the risks this ADR is aware of and how the example stays
440
440
| Scope creep (adding production-stack features to the example) |`src/*`| The 4000-LOC total budget (§3.2) and 500-line-per-file budget are enforced by the commit check in `BENCHMARK.md` §2 reproducibility. Tier 2 features go into the production crates, not here. |
441
441
| GPU numbers leaking into the correctness narrative |`BENCHMARK.md`, commit messages | §12.4 binds: GPU is infrastructure, not a claim. AC-1 is CPU-only. |
442
442
| Unreviewed novelty claims (the four in §9 inflate over time) | README, ADR-154 §9 | Each novelty claim is dated to a commit and backed by a file path. Any new claim requires a new commit, a new file path, and a review pass. |
443
-
| Pre-measurement diagnosis mis-directs the next optimization |`BENCHMARK.md`, ADR-154 §16 | Pre-measurement guesses about "which of the three hot paths dominates" can be wrong (commit 2 named three candidates; commit 6 found the *actual* dominant cost was a fourth we hadn't named — the Fiedler detector). Mitigation: BENCHMARK.md now requires the post-measurement diagnosis to be landed in the *same* commit as the optimization, not in a later commit. If the measurement says the optimization is invisible on the top-line, the next commit direction comes from the *measured* profile, not the pre-measurement guess. |
443
+
| Pre-measurement diagnosis mis-directs the next optimization |`BENCHMARK.md`, ADR-154 §16 | Pre-measurement guesses about "which of the three hot paths dominates" can be wrong (commit 2 named three candidates; commit 6 found the *actual* dominant cost was a fourth we hadn't named — the Fiedler detector). **Now a 7-of-15 disproven data point across §17.** Mitigation: BENCHMARK.md requires the post-measurement diagnosis to be landed in the *same* commit as the optimization, not in a later commit. If the measurement says the optimization is invisible on the top-line, the next commit direction comes from the *measured* profile, not the pre-measurement guess. **The 2-of-15 successes (items 6 adaptive cadence, 14 Leiden refinement) both shared a pattern — structure the problem on an orthogonal axis rather than pushing harder on the axis an earlier item ran into.** That rule is now the default mental model for choosing the next lever. |
444
+
| Cross-path envelope decision (accepting 0.5 % spike-count divergence vs pursuing bit-exact) |`tests/cross_path_determinism.rs`, ADR-154 §15, §17 item 15 | The bucket-sort contract (commit 23) delivered canonical in-bucket *dispatch order* but not cross-path bit-exact *spike traces*. Root cause: optimized path's active-set pruning is a legitimate correctness deviation from the baseline's dense update. Both behaviours are correct-by-ADR; they produce genuinely different spike populations. **Decision recorded here so future commits don't re-open the question as a "bug":** the shipped contract is within-path bit-exact + cross-path ≤ 10 % spike-count envelope (measured 0.5 %). Bit-exact cross-path would require either running both paths with active-set off (bench-only) or teaching the baseline the same active-set (defeats the purpose). **Not a threshold to weaken or tighten; the envelope is the level at which the claim is publishable.**|
445
+
| Cheap-alternative predictions rarely survive the saturation workload |`BENCHMARK.md` §4.5 / §4.7 / §4.11 | Each time a commit names a "cheaper alternative for a future iteration" as a parenthetical (Opt D, lazy-skip, bucket-radix), measurement on the subsequent iteration tends to deliver less than the parenthetical predicted. Examples: Opt D delivered 1.5× kernel-only but 1.00× top-line; lazy-skip was null at saturation; CPU→GPU SDPA stayed unmeasured. Mitigation: future "cheaper alternative" parentheticals should name *the workload they would win on*, not just the percent gain. If the parenthetical doesn't name a measured-or-credible workload, it's a speculative parenthetical and labelled as such. |
444
446
445
-
This register is not comprehensive. It is the set of risks the first fourteen commits on this ADR have surfaced by running into them (positioning creep, threshold drift, null-distribution sloppiness, pre-measurement mis-diagnosis). Future commits are expected to add rows; they are not expected to remove rows.
447
+
This register is not comprehensive. It is the set of risks the branch has surfaced by running into them (positioning creep, threshold drift, null-distribution sloppiness, pre-measurement mis-diagnosis, envelope-vs-bit-exact framing, speculative-parenthetical predictions). Future commits are expected to add rows; they are not expected to remove rows.
446
448
447
449
## 17. Nine measurement-driven discoveries (roll-up)
0 commit comments