[{"data":1,"prerenderedAt":24},["ShallowReactive",2],{"doc:en:shared-memory":3},{"title":4,"lede":5,"html":6,"headings":7},"The shared memory","A project’s agents keep a work notebook together: the ways of doing and the pitfalls they learned in this project, found again by each of them at the start, whatever its harness.","\u003Ch2 id=\"what-it-holds\">What it holds\u003C\u002Fh2>\n\u003Cp>The memory is about the work, not the product: “run the e2e tests after a debug build”, “this test is flaky under load, rerun it alone”, “a worktree’s ports are never written in a versioned file”. What the product does stays in its specification.\u003C\u002Fp>\n\u003Cp>Each memory has a name, a one-line description, a kind and a text:\u003C\u002Fp>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Kind\u003C\u002Fth>\n\u003Cth>For\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Way of working (\u003Ccode class=\"key\">feedback\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003Ctd>a way of working that works, a pitfall to avoid; the default kind\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Project (\u003Ccode class=\"key\">project\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003Ctd>a constraint of the work under way\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Reference (\u003Ccode class=\"key\">reference\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003Ctd>where to find something: a page, a dashboard, a tool\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>User (\u003Ccode class=\"key\">user\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003Ctd>what you prefer\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"where-it-lives\">Where it lives\u003C\u002Fh2>\n\u003Cp>In the \u003Ccode class=\"key\">.escouade\u002Fmemory\u002F\u003C\u002Fcode> folder of the project’s folder (in its first repository when it has several), not in each agent’s worktree: every agent of the project reads and writes the same one, whatever its branch.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>One Markdown file per memory, \u003Ccode class=\"key\">&lt;name&gt;.md\u003C\u002Fcode>, with a header (\u003Ccode class=\"key\">name\u003C\u002Fcode>, \u003Ccode class=\"key\">description\u003C\u002Fcode>, \u003Ccode class=\"key\">type\u003C\u002Fcode>), like Claude Code’s memory.\u003C\u002Fli>\n\u003Cli>A short index, \u003Ccode class=\"key\">MEMORY.md\u003C\u002Fcode>, that Escouade writes again at each change.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Escouade never commits it\u003C\u002Fstrong>, not even when approving a ticket: you commit it when you want to share it with the team, who get it at their pull. It blocks neither a merge nor a ticket’s approval.\u003C\u002Fli>\n\u003Cli>Escouade never reads or writes it through a symbolic link, nor outside the project’s folder: a cloned repository holding one is refused.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"what-the-agents-do\">What the agents do\u003C\u002Fh2>\n\u003Cp>Every new Escouade agent is asked to look in it at the start, and to note in it what it learns about how to work in the project. It goes through four tools of the \u003Ca href=\"\u002Fen\u002Fdocs\u002Fmcp\u002F\">MCP server\u003C\u002Fa>, the same for \u003Ca href=\"\u002Fen\u002Fdocs\u002Fharness\u002F\">every harness\u003C\u002Fa>: an agent that moves from Claude Code to Codex finds the memory as it was.\u003C\u002Fp>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Tool\u003C\u002Fth>\n\u003Cth>What it does\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Ccode class=\"key\">search_memory\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Searches by the words (name, description, text; case and accents ignored), and by the meaning too once Escouade’s vectors model is downloaded. Returns the memories found, best first, with the start of their text.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode class=\"key\">read_memory\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Reads a whole memory.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode class=\"key\">write_memory\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Notes a memory, or replaces the one of the same name.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode class=\"key\">forget_memory\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Forgets a memory that turned out wrong.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>An Escouade agent may leave out the project for its own. The memory of a \u003Ca href=\"\u002Fen\u002Fdocs\u002Fmcp\u002F#private-projects\">private project\u003C\u002Fa> is seen by its own agents alone. Claude outside Escouade reaches it too, by naming the project.\u003C\u002Fp>\n\u003Ch2 id=\"bringing-in-claude-code-s-memory\">Bringing in Claude Code’s memory\u003C\u002Fh2>\n\u003Cp>Claude Code keeps its own memory of each project. The first time you open a project Claude Code remembered something about, Escouade offers to bring it into the shared memory:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>a small window lists each memory, with its kind and its text, none ticked at first;\u003C\u002Fli>\n\u003Cli>tick the ones every agent should know, then “Take”; “Take nothing” copies nothing;\u003C\u002Fli>\n\u003Cli>a memory of the same name already in the project is marked “Replaces the project’s”;\u003C\u002Fli>\n\u003Cli>the question doesn’t come back, whether you took something or not. Closed without a choice, it comes back at the next start.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Escouade reads Claude Code’s project memory in the folder of each of your Claude Code accounts, and nothing else: neither your credentials nor your conversations. It never writes there.\u003C\u002Fp>\n\u003Ch2 id=\"in-the-settings\">In the settings\u003C\u002Fh2>\n\u003Cp>Settings › Projects, “Shared memory” group: the list of the project’s memories, their kind and their description. A click on a memory shows its text. “Forget”, then “Confirm forgetting”, deletes its file. The agents write the memory themselves: the settings are there to read it and clean it up. See \u003Ca href=\"\u002Fen\u002Fdocs\u002Fsettings-projects\u002F\">the projects’ settings\u003C\u002Fa>.\u003C\u002Fp>\n",[8,12,15,18,21],{"id":9,"text":10,"depth":11},"what-it-holds","What it holds",2,{"id":13,"text":14,"depth":11},"where-it-lives","Where it lives",{"id":16,"text":17,"depth":11},"what-the-agents-do","What the agents do",{"id":19,"text":20,"depth":11},"bringing-in-claude-code-s-memory","Bringing in Claude Code’s memory",{"id":22,"text":23,"depth":11},"in-the-settings","In the settings",1793278986320]