for agents/llms.txtv0.12.97

Home / Articles / Our first PR in Ruflo: an ABP-governed SGit page, merged into ruvnet/ruflo, and the four pieces that got it there

Our first PR in Ruflo: an ABP-governed SGit page, merged into ruvnet/ruflo, and the four pieces that got it there

By · 2026-10-17 · article v1.0.0 · newsroom v0.12.95 · agentsruflosgitagent-behaviour-policyopen-sourcepull-requestgithubmemorymilestonearticle

Abstract: On 17 October at 14:59 London time, rUv merged pull request #4239 into Ruflo's main branch. It was opened by Mondweep Chakravorty the night before, and it adds one page, docs/integrations/sgit-memory-checkpoints.md, 83 lines that document his adapter: an Agent Behaviour Policy compiled into Ruflo's own rules, checked by Ruflo's evaluator in enforce mode, gating checkpoints into an encrypted SGit vault. Of the 9,625 commits on Ruflo's main branch, it is the first to mention SGit or an ABP. This article puts the four pieces side by side, with a screenshot of each. The proof of concept: mondweep/sgit-ruv-memory, MIT, with sixteen passing tests and the video we analysed the same day. The pull request: three commits in one hour, one file, a description that states its own limits. How it was accepted: a review was requested from rUv as code owner, no formal approval was recorded and no checks ran; the maintainer merged it, squashed into commit 332f22e. And where it lives: a new docs/integrations folder on main, pinned to exact commits of the code, SGit and Ruflo. The page is careful about what it does not claim, which is why it could be merged quickly. One piece is still open, and it is on our side: the runnable example, SGit-AI/SGit-AI__Website__Ruv pull request #1, has had no review yet.

The pieces in order, London time: the talk and ruv.sgit.ai on 15 October; Mondweep's proof of concept on 16 October; pull request #4239 opened at 23:02 with three commits in the next hour; merged by rUv at 14:59 on 17 October as commit 332f22e; the page on Ruflo's main branch. Beside it, the video, our analysis, and the companion pull request on our side, still open.
SGit × Ruflo: one run, five ways in

Mondweep Chakravorty's video of an agent losing its workspace and getting its memory back: the run, the architecture, the gap, a page to step through it yourself, and the page that took it into Ruflo.

In short

What happened

On Friday 17 October, at 14:59 London time, rUv merged pull request #4239 into ruvnet/ruflo. Mondweep Chakravorty opened it at 23:02 the night before. It adds one file, docs/integrations/sgit-memory-checkpoints.md, which documents how an Agent Behaviour Policy can govern Ruflo's memory and keep its checkpoints in an encrypted SGit vault.

It is a documentation page, not a change to Ruflo's code, and the pull request says so. It is still a milestone for us. I checked Ruflo's whole history: of the 9,625 commits on its main branch, this is the first to mention SGit or an ABP, and Mondweep's first commit there. Two days earlier, at Agentic Engineering Live, I said we were ready to sell this. Now the method has a page inside the project it governs, written by someone outside our team, and accepted by the project's maintainer.

Here are the four pieces, each with what you can see on GitHub.

Piece 1: the proof of concept

mondweep/sgit-ruv-memory on GitHub: public, MIT licence, one contributor, five commits, the last of them 7607d72, "Validate Ruflo CLI exact and keyword recovery; disclose semantic vector gap". Folders for evidence, examples, scripts, the package, tests and the vendored Ruflo evaluator.

The code came first. mondweep/sgit-ruv-memory is a small MCP server, MIT-licensed, with five commits on 16 October, the last at 23:58. It does one job: it compiles an ABP into Ruflo's rule format, asks a pinned copy of Ruflo's own policy evaluator for a decision in enforce mode before each of its tools runs, and keeps each memory checkpoint in its own encrypted SGit vault. Sixteen tests pass, by the author's own evidence.

We have already written about it, the same day, in three pieces and a page:

Piece 2: the pull request

Pull request #4239 on ruvnet/ruflo, marked Merged: "ruvnet merged 3 commits into ruvnet:main from mondweep:docs/sgit-memory-checkpoints". Conversation 2, Commits 3, Checks 0, Files changed 1, +83. Mondweep's description gives the flow, the validation, the source at 7607d72, the executable example in SGit-AI/SGit-AI__Website__Ruv#1, and "Documentation-only change in Ruflo". On the right, ruvnet is listed as reviewer, with the review still pending.

The pull request is called "docs: ABP-governed SGit memory checkpoints and Ruflo CLI recovery validation". It came from a branch on Mondweep's fork, mondweep:docs/sgit-memory-checkpoints, into ruvnet:main. Its description gives the chain in one line:

Flow: ABP mandate → strict memory-profile compiler → pinned Ruflo enforce evaluator → actual adapter operations → encrypted snapshot/isolated restore.

It lists the evidence, and it lists the gaps in the same breath: "Semantic quality is NOT validated; the semantic report is partial." It ends with what it is not: "Documentation-only change in Ruflo; no runtime defaults/dependencies changed and no full Ruflo npm suite run."

It has three commits, all on the evening of 16 October, London time:

CommitTimeWhat it did
81e369723:02Document external SGit memory checkpoint MCP example
269b9fc23:35Document ABP compilation and enforced memory adapter operations
6b49d5823:59Document passing Ruflo CLI recovery and unresolved embedding persistence

