Skip to content

feat(memory): keep a decision's reason and show it in briefings - #593

Merged
kevintseng merged 4 commits into
mainfrom
codex/rebuild-m7-decision-why
Oct 5, 2026
Merged

kevintseng merged 4 commits into
mainfrom
codex/rebuild-m7-decision-why

Conversation

@kevintseng

Copy link
Copy Markdown
Collaborator

A decision is now stored with why it was made and what would make it stop holding.

  • remember takes why (CLI --why); a new or replaced decision without it is refused.
  • Briefings and the session-start block show each decision with its reason, or "(no reason recorded)", and flag one nobody has checked for 30 days.

Closes #592

…efed

- remember takes `why` (CLI --why): why a decision was made and what would
  make it stop holding, stored as the observation "Why: …". Creating or
  replacing a decision without it is refused with a message that names both
  halves; adding to a decision, an import, a note file or an accepted dream
  proposal is not refused.
- The briefing and the session-start block show each decision with its
  reason, or "(no reason recorded)", and one nobody has recalled or added to
  for 30 days as "unconfirmed N days: re-check before relying". A recall
  clears that note.
- The Hermes and OpenClaw extensions pass `why` through; OpenClaw shows the
  server's reason when a write is refused. The demo decisions carry reasons.
- A startup test no longer fails when the random temp folder name ends in "mv".
…sion type

- The durable-memory index shows each decision with its reason, or
  "(no reason recorded)", and the unconfirmed note, like the decisions
  section. Architecture and design decisions get the unconfirmed note too.
- When a decision line is cut, the title gives way before the reason, so
  the condition stays readable. A decision whose only text is its reason
  shows it once.
- `why` given as "Why: …" is not stored twice; the refusal reads
  "an architecture_decision"; the CLI's correction hint carries --why.
- Hermes shows the server's reason when a write is refused. The hooks and
  every documented example that stores a decision mention why.
…eaders

- A decision that was confirmed again shows only its latest reason.
- A read stamped in the future no longer hides the unconfirmed note.
- The index and the briefing sections compute a decision's age from the same
  times, so a decision with no observations is marked the same in both.
@kevintseng
kevintseng merged commit b254558 into main Oct 5, 2026
12 checks passed
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.

Decisions lose the reason they were made

1 participant