mq-mcp v1.3.0 — Orchestration boundary formalization
What's new
docs/ORCHESTRATION_CONTRACT.md
Formal caller boundary contract with 7 sections:
- Invocation contract (approval gate model: A/B=auto-invoke, C/D=explicit user approval)
- Return contract (fixed severity vocabulary, output structure, freshness guarantees)
- Side effect contract (declared persistent side effects table)
- Context flow diagram (priority order: ADRs > past_context > cross_file_ctx)
- Cross-repo contracts (mq-agent, repo-signal, mq-hal, mq-image-analyze)
- Profile access model (max safety class per profile)
- 7 always-true guarantees (path boundaries, no auto-commit, no secrets, stateless)
validate_orchestration_contract (new MCP tool — Class A)
12 deterministic checks, no API key required:
- ORCHESTRATION_CONTRACT.md exists and is fresh
2–3. All profile recommended_tools are registered in server.py - Per-profile max safety class enforced
- All write:true tools are Class C
- All Class D tools have subprocess:true
- Error return prefix consistency
Returns [PASS], [FAIL], [WARN] lines and a summary count.
Profile fixes
5 profiles had tools exceeding their declared max safety class — all corrected:
claude-desktop: removedhal_repo_report(Class D); max class updated to A/Bcodex: removedvalidate_project(Class D)mq-agent: removedhal_repo_report(Class D)openai-bridge: removedhal_repo_report(Class D)repo-only: removedvalidate_project(Class D); max class updated to A/C
Error prefix standardisation
review_file and review_diff sub-errors now use {tool_name} failed ({qualifier}): form.
Stats
- Tool count: 65 → 66
- All 48 tests pass
- release-check.sh passes