Skip to content

pacphi/ruflo-machine-ref

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

51 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧰 ruflo-machine-ref

A small, friendly setup kit that makes ruflo actually work the way it promises β€” reliable memory, active self-learning, verified security, and an at-a-glance status line β€” especially on modern Node (24/26), where a stock install quietly breaks in ways that still look "green."

One-time setup per machine. One command to heal after upgrades. Nothing committed to your repos unless you mean it.


πŸ€” What is this, in plain words?

ruflo is an AI orchestration toolkit for Claude Code β€” it gives your AI assistant a memory that survives across sessions, the ability to learn from what works, multi-agent coordination, and security scanning.

The catch: on the versions of Node.js most developers run today, ruflo silently falls back to a degraded mode. It still says "βœ… OK", but underneath:

  • πŸ’Ύ the memory that's supposed to persist… doesn't (writes vanish),
  • 🧠 the self-learning that's supposed to be on… stays asleep,
  • πŸŽ“ the optional quality-engineering add-on won't even finish installing,
  • πŸ“Ÿ and you have no easy way to see which of these is actually working.

This kit closes all of those gaps with a few small, reversible helper scripts β€” and gives you a status line that shows, at a glance, exactly what's live.

πŸ™‚ Not a developer? You only need three commands: ./install.sh (once), then ruflo-onboard inside a project, and ruflo-resync after any upgrade. The rest of this README explains the "why" for the curious.


⚑ The 30-second version

You want… Stock ruflo on Node 24/26 With this kit
πŸ’Ύ Memory that persists across sessions Lost data pre-3.10.6; native by default on β‰₯3.10.6 (never verified) Saves for real, and verifies it landed on disk
🧠 Self-learning that's actually on Reports "Not loaded" Active & proven (trains β†’ patterns persist)
πŸ›‘οΈ Security scanning Ships but undocumented/unverified Verified: scan, secrets, prompt-injection defense
πŸŽ“ Agentic-QE quality fleet (optional) aqe init fails on Node 24/26 Installs cleanly (same bug, auto-fixed)
πŸ“Ÿ Knowing what's active No indication Status-line footer shows 🧠 / πŸ›‘οΈ / πŸŽ“ live
πŸ” Surviving an upgrade Re-breaks silently every upgrade ruflo-resync β€” one command re-heals everything
πŸ’° Token budget ~84k tokens/session of MCP tool defs MCP optional; CLI-first saves the tokens

🧩 What's actually wrong (the short story)

Modern Node.js (24 and 26) changed its native-addon ABI. ruflo's deeper dependencies declared an old better-sqlite3 with no prebuilt for those Node versions; npm skipped it silently and ruflo dropped to a pure-JavaScript SQLite fallback whose write path lost data while printing success. ruflo v3.10.6 fixed this upstream (#2219) with an npm overrides entry that forces better-sqlite3 β‰₯12.8.0 (Node 20–26 prebuilts), so on current ruflo the memory bug no longer bites by default.

What this kit still adds, because the override doesn't cover everything:

  1. πŸ’Ύ Verifies memory actually persists β€” a real storeβ†’disk check, instead of trusting doctor's "healthy". (The data-loss bug itself is now fixed upstream on ruflo β‰₯3.10.6.)
  2. 🧠 Activates & proves self-learning β€” puts the native binary in place where needed and asserts the ruvector engine (SONA, HNSW, ReasoningBank) is genuinely on, not just reported on.
  3. πŸŽ“ Agentic-QE won't initialize β€” it's a separate package (agentic-qe) not covered by ruflo's override, so it still hits the same Node-ABI wall; ruflo-setup-aqe fixes it.
  4. 🧹 MCP-cruft, token, and daemon hygiene β€” strips committed .mcp.json, keeps sessions CLI-lean, and (as of the token-consumption work) makes the background daemon opt-in + self-reaping.

