Repository navigation
fix(dream): abstractions from related members with a concrete shared mechanism, at salience 0.5 (1.12.0) - #148
Merged
Conversation
…mechanism, at salience 0.5 (1.12.0)
Abstract handed the model one memory from each of 3-4 random categories
and asked what connects them; it always found a theme ("friction and
identity", "subtraction over addition") and one live run linked a failed
MCP integration to a person's family history (#147). Each was stored at
salience 0.8, above most organic memories.
Members are now the seed's graph neighbours plus near neighbours at cosine
>= 0.50 (random pairs p90 0.43 on one store; the graph carries the signal),
never existing abstractions. The prompt asks for JSON with the mechanism
and the members it spans, "none" as the expected answer, and checkMechanism
keeps a synthesis only when the mechanism holds a distinctive, non-abstract
term two cited members' own text uses. Abstractions start at 0.5 and link
only to the members they cite.
Closes #147
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… check The first copy run on this branch wrote one abstraction: a third retelling of two memories about Muzak's "Stimulus Progression". Concrete terms, so it passed; but two retellings are one member. Cited members whose term sets overlap at Jaccard >= 0.25 now count once (edge-linked pairs on the same store: p95 0.094, p99 0.294; the Muzak pair 0.308). "stimulus", "analysis" and "-ss" words keep their final s. Phase tests drew a random seed with one attempt, and one of the four seeds has no related members by design; they now take enough attempts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hase stays quiet Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Why
#147. Abstract handed the model one memory from each of 3–4 random categories and asked what connects them. The model always found something by climbing to a theme ("friction and identity", "subtraction over addition", "agency and constraint"). One live run linked a failed MCP integration to a person's family history, and each result was stored at salience 0.8, above most organic memories.
What
exemplifies) plus near neighbours at cosine ≥abstraction_relate_floor(default 0.50), preferring categories the group doesn't have yet. When fewer than two related members exist, the model isn't asked. Existing abstractions are never members.abstract-synthesisv3 asks for JSON (mechanism, members, name, abstraction), with "none" as the expected answer and a rule against linking a person's private life to a technical system through a theme. The newcheckMechanism(engines/abstraction-check.ts) requires the mechanism to contain a term that at least two distinct cited members' own text uses:ABSTRACTION_SALIENCE), down from 0.8.exemplifiesedges go only to cited members, and each edge's evidence names the shared terms.phases.abstract.rejectedis reported.Measurement (copies of one 694-memory store, packed build of this branch)
I kept the conservative prompt: a phase that will run unattended should be quiet, not wrong. See the CHANGELOG entry.
471/471 tests. 4 of the new phase tests fail on master, and the rest pass there only because master never calls
generateJSON.Closes #147
🤖 Generated with Claude Code