mirror of
https://github.com/ruvnet/ruflo.git
synced 2026-09-14 14:01:28 +08:00
83e536396f
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).
183 lines
4.4 KiB
JSON
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"]
|
|
}
|
|
}
|
|
}
|