Skip to content

refactor: remove orphaned Self-MoA and Debate-Arbiter from MAP (#230)#240

Merged
azalio merged 1 commit into
mainfrom
refactor/remove-self-moa-debate
Jun 19, 2026
Merged

refactor: remove orphaned Self-MoA and Debate-Arbiter from MAP (#230)#240
azalio merged 1 commit into
mainfrom
refactor/remove-self-moa-debate

Conversation

@azalio

@azalio azalio commented Jun 19, 2026

Copy link
Copy Markdown
Owner

What

Removes the Self-MoA multi-variant pattern and the Debate-Arbiter cross-evaluation pattern from MAP entirely.

Why

The agent-boundary audit for #230 found both patterns were documented but never wired into any skill:

  • No /map-* surface dispatched the synthesizer or debate-arbiter agents.
  • No --self-moa flag was ever parsed (the map-efficient skill has zero Self-MoA logic).
  • There was no /map-debate skill at all.

They were dead weight (~2000 lines of orphaned agent prompts × rendered trees) plus a doc-vs-behavior contradiction: ARCHITECTURE.md described a DEBATE slash surface and a 3×Actor → 3×Monitor → Synthesizer → final Monitor Self-MoA chain that no code runs.

Changed

  • Deleted synthesizer.md + debate-arbiter.md agent templates (jinja source + both rendered trees).
  • Removed Actor "Self-MoA Support" and Monitor "Self-MoA Output Extension" prompt sections.
  • Removed debate-arbiter / synthesizer entries from agent_mcp_mappings (src/mapify_cli/config/mcp.py).
  • Scrubbed all Self-MoA / Debate docs from ARCHITECTURE.md, USAGE.md, INSTALL.md, WORKFLOW_FLOW.md and the plugin manifests (.claude-plugin/*); renumbered workflow + agent sections; agent count 11 → 9.
  • Updated tests/test_mapify_cli.py fallback-generator docstring.

Shipped agent roster is now 9: TaskDecomposer, Actor, Monitor, Predictor, Evaluator, Reflector, DocumentationReviewer, Research-Agent, Final-Verifier.

No runtime behavior changes — nothing dispatched these agents, so there is no quality/eval surface to regress (hence no llm-council consult needed). Historical planning/research docs that mention the concept are intentionally left as dated records.

Testing

  • make check green: ruff (all passed), mypy (no issues, 61 files), pyright, 2568 tests passed / 3 skipped, check-render (generated trees match source).

Part of #230

🤖 Generated with Claude Code

Both the Self-MoA multi-variant pattern (3×Actor → 3×Monitor →
Synthesizer → final Monitor) and the Debate-Arbiter cross-evaluation
pattern were documented across ARCHITECTURE.md, USAGE.md, INSTALL.md and
the plugin manifests but never wired into any skill: no /map-* surface
dispatched the synthesizer or debate-arbiter agents, no --self-moa flag
was ever parsed, and there was no /map-debate skill. They were dead
weight plus a doc-vs-behavior contradiction.

Removed:
- synthesizer.md and debate-arbiter.md agent templates (jinja source +
  both rendered trees)
- Actor "Self-MoA Support" and Monitor "Self-MoA Output Extension"
  prompt sections
- debate-arbiter / synthesizer entries from agent_mcp_mappings (mcp.py)
- all Self-MoA / Debate documentation in ARCHITECTURE.md, USAGE.md,
  INSTALL.md, WORKFLOW_FLOW.md and the plugin manifests

Shipped agent roster is now 9 (was advertised as 11): TaskDecomposer,
Actor, Monitor, Predictor, Evaluator, Reflector, DocumentationReviewer,
Research-Agent, Final-Verifier.

No runtime behavior changes — nothing dispatched these agents. Historical
planning/research docs that mention the concept are left as dated records.

make check green (ruff, mypy, pyright, 2568 tests, check-render).
@azalio azalio merged commit 17c69bc into main Jun 19, 2026
6 checks passed
@azalio azalio deleted the refactor/remove-self-moa-debate branch June 19, 2026 15:38
azalio added a commit that referenced this pull request Jun 19, 2026
…off (#230) (#241)

Document the explicit criterion in docs/ARCHITECTURE.md: keep a separate
sub-agent ONLY when it adds an independent/adversarial perspective; collapse
any pure-relay hop (a context that only paraphrases a prior agent's output,
emitting no new verdict) into its caller. It is a substance rule, not a
wiring rule.

Audit (ground truth = subagent_type="…" dispatch sites in the skill jinja
sources, not docs): all 8 pipeline-dispatched agents emit independent
verdicts and none is a relay. The only relay hops the doctrine condemns —
the Self-MoA synthesizer/debate-arbiter — were already collapsed in #240.

Resolve the orphaned documentation-reviewer (zero skill dispatch sites) as a
deliberate keep: unlike the removed relays it emits a unique, non-relay
docs-vs-source verdict, so it is retained as an optional, user-dispatchable
agent and now self-declares a "Dispatch status:" annotation.

Add tests/test_agent_dispatch_audit.py to enforce the invariant going
forward: any agent shipped with no dispatch site and not marked optional
fails the gate, preventing a silent orphan from recurring.

Closes #230
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant