Files
ruflo/scripts
Reuven 9d43d8fdb4 feat(verification): per-source-file MCP witnesses (task #25, iteration #51)
Extends verification.md.json from 27 fix-witnesses to 55 by adding 28
capability-witnesses — one per source file under
v3/@claude-flow/cli/src/mcp-tools/. Each new entry hashes the
compiled dist .js and pins a marker tool name that must remain
defined for the witness to verify.

scripts/sign-witness-from-inventory.mjs (new):
  Reads verification-inventory.json, groups MCP tools by source file,
  maps each src/mcp-tools/foo.ts → dist/src/mcp-tools/foo.js, and
  appends a `CAP-MCP-foo` fix entry. Idempotent — re-running replaces
  any pre-existing CAP-MCP-* entries instead of duplicating.

  Pipeline:
    1. node scripts/inventory-capabilities.mjs --json > verification-inventory.json
    2. npm run build (in v3/@claude-flow/cli)
    3. node scripts/sign-witness-from-inventory.mjs   # plant CAP-MCP-* entries
    4. node scripts/regenerate-witness.mjs            # re-hash + re-sign

Result for 3.6.25:
  preserved fix entries: 27 (F1..F12, G1..G7, #1697/#1698/#1691/#1721, ADR-094)
  CAP-MCP entries added: 28 (300 tools across 28 source files)
  total fixes:           55
  verified:              55 / 55 (all green)

End-to-end smoke test of the published 3.6.25 (npx -y ruflo@3.6.25):
  - MCP server initializes cleanly in stdio mode
  - tools/list returns 239 tool definitions
  - All major categories present: agent_*, memory_*, hooks_*, github_*,
    aidefence_*, federation_*, workflow_*, swarm_*, browser_*, terminal_*,
    ruvllm_*

Bridge integration validated locally (ruflo/src/mcp-bridge):
  - npm install in bridge dir → 69 packages clean
  - bridge spawns `npx -y ruflo mcp start` → 238 ruflo tools loaded
  - HTTP /mcp endpoint round-trips initialize, tools/list, tools/call
  - Real tool invocation: tools/call ruflo__agent_list returns
    {agents: [], total: 0, filters: {}} — expected empty-state shape
  - /health reports 3 builtin + 51 external = 54 total exposed
  - Clean shutdown on SIGTERM

Task #26 (functional smoke tests for `ruflo verify --functional`)
remains the next iteration: bake this manual smoke into a verify
subcommand that round-trips each MCP tool through the in-process
server.

GCP Cloud Run rebuild (which would pull 3.6.25 via `npm install -g
ruflo`) is out of scope here — no cloudbuild.yaml in the bridge dir
and config/config.json is a per-deployment secret. Local validation
above proves the publish is consumable; container rebuild on the
deployment side picks it up automatically.
2026-05-03 21:47:15 -04:00
..
2026-01-04 19:30:59 +00:00