Skip to content

tech-debt: Frankenstein blast radius breadcrumbs (Vsa10k / L3 / 157)#245

Merged
AdaWorldAPI merged 5 commits into
mainfrom
claude/read-claude-md-jh51O
Apr 24, 2026
Merged

tech-debt: Frankenstein blast radius breadcrumbs (Vsa10k / L3 / 157)#245
AdaWorldAPI merged 5 commits into
mainfrom
claude/read-claude-md-jh51O

Conversation

@AdaWorldAPI
Copy link
Copy Markdown
Owner

Purpose

Session on claude/read-claude-md-jh51O ran out of context before cleanup. This PR appends a single entry to TECH_DEBT.md so the next session picks up the blast radius as breadcrumbs rather than having to rediscover.

No other files changed in this PR. Scope is deliberately tight — cleanup itself (plan-doc deletions, vsa_udfs.rs canonical delegation, board hygiene) is the next session's P0 work, described inside the new entry.

What the entry captures

Three-cluster root error:

  1. L3 misread — CPU cache hardware budget (~16 MB) interpreted as cognitive Layer 3.
  2. Vsa10k BF16 fabrication — type does not exist; real forms are CrystalFingerprint::Vsa10kI8 (10 KB) / Vsa10kF32 (40 KB legacy).
  3. Inherited Vsa10k = [u64; 157] confusion — bit-packed never uses 10,000; workspace already filed rename sweep in IDEAS.md 2026-04-19 entries; this session ignored it.

Breadcrumbs included:

Why merge this separately (not bundled with cleanup)

  • Context budget on this session is exhausted; cleanup needs a fresh session with enough tokens to delete § 18, rewrite vsa_udfs.rs, append EPIPHANIES, and verify the rename sweep scope.
  • Landing the breadcrumbs first guarantees the next session discovers them even if their first action is reading TECH_DEBT.md.
  • Append-only governance — this follows the same pattern as the 2026-04-19 FP_WORDS = 157 entry it sits next to.

Test plan

  • Diff is exactly .claude/board/TECH_DEBT.md + 73 lines (append).
  • New entry prepended at top of Open Debt per append-only governance.
  • Cross-refs to IDEAS.md 2026-04-19 entries verified present.
  • Commit anchors verified against git log on this branch.

https://claude.ai/code/session_01CgQyZ7rMWkCEohrPzEiwkD


Generated by Claude Code

claude added 4 commits April 23, 2026 20:03
- vsa_udfs.rs: 5 DataFusion UDFs over FixedSizeBinary(2048) fingerprint columns
  (vsa_unbind, vsa_bundle, vsa_hamming_dist, vsa_braid_at, vsa_top_k) + 9 tests
  Operating at L4/L5 fingerprint precision; L3 Vsa10k unbind deferred (§ 18)
- filter_expr.rs: CommitFilter → DataFusion Expr translator (DM-3)
  Predicates: gate_f ≤ max_free_energy, thinking = style_ordinal, gate_commit = bool
  actor_id deferred (UNKNOWN-4). 5 tests.
- lib.rs: pub mod vsa_udfs + filter_expr under [query] feature gate
- STATUS_BOARD: DM-2 Phase A → In progress

https://claude.ai/code/session_01CgQyZ7rMWkCEohrPzEiwkD
…e row

The Internal/VSA dataset row in §17 carried two errors:
1. "L3 cold tier" misread the user's L3-CPU-cache-budget constraint as
   a cognitive-stack layer.
2. "Vsa10k BF16 (20 KB, lossless)" is not a real type — Vsa10k is
   [u64; 157] = ~1.2 KB bit-packed binary (grammar/role_keys.rs:51),
   not a 20 KB bf16 vector. The bf16 variant doesn't exist.

Restore the row to just describe Fingerprint<256> cycle fingerprints
plus NARS truth vectors and braid offsets, which is what the schema
actually carries.

§18 and unified-integration-v1.md's precision note carry the same
cluster of errors and need separate cleanup review.
Append-only entry in TECH_DEBT.md capturing three-cluster root error on
this branch so the next session has breadcrumbs rather than having to
rediscover:

- L3 misread (CPU cache budget → cognitive layer hallucination)
- Vsa10k BF16 fabrication (type does not exist; real forms are
  CrystalFingerprint::Vsa10kI8 / Vsa10kF32)
- Inherited Vsa10k = [u64; 157] confusion (bit-packed never uses 10,000;
  workspace already filed rename sweep in IDEAS.md 2026-04-19 which this
  session ignored)

