Files
dotfiles/claude/memory/feedback-rank-on-fields-you-actually-write.md
T
David F GliddenandClaude Opus 4.8 3f9a89b00c chore(memory): Basic Memory trial begins — sync normalization baseline (283 files)
Basic Memory v0.21.6 first sync over the live memory dir (steward-authorized
live-dir trial, Option A 2026-06-06): adds permalink: to frontmatter, refolds
long YAML description lines, strips final newlines. Bodies untouched —
verified via full diff classification. From this commit forward, any diff in
claude/memory shows only what Basic Memory or the session writes.

Trial design: MemPalace untouched as incumbent; git status check on this dir
at every wrap; end-of-day evaluation (recall quality, sync robustness,
rebuild-from-files, malformed-file behavior).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 09:52:17 +02:00

24 lines
3.2 KiB
Markdown

---
name: feedback-rank-on-fields-you-actually-write
description: A component that ranks/selects by an evaluative field nothing populates
silently degrades to a trivial order while claiming to rank — verify scoring fields
end-to-end; prefer signals you already capture. For BMF/CapableMind/studium-engine
tool-building.
metadata:
node_type: memory
type: feedback
originSessionId: 96ac9e09-7d3d-4ce3-a9cb-5234078a2a4e
permalink: claude-memory/feedback-rank-on-fields-you-actually-write
---
When a component ranks or selects by an *evaluative* field (importance, weight, relevance, confidence, salience), verify that some ingestion path actually **writes** that field end-to-end — not just that the consumer **reads** it.
Concrete case that surfaced this (2026-05-26, MemPalace): `layers.py` L1 wake-up scored drawers by `importance`/`emotional_weight`/`weight` and a comment promised *"prefer high importance, recent filing."* But **0 of 45,969 drawers carried any of those keys** — no ingest path (miner, convo_miner, diary_write, add_drawer) ever wrote them; `emotional_weight` existed only as an AAAK concept *read* in `dialect.py`, written by nobody. So ranking silently collapsed to insertion order (oldest first), and recency was never consulted at all. The field was an **orphan**: read by the consumer, populated by no one. The fix was to rank on `filed_at` (recency) — a *structural* field present on every drawer — which made the "recent filing" half of the promise true with data we already had.
**Why:** This is silent degradation, not a crash. The system advertises a capability (ranked selection) it does not have; no error fires, the order is just quietly wrong. That is precisely the contamination shape — code (and comment/docstring) promising behavior the data never delivers — and for a memory/governance substrate, "silently wrong ranking" is the false-confidence failure L1's charter exists to prevent. Evaluative scoring at ingest is the *hard, deferred* part (it fights background/instant/local budgets), so it tends to be sketched in the index model and never wired into the default pipeline — leaving the consumer reading a field that is always empty.
**How to apply** (BMF/CapableMind L1, studium-engine, any ranking we build):
- For any ranking/selection feature, **trace the scoring field write→read**. If no path writes it, the ranking is fiction — make it raise, log a degradation, or fall back to a signal you have.
- **Prefer signals you already capture** (recency/`filed_at`, frequency, structural position) over signals that need a deferred scoring pass (LLM-assigned importance). Either build the scoring path *deliberately and end-to-end*, or rank on cheap structural data — never read a field you don't write.
- **Record structural/provenance metadata always; record evaluative metadata only when a path genuinely assigns it.** Honest degradation: a system must report its own limits, including "I cannot rank by importance because nothing scored these."
- Treat docstrings/comments that promise ranking behavior as claims to verify, not documentation to trust. Relates to [[feedback-load-bearing-not-by-immediate-weight]] and the live-state / verify-before-assert discipline.