Files
Reuven 414a79d56c feat(ruflo-rvf): adopt plugin contract — cross-plugin RVF ownership table (ADR-0001)
Plugin already at v0.2.0 with 1 agent + 2 skills + 1 command. The
contract pieces were missing.

RVF (RuVector Format) cognitive containers appear in three plugins.
ADR-0001 makes the ownership explicit:
- Portable memory + session persistence → ruflo-rvf (this plugin)
- Browser sessions as RVF → ruflo-browser ADR-0001 (each session is an
  RVF container with manifest, trajectory, screenshots, snapshots,
  cookies, findings)
- RVF tooling (10 subcommands) → ruflo-ruvector ADR-0001
  (ruvector rvf create/ingest/query/status/segments/derive/compact/
  export/examples/download)

This plugin sits on top of ruvector's tooling and feeds browser's
session-as-RVF model.

- ADR-0001 (Proposed) at docs/adrs/0001-rvf-contract.md
- README adds Compatibility (pin v3.6), Cross-plugin RVF ownership
  table (3 sibling-ADR cross-references), Namespace coordination
  (claims rvf-sessions; defers to ruflo-agentdb ADR-0001),
  Verification + Architecture Decisions
- plugin.json keywords add mcp, cognitive-containers, lineage-tracking
  (already at v0.2.0)
- scripts/smoke.sh — 10 structural checks: version + keywords, both
  skills + agent + command present, v3.6 pin, namespace coordination,
  rvf-sessions claimed, browser-RVF cross-reference, ruvector RVF
  tooling cross-reference, encryption-at-rest (ADR-096) block intact,
  ADR Proposed, no wildcard tools

Verification: bash plugins/ruflo-rvf/scripts/smoke.sh → 10/10

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-05-04 20:35:32 -04:00

3.8 KiB

ruflo-rvf

RVF format for portable agent memory, session persistence, and cross-platform transfer.

Install

/plugin marketplace add ruvnet/ruflo
/plugin install ruflo-rvf@ruflo

Features

  • RVF format: Portable vector memory with embeddings, metadata, and causal graphs
  • Session persistence: Save and restore complete agent sessions across conversations
  • Cross-project transfer: Export and import knowledge between projects
  • Claude memory bridge: Import Claude Code auto-memories into AgentDB
  • Format migration: Upgrade RVF files across versions

Encryption at rest (ruflo 3.6.25+)

Sessions persisted by this plugin land at .claude-flow/sessions/*.json, which are written through fs-secure.writeFileRestricted({encrypt:true}) per ADR-096. Behavior under the gate:

  • Off by default (CLAUDE_FLOW_ENCRYPT_AT_REST unset / falsy) — sessions are plaintext JSON at mode 0600, same as ruflo 3.6.24 and earlier.
  • On (CLAUDE_FLOW_ENCRYPT_AT_REST=1 + CLAUDE_FLOW_ENCRYPTION_KEY set to 64-char hex or 44-char base64) — each session save is AES-256-GCM with RFE1 magic-byte prefix. Session restore transparently decrypts via the magic sniff; legacy plaintext sessions still load unchanged during migration.

When exporting RVF files for cross-machine transfer, the encryption gate does NOT apply to the exported bytes — the encryption is at-rest on the originating host. If the RVF is itself sensitive, transport security (sealed boxes / signed blobs) is the next phase per the ADR roadmap.

Confirm the gate state with ruflo doctor -c encryption.

Commands

  • /rvf -- Memory stats, saved sessions, storage metrics

Skills

  • rvf-manage -- Manage RVF files for portable memory
  • session-persist -- Persist and restore agent sessions

Compatibility

  • CLI: pinned to @claude-flow/cli v3.6 major+minor.
  • Verification: bash plugins/ruflo-rvf/scripts/smoke.sh is the contract.

Cross-plugin RVF ownership

RVF (RuVector Format) cognitive containers appear in three plugins. Each owns a different slice:

Slice Owner What it does
Portable memory + session persistence ruflo-rvf (this plugin) High-level skills for save/restore, cross-machine transfer
Browser sessions as RVF ruflo-browser ADR-0001 Each browser session is allocated as an RVF container at session-start (manifest, trajectory, screenshots, snapshots, cookies, findings)
RVF tooling (10 subcommands) ruflo-ruvector ADR-0001 `ruvector rvf create

This plugin sits on top of ruvector's tooling and feeds browser's session-as-RVF model.

Namespace coordination

This plugin owns the rvf-sessions AgentDB namespace (kebab-case, follows the convention from ruflo-agentdb ADR-0001 §"Namespace convention"). Reserved namespaces (pattern, claude-memories, default) MUST NOT be shadowed.

rvf-sessions indexes saved session manifests + their RVF container paths. Accessed via memory_* (namespace-routed).

Verification

bash plugins/ruflo-rvf/scripts/smoke.sh
# Expected: "10 passed, 0 failed"

Architecture Decisions

  • ruflo-ruvector — exposes the ruvector rvf * tooling this plugin sits on top of
  • ruflo-browser — uses RVF containers for session-as-skill artifacts (ADR-0001 there)
  • ruflo-agentdb — namespace convention owner