The Enrichment contract narrows to what it actually answers (ADR 0019) - #177
Merged
Conversation
Measured across the whole corpus of 171 reports, four of the eleven fields every report is asked for came back empty or useless. Topics: 438 distinct slugs, 405 of them naming exactly one Thread. Mentions: emitted by 14 reports out of 171, 37 of 38 nouns occurring once. Suggested questions: absent from 165 of 171. Draft-worthy: never once true. All four are cut — from the prompt, the parser, the gateway contract, both repositories' writes, and the surfaces that showed them. Title, Kind, Project/Propose, sources and research stay: those work. The walker carries a vocabulary whether or not the machine fills it in, so four empty columns read as a system that is organizing when it is not. Going with them: the Mentions rail group, the Topics Lens (which was a Project stack with a mention fallback, and is now named for what it does), the draft-candidate queue, and the suggested-question chips. Retrieval keeps its embedding half and loses the exact-noun half — the same measurement shows it cannot have been firing, 14 reports carrying a mention against 150 of 155 Threads carrying an embedding. Columns are left in place holding their history rather than dropped. Three unrelated reds found and fixed on the way: - The Day flow's lanes took the page 109px sideways when a Thread was titled after a long filename — a grid track sized to an unbreakable word. - The trash restore test had no pinned clock, so its July dates passed the 30-day deadline on July 31 2026 and it had been failing by the calendar. - The sql-tables guard read `information_schema.columns` as a missing user table; it now knows a catalog schema when it sees one. And lib/sync/hydrate.ts is a text file again: the two NUL bytes that made git treat it as binary — and merge it with no conflict markers — lived in the topics comparison that this removes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mm4zPLAX77USAqyk12jgc1
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
"It feels like it's too complicated."
Measured across the whole corpus with
scripts/what-it-knows.mjs: every report is asked for eleven fields, and four of them come back empty or useless.topicsmentionssuggestedQuestionsdraftWorthyAgainst the four that work: every report titles itself, 82% classify, proposals accrue Threads, and 136 of 171 did real research.
All four are cut — from the prompt, the parser, the gateway contract, both repositories' writes, and the surfaces that displayed them.
TITLE/KIND/ASK/PROJECT/PROPOSEstay.The point is not that the ideas were bad. A walker carries the whole vocabulary in their head whether or not the machine fills it in, and four empty columns read as a system that is organizing when it is not.
What goes with them
projectfor what it actually doesRetrieval
retrievePriorThreadskeeps its embedding half and loses the exact-noun half. The same measurement says that path cannot have been firing: 14 reports carrying any mention against 150 of 155 Threads carrying an embedding. The vector path was doing all the work. Signature, best-effort posture, and cold-start behaviour are unchanged.Columns are left in place holding their history rather than dropped — a reversal should find them where it left them.
Three unrelated reds, found and fixed on the way
All three were already failing on
main:minmax(13rem, 1fr)grid track, and the lanes pushed past the viewport.min-width: 0on the lane,overflow-wrap: anywhereon its items.sql-tablesguard readinformation_schema.columnsas a missing user table — tripped by the transcript backfill in The transcript backfill runs its own migration #174. It now recognizes a schema-qualified catalog read.And
lib/sync/hydrate.tsis a text file again. The two NUL bytes that made git classify it as binary — and merge it wholesale with no conflict markers, a silent data-loss hazard flagged two PRs ago — lived inside the topics comparison this removes.Tests
pixel-9362 passed ·desktop26 passed · typecheck clean · lint at its pre-existing baseline (7 errors, all onmain).Two spec files deleted (
enrichment-mentions,desk-mentions-desktop) and the mention-link cases indesk-similarity/desk-priors-desktop/enrichment-retrievalrewritten for the embedding path.One pre-existing flake left alone and reported rather than papered over:
thread-dialogue.spec.ts:11fails about 1 run in 3, at the same rate onmain.Generated by Claude Code