The second commit is the one that matters most to me. The first version documented the adapter; the second documents the ABP compiled into Ruflo's rules and enforced on every operation. Mondweep's comment on the pull request says it plainly: "the missing ABP layer is now implemented and validated, and this guide has been updated accordingly."

Files changed: one new file, docs/integrations/sgit-memory-checkpoints.md, 83 lines added, none removed. It opens with "External SGit memory checkpoints governed by an ABP", "This opt-in community example connects an Agent Behaviour Policy to a local memory adapter", the chain in bold, and a reproduce section that checks out the code at commit 7607d72.

Piece 3: how it was accepted

The end of the pull request's timeline: Mondweep's follow-up to @ruvnet, "the missing ABP layer is now implemented and validated", with the source at e86cefa and the SGit example; the third commit, 6b49d58; the title change; and "ruvnet merged commit 332f22e into ruvnet:main".

The GitHub timeline, in London time:

  1. 16 October, 23:02. Opened, and a review requested from rUv automatically, as code owner.
  2. 23:30. Marked as a draft while the ABP layer went in. 23:36. Ready for review again, and the title changed.
  3. 23:59. The third commit.
  4. 17 October, 14:59. Merged by rUv, squashed into one commit, 332f22e, authored by Mondweep.

So "accepted" here means one specific thing, and it is worth being exact about it. There was no formal approving review: the review requested from rUv still shows as pending on the page. No checks ran; the Checks tab reads 0. The maintainer read it and merged it, which on a documentation page is a normal and sensible way to accept a contribution. It is also why the page's own care matters: with no automated gate, what got it in was the page being specific about what it claims.

Piece 4: where it lives

The merged file on Ruflo's main branch, at ruflo / docs / integrations / sgit-memory-checkpoints.md: 83 lines, 7.5 KB, last commit 332f22e by mondweep. The rendered page, "External SGit memory checkpoints governed by an ABP", with links to the source and the SGit executable-example PR, and install steps that check out the code at an exact commit.

The page lives on Ruflo's main branch, in docs/integrations. It is the only file in a new docs/integrations/ folder. It is not yet linked from Ruflo's docs index or its README, so for now you find it by link or by browsing the folder.

It pins everything it depends on. The code at 7607d72. SGit at source commit 5597526, because the declared version, 0.22.3, was not yet on the package index. Ruflo's evaluator at 1882006, the commit of the Ruflo 3.56.10 release, and the same commit Mondweep's branch was built on. Anyone can reproduce what it describes, at those exact versions.

What the page claims, and what it does not

I think this is the main reason it was merged in under a day. The page does not oversell. A few lines, as written:

It ends with the next gates: diagnose why embeddings did not persist, show semantic recall with relevant and unrelated controls, and adopt a supported live policy interface instead of vendoring. That is a good list, and it is now in Ruflo's own repository, where Ruflo's contributors will see it.

The three proposed capabilities matter for the ABP too. They are the first memory vocabulary I have seen proposed from outside our team, from a real integration, and they are the kind of feedback the ABP needs.

The piece still open is ours

SGit-AI/SGit-AI__Website__Ruv pull request #1, "Add local MCP example for policy-gated SQLite checkpoints and restore", marked Open: mondweep wants to merge 3 commits into SGit-AI:dev from mondweep:feat/mcp-memory-checkpoints. 35 files, +3,081. Companion: ruvnet/ruflo#4239, shown as Merged. No reviews.

The Ruflo page points to two things: Mondweep's repository, and a companion pull request in our own organisation, SGit-AI/SGit-AI__Website__Ruv #1. That one adds the runnable example to ruv.sgit.ai: 3 commits, 35 files, 3,081 lines. It is still open, with no reviews. His follow-up on the Ruflo pull request notes that his own updates to it were limited by connector permissions, though its branch, README and evidence are current.

So the order came out the other way round from what you might expect. Ruflo merged first. The next merge is ours to make, after a review.

Why this matters

Three reasons, and I will keep them modest.

Thank you, Mondweep, for the code, the video and the page, and rUv for merging it.

Where to go next

The SGit × Ruflo trail has the run, the architecture and the gap. Or step through the run, watch the video, and read the merged page.

What this does not claim

If you are Mondweep, rUv, or anyone who has run this, and want to add to any of it, write to agent@riskmandate.ai.

Where this comes from

The pull request: ruvnet/ruflo #4239, its conversation, commits, files and timeline, read on 17 October 2026; the commits fetched with git, and Ruflo's full main-branch history, 9,625 commits, searched for SGit, ABP and the author. The merged page: docs/integrations/sgit-memory-checkpoints.md at commit 332f22e. The code: mondweep/sgit-ruv-memory, MIT, at 7607d72. The companion: SGit-AI/SGit-AI__Website__Ruv #1. The video: Mondweep Chakravorty, SGit × Ruflo | Working Proof of Concept, 17 October 2026, published here with his agreement. Screenshots of GitHub taken by this site's agent on 17 October 2026; times are converted from GitHub's UTC to London time. Written up and checked by this site's agent; the editorial responsibility is mine. Related: agentics, ready to sell, what if an agent loses its workspace?, when is the vault actually used?, the policy guards the door.

Threads

Agents & policyVaults & method This article as a graph →

Builds on

Continued by

All articles · All graphs

Article No. 169 · start a reading list with it

Want the next issue by email. One issue a week or so: what was published, what it adds up to, and what is worth your time. Subscribe to the SGit Newsroom →

← All articles