Set up flywheel prerequisites for this project.
Set up the agent-flywheel for this project. $ARGUMENTS
Check and configure all prerequisites. For each missing tool, ask the user before installing. On refusal, print the manual install command and continue.
Before checking individual tools, count how many of the ACFS stack tools are missing (br, bv, ntm, dcg, cass, cm, agent-mail). Run br --version, bv --version, ntm --version, dcg --version, cass --version, cm --version, and python3 -c "import mcp_agent_mail" via Bash to check.
If 3 or more are missing, offer the fast path:
"Multiple ACFS stack tools are missing. Install the full stack at once? This installs br, bv, ntm, dcg, cass, cm, agent-mail, and more."
Prerequisites for the stack script: curl, uv, and python3 must be on PATH. Check these first; if any are missing, skip the shortcut and fall through to individual installs.
On consent, run via Bash:
curl -fsSL "https://raw.githubusercontent.com/DavidSchargel/dicklesworthstone-acfs-stack-for-macos/main/dicklesworthstone-stack.sh" -o /tmp/dicklesworthstone-stack.sh && chmod +x /tmp/dicklesworthstone-stack.sh && /tmp/dicklesworthstone-stack.sh install
After the stack installer completes, re-check each tool below — skip the install prompt for any that are now present and just report their version.
On refusal, fall through to individual tool checks.
The compiled mcp-server/dist/ is committed with the plugin, so it should work out of the box after /plugin install. Verify mcp-server/dist/server.js exists relative to the plugin root. If missing (e.g. contributor checkout without dist), instruct: cd mcp-server && npm ci && npm run build.
Verify the MCP server is loaded in this Claude Code session.
ToolSearch("flywheel_profile") to check if flywheel tools are available./reload-plugins.Run br --version via Bash.
.beads/ directory. If missing, offer to run br init.curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/beads_rust/main/install.sh" | bashRun bv --version via Bash.
brew is on PATH.
brew install dicklesworthstone/tap/bvcurl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/beads_viewer/main/install.sh" | bashTest liveness: curl -s --max-time 3 http://127.0.0.1:8765/health/liveness via Bash.
health_check via agent-mail MCP tool.python3 -c "import mcp_agent_mail" via Bash.
nohup uv run python -m mcp_agent_mail.cli serve-http > /dev/null 2>&1 &, wait 3 seconds, re-check liveness.curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/mcp_agent_mail/main/scripts/install.sh" | bash -s -- --yesRun ntm --version via Bash.
curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/ntm/main/install.sh" | bashAfter ntm is installed, verify it's usable for THIS project. Installation alone is not enough — ntm spawn <name> resolves to projects_base/<name> and fails (or lands in the wrong cwd) if the current project isn't reachable under projects_base. The flywheel's planning/impl phases will silently fall back to Agent() without this check.
NTM_BASE=$(ntm config show 2>/dev/null | awk -F'"' '/^projects_base/ {print $2}')
PROJECT_BASENAME=$(basename "$PWD")
echo "ntm projects_base: $NTM_BASE"
echo "current project: $PROJECT_BASENAME"
[ -d "$NTM_BASE/$PROJECT_BASENAME" ] && echo "OK: $NTM_BASE/$PROJECT_BASENAME exists" || echo "MISSING: $NTM_BASE/$PROJECT_BASENAME"
If MISSING, ask the user how to resolve:
AskUserQuestion(questions: [{
question: "ntm is installed but projects_base=<NTM_BASE> doesn't contain <PROJECT_BASENAME>. How should I configure it?",
header: "ntm setup",
options: [
{ label: "Symlink project under projects_base", description: "ln -s $PWD $NTM_BASE/$PROJECT_BASENAME — keeps ntm's default base, adds this project to it (Recommended)" },
{ label: "Change projects_base to current parent", description: "ntm config set projects_base $(dirname $PWD) — affects all future ntm sessions" },
{ label: "Skip ntm configuration", description: "Flywheel will use Agent() fallback for parallel work" }
],
multiSelect: false
}])
ln -s "$PWD" "$NTM_BASE/$PROJECT_BASENAME" (fail softly if it already exists).ntm config set projects_base "$(dirname "$PWD")" — warn the user this affects every project ntm manages.After any fix, re-run the directory check to confirm $NTM_BASE/$PROJECT_BASENAME now resolves.
Run dcg --version via Bash (or check if the dcg hook exists in .claude/settings.json).
curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/destructive_command_guard/master/install.sh" | bash -s -- --easy-modeIf dcg is installed, also verify that a PreToolUse hook exists in .claude/settings.json that blocks destructive commands. If not, create one:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash -c 'echo \"$CLAUDE_TOOL_INPUT\" | jq -r .command | grep -qiE \"(rm\\s+-rf|git\\s+reset\\s+--hard|git\\s+clean\\s+-f|git\\s+checkout\\s+\\.\\s|git\\s+push\\s+--force|drop\\s+table|truncate\\s+table)\" && echo \"BLOCKED: Destructive command detected. Ask the user for explicit permission.\" && exit 1 || exit 0'"
}
]
}
]
}
}
If .claude/settings.json already exists with other hooks, merge the PreToolUse entry rather than overwriting.
Run cass --version via Bash.
curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/coding_agent_session_search/main/install.sh" | bash -s -- --easy-mode --verifyRun cm --version via Bash.
curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/cass_memory_system/main/install.sh" | bash -s -- --easy-mode --verifyCheck these silently via <tool> --version and report in the health checklist. Do not prompt to install.
curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/slb/main/scripts/install.sh" | bashcurl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/ultimate_bug_scanner/master/install.sh" | bash -s --curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/coding_agent_account_manager/main/install.sh" | bashcurl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/repo_updater/main/install.sh" | bashcurl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/meta_skill/main/install.sh" | bashCall install_precommit_guard via agent-mail MCP tool with project_key and code_repo_path set to the current working directory.
Call register_agent via agent-mail MCP tool with project_key set to the current working directory and agent_name: "Orchestrator".
Display a summary with all tools grouped by tier:
REQUIRED
br v1.x.x — beads initialized
bv v1.x.x
agent-mail — healthy
RECOMMENDED
ntm v1.x.x
dcg v1.x.x
cass v1.x.x
cm v1.x.x
OPTIONAL
slb — not installed
ubs — not installed
caam — not installed
ru — not installed
ms — not installed
CONFIGURATION
pre-commit guard installed
MCP server loaded
agent registered as "Orchestrator"
Use a checkmark for passing items and an X for failed/skipped items. For any X items in the Required or Recommended tiers, repeat the manual install command below the checklist.
If ALL Required items pass: "All prerequisites met. You can now run /start."
If ANY Required item failed: "Do not run /start until all Required items pass. Fix the items marked above and re-run /flywheel-setup."
使用 Arthas 的 watch/trace 获取 EagleEye traceId / 获取请求的 traceId