πŸ“Ž A note on prior art. A colleague, Ciprian Melian, wrote an excellent project-scoped repair kit as a gist (link) that pairs ruflo with agentic-qe. This kit builds on those ideas but takes a machine-wide, upgrade-safe approach β€” and our investigation found that several of the gist's source patches are now already upstream in ruflo 3.10.5 (the real remaining lever is the missing native binary, not the source patches). The full story is in docs/BACKGROUND.md.

The deep dive β€” ABI tables, the exact files, why "HNSW: Not loaded" is a cosmetic lie β€” lives in docs/BACKGROUND.md.


✨ What this kit gives you

  • 🩹 Native SQLite, everywhere ruflo needs it β€” ruflo-patch-native swaps the broken dependency for one that works on Node 24/26.
  • 🧠 Activated + proven self-learning β€” ruflo-enable-learning turns ruvector on and asserts it (5 real capability probes, not the misleading status text); ruflo-learning-verify trains a cycle and confirms patterns persist to disk.
  • πŸ›‘οΈ Verified security surface β€” ruflo-security-verify confirms @claude-flow/security + @claude-flow/aidefence load, that prompt-injection defense actually fires, and flags the known CVE-database gap.
  • πŸŽ“ Opt-in agentic-qe β€” ruflo-setup-aqe fixes the same native-SQLite bug in agentic-qe, then initializes it (with half-init repair).
  • πŸ“Ÿ A status-line footer that shows 🧠 self-learning, πŸ›‘οΈ security, and πŸŽ“ agentic-qe β€” each only when genuinely active.
  • πŸ” ruflo-resync β€” one command to re-apply everything after a ruflo or agentic-qe upgrade.
  • 🧹 Clean repos & cheap sessions β€” strips MCP cruft ruflo init would commit, pins an absolute memory path, and keeps MCP optional to save ~84k tokens/session.
  • ↩️ Reversible β€” uninstall.sh backs up and removes the machine-level setup; --this-project also reverts a repo's statusline patches.

βœ… Prerequisites

This kit configures and heals ruflo β€” it doesn't bundle it. You need a few things on your machine first. install.sh checks for these and can install the npm packages for you (interactively, or via flags).

Required (install.sh aborts if missing):

Tool Why Get it
Node.js (20–26 supported) runtime for ruflo & the helpers https://nodejs.org
npm installs the global packages ships with Node.js
ruflo the orchestration toolkit this kit configures npm i -g ruflo (install.sh can do this)

Recommended (install.sh warns, then continues):

Tool Why
claude (Claude Code) the agent this all runs inside
sqlite3 the status line + memory verifications read the DBs
git to clone/update this kit

Optional (only for the QE fleet):

Tool Why Get it
agentic-qe (aqe) the standalone quality-engineering fleet (πŸŽ“ segment) npm i -g agentic-qe (install.sh --with-aqe)

πŸ”‘ "Security" and "learning" are not separate installs. @claude-flow/security, @claude-flow/aidefence, and the ruvector self-learning engine all ship inside ruflo β€” this kit activates and verifies them. So the "full boat" is just two npm packages (ruflo + agentic-qe); the kit lights up the rest.


πŸš€ Quick start

The fastest path β€” install the kit, prereqs, and heal in one go:

# 1. Get the kit
git clone https://github.com/pacphi/ruflo-machine-ref.git && cd ruflo-machine-ref

# 2. Bootstrap the machine (pick your level)
./install.sh                 # friendly interactive onboard (asks per step)
./install.sh --full --yes    # "full boat": ruflo + agentic-qe + heal, no prompts
./install.sh --ruflo-only    # just ruflo + heal
./install.sh --minimal       # only lay down the kit files (you have the prereqs)
exec $SHELL                  # load the helper functions

# 3. In any project you work in
cd ~/my-project
ruflo-onboard                # clean setup + prove self-learning persists, in one step
ruflo-onboard --aqe          # …and also initialize the agentic-qe fleet here

Try ./install.sh --dry-run first to preview exactly what it will do.

