QAM Stack

The QAM StackClaude says it is done.Claude forgets.Claude opens one file at a time.

Three small tools. One for each. Free, and you can take just one.

Free and open source A plugin, a server, a binary Claude Code, Codex, Cursor, Claude Desktop

Install

Pick one. About a minute each.

No accounts, no config files, nothing to migrate. Each one comes out as easily as it goes in.

Install a plugin

Quality Harness

A gated delivery cycle: spec, decision, build, review. Two commands.

/plugin marketplace add D3-lt/quality-harness
/plugin install quality-harness@quality-harness

or

Say this to your agent
Add the Claude Code plugin marketplace D3-lt/quality-harness, then install the quality-harness plugin from it.
Claude Code
GitHub →

Add a server

AI Agent Memory

One memory every agent reads and writes back to. One line, hosted or your own box.

$ claude mcp add --transport http \
    agentsmemory \
    https://aiagentmemory.dev/mcp
# or self-host, with the models it needs
$ docker compose up -d

or

Say this to your agent
Add an MCP server called agentsmemory over HTTP at https://aiagentmemory.dev/mcp, then confirm you can call its tools.
Claude CodeCodexCursorClaude Desktop
aiagentmemory.dev →

Drop in a binary

MultiPath Read/Write

Many files read and edited in one pass. One binary, no daemon; mrw mcp speaks MCP.

$ go install github.com/\
atvirokodosprendimai/\
tool-multipathreadwrite/cmd/mrw@latest
$ mrw --version

or

Say this to your agent
Install the Go binary mrw from github.com/atvirokodosprendimai/tool-multipathreadwrite and check that mrw --version runs.
Claude CodeCodexCursoror your shell
GitHub →

Where each one is strongest

Good at different things.

Three tools, built separately, that happen to compose.

Q Quality Harness

Best at giving a loose task a shape that produces evidence: spec, decision, build, review.

MCP over stdioClaude CodeClaude DesktopAny pipeline

  • Five stages, each with its own gate: write the spec, record the decision, execute it, review it, write up what broke. Each stage leaves the next one something to read.
  • A task marked done without tool-written evidence fails the check. The check is an ordinary program, so what reaches Claude is its verdict.
  • A check that cannot fail is a defect. mutation-audit breaks a mechanism on purpose to see whether any test notices.
  • Its MCP surface is read-only by construction. The gates that would run a command are deliberately absent, and a test keeps them out.

A AI Agent Memory

Best at keeping the reasoning after the context is gone.

MCP over HTTPClaude CodeCodexCursorClaude DesktopBrowser connectorHosted or self-hosted

  • What was rejected, and why, outlives the session. Your code cannot show you that.
  • Correcting a memory ends the old one. The version that was wrong stops surfacing in search.
  • A memory can be pinned to the code it describes. When that code moves, search marks the memory stale.
  • After a compaction, Claude Code re-reads the memory on its own. Two hooks, no setup.

M MultiPath Read/Write

Best at touching many files in one pass.

CLI, plus an MCP serverAny agentAny shell

  • Two calls however many files, as long as one answer holds what you read.
  • All or nothing: one failed edit and nothing is written.
  • A file changed behind Claude's back is refused.

Start in Claude Code. Finish in Cursor. Same memory.

Each one installs and works on its own. Together they cover a job that runs for days: every tool reads the same memory, and Codex picks up what Claude wrote down.

Memory carries the decisions The reasoning is written down. The next session can recall it, whichever tool you open.

Done still needs proof Across days as well as inside a session, because the evidence is written down.

mrw does the edits in one pass However many files a change touches, it is two steps, so a long job stops being a run of round trips.

If you want the numbers

What MultiPath Read/Write saves, and what it costs.

It is the only one of the three with a number behind it. The other two are measured in ways nobody has instrumented yet, so they make no claim here. Measured on the mrw repository; yours will differ, and that is the point.

One file at a time

  • readstore.go
  • readcart.go
  • one read per file
  • editstore.go
  • editcart.go
  • one edit per file

110 round trips 110 asks, 110 waits, 110 replies

With mrw

  • read × 55one answer
  • write × 55one verdict

2 round trips all 55 file headers ride inside two replies

A round trip is one ask and one wait. Editing 55 files the usual way is 55 reads and 55 edits, each of them a separate wait. mrw takes the same work in one read and one write, so the count stops depending on how many files the change touches. Each file still gets its own header and its own verdict; what stops repeating is the asking and the waiting.

110 → 2

Tool calls for one change across 55 files. Add more files and only the first number grows.

A call is one round trip: Claude asks for something, waits, reads the reply. Editing 55 files usually means a hundred of those. This is two, and it stays two however many files you add.

0.57%

Of a 1.06 MB file sent, to edit 100 lines of it.

Opening a file normally means sending all of it, even to change ten lines in the middle. This sends the lines being changed and their surroundings, so the rest of the file never enters the conversation.

13% more

Than a read that already knew exactly where to look.

