Repository navigation
Sonny: memory overrides the role files' defaults, and saves what worked - #410
Merged
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
lydakis
pushed a commit
that referenced
this pull request
Oct 30, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jkdGGVwTdQTtcHeKUqRa6
Memory beats codified behavior: lead.md and task.md now say that what the person's memory says about how they want work done overrides their defaults, and their latest words override both. The scattered "save X to memory" sentences in lead.md fold into one paragraph, which also asks to save what the person welcomed, not only what they corrected. The memory skill and tool say the same: memory that holds only corrections steers agents away from what already works; save the approach, never that the person liked being agreed with. Pinned picks are left to the model and to memory: "Needs you:" as a literal reply label, "at most three" open decisions, the react tool's emoji meanings and "React rarely", and "draw it in Mermaid". Drops the stale "Triggers need Sonny on a Mac" (Linux since #344). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jkdGGVwTdQTtcHeKUqRa6
lydakis
force-pushed
the
claude/project-thread-bhz8kn
branch
from
October 30, 2026 04:21
a5a1302 to
9ab64d4
Compare
This was referenced Oct 30, 2026
Merged
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.
Requested by George · project thread
This is the first half of the memory-first prompt audit (write-up). George's principle: what agents can learn into memory beats behavior written into role files and skills. He approved all three recommendations. This PR changes prompt text only and ships in 0.7.0.
What changes
Memory overrides the role files' defaults.
lead.mdandtask.mdnow end with one paragraph saying so. What the person's memory says about how they want work done overrides the defaults in the file, and in a task's role. The person's latest words override both. The defaults stay for someone whose memory is empty. Claude Code works the same way: memory files override default behavior.Save what worked, not only corrections.
lead.mdhad five separate "save X to memory" sentences:They are folded into that one paragraph, which also asks agents to save what the person welcomed as well as what they corrected. The Sonny: leads and tasks give straight feedback, coach repeated habits and weigh what sources report #394 eval showed that save prose scattered through the turn never fired. The nightly reflection (Sonny: the nightly cleanup reflects on habits, from what the person wrote and sent #403) is the reliable writer.
Memory skill and memory tool now describe
feedbackas both what the person corrected and what they confirmed worked. Memory that holds only corrections steers agents away from what already works. Guardrail: save the approach, never that the person liked being agreed with. That keeps it from wearing down Sonny: leads and tasks give straight feedback, coach repeated habits and weigh what sources report #394's straight-feedback rule. OpenAI's 2025 sycophancy rollback traced back to thumbs-up data and memory.Pinned picks left to the model and memory, as Sonny lead: the lead picks the emoji for a pickup in a task #340 did for lead.md's emoji:
Stale line dropped: "Triggers need Sonny on a Mac". Linux has had triggers since Sonny: triggers on Linux, kept by systemd's user manager #344, and the triggers tool refuses with
triggers_unsupportedwhere there is no scheduler.README, docs/SONNY.md and FEATURES.md rows are updated.
Not in this PR
PR B comes after #403 merges and the coach thread finishes its two-day eval of #403, so each eval measures one change:
said, each with the reply it answered. Todaylookout::said_by_persondrops them.Checks
cargo test -p sonnyon main 1ef4fb7: 516 passed.a_task_is_told_who_it_works_fornow expects task.md's new last sentence.cargo fmt --checkandcargo clippy -p sonny --all-targets -D warningspass.🤖 Generated with Claude Code
https://claude.ai/code/session_013jkdGGVwTdQTtcHeKUqRa6