Synchronize rules and skills across AI coding assistants (Claude Code, Cursor, Gemini, OpenCode, Codex)
Single tool 'select' has a reasonable description (89 chars) and complete input schema with types and descriptions. However, the schema lacks critical details: no output schema documentation, no error handling guidance, no parameter constraints (e.g., min/max for options array), and no indication of side effects (opens browser, creates temp server). The tool name 'select' is generic and does not start with a clear action verb, 'open_selector' or 'multi_select_reorder' would be clearer. Parameter 'options' lacks format specification (what structure do items need?). No evidence of idempotency, retry safety, or recovery guidance. The tool appears to be a UI wrapper rather than a data-manipulation tool, which is unusual for MCP and raises questions about agent composability.
Multi-select reorder tool. Opens a short-lived local web page for checkbox selection and drag-and-drop reordering.
Tool name 'select' is generic and does not start with an action verb. 'open_selector', 'multi_select_reorder', or 'prompt_user_selection' would be clearer and help LLMs infer intent from the name alone.
No output schema documented. LLMs cannot plan downstream calls or extract results without knowing the structure of the response (e.g., does it return {selected: [...], ordered: [...], cancelled: bool}?).
Parameter 'options' lacks format specification. What structure do items need? Are they strings, objects with {id, label, description}? The code shows normalize_options() is called, but the expected input format is not documented.
No error handling guidance. The tool can fail (OSError on /dev/tty, timeout after 1 hour, browser not opening). Errors should guide the LLM on recovery: 'If browser fails, try MULTI_SELECT_REORDER_DIRECT_TTY=1' or 'Timeout after 1 hour, user may have closed the dialog.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Tool opens a local browser and creates a temporary HTTP server. This is a side effect (UI interaction) that should be explicitly documented. LLMs need to know this is not a pure data operation and may fail in headless environments.