Skip to content

Add ruflo doctor components for the MiniLM picker (CLAUDE_FLOW_ROUTER_EMBEDDER) and MCP governance (RUFLO_MCP_ENFORCE_POLICY) #3418

Open

Description

@pacphi

ruflo doctor --component typesafe reports install/enable state for the typesafe agent picker,
but doctor has no equivalent component for:

  • the MiniLM picker (CLAUDE_FLOW_ROUTER_EMBEDDER=minilm) — currently the only way to confirm
    it's active is to run hooks route --task "..." and grep the printed embedder= marker, which
    works but wasn't designed as a health check;
  • MCP tool governance (RUFLO_MCP_ENFORCE_POLICY=1 + .harness/mcp-policy.json) — there's no
    doctor signal at all for "is enforcement actually active," only the audit log (Make the MCP tool-governance audit log path configurable and per-project, with rotation #3417),
    which only has data once a tool call has actually happened.

Adding both as doctor components (or doctor --json entries, #3416) would give a
single, designed-for-the-purpose health check instead of two different indirect probes.

Note: once #3415 is fixed, a governance component could report whether the running stdio entry point actually routes tools/call through the policy enforcer.

Activity

  1. pacphi commented on Sep 28, 2026

    @pacphi
    ContributorAuthor

    Re-checked on 3.47.0: versions, how to see the gap, and a sketch

    This adds the details the original request was missing, checked against the newest release.

    System info

    • macOS 27.0 (26A428), arm64; Node v26.4.0; npm 11.17.0
    • ruflo 3.47.0 (@claude-flow/cli 3.47.0); main at b14c79e6f7 (2026-09-27)

    How to observe it (disposable HOME and project)

    T=$(mktemp -d); mkdir -p "$T/home" "$T/p"; cd "$T/p"
    rf() { env -i PATH="$PATH" HOME="$T/home" TMPDIR="$T" TERM=dumb RUFLO_DAEMON_AUTOSTART=0 "$@"; }
    rf ruflo doctor --help | grep component      # ... auth, typesafe, metaharness   (no minilm, no governance)
    rf ruflo doctor -c minilm | head -4          # prints the full check list, exit 0
    rf ruflo doctor -c governance | head -4      # same
    rf env CLAUDE_FLOW_ROUTER_EMBEDDER=minilm ruflo hooks route --task "write unit tests for the parser" | grep embedder

    Actual:

    ✓ Version Freshness: v3.47.0 (up to date)
    ✓ Node.js Version: v26.4.0 (>= 20 required)
    ✓ npm Version: v11.17.0
    ⚠ Claude Code CLI: Not installed
    [hooks] Semantic router initialized: native VectorDb (HNSW, 16k+ routes/s), embedder=minilm
    

    Two things stand out:

    • An unknown -c value quietly runs every check instead of reporting that the component doesn't exist.
    • The only MiniLM signal is the hooks route line, and that probe is not read-only: it created .claude-flow/ in the empty project.

    Proposed approach (suggestion)

    Impact

    • Ruflo users: one read-only command would answer "is my picker and my policy actually on?" Today it takes a routing call that writes files, plus an audit log that stays empty until a tool call happens.
    • Downstream: agentic-kit's component panel could report these as proven rather than inferred. The JSON form (Add --json output to ruflo doctor #3416) would make them machine-readable.
  2. ruvnet commented on Oct 7, 2026

    @ruvnet
    Owner

    @/tmp/claude-0/-home-user-ruflo/99a198e7-2058-59ed-a922-018777f60b76/scratchpad/triage/i3418.md


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions