* chore(quality-sweep): T1/T3/T5 — dep dedup, dead script removal, stale comment
T1 (dead-code — cli):
- Remove @claude-flow/memory, @claude-flow/embeddings, @claude-flow/security
from `dependencies` section of v3/@claude-flow/cli/package.json.
All three are dynamic imports only (await import(…)) and belong solely in
`optionalDependencies`. Listing them in both sections triggers the npm 11.x
arborist dedupe crash documented in issues #1147 / #2018.
T3 (stale scripts):
- Delete scripts/regenerate-witness.mjs — standalone implementation that writes
to verification.md.json at repo root (file does not exist; the per-OS
verification/{os}/manifest.md.json layout landed in a later ADR).
No CI reference, no caller. scripts/regen-witness.mjs is the canonical
delegating wrapper and is kept.
T5 (placeholder claims):
- Remove stale "Code subcommand (placeholder for future code analysis)" comment
from src/commands/analyze.ts — the command is fully implemented (LOC/TODO/
complexity/security analysis). The comment was left over from an old stub.
Tests: 1999 passing | 46 skipped (unchanged).
Co-Authored-By: RuFlo <ruv@ruv.net>
* chore(quality-sweep): T7/T10 — remove trivial assertion, tighten protobufjs override
T7 (test honesty):
- Remove expect(true).toBe(true) in coverage-router.test.ts catch block.
The catch handled "format not supported is acceptable" — the no-op assertion
was misleading (test passed trivially). Replaced with a comment-only path so
the intent is visible without fabricating a passing assertion.
T10 (dependency hygiene — protobufjs critical):
- Add overrides.protobufjs = >=7.5.6 to v3/@claude-flow/cli/package.json.
GHSA-xq3m-2v4x-88gg (critical, CVSS 9.8) affects <7.5.5.
GHSA-66ff-xgx4-vchm (high) and GHSA-2pr8-phx7-x9h3 (moderate) affect <=7.5.5.
The 7.5.4 transitive from @opentelemetry/otlp-transformer (via agentdb optional)
and onnxruntime-node (via @xenova/transformers optional) is now forced to 7.5.6+.
- Tighten ruflo/package.json overrides.protobufjs from >=7.5.5 to >=7.5.6
to cover the two additional advisories.
Tests: 1999 passing | 46 skipped (unchanged).
Co-Authored-By: RuFlo <ruv@ruv.net>
* chore(quality-sweep): T9 — update STATUS.md to 3.10.x reality; T8 done
T9 (docs vs reality):
- STATUS.md was pointing at branch fix/issues-may-1-3 / ruflo@3.6.24 (stale).
Updated snapshot reference to ruflo@3.10.2 / @claude-flow/cli@3.10.1 @ cdd5308d8.
- Corrected MCP tool count: 300 (3.6.x claim) -> 323 (actual unique tool names
verified by grepping name: fields in src/mcp-tools/**/*.ts).
- Corrected CLI command count: 49 (stale) -> 45 (actual: 10 core sync + 35 lazy
loaders in src/commands/index.ts).
- Updated test baseline: 1933 -> 1999 passing.
T8 (ADR vs implementation drift) — confirmed clean:
- All .ts/.mjs/.cjs/.json file paths cited in ADR-120 through ADR-130 verified
to exist in the working tree. False positives from .js regex truncation of .json
were investigated and eliminated. No real drift found.
docs/QUALITY-SWEEP.md:
- Session 1 summary written with commit SHAs.
- Territory table updated with actual statuses.
Tests: 1999 passing | 46 skipped (unchanged).
Co-Authored-By: RuFlo <ruv@ruv.net>
* chore(quality-sweep): T2/T5 — plugin audit clean; link stub issue
T2 (dead-code sweep — plugins):
- All 34 plugin dirs scanned. No duplicate skill names, no dead scripts.
- All skill-referenced scripts (ruflo-core/witness/*, ruflo-cost-tracker/scripts/*,
ruflo-adr/scripts/*) verified to exist.
- ruflo-graph-intelligence is a proper TS library package (not a skills plugin) —
0 skill files is correct, not a gap.
- stray plugins/ruvector.db confirmed gitignored (not tracked).
- T2 closed.
T5 (mocked/placeholder claims):
- Add issue #2140 reference to coordination_orchestrate's _note field so the
honest stub has a tracked follow-up path. The "executor: none" behavior is
intentional per ADR-093 F7 but now has a concrete issue to track completion.
T10 (high vuln triage, completing the analysis):
- All 25 high severity packages traced:
- vite: transitive from vitest (devDep) — not in production build
- axios: transitive from agentic-flow (optional dep)
- hono, fast-uri: transitive from agentdb (optional dep)
- Most others: transitive from @opentelemetry/* (optional via agentdb) or
@xenova/transformers (optional via @claude-flow/embeddings)
- ruflo/package.json already overrides @hono/node-server, @isaacs/brace-expansion,
flatted, tar, picomatch, path-to-regexp, undici, minimatch, cacache,
make-fetch-happen, express-rate-limit
- Remaining: agentdb/agentic-flow/vite/axios/sqlite3 all optional-only paths.
No direct production dependency vulnerability is unaddressed.
Tests: 1999 passing | 46 skipped (unchanged).
Co-Authored-By: RuFlo <ruv@ruv.net>
* chore(quality-sweep): T11 — witness regen + final territory closures
T11 (witness pass):
- Ran node scripts/regen-witness.mjs to update manifest.md.json to HEAD
commit ff685013a (T2/T5/T10 sweep commit).
- smoke-witness-marker-drift.mjs: 117 pass, 0 drifted, 0 file-missing.
- verification/macos/manifest.md.json and history.jsonl updated.
Territory closure update (docs/QUALITY-SWEEP.md):
- T2: closed — plugins scan clean (0 violations)
- T5: closed — all placeholder labels addressed
- T10: closed — all 25 high vulns traced to optional/dev transitive deps;
critical protobufjs fixed; production dependency paths are clean
- T11: closed — witness regen passes
Tests: 1999 passing | 46 skipped (unchanged throughout all sweep commits).
Co-Authored-By: RuFlo <ruv@ruv.net>
* chore(ci): #2141-T3 — wire smoke-memory-no-stray-db to CI (ADR-125 P7)
scripts/smoke-memory-no-stray-db.mjs existed in the repo but had no CI
wiring, so ADR-125 Phase 7 (vitest.setup.ts wipes stray DB artifacts
after npm test in @claude-flow/memory) was unguarded against regression.
Changes:
- .github/workflows/v3-ci.yml: add memory-no-stray-db-smoke job
(ubuntu-latest, node 22, installs @claude-flow/memory deps, then runs
node scripts/smoke-memory-no-stray-db.mjs)
- on.push.paths: add smoke script + vitest config paths so the job
triggers on relevant file changes
- on.pull_request.paths: same entries for PR CI
No source code changed. No test baseline impact.
Co-Authored-By: RuFlo <ruv@ruv.net>
* docs(status): #2141-T9 — correct plugin (32→33) and agent (43→45) counts
STATUS.md capability table was derived from a stale audit pass.
Direct filesystem counts at HEAD:
plugins with .claude-plugin/plugin.json: 33
(ruflo-workflows is the 33rd — added since previous count)
agent .md files in plugins/*/agents/: 45
(ruflo-workflows/agents/*.md and ruflo-neural-trader/agents/*.md
contribute the delta)
MCP tools (323) and CLI top-level commands (45) are unchanged from the
quality-sweep audit.
Co-Authored-By: RuFlo <ruv@ruv.net>
* docs(sweep): #2138 — update QUALITY-SWEEP.md with session 2 final state
Mark T3/T9 done. Update session log with session 2 commits. Update
territory status table to reflect the actual completion state of all 11
territories after both sessions.
T1 partial (66 dual exports tracked in #2141), T6 deferred to 3.12.0,
T11 done (117 verified at ff685013a). All others done.
Co-Authored-By: RuFlo <ruv@ruv.net>
* fix(ci): #2139 — memory no-stray-db smoke uses pnpm (workspace:* now in memory pkg)
The smoke wired in the quality sweep used `cd v3/@claude-flow/memory && npm install`.
The package's comment claimed it had no workspace:* deps, but it has since gained
sibling workspace deps (likely @claude-flow/shared) — npm now errors with
EUNSUPPORTEDPROTOCOL: Unsupported URL Type "workspace:".
Same fix pattern as the #2120 memory smoke + #2132 windows-init smoke:
pnpm install from v3/ + recursive build || true.
Co-Authored-By: RuFlo <ruflo-bot@users.noreply.github.com>
* fix(ci): #2139 — memory no-stray-db smoke needs install scripts for better-sqlite3
Previous fix used --ignore-scripts to dodge a side-effect of the
workspace install, but that blocked better-sqlite3's prebuild-install
postinstall, leaving the .node binding file absent.
The smoke runs `npm test` inside @claude-flow/memory which opens a
real sqlite DB via better-sqlite3 native bindings. Without the
postinstall, every test errors with "Could not locate the bindings
file" and the smoke fails with exit 1.
Drop --ignore-scripts. Add explicit `pnpm rebuild better-sqlite3` as
belt-and-suspenders.
Co-Authored-By: RuFlo <ruflo-bot@users.noreply.github.com>
* fix(smoke): #2139 — memory no-stray-db smoke ignores flaky perf test exits
The smoke's contract is "no stray DB artifacts after the test run" — it
runs npm test only for side effects (test bindings write/cleanup DB files),
not to validate correctness. @claude-flow/memory has timing-sensitive
HNSW perf assertions (e.g. "search latency < 200ms") that are flaky on
slower CI runners (212ms observed).
Demote non-zero test exit to a warning. The file-leak check below is what
this smoke actually guards.
Co-Authored-By: RuFlo <ruflo-bot@users.noreply.github.com>
---------
Co-authored-by: RuFlo <ruflo-bot@users.noreply.github.com>
Three docs for three audiences instead of two:
- Status — what currently works (capability counts, test baselines,
recent fixes, what's next)
- User Guide — daily reference (deep, every-flag-documented)
- Verification — cryptographic witness, run `ruflo verify`
docs/STATUS.md (new):
Overview + Usage + Status in one document. Pulls live numbers
(300 MCP / 49 CLI / 32 plugins / 43 agents from inventory script
+ 1933/1933 vitest baseline + ADR-093/095/096/097 status).
Acts as the "is it ready?" doc — complements USERGUIDE.md
(the "how do I?" doc) and verification.md (the "trust but
verify" doc).
README.md:
Documentation section restructured to a 3-row table with
audience-keyed descriptions. User Guide section index kept
intact. No other content churn — the pitch + install +
feature sections are unchanged.
Closes the user request for a separate overview/usage/status doc
plus a README cross-link to verification.md.