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>
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.