Repository navigation
Conversation
…, 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>
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>
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
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
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>
…6-09-22/v0-2-time-plan Co-Authored-By: Codex <noreply@openai.com>
There was a problem hiding this comment.
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
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. |
There was a problem hiding this comment.
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
Open (5)
Reconcile completion rules with final contribution caps · New Add numeric before-and-after evidence to Decision Log · New Restrict measurement gates to slices and designated checkpoints · New Measurement plan item is not a dispatchable orchestrator command Plan is marked complete before implementation closeout
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) | |
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.

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.
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