Entry enumerates:
- Poisoned plan sections with commit anchors
  (468357d / 7a60c42 / 585f8b0 / 489911b / a05979e / 2a4a245)
- vsa_udfs.rs three wrong operations (unbind_op / bundle_op / braid_at_op)
- Salvageable architectural ideas (two callcenter modes, VSA lazy-buffer,
  kitchen analogy, BBB iron rule, Chronos→ONNX, Archetype ECS bridge)
- Prior workspace corrections this session violated
- P0-ordered correction plan for next session

https://claude.ai/code/session_01CgQyZ7rMWkCEohrPzEiwkD
Append-only addition to the 2026-04-24 Frankenstein blast radius entry.
Captures what's in this session's conversation context but NOT in the
plan docs:

- Archetype name collision: external VangelisTech ECS crate vs internal
  thinking-engine::persona archetype. DU-2 only covers the former;
  user flagged the internal sense mid-session; not yet disambiguated
  in plans.
- Chronos: replacement rationale captured in § 17 + DU-1; no
  additional session-attributable content held with confidence.
- Archetype × Chronos interplay: flagged as open design question
  (candidate tick-driven classifier composition noted as conjecture,
  not written into any plan).

Honesty discipline: recording only what attributes to this session's
conversation; not reconstructing brainstorm content I don't hold.

https://claude.ai/code/session_01CgQyZ7rMWkCEohrPzEiwkD
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8da758749e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +247 to +250
let len = match &args[0] {
ColumnarValue::Array(a) => a.len(),
_ => 1,
};
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Derive batch length from both UDF arguments

BundleUdf::invoke_with_args computes len from args[0] only, so calls with a scalar first argument and array second argument (for example vsa_bundle(lit_fp, fingerprint_col)) only process one row and return a 1-row array. The same pattern is repeated in HammingDistUdf and TopKUdf, which means valid scalar/array queries can return truncated or invalidly-sized results instead of broadcasting across the batch.

Useful? React with 👍 / 👎.

Comment on lines +204 to +206
if roles.is_null(i) || fps.is_null(i) {
f32::NAN
} else {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Return NULL for null inputs in vsa_unbind

When either input is null, vsa_unbind emits NaN rather than SQL null. That changes null-propagation semantics and can corrupt downstream analytics (e.g., AVG/SUM or ordering/filtering on the UDF output) because missing values become numeric payloads instead of nullable entries.

Useful? React with 👍 / 👎.

let values = Arc::new(UInt16Array::from(all_values)) as ArrayRef;
let item_field = Arc::new(Field::new("item", DataType::UInt16, true));
let offsets = OffsetBuffer::new(Buffer::from_vec(offsets).into());
let list = ListArray::new(item_field, offsets, values, None);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve NULL rows in vsa_top_k list output

vsa_top_k builds offsets for null inputs but constructs the ListArray with None validity, so rows with null fingerprint/k become empty lists instead of nulls. This loses information and breaks expected null semantics for consumers that need to distinguish “missing input” from “computed empty result.”

Useful? React with 👍 / 👎.

…ates

Two additional breadcrumb subsections appended to the 2026-04-24
Frankenstein blast radius entry:

ONNX > Chronos — documents what § 17's 6-criterion table captures
(Output / Task type / Training / Precision / Infra / Fit) and flags
the gap: the table enumerates where Chronos loses but not where
Chronos would legitimately win. My first-principles candidate-XYZ
list (temporal forecasting: F-value N cycles ahead, style-drift
onset, gate-commit-rate rolling window) is explicitly marked NOT
session-attributable so the next session either fills from their
own recall or rejects Chronos across all cases.

Archetype / persona / thinking-style modeling — lists three
epiphany candidates that sit in § 16 / § 17 plan text but were never
prepended to EPIPHANIES.md (board-hygiene violation from commit
468357d): four-way multiply as architecture search, persona as
atom-space coordinate, MM-CoT stage split as faculty asymmetry.
Framings provided for the next session to prepend as dated entries.

https://claude.ai/code/session_01CgQyZ7rMWkCEohrPzEiwkD
@AdaWorldAPI AdaWorldAPI merged commit ee27755 into main Apr 24, 2026
0 of 5 checks passed
AdaWorldAPI added a commit that referenced this pull request Apr 24, 2026
…om-88e5f5a

epiphanies: prepend three framings handed off by commit 88e5f5a on PR #245
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants