How do memory proposals from a challenger session get into my next Claude Code session in that repo?
Tares turns the summarizer’s memory proposals into context for your next Claude Code session in that repo, but only the ones you accept. When a challenger session ends, the summarizer writes up to five Memory proposals. Accept writes the sentence to the agent_memory source as a decision keyed by the repo, and Reject records a rejection. The plugin fetches the accepted decisions at the start of the next session in that repo and hands them to Claude before your first prompt.
How it works
A challenger session is a Claude Code session where a second model reviews the plan and every commit. The full flow is in Challenge Claude Code with a second model. The memory path has four stages:
- Session end. When you type
/exit, the plugin ships asession_endline and thechallenger_session_endedtrigger fires. Thechallenger_summarizeragent reads the whole session and writes a finding. Its last section is Memory proposals: up to five sentences about the repo worth carrying into the next session. - Your decision. Open a summarized session under Sessions on the project page. Its open proposals each have Accept and Reject. Accept writes the sentence to the
agent_memorysource as a decision keyed by the repo. Reject records a rejection in the same source, so your choice holds in every browser. - Nothing without an accept. A proposal that you leave open or reject never reaches memory.
- Next session. When you start Claude Code in that repo, the plugin fetches the accepted decisions for the repo and hands them to Claude as context, before your first prompt.
The summary appears on the project’s Overview under What the agents found within a minute or two of the session ending. Summarize on a session row runs the summarizer on demand, on a live session too.
Set it up
-
Run Tares with its MCP endpoint next to it, or use a Tares Cloud instance, which serves the endpoint itself. For a local Tares, see Get started for the wider setup. Start Tares, then in a second terminal start the MCP endpoint:
tares up tares mcp --transport streamable-http -
Install the Tares plugin for Claude Code, version 0.2 or later. In Claude Code, run
/plugin marketplace add glassflow/tares, then/plugin install tares@tares. The install asks for the Tares URL and the MCP endpoint. Locally, keep the defaulthttp://127.0.0.1:8788/mcp. -
Install the Codex CLI and log in. Codex runs on your laptop and is billed to your OpenAI account.
-
Make sure the summarizer has an Anthropic API key, set under Settings > Model providers or as
ANTHROPIC_API_KEY. Tares Cloud instances come with one. -
In Claude Code, inside your repo, say “make this a challenger session” or type
/tares:challenger. The first marked session creates the Challenger workflow project by itself. -
Work as usual, then end the session with
/exit. -
Open the project, go to Sessions, open the summarized session, and choose Accept or Reject on each memory proposal.
-
Start Claude Code again in the same repo. The accepted decisions arrive before your first prompt, in this form:
Memory from earlier Tares sessions in this repo (accepted by the user): - Race conditions in async hooks are a recurring source of Codex findings in this repo; ... -
To check, ask Claude “what do you remember about this repo from Tares?”
What you get
- Lessons from a challenger session carry into the next session in the same repo, without you retyping them.
- Claude starts with the accepted decisions already in context, so your first prompt can build on them.
- You decide what is remembered. A rejection is recorded too, so the choice holds in every browser.
- Memory is keyed by the repo, so a decision from one repo does not show up in another.
- The challenger runs locally and never waits on Tares. If Tares is down or slow, a review is never blocked, and the plugin retries shipping on the next hook.
- The summarizer is one Tares agent run per session, metered like every other agent run. Set
slack_channelon the project to post each session summary to Slack, which needs the Slack bot.
When something else fits
- If you do not mark a session as a challenger session, it streams like any other and no summary or memory proposals are produced.
- If you want Claude to start with a fixed rule in every repo, put it in your own project instructions. Memory proposals only carry what you accepted from past sessions in that repo.
Related
Still stuck? Get help