Key distinction: install.sh runs once on the machine and never inside a project repo β€” it deploys the shell functions and heals global packages. ruflo-onboard runs once per project and never touches global state. If you're unsure which to use, see Which command do I run?.

πŸͺ™ Prefer CLI-only (no MCP, ~84k tokens saved per session)? The Quick Start above gives you CLI-only by default β€” ruflo-setup-machine is a separate, optional step that registers the ruflo MCP server. Skip it (the default) and Claude Code drives ruflo through plain Bash using the installed ~/.claude/CLAUDE.md reference. Run it only if you specifically want the MCP tool schema available in-session.


πŸ› οΈ The commands

Command What it does
πŸ” ruflo-resync [--aqe] The one you'll use most. After any ruflo/agentic-qe upgrade, re-applies everything the upgrade wipes: native SQLite (ruflo + agentic-qe) + self-learning assert + statusline footer. --aqe also refreshes QE skills.
πŸ“‚ ruflo-onboard [--with-security] [--aqe] Per-repo, run from inside it. One command: clean setup-project β†’ prove learning persists β†’ (--aqe) initialize agentic-qe. Prints what's active + what's next.
πŸ—οΈ ruflo-setup-project [--with-security] Per repo: clean init, strip MCP cruft, pin an absolute DB path, native patch, activate memory/swarm/daemon, verify a write persists, sanitize CLAUDE.md, heal the status line. --with-security adds a security pass.
🩹 ruflo-patch-native [--check] Make ruflo's agentdb use native better-sqlite3 on Node β‰₯24.
🧠 ruflo-enable-learning [--check] Activate ruvector self-learning and assert it (5 capability probes).
βœ… ruflo-learning-verify [--keep] Prove the learning loop: train in an isolated dir, assert patterns persist 0 β†’ N on disk.
🎚️ ruflo-neural-train [args…] Thin passthrough to ruflo neural train in the current project (args pass through), then advances the live micro-LoRA tracker.
πŸ“ˆ ruflo-lora-track Advance the live micro-LoRA adaptation tracker now (Ξ”β€–Wβ€– on the SONA line). Otherwise auto-refreshes on each statusline render as ruflo learns new patterns from your work.
πŸ›‘οΈ ruflo-security-verify [--quick] Verify @claude-flow/security + aidefence load, injection defense fires, scan/secrets run; flag the CVE-DB gap.
πŸŽ“ ruflo-setup-aqe [--force] Opt-in. Fix agentic-qe's native-SQLite bug, then initialize it in a repo (with half-init repair).
πŸ’Ύ ruflo-memory-checkpoint [db] Force a WAL checkpoint to recover stale memory reads.
🧽 ruflo-remove-mcp Remove ruflo MCP from all scopes (recover ~84k tokens/session).
πŸ“‡ ruflo-setup-machine One-time: register ruflo MCP at user scope (all projects). Optional.
πŸ” ruflo-parity-test [--cleanup] 20-check end-to-end memory smoke test in an isolated /tmp dir.
πŸ“ ruflo-reference-refresh [--diff|--regenerate] Inspect/rebuild the machine-wide CLAUDE.md ruflo block from the template.
πŸ“Š ruflo-token-audit [--days N] [--json] Where's my usage going? Comprehensive Claude Code usage report across N days (default 7): tokens by day/model/project, tool & MCP usage, subagent fan-out, web-tool calls, cache efficiency, busiest sessions, hourly activity, and a cross-reference of running ruflo daemons vs your top-burn projects. The engine is bundled inside the skill (works standalone) and also installed here on PATH.

πŸ’‘ Token-audit skill. The kit also installs a user-scope Claude skill, ruflo-token-audit, available in every project. Just ask Claude in plain language β€” e.g. "Audit my Claude Code token usage for the last 7 days β€” what's burning my tokens?" β€” and it runs the audit, checks for runaway daemons, and recommends fixes. Background: docs/usage/token-consumption-findings-and-mitigation-2026-06.md.


