M126 Bundle A — alwaysLoad MCP + plugin prune

Closes #1541 (alwaysLoad MCP servers) and #1544 (claude plugin prune wiring). CC 2.1.121 features.
CC 2.1.121 files 14 prod code unchanged 66/66 existing tests pass

#1541 — alwaysLoad MCP config

CC 2.1.121 added "alwaysLoad": true to MCP server config — flagged servers stay in the tool registry from session start. Skills no longer need to ToolSearch-probe before using these servers' tools.

Before .mcp.json

"memory": {
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-memory"],
  "env": { "MEMORY_FILE": ".claude/memory/memory.json" }
}

After .mcp.json

"memory": {
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-memory"],
  "env": { "MEMORY_FILE": ".claude/memory/memory.json" },
  "alwaysLoad": true  // CC 2.1.121+
}

alwaysLoad is set on memory, context7, and sequential-thinking — the universally-needed T2 trio. Tavily, fal, 21st-dev-magic stay deferred (feature-specific, API-key-gated).

Before 9 skills × probe

# STEP 0: Probe MCPs at skill start
ToolSearch(query="select:mcp__memory__search_nodes")
Write(".claude/chain/capabilities.json", ...)

if capabilities.memory:
    mcp__memory__search_nodes(query="...")

After 9 skills × annotated

# memory is alwaysLoad in .mcp.json (CC 2.1.121+, #1541) —
# probe below kept as fallback for older CC:
ToolSearch(query="select:mcp__memory__search_nodes")
Write(".claude/chain/capabilities.json", ...)

if capabilities.memory:
    mcp__memory__search_nodes(query="...")

Skills with inline probes touched: explore, assess, fix-issue, implement, brainstorm, verify, review-pr, cover, expect. The probe stays for CC < 2.1.121 fallback (the unknown alwaysLoad key is silently ignored on older CC). Canonical pattern updated in chain-patterns/references/mcp-detection.md + rules/probe-before-use.md.

#1544 — claude plugin prune wiring

CC 2.1.121 added claude plugin prune to remove orphaned auto-installed plugin dependencies. claude plugin uninstall <name> --prune cascades.

WhereWhat
/ork:doctorNew audit step: detect orphans via claude plugin list --json; suggest claude plugin prune
/ork:dreamNew Phase 7: Plugin Housekeeping — runs prune weekly (tracked via .claude/state/last-prune.txt)
/ork:setupPhase 5 cleanup tip mentions --prune cascade and the new plugin prune command

Decision matrix — which skill probes vs. directly invokes

MCPalwaysLoadTierWhy
memoryT2Used by every reflective skill (assess, explore, fix-issue, etc.)
context7T2Used by implement, fix-issue, cover for live docs lookup
sequential-thinkingT2Used by brainstorm, plan-heavy skills
tavilyT3Web research only; API-key gated; defer until needed
21st-dev-magicT3UI generation only; API-key gated; defer
falT3Multimodal generation; API-key gated; defer
agentationT3Disabled by default; opt-in via UI annotations workflow
ork-elicitT2Plugin-internal; loads on-demand from plugin entry