Skip to content

📝 Plan: the moment itself brings memories to mind - #138

Open
ebigunso wants to merge 17 commits into
feature/2026-09-21/scene-trace-and-docsfrom
feature/2026-09-22/v0-2-time-plan
Open

ebigunso wants to merge 17 commits into
feature/2026-09-21/scene-trace-and-docsfrom
feature/2026-09-22/v0-2-time-plan

Conversation

@ebigunso

Copy link
Copy Markdown
Owner

Slice plan for the time route, stacked on the scene-words slice (#137).

A character arrives in the evening already holding what it did lately; when a question names a span of time, what happened then comes to mind even if its words share nothing with the question; on the day something happened in an earlier year, that experience comes back, first when the person it was shared with is present; and a belief is held as old, never dropped for being old.

  • Recency is a road: the latest experiences at or before the scene's time (recorded scene time, never creation time) are contributed like a description's occasions: as many as the reserved-room value and at least one, with reminder-only standing and no similarity score, never taking room from what the scene or the conversation gave. A floor guarantees room only for a cue that was given, so recency's ships at zero.
  • A retrieval can carry a time range beside the topic, given by the application (the library parses nothing); it is a cue, never a filter.
  • The same calendar day in an earlier year, in the local day the application recorded (a scene time keeps its offset; a local date is derived at commit), reminds of its experiences; it holds reserved room only when shared with someone present.
  • Every admitted belief reports the age since the experience that last supported it; nothing is removed or reordered by age.
  • Retrieval reads no clock. No ranking weight for elapsed time ships; whether one helps is measured first.

Reviews: Tier D feasibility (Codex) over three bounded rounds and Tier A altitude with value audit (Claude); after the scene-words rulings the plan was realigned and re-checked (four findings closed, including that time cues never take spare turns at root selection and that a reminder road never raises the graph score of a memory a full-standing road already reached).

🤖 Generated with Claude Code

ebigunso and others added 3 commits September 22, 2026 23:42
…, the dates a question names, and this day in earlier years

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…fy it

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… instrument

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
ebigunso and others added 4 commits September 23, 2026 00:43
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…re anything is built on it

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
ebigunso and others added 5 commits September 23, 2026 03:26
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… step

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…line to the consolidation plan

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…6-09-22/v0-2-time-plan

Co-Authored-By: Codex <noreply@openai.com>
@ebigunso
ebigunso changed the base branch from feature/2026-09-21/scene-reminders to feature/2026-09-21/scene-trace-and-docs September 22, 2026 22:00
@ebigunso
ebigunso added this pull request to stack #149 September 22, 2026 22:00
ebigunso and others added 2 commits September 23, 2026 07:01
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings September 22, 2026 22:02
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…6-09-22/v0-2-time-plan

Co-Authored-By: Codex <noreply@openai.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

The plan contains future completion claims, superseded requirements, and validation kinds that contradict the new policy.

Get a fresh assessment by requesting another Copilot review.

Review effort: Balanced
Findings: 2 Low severity

Open (2)
What changed in this PR

Adds repository-wide measurement requirements and a detailed plan for time-aware memory retrieval.

Changes:

  • Defines measurement checkpoints and reporting responsibilities.
  • Plans recency, date-range, anniversary, and belief-age behavior.
  • Records task validations, decisions, and evaluation evidence.
File Description
docs/​coding-agent/​rules/​worker.md Adds measurement reporting requirements.
docs/​coding-agent/​rules/​reviewer.md Adds measurement evidence review checks.
docs/​coding-agent/​rules/​orchestrator.md Defines behavior-change measurement policy.
docs/​coding-agent/​plans/​completed/​v0-2-time-plan.md Documents the time-aware retrieval slice.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@@ -0,0 +1,334 @@
# Plan: the moment itself brings memories to mind: what just happened, the dates a question names, and this day in earlier years

- status: complete
- Alternative: the range filters the content search. Rejected as the meaning of the input: time never gates recall. A content search restricted to the span is left until a scenario fails without it; the README states the ceiling.
- Chosen, the calendar day: `Scene.time` carries the offset; the stored instant literal is unchanged; commit derives the local date from the offset given and stores it on the episode; the anniversary read matches the present scene's local month and day exactly with a local year earlier than the present scene's local year. Whether the stored form is one literal or a month-day key beside a year is the worker's choice, provided the read is an exact match without full-store hydration. Alternative: earlier year judged by instant. Rejected: wrong across offsets. Alternative: compare in UTC. Rejected: wrong for every deployment away from UTC, silently. Alternative: store the offset-carrying literal and extract month and day in the query engine. Rejected: the engine leaves an offset beyond fourteen hours unbound and a filter then drops the row silently, the read is a scan, and chrono equality ignores the offset so replay could not tell two local days apart. Alternative: a UTC offset given only at retrieval. Rejected: wrong whenever the character moved or the clocks changed. Episodes written before this plan have no local date and never match an anniversary; there is no migration.
- Chosen, staleness: a computed fact on the admitted interpreted memory's existing memory-scenes entry. Alternative: leave it to the application. Rejected unless the baseline shows otherwise: the plan review found the result collapses an observation into its parent scene and discards the observation's own time, so a consumer cannot derive it in every case. Alternative: omit or demote memories past an age. Rejected by ADR-D-0018.
- Measurement (standing rule of 2026-09-22): every task that changes what comes to mind, its order or its standing carries a measurement validation owned by the evals side, run at the task's tip before its pull request opens, before and after on the same instrument and inputs, in both id orders, twice. Instrument: the companion evaluation repository's Task_9 generated runner extended with a time family: a store of dated experiences with ids opposed to time, a scene giving only a time, a range beside a topic, and an anniversary shared with a scene-resolved notion and one unshared. Falsifiers, any one of which falsifies the design: the occasion contributed by recency is not the latest by recorded scene time; at a recency floor of zero a topic keeps fewer on-topic memories with recency present than alone; date match holds reserved room for an unshared anniversary. Task_1 measures the first two, Task_2 the second with the range present, Task_3 the third; Task_4 reports an age and changes nothing that comes, so it is exempt. The validator's vocabulary has no measurement kind, so the item is carried as a manual validation owned by the orchestrator, whose detail names the evals worker as the runner.
Copilot AI review requested due to automatic review settings September 22, 2026 22:08

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

The plan contains superseded behavior, incorrect validator kinds, and incomplete measurement evidence.

Get a fresh assessment by requesting another Copilot review.

Review effort: Balanced
Findings: 5 Low severity

Open (5)

Comment on lines +12 to +13
- Recency is a road that contributes a few experiences and promises which are contributed, not which survive. It works as a description does since the scene-words slice: every retrieval contributes the latest episodes at or before the scene's reference time, by recorded scene time, as many as the largest cap in force could hold, as explicit roots of the cue kind recency, so the room nothing else claims fills with what happened lately; the rest of what is recent is not a candidate. A contributed occasion enters with no similarity score of its own (a cue component of zero) and reminder-only standing; at root selection it receives exactly its floor reservation, takes no spare turn, and is admitted otherwise only into room left after every given kind's queue is exhausted, so at a floor of zero with the roots full it takes no root at all; everywhere else it competes in the existing score order, so a real match wins by itself and only a faint or a distant one (a low similarity, or a far hop with a small inherited share) can lose to it. With a scene and no topic, what it contributes and what rests on those occasions is what comes. Its floor ships at zero and the calibration may raise it; at zero it still contributes its single latest occasion.
- A retrieval can carry a time range beside the topic, as it carries the activity: two instants the application gives, echoed in the result. It is a given cue and never a filter: the most recent episodes whose recorded scene time lies inside it, as many as the larger of one and the date-match floor, are contributed as explicit roots of the cue kind date match, hold that floor at root selection and the section caps, take no spare turn at roots (no time kind does) and otherwise enter only room left after every given kind's queue is exhausted, the rest inside the range are not a candidate, and the trace says whether more existed than came, and everything any other cue brings is admitted exactly as before. The library parses no language and calls no model.
- Record proposed: none.

- 2026-09-23 Decision: the slice measurement confirms the direction for what a caller gives and questions it for one thing nobody gave.
- Trigger / new insight: after-numbers at `d36d96d`. A caller's Tuesday range brings 5 of 5 Tuesdays where it brought none, newest first, keeping today's occasions; under a loud topic it takes one observation's place. Meeting a person by key on the anniversary of a shared occasion brings last year's occasion under a loud topic, at the cost of one topic episode (6 of 8 to 5 of 8). With the person absent or the name ambiguous, no anniversary comes. A morning at +09:00 matches the local day, not the UTC one. An ordinary unshared anniversary never displaces a recent day. All other families are unchanged. What this means for the character: when asked about a day, or when meeting someone on the day of something they shared, the character remembers it, at the price of one slot of the conversation, and the calendar alone brings nothing. Direction confirmed.
| Retrieval or entity-policy changes | Entity-neutrality check (no name/role special-casing) | roadmap invariant 2.7 |
| Live integration evidence | Endpoint + pass/skip census; no silent skips | worker.md skip-gating notes |
| Pruning or closed-contract changes | Touched-file suppression census; bidirectional totality evidence for each claimed single source; empty/non-empty parity tests for every adapter implementing the port | lesson 2026-07-21 (Task_3 pruning wave) |
| Plan review (any plan whose tasks change what comes to mind, its order or its standing) | The `Design` section names the instrument and the falsifying number, and every such task carries the measurement item; a plan that cannot say what would falsify it is a finding | orchestrator.md Measurement Of Behavior Changes (decider ruling 2026-09-22) |
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