The extra is line numbers, plus a short header on every range served. That bookkeeping is what lets a later edit name the exact lines it is changing, and be refused if they have moved since. Read more of one file and the share stays flat at 13 to 14%. Ask for one line from each of fifty files and that header is charged fifty times, which is where it costs.

Where it loses

One edit to a small file you need in full. There is no span to narrow, so mrw sends more and saves you no steps.

Which is one line in your CLAUDE.md away from never happening:

Use mrw when a change touches 2 or more files,
3 or more edits, or several ranges you need to
read. Below that, edit the file directly.

Check it yourself

Five task shapes, both baselines and the span measurement live in scripts/measure.sh. The numbers move with the code, so run it yourself before you quote them.

Two commands, on the repository:

git clone https://github.com/atvirokodosprendimai/\
tool-multipathreadwrite
cd tool-multipathreadwrite && ./scripts/measure.sh

measure.sh @ v1.6.0 · the figures the script prints at that tag

Answers

Straight answers.

What is this for?

Three things go wrong when you build with an AI coding agent. It says a job is done when nothing checked it. It forgets what you decided. It opens files one at a time and burns your context.

Quality Harness fixes the first, AI Agent Memory the second, MultiPath Read/Write the third. Three separate tools.

Do I need to be an expert to use these?

No. Two slash commands, one line of config, one binary.

You do need a project you care about being correct, and Quality Harness will ask you to work a particular way once it is in. For a weekend prototype, none of this pays for itself.

Do I have to take all three?

No, and most people should not. Each installs on its own. Start with whichever problem actually happened to you.

They do compose. The memory carries decisions between sessions and between tools, the harness keeps the evidence across days, and mrw does the edits in one pass. None of them needs the others to be present.

What does Quality Harness do, exactly?

It is a delivery cycle with gates on it. Write the spec, record the decision, execute it, review it, write up what broke. Each stage leaves a record the next stage reads, so progress is something you can open and inspect.

The gates are ordinary programs. A task marked done without tool-written evidence fails the lint. The advisory check never fails your build, so an opinion never enters the evidence chain. mutation-audit breaks a mechanism on purpose to find tests that assert nothing.

Skip it if you do not want a cycle. It asks you to work a particular way, and that is exactly what turns done into something measurable.

What does AI Agent Memory do, exactly?

It is an MCP server your agents read and write. Decisions, rejected alternatives, and what a past session got wrong go in. Your code cannot show you any of that, because a fix looks identical to code that was always right.

You write as you work, and the next session recalls it. After a compaction Claude Code re-reads the memory on its own. Correcting a memory ends the old version, so the wrong one stops surfacing in search, and a memory pinned to a piece of code is flagged stale when that code moves.

Skip it on a project with no history worth keeping. And it makes no token-saving claim: nothing here measures that.

What does MultiPath Read/Write do, exactly?

One binary. It reads many file ranges and applies many edits in a single call, all or nothing, with a verdict for every edit and a checksum ledger, so a file changed behind Claude's back is refused.

That is two calls however many files you touch. On a change across 55 files: 2 calls against 110.

Skip it for one edit to a small file you need in full: it sends more and saves you no steps. One line in your CLAUDE.md routes around that case.

Can I start in one tool and finish in another?

Yes, and that is what the memory is for. One command wires Claude Code, Codex, Cursor and Claude Desktop to the same memory, so what you settled in one is there in the next. Codex does not resume Claude's session. It recalls what Claude wrote down.

Claude in the browser is a different route. The memory server implements the claude.ai connector handshake and that flow is tested against Claude's own callback URL. You create a connector credential in your dashboard and add it in Claude, and a self-hosted server has to be publicly reachable over HTTPS before the browser can see it. A full round trip, written in the terminal and read in the browser, has not been recorded yet.

The automatic recall after a compaction is a Claude Code hook, so the other clients get the memory and the tools without that part.

Is this Claude only?

No. The Quality Harness checks are ordinary programs any pipeline can run, and it ships an MCP server that speaks to Claude Desktop. AI Agent Memory installs for Claude Code, Codex, Cursor and Claude Desktop. mrw is a plain command any agent or human can run.

Does my code leave my machine, and should I self-host?

Only if you choose it. The Quality Harness checks and mrw are local programs. AI Agent Memory is the only one of the three with a decision to make.

Self-host it if you have the hardware for the models. Compose can run them for you, so you are paying for the machine and a one-time model download. Run the server on its own and it still works: memories are stored and text search runs, and recall gets sharper once an embedder is there.

Use the hosted service if you would rather not host models at all. It is the same server either way. One difference is about routing: the Claude browser connector needs a publicly reachable HTTPS address, which the hosted service has and a laptop does not.

What does it cost?

The tools are free and open source. Self-hosting the memory server costs whatever the machine costs. There is a hosted service if you would rather not run one.

One left to answer

Which of these cost you time this week?

Take that one. It installs in about a minute, it works on its own, and you can keep it only if it earns its place.