Repository navigation
📝 Plan how recall room is divided by five principles, with every memory saying which cues admitted it - #148
Open
ebigunso wants to merge 20 commits into
Conversation
…ry saying which cues admitted it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The plan contains contradictory contracts, an unsatisfiable acceptance criterion, and future-dated records.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 7
Open (7)
Preserve minimum one description occasion at zero floor · New Align ordering principle with similarity and tie-break rules · New Limit anniversary safety rationale to equal-salience roots · New Clarify CharacterMemoryEvals is development tooling · New Extend context range to include rulings 62–65 · New Include ruling 65 in altitude review scope · New Define trace equality despite intentional schema changes · New
What changed in this PR
Adds the implementation plan for consolidating recall allocation and cue provenance.
Changes:
- Defines five recall-road principles and ordering rules.
- Plans place reminders and
admitted_byreporting. - Sequences implementation, cleanup, validation, and measurement tasks.
| File | Description |
|---|---|
docs/coding-agent/plans/active/v0-2-consolidation-plan.md |
Adds the consolidation design and execution plan. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| ## Definition of Done | ||
| - One road table in the code decides everything a root's road decides. Every root carries the roads that reached it. Its reported cue kinds, whether it expands (opens history or is a leaf), whether it may hold reserved room and what it contributes are all read from that table, never set separately in each constructor. The README prints the table. | ||
| - Principle 1: room is reserved only for what someone gave or what a stored intention was waiting for. Reserved room is served from the head of that road's own order. The recency floor stays at a default of zero: a caller who sets it has given that reservation. An anniversary shared with nobody present holds no reserved room. | ||
| - Principle 2: a road contributes as much as its match can vouch for. Exact roads (keys, names, a caller range, dates, recency) contribute up to the room. A description contributes up to its floor, as today, until a similarity bound is measured on a production embedder. The topic contributes up to the room. A road's score is the larger of zero and its similarity. |
| - Principle 1: room is reserved only for what someone gave or what a stored intention was waiting for. Reserved room is served from the head of that road's own order. The recency floor stays at a default of zero: a caller who sets it has given that reservation. An anniversary shared with nobody present holds no reserved room. | ||
| - Principle 2: a road contributes as much as its match can vouch for. Exact roads (keys, names, a caller range, dates, recency) contribute up to the room. A description contributes up to its floor, as today, until a similarity bound is measured on a production embedder. The topic contributes up to the room. A road's score is the larger of zero and its similarity. | ||
| - Principle 3: a caller range replaces "now" as recency's window instead of competing with it. The date-match tie priority is deleted, and so is the dependence on the order roots are pushed. | ||
| - Principle 4: after reservations, one order at every stage: the stage's score, with ties going to the newest; at root selection, where search roads give no score, salience comes first, as the section will judge it (ruling 65). Turns among kinds exist only at root selection, and only for roads that expand. Rounds among the scopes of one given kind (several people the scene names) stay at every stage, and they run per kind. |
| - the helper's queue sort `!matches!(kind, Recency | DateMatch) && reminder` (`retrieve.rs:993-1001`). | ||
|
|
||
| Each root carries the kinds it may reserve under, read from the table. Each kind's queue is its roads' own orders, with roads that expand first. Deleted: the flag in both structs and both merges, `floor_kinds`, and the time-kind exemption. | ||
| - Principle 2, what a road contributes. It replaces three budgets computed at the call sites in `retrieve.rs` (the time budget at 204-208, the anniversary's larger of one and its floor at 252, and the per-key root cap at 148-151) with the table's contribution column. It also clamps every search score to the larger of zero and the similarity. Changed: the anniversary rises to the room (ruled 2026-09-23). This supersedes ruling 56's clause bounding it. It is safe because an unshared anniversary carries no score and loses ties to the newest, and the slice falsifier must hold. |
| - The graph port's time selectors and `query_scope_state` return each id with its memory time and stored salience. | ||
| - `RetrievalTrace` loses `anniversary_has_more`. | ||
| - stance: break | ||
| - justification: there are no external consumers. The one locatable consumer is `CharacterMemoryEvals`, the public companion evaluation repository, which follows each library slice and regenerates its stores on every run. There is no migration. |
| - `src/adapters/oxigraph/sparql_selectors.rs`: `select_state` orders by salience at about 270. | ||
| - `src/usecases/write_planning.rs`: the hint loop 354-371; the commit derivation of Involves 1261-1311. | ||
| - `src/api/types/retrieval.rs`: `RetrievalContext` 14; `RetrievalCueFloors` 127; `MemoryScenes` 248; `SceneReferenceResolution` 302. | ||
| - Rulings: the load-bearing decisions log, items 39 to 61, and the coordinator's rulings of 2026-09-23 recorded in this plan's Decision Log. |
| - kind: review | ||
| required: true | ||
| owner: reviewer | ||
| detail: "Tier A altitude review of the table and the five principles against rulings 44 to 47 and 53 to 61, ADR-D-0022, ADR-D-0029 and the philosophy on knowing versus being reminded" |
| Stop and report if any item turns out to change what comes to mind. | ||
| - acceptance: | ||
| - Every item above is done. The report names each with its files and its line counts before and after, and lists every deleted test with the deleted code it certified. | ||
| - On the whole suite and on a fixed set of facade retrievals run before and after, the admitted memories, sections, order, scores, `admitted_by` and trace are identical. The trace comparison includes selected and omitted objects interleaved across several sections, and every selected member keeps its one-based section rank. |
…-09-23/v0-2-consolidation-plan Co-Authored-By: Codex <noreply@openai.com>
ebigunso
changed the base branch from
feature/2026-09-22/v0-2-time-plan
to
feature/2026-09-22/time-age-of-support
September 22, 2026 22:00
…-09-23/v0-2-consolidation-plan Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ebigunso
changed the base branch from
feature/2026-09-22/time-age-of-support
to
feature/2026-09-22/phase-correctness
September 23, 2026 00:24
…9-23/v0-2-consolidation-plan Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…kinds Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…timing open Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s fix is routed to the cleanup plan Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

Plans the consolidation of how recall room is divided, before the prospective slice adds due and trigger cues.
The rules had grown one justified exception at a time. This plan replaces them with five principles and one road table: room is reserved only for what someone gave; each road contributes what its match can vouch for; a caller's range is the recency window; one order at every stage (score, then at root selection salience, then newest, as one total key); what a root opens follows the road. Places become reminders served newest first, every admitted memory reports which cue kinds admitted it, and a no-behavior hygiene task removes the dead and duplicated code the audits found.
It also carries the fix for the time slice's measured weakness: a salient anniversary nobody shares was cut at the root cap before its salience was weighed; among equal scores, the root stage now orders by salience before time.
Reviews: Tier D (cm-reviewer, then cm-reviewer2) and Tier A approved after five revision rounds; the rulings are items 58 to 65 of the v0.2 rulings log. One slice-end measurement with named falsifiers, bisected only on regression.
Stacked on the time plan (#138).
🤖 Generated with Claude Code