Files
ruvnet__ruflo/v3/@claude-flow/cli/.claude/settings.json
rUv 83e536396f fix(scaffold): add dead-reference guard + deterministic CLI remap (ADR-382 Part C) (#2974)
Adds scripts/smoke-init-scaffold-references.mjs (ADR-382 Part C, #2971):
four static assertions over v3/@claude-flow/cli/.claude/** and the
plugin/marketplace surface, deriving the live MCP tool set and canonical
CLI form from source rather than hand-maintaining them.

  1. dead `npx claude-flow` (bare) invocation
  2. dead `mcp__claude-flow__<tool>` references not in the live registry
  3. plugin .mcp.json launches with no local-bin-first resolver (Part A regression guard)
  4. plugins/* directories missing from .claude-plugin/marketplace.json

Ships warn-only (no --strict) with a documented --strict flag to flip once
backlogs clear. Wired into .github/workflows/v3-ci.yml as a new job,
gated on plugins/*/.mcp.json, .claude-plugin/marketplace.json, and the
script itself (v3/@claude-flow/cli/.claude/** was already a trigger path).

Deterministic remap applied: 701 occurrences of bare `npx claude-flow`
across 142 files -> `npx @claude-flow/cli@latest` (mechanical, 1:1, verified
by rerunning the guard: check 1 701 -> 0, check 2 unchanged at 410). The
386 legacy `npx claude-flow@alpha` / `@v3alpha` occurrences elsewhere in
the same tree were left untouched (still-maintained dist-tags).

NOT remapped in this PR (tracked follow-up, per ADR-382 Part C's own
guidance not to guess): 410 dead `mcp__claude-flow__<tool>` occurrences
across 98 files, 54 distinct dead tool names (memory_usage: 53 files,
task_orchestrate: 41, sparc_mode: 34, swarm_monitor: 16, plus 50 more at
lower counts). Each requires per-call-site judgment about the surrounding
example's intent (store vs retrieve vs list, 1-line vs restructured
2-line orchestration calls) that a bulk regex pass cannot make safely.

Checks 3-4 are expected-red until ADR-382 Part A merges (plugin/ruflo-core
.mcp.json resolver + the 3 missing marketplace entries:
ruflo-agntcy, ruflo-bbs-federation, ruflo-business-pods).
2026-08-11 18:39:17 -04:00

183 lines
4.4 KiB
JSON

{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1",
"CLAUDE_FLOW_V3_ENABLED": "true",
"CLAUDE_FLOW_HOOKS_ENABLED": "true"
},
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "node "$CLAUDE_PROJECT_DIR/.claude/helpers/hook-handler.cjs" pre-bash",
"timeout": 5000
}
]
}
],
"PostToolUse": [
{
"matcher": "Write|Edit|MultiEdit",
"hooks": [
{
"type": "command",
"command": "node "$CLAUDE_PROJECT_DIR/.claude/helpers/hook-handler.cjs" post-edit",
"timeout": 10000
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "node "$CLAUDE_PROJECT_DIR/.claude/helpers/hook-handler.cjs" route",
"timeout": 10000
}
]
}
],
"SessionStart": [
{
"matcher": "startup|resume",
"hooks": [
{
"type": "command",
"command": "node "$CLAUDE_PROJECT_DIR/.claude/helpers/hook-handler.cjs" session-restore",
"timeout": 15000,
"continueOnError": true
},
{
"type": "command",
"command": "node "$CLAUDE_PROJECT_DIR/.claude/helpers/auto-memory-hook.mjs" import",
"timeout": 8000,
"continueOnError": true
}
]
}
],
"SessionEnd": [
{
"hooks": [
{
"type": "command",
"command": "node "$CLAUDE_PROJECT_DIR/.claude/helpers/hook-handler.cjs" session-end",
"timeout": 10000,
"continueOnError": true
}
]
}
],
"SubagentStart": [
{
"hooks": [
{
"type": "command",
"command": "node "$CLAUDE_PROJECT_DIR/.claude/helpers/hook-handler.cjs" status",
"timeout": 3000,
"continueOnError": true
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "node "$CLAUDE_PROJECT_DIR/.claude/helpers/auto-memory-hook.mjs" sync",
"timeout": 10000,
"continueOnError": true
}
]
}
]
},
"statusLine": {
"type": "command",
"command": "node "$CLAUDE_PROJECT_DIR/.claude/helpers/statusline.cjs"",
"refreshMs": 5000,
"enabled": true
},
"permissions": {
"allow": [
"Bash(npx @claude-flow*)",
"Bash(npx @claude-flow/cli@latest*)",
"Bash(node .claude/*)",
"mcp__claude-flow__:*"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)"
]
},
"attribution": {
"commit": "Co-Authored-By: ruflo-bot <ruflo-bot@users.noreply.github.com>",
"pr": "Generated with [claude-flow](https://github.com/ruvnet/claude-flow)"
},
"claudeFlow": {
"version": "3.1.0",
"enabled": true,
"modelPreferences": {
"default": "claude-opus-4-6",
"routing": "claude-haiku-4-5-20251001"
},
"agentTeams": {
"enabled": true,
"teammateMode": "auto",
"taskListEnabled": true,
"mailboxEnabled": true,
"coordination": {
"autoAssignOnIdle": true,
"trainPatternsOnComplete": true,
"notifyLeadOnComplete": true,
"sharedMemoryNamespace": "agent-teams"
}
},
"swarm": {
"topology": "hierarchical-mesh",
"maxAgents": 15
},
"memory": {
"backend": "hybrid",
"enableHNSW": true,
"learningBridge": {
"enabled": true,
"sonaMode": "balanced",
"confidenceDecayRate": 0.005,
"accessBoostAmount": 0.03,
"consolidationThreshold": 10
},
"memoryGraph": {
"enabled": true,
"pageRankDamping": 0.85,
"communityAlgorithm": "label-propagation"
},
"agentScopes": {
"enabled": true,
"scopes": ["project", "local", "user"]
}
},
"neural": {
"enabled": true
},
"security": {
"autoScan": true,
"scanOnEdit": true,
"cveCheck": true
},
"daemon": {
"autoStart": true,
"workers": ["map", "audit", "optimize", "consolidate", "testgaps", "ultralearn"]
},
"learning": {
"enabled": true,
"autoTrain": true,
"patterns": ["coordination", "optimization", "prediction"]
}
}
}