Skip to content

Bug: completion-gates-disagree-on-bug-route-potential-entry-tool #701

Description

@drmoisan
  • Work Mode: full-bug

Summary

The two orchestrator-state completion gates disagree about one entry of required_mcp_tools on a bug
route. The portable PowerShell gate applies a bug-route substitution and demands the bug-variant
potential-entry tool name; the MCP validator does not apply it and demands the feature-variant name.
No single checkpoint can satisfy both.

Environment

  • OS/version: Windows 11
  • Python version: not applicable; the two implementations are PowerShell and the bundled MCP validator
  • Command/flags used: Test-OrchestratorStateCompletionReadiness from .claude/lib/orchestrator-state/OrchestratorStateCompletion.psm1, versus the MCP orchestration-artifact validator with require_complete and require_model_routing
  • Data source or fixture: any artifacts/orchestration/orchestrator-state.json whose promotion-type is bug and whose route_id is large

Steps to Reproduce

  1. Author a complete orchestrator-state checkpoint for a bug on route large, satisfying every other completion requirement.
  2. Set required_mcp_tools to the routing-matrix list with the bug-variant substitution applied, and record a matching successful receipt.
  3. Run the portable PowerShell readiness function. It returns exit code 0.
  4. Run the MCP validator with require_complete. It fails.
  5. Reverse the substitution and re-run both. The results invert.

Expected Behavior

Both gates apply the same bug-route rule, so one checkpoint satisfies both. The PowerShell module
header describes itself as a row-by-row port of the validator surface, so the two are intended to
agree.

Actual Behavior

With the substitution applied, the PowerShell gate returns ExitCode 0 and the MCP validator returns:

Checkpoint required_mcp_tools must match routing matrix for route large.
Checkpoint missing successful MCP receipt: new_potential_entry.

Without the substitution, the PowerShell gate returns:

Checkpoint required_mcp_tools must match routing matrix for route large.

Logs / Screenshots

  • Attached minimal logs or screenshot
  • Snippet: both outputs are quoted verbatim in Actual Behavior above.

Impact / Severity

  • Blocker
  • High
  • Medium
  • Low

Medium rather than High: the authoritative gate is the PowerShell one, since that is what
.claude/hooks/validate-orchestrator-output.ps1 runs at SubagentStop. An orchestrator that conforms
to it completes correctly. The cost is that the MCP validator cannot be used as a green pre-check on
a bug route, so an agent that trusts it will either loop or fabricate a receipt to satisfy it.

Source

From: docs/features/potential/2026-08-29-completion-gates-disagree-on-bug-route-potential-entry-tool.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions