architectural-remove-wg

Architectural: remove wg_* MCP tool integration — agents use bash + CLAUDE.md/AGENTS.md + wg agent-guide skill

Metadata

Statusdone
Assignedagent-2288
Agent identityf51439356729d112a6c404803d88015d5b44832c6c584c62b96732b63c2b0c7e
Modelcodex:gpt-5.5
Created2026-05-04T15:14:45.423255690+00:00
Started2026-05-04T15:16:13.487563470+00:00
Completed2026-05-04T17:40:55.439945887+00:00
Tagspriority-high,architecture,simplification,tools,mcp, eval-scheduled
Eval score0.93
└ blocking impact0.92
└ completeness0.95
└ coordination overhead0.90
└ correctness0.97
└ downstream usability0.93
└ efficiency0.84
└ intent fidelity0.77
└ style adherence0.94

Description

Description

Remove the wg_* MCP tool integration that exposes wg commands as Claude Code / Codex MCP tool calls. Replace with the standard pattern: agents read CLAUDE.md (or AGENTS.md), see 'use wg via bash', read wg agent-guide for the role contract, and invoke wg from bash like any other CLI tool.

User direct quote 2026-05-04: 'we might want to remove the wg_* tooling. it is just confusing the system. it instead needs to see what's in CLAUDE.md or AGENT.md... and the skill that codex/claude can acquire by seeing wg quickstart. it needs to know to run wg stuff in bash and the tool list with wg stuff is messing it up. imo remove.'

Why this is the right call

Current architecture: agents have BOTH ways to invoke wg available simultaneously:

  • Read CLAUDE.md/AGENTS.md → 'use wg via bash'
  • Tool list shows wg_* MCP tools → also available as native tool calls

Result: agents oscillate between paths, sometimes prefer one over the other inconsistently, occasionally call wg_* tools when they should use bash (or vice versa). Each wg_* tool is also a maintenance burden — schema needs to track CLI surface; drift between them causes silent bugs.

Simplification: one path, the bash CLI. CLI is the source of truth. Tools that exist for any other reason (Read, Edit, Bash, etc.) stay; wg-specific tools go.

CLAUDE.md and AGENTS.md are now lock-step (5389 bytes each, fix-agents-md shipped). Both delegate to wg agent-guide for the universal contract. So the documentation layer is in good shape. The change here is removing the redundant tool-call path.

Scope

Remove

  • All wg_* MCP tool definitions (likely in src/mcp/ or a similar dir)
  • Any code that registers these tools with the agent's tool list
  • Any docs that mention them as a recommended path
  • Tests for the wg_* tools

Preserve

  • CLAUDE.md / AGENTS.md text saying 'use wg via bash'
  • wg agent-guide content (the universal role contract)
  • wg quickstart content (orientation)
  • All non-wg-specific MCP tools (Read, Edit, Bash, etc.)
  • Workgraph CLI itself (untouched — that's the source of truth)

Update

  • CLAUDE.md / AGENTS.md / agent-guide / quickstart: ensure they emphasize 'use bash for wg' clearly. If any text says 'use the wg_X tool' it gets rewritten.
  • Tests: any agent-behavior tests that asserted wg_* tools were used → rewritten to assert bash is used.

Validation

  • Failing test or manual repro: spawn an agent on a task; verify the tool list does NOT include wg_* tools
  • Verify the agent successfully completes a task using bash invocation of wg (no degradation in agent behavior)
  • CLAUDE.md / AGENTS.md / agent-guide content reviewed: emphasizes bash for wg, no remaining wg_* tool references
  • grep across the codebase: zero wg_* MCP tool registration code remaining (outside of removal-related migration / changelog)
  • Live smoke: a chat agent in a fresh project orients via wg quickstart, sees the bash recipe, uses it correctly
  • No regression of non-wg-specific tools (Read, Edit, Bash, etc.)
  • cargo build + cargo test pass
  • cargo install --path . was run before claiming done

Process note

Per the user's 'skip back-compat ceremony' standing rule: hard removal, not deprecation. Single user. The agents adapt to the new tool list naturally — they're stateless across sessions; next session just sees the smaller tool list.

After this lands, future agent confusion about 'should I use wg_X or bash wg X' goes away — only one option exists.

Depends on

Required by

Log