Commit Graph

2 Commits

Author SHA1 Message Date
Reuven 3abfb5d0aa chore(verification): regenerate inventory + fix CRLF bug in extractor
Audit (via goal-planner agent) flagged 6 stale entries: 5 new MCP tools
in browser-session-tools.ts + 1 new agent (dossier-investigator in
ruflo-goals). Counts now 305 MCP / 49 CLI / 32 plugins / 44 agents.

Also fixes a latent bug in scripts/inventory-capabilities.mjs that
extractAgents() never extracted anything on Windows checkouts because
the frontmatter regex `/^---\n([\s\S]*?)\n---/` requires LF. On a
CRLF working tree it returns 0 agents while silently treating the
result as authoritative. Made the regex CRLF-tolerant
(`/^---\r?\n([\s\S]*?)\r?\n---/`) so the script is platform-portable;
this is what unblocked today's regen on a Windows machine.

Three files updated in lockstep:

  - scripts/inventory-capabilities.mjs  — CRLF-tolerant frontmatter
  - verification-inventory.json         — re-extracted, sorted, deterministic
  - verification.md                     — narrative coverage line + the
    full embedded markdown tables (lines 410+) regenerated from the
    same run. The signed JSON witness manifest above (lines 70-317,
    Ed25519 sig at line 313) is untouched, so the cryptographic
    signature remains valid.

The cli-core split (#1764) created v3/@claude-flow/cli-core/src/mcp-tools/
with 13 hooks_*/memory_* defs, but every name there is a duplicate of
what the umbrella's hooks-tools.ts / memory-tools.ts already register —
no new MCP surface, so the script's hard-coded MCP_TOOLS_DIR pointing
at v3/@claude-flow/cli/src/mcp-tools is currently correct. If cli-core
ever ships a unique tool, the script will silently miss it; worth a
follow-up to scan both dirs and de-duplicate.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-05-05 22:18:18 -04:00
Reuven 52a96f39a2 docs(verification): add full capability inventory — 300 MCP tools / 49 CLI / 32 plugins / 43 agents
Expands verification.md from a 27-fix regression witness into a
full capability map per the user request. Iteration 1 of task #24:
ship the auto-extracted inventory; per-capability witness signing
(#25) and functional smoke tests (#26) follow.

scripts/inventory-capabilities.mjs (new, 200 lines):
  - Parses MCP tool definitions out of v3/@claude-flow/cli/src/mcp-tools/*.ts
    by matching the literal `name: '...'` pattern; pairs each with the
    nearest `description: '...'` and the source file path.
  - Parses CLI commands out of src/commands/*.ts via the
    `export const fooCommand: Command = { name, description }` shape.
  - Parses plugin manifests from plugins/ruflo-*/.claude-plugin/plugin.json.
  - Parses agent definitions from plugins/*/agents/*.md frontmatter.
  - Output is sorted + deterministic so re-running this script never
    churns the file.
  - --json flag emits a sidecar consumable by the witness signer in #25.

verification.md (358 → 815 lines):
  Appended new "Capability inventory (auto-extracted)" section with
  four tables — every MCP tool, CLI command, plugin, and agent
  cited with source-file references. The existing 27-fix witness
  section remains primary; the inventory complements it.

verification-inventory.json (new, 85K):
  Machine-readable sidecar. Columns match the markdown tables.
  This is the input for iteration 2 (#25) — the witness signer
  will SHA-256 each capability's source/dist file and append a
  `fixes[].id` entry to verification.md.json so `ruflo verify`
  can confirm every capability byte-for-byte.

Today's snapshot:
  300 MCP tools across 28 mcp-tools/*.ts files
  49 CLI commands across src/commands/*.ts
  32 plugins under plugins/ruflo-*
  43 agent definitions under plugins/*/agents/*.md

Tasks created:
  #24 verification.md: full capability inventory + witness (this iter)
  #25 verification: per-MCP-tool witness signing (next)
  #26 verification: functional smoke tests for `ruflo verify`

The eventual target — `ruflo verify --functional` — round-trips each
of the 300 MCP tools through the in-process server and checks the
expected response shape, so verification confirms capability not
just bytes.
2026-05-03 21:34:22 -04:00