🧭 Which command do I run?

install.sh is the front door you walk through once; the functions are how you live in the house.

install.sh The functions
Nature a script run from the kit repo commands on your PATH, available everywhere after install
Frequency once per machine (+ rarely, to re-lay the kit) ongoing, day-to-day
Scope machine-level bootstrap machine-recurring and per-project

On first run the functions aren't sourced yet, so install.sh sources them in-process and calls the same ruflo-patch-native / ruflo-enable-learning to heal β€” one source of truth, no drift. After that you never need install.sh for healing again.

Situation Run this Why not the other
πŸ†• Brand-new machine install.sh nothing's on PATH yet β€” only the script can bootstrap
πŸ” Re-cloned kit / new shell / wiped ~/.local/bin install.sh re-lays the kit files (idempotent, backs up)
πŸ“₯ After git pull on this kit repo install.sh --minimal redeploys updated shell functions + CLAUDE.md template; ruflo-resync doesn't touch kit files
⬆️ After npm i -g ruflo@latest (or aqe) ruflo-resync the upgrade only wiped native binaries β€” re-running install.sh is the heavier wrong tool
πŸ“‚ Starting in a new repo ruflo-onboard per-project; install.sh is machine-level and won't touch your repo
πŸ” Routine checks functions (ruflo-parity-test, ruflo-learning-verify) no reason to re-bootstrap

Rule of thumb:

  • "I'm setting up" β†’ install.sh (once).
  • "I upgraded ruflo/aqe" β†’ ruflo-resync.
  • "I'm starting work in a repo" β†’ ruflo-onboard.

πŸ“Ÿ The status line

When set up with this kit, a footer is appended below ruflo's own status line. It's append-only β€” it never rewrites ruflo's lines, so a ruflo update can't break it. Each ruflo feature renders on its own line (so the live metrics are individually scannable), and each piece appears only when that feature is genuinely active:

β–Š RuFlo V3.10.46 ● you  β”‚  ⏇ main  β”‚  Opus 4.x       ┐
πŸ—οΈ  DDD Domains … πŸ€– Swarm … πŸ”§ Architecture …       β”‚ ruflo's own lines + the kit's
πŸ“Š AgentDB …                                          β”‚ per-feature lines (all ruflo)
🧠 SONA  [●●●●●]  70 patterns Β· 132 traj Β· ⚑ HNSW Β· Ξ”β€–Wβ€–0.0039 +0.0021β–² n70  β”‚
πŸ“ˆ RL  Ξ΅1.00↓ Β· Ξ΄Μ„0.779↓ Β· |Q|6 Β· upd9                β”‚ live route Q-learner metrics
πŸ›‘ aidefence on                                       β”˜
─────────────────────────────────────────────────────  ← divider (matches ruflo's header rule)
πŸŽ“ Agentic QE V3.10.7  πŸŽ“ 23 patterns Β· 🧭 114 traj Β· 🧬 543 vec⚑ Β· πŸ’Ύ 16MB

Every field renders only when its data is actually present (numbers above are illustrative):

  • 🧠 SONA β€” [bar] is a volume gauge (~10 patterns/dot); patterns/traj from .claude-flow/neural/stats.json (these now persist across restarts, ruflo #2245); ⚑ HNSW only when a vector index exists.
  • πŸ“ˆ RL β€” live route Q-learner metrics, shown only once the learner has actually run (updateCount > 0): Ρ↓ (exploration), δ̄↓ (mean TD error), |Q| (distinct task-states β€” a real count since the encoder fix F3, ruflo #2239, fixed in 3.10.11, confirmed still correct in 3.10.46: 6 tasks β†’ 6 distinct Q-states), upd (updates). Read fs-only from .swarm/q-learning-model.json β€” which persists across ruflo route feedback calls (saveModel, ruflo 3.10.6+); never the broken route stats CLI.
  • β—· proof (alarm-only) β€” the most recent ruflo-improvement-eval verdict (.claude-flow/improvement.json), a synthetic proof-of-mechanism (its own reward env: permutation p + Cohen's d + above-chance vs a no-learning ablation), not a live measure of real routing. A PASS (expected) renders nothing; only a regression surfaces as β—· proof FAIL Ξ”pp Β· CI Β· p Β· d Β· <age> (the age keeps a stale FAIL honest). Never fabricated.
  • πŸ›‘οΈ aidefence on β€” proactive prompt-injection/PII defense is loaded (ruflo's native line already shows the CVE n/m count, so this signals the other half).
  • Ξ”β€–Wβ€– β€” live micro-LoRA adaptation, showing the model actually adapting from your work. Ξ”β€–Wβ€–0.0039 is the Frobenius norm of the micro-LoRA weight delta β€–scalingΒ·(AΒ·B)β€–_F (federated-LoRA's standard adaptation-magnitude monitor); +0.0021β–² is the growth this session (the live signal); n70 is the count of distinct patterns adapted. Why a kit-maintained adapter: ruflo's own micro-LoRA is per-process scratch β€” the code literally says source: 'sonaCoordinator (in-memory, resets per process)', so every hook reinitialises it (random A, B=0), applies that call's signals, then discards the weights; only patterns.json/stats.json persist. The kit therefore persists what ruflo throws away: a single cumulative micro-LoRA in .claude-flow/neural/lora-live.json, advanced inline by the statusline (mtime+TTL gated) by feeding each new pattern ruflo distils from your work through the genuine @ruvector/ruvllm 2.5.6 gradient path (real since F4 fixed), weighted by ruflo's own per-pattern confidence (no fabricated reward). The init RNG is seeded and weights are restored each tick, so the value is deterministic (no random-init noise) and cumulative β€” it climbs as you work. Honest scope: a kit-persisted mirror of ruflo's discarded adapter, fed ruflo's real confidence-weighted patterns. Not shown: the LoRA amplification factor (needs a frozen base W; the micro-LoRA is a standalone residual adapter with none) or a live reward curve (ruflo neural train's WASM path records trajectories, not signals β†’ 0). Refreshed automatically on render and by ruflo-lora-track / ruflo-neural-train / ruflo-resync.
  • πŸŽ“ Agentic QE β€” V<version> is the installed agentic-qe package version (read from its package.json, mirroring RuFlo V<x> in ruflo's header); πŸŽ“ patterns / 🧭 traj / 🧬 vec / πŸ’Ύ size from a few guarded sqlite3 reads of .agentic-qe/memory.db (the vec count comes from qe_pattern_embeddings, falling back to vectors/embeddings across aqe versions). The branch is already in ruflo's header line, so it's not repeated here.

πŸ” Keeping it working after upgrades

Every npm install -g ruflo@latest (or agentic-qe@latest) re-resolves dependency pins, drops the native binaries again, and regenerates the status line β€” so self-learning goes dormant and the footer disappears. You don't have to remember everything an upgrade wipes:

npm install -g ruflo@latest     # or agentic-qe@latest
ruflo-resync                    # ✨ one command heals it all
ruflo-resync --aqe              # …and also refresh agentic-qe skills

⚠️ On npm β‰₯ 11.17, ruflo-resync is now more necessary, not less. npm 11.17 introduced allow-scripts, which blocks packages' install/postinstall scripts by default β€” including better-sqlite3's prebuild-install and node-gyp. So an upgrade (even npm update -g) silently skips the native addon build, and ruflo falls back to buggy WASM (you'll see npm warn allow-scripts … during the upgrade, and ruflo-patch-native --check will report "needs patch" afterward). ruflo-resync heals it β€” its ruflo-patch-native step installs the native binary even under allow-scripts (verified on npm 11.17). Always run ruflo-resync after a global upgrade on npm β‰₯ 11.17.

After git pull on this kit itself: Run ./install.sh --minimal to copy the updated shell functions and CLAUDE.md template to ~/.config/ruflo/. It is idempotent and won't reinstall npm packages. This is the right step whenever you pull a new version of this repo β€” ruflo-resync only heals native binaries and self-learning; it does not redeploy the kit files.


🧬 Node version policy

As of ruflo v3.10.6 this is largely handled upstream (#2219): ruflo now forces better-sqlite3 β‰₯12.8.0 (Node 20–26 prebuilts) via an npm overrides entry, so the agentdb copies resolve to native v12 even on Node 24/26 β€” no more silent JS fallback by default, and the override survives upgrades.

Node ABI Stock backend (ruflo β‰₯3.10.6) What to do
≀ 22 (LTS) ≀ 127 βœ… native nothing
24 137 βœ… native (v12 via override) nothing β€” ruflo-resync re-asserts if ever needed
26 147 βœ… native (v12 via override) nothing β€” ruflo-resync re-asserts if ever needed

ruflo-patch-native is now a safety net rather than a requirement. It still matters in two cases: ruflo < 3.10.6 on Node β‰₯24 (no override yet β†’ WASM fallback), and agentic-qe (a separate package with its own native-SQLite init β€” ruflo-setup-aqe repairs it). It keys off Node's ABI and no-ops where unneeded, so it's always safe to run. Prefer to sidestep the whole topic? Run ruflo on Node 22 LTS.


πŸ™… Why not just the ruflo one-liner?

The popular quickstart works for an afternoon in one repo:

ruflo init --full --start-all --force && claude mcp add ruflo -- ruflo mcp start && ruflo doctor

…but it bakes in choices that don't age well across many projects and modern Node:

Concern The one-liner This kit
πŸ”­ Mindset Per-project, repeated every repo Configure the machine once, reuse everywhere
πŸ“„ .mcp.json Written with cloud-SaaS servers β€” easy to commit by accident Stripped; nothing project-scoped committed unless you mean it
πŸ’° Token cost MCP always on β†’ ~84k tokens/session MCP optional; CLI-first reference keeps sessions lean
πŸ’Ύ Memory on Node 24/26 healthy on ruflo β‰₯3.10.6 (upstream override); the one-liner never verifies it landed Native SQLite plus a real storeβ†’disk verification β€” and catches the <3.10.6 / agentic-qe gaps the override misses
🧠 Self-learning Looks "Not loaded"; no way to tell if it works Activated and proven via a train/persist test
↩️ Reversibility Manual cleanup uninstall.sh reverses the setup with backups (--this-project also reverts a repo's statusline)

It's not a replacement for ruflo β€” just a thin, reversible layer that picks safe defaults and closes the gaps.


πŸ“¦ What's in the box

ruflo-machine-ref/
β”œβ”€β”€ install.sh                 # machine bootstrap: prereqs + kit + heal (profiles, interactive)
β”œβ”€β”€ uninstall.sh               # clean reversal (opt-in --purge for global npm packages)
β”œβ”€β”€ bin/
β”‚   β”œβ”€β”€ ruflo-patch-native       # native better-sqlite3 (safety net; see Node policy)
β”‚   β”œβ”€β”€ ruflo-parity-test        # 20-check end-to-end memory smoke test
β”‚   β”œβ”€β”€ ruflo-enable-learning    # activate + assert ruvector self-learning
β”‚   β”œβ”€β”€ ruflo-learning-verify    # prove the learning loop persists
β”‚   β”œβ”€β”€ ruflo-improvement-eval   # causal self-improvement eval (route Q-learner)
β”‚   β”œβ”€β”€ ruflo-patch-route-learning # retired no-op on ruflo β‰₯3.10.6 (kept for older installs)
β”‚   └── ruflo-security-verify    # verify security scan/defend/secrets + aidefence
β”‚                                #   (ruflo-token-audit lives in the skill below; install.sh also puts it on PATH)
β”œβ”€β”€ shell/
β”‚   β”œβ”€β”€ ruflo-functions.sh     # ruflo-resync, ruflo-onboard, ruflo-setup-project, ruflo-daemon-gc, …
β”‚   └── ruflo-lib.sh           # shared helpers (deployed to ~/.config/ruflo for the bin scripts)
β”œβ”€β”€ claude/
β”‚   β”œβ”€β”€ ruflo-preamble.md          # always-on operating rules (top of the CLAUDE.md block)
β”‚   β”œβ”€β”€ ruflo-reference.md         # compact CLI-first CLAUDE.md block (always on)
β”‚   β”œβ”€β”€ ruflo-reference-full.md    # full reference, deployed on-demand (not auto-loaded)
β”‚   β”œβ”€β”€ aqe-reference.md           # conditional block β€” present only when agentic-qe is installed
β”‚   β”œβ”€β”€ superpowers-reference.md   # conditional block β€” house rules so superpowers + ruflo coexist
β”‚   └── skills/
β”‚       └── ruflo-token-audit/      # user-scope skill; bundles its own engine (scripts/) β†’ works standalone
└── docs/
    β”œβ”€β”€ BACKGROUND.md          # the full root-cause story (memory + learning + aqe + security)
    β”œβ”€β”€ TROUBLESHOOTING.md     # symptom β†’ diagnosis β†’ fix
    β”œβ”€β”€ CONDITIONAL-BLOCKS.md  # how the per-tool CLAUDE.md blocks work + how to add one
    β”œβ”€β”€ usage/                 # token-consumption findings & mitigation
    β”œβ”€β”€ upstream/              # upstream bug findings filed against ruflo / ruvector
    └── superpowers/           # the design specs + implementation plans

πŸ—‘οΈ Uninstall

./uninstall.sh                  # kit footprint only: bin scripts, template, CLAUDE.md block, rc line
./uninstall.sh --this-project   # ALSO revert the kit's per-project patches (statusline + local MCP config) in the current repo
./uninstall.sh --remove-ruflo   # ALSO npm-uninstall global ruflo (machine-wide; asks first)
./uninstall.sh --remove-aqe     # ALSO npm-uninstall global agentic-qe (machine-wide; asks first)
./uninstall.sh --purge          # --remove-ruflo + --remove-aqe
./uninstall.sh --dry-run        # preview without changing anything

The plain uninstall.sh removes only machine-level kit setup; your ruflo install, memory DBs, and project files are left untouched. The --remove-ruflo / --remove-aqe / --purge flags reach the global npm packages β€” they affect every project on the machine, so each one prompts to confirm (pass --yes to skip in scripts). Add --this-project from a repo root to revert that repo's per-project patches (statusline and any local-scope MCP config β€” these are repo-level, not machine-level). It backs up first and leaves all ruflo/agentic-qe data alone β€” use ruflo cleanup --force for per-project data.


πŸ“š Further reading

  • πŸ“– docs/BACKGROUND.md β€” the full root-cause investigation (Node/ABI/WASM, why self-learning looked dormant, the agentic-qe variant, the security surface)
  • πŸ”§ docs/TROUBLESHOOTING.md β€” symptom β†’ diagnosis β†’ fix runbook
  • 🧩 docs/CONDITIONAL-BLOCKS.md β€” how the per-tool CLAUDE.md blocks work (agentic-qe, superpowers), why superpowers needs "house rules," and how to add support for a new tool
  • 🧱 docs/superpowers/ β€” the design spec and implementation plan behind the self-learning work

πŸ™ Credits & citations

This kit stands on the shoulders of several projects and people:

Target: macOS / Linux Β· zsh or bash Β· ruflo 3.10.x Β· Node 20–26 Β· Python 3.10+. A thin, reversible layer β€” not a fork. PRs and issues welcome.

About

Make ruflo + Claude Code rock-solid on modern Node (24/26): native SQLite (no silent data loss), ~84k fewer tokens per session, and configure-once-per-machine setup that keeps every repo clean. A thin, reversible layer over ruflo.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors