mirror of
https://github.com/ruvnet/ruflo.git
synced 2026-11-09 22:13:39 +09:00
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.