Pre-build reality check for AI coding agents. Stop building what already exists.
Single-tool server with a well-designed, modern tool definition. The idea_check tool has a clear verb-noun name, comprehensive description with trigger phrases, properly typed parameters with enums and defaults, and structured output. However, output schema documentation is incomplete (no explicit return type schema in the visible code), and there are minor gaps in parameter descriptions. The description length (368 chars) and param annotation quality are solid. No critical naming or structural issues detected.
Check if a product idea already exists before building it. Use when users discuss new project ideas, ask about competition, market saturation, or whether something has been built before. Trigger phrases: "has anyone built", "does this exist", "check competition", "is this idea original", "有沒有人做過", "市場上有類似的嗎", "幫我查這個點子"
Output schema not explicitly documented in tool definition. The return type is dict with no schema definition visible; downstream tools cannot know the structure of fields like 'meta', 'next_step', 'signal', or their types.
Parameter 'depth' description is functional but lacks guidance on performance tradeoffs. 'Quick (GitHub + HN, fast) or deep (all sources in parallel)' tells what sources are queried but not latency expectations or when to choose each mode. For a tool exposed to agentic selection, this missing context may cause the LLM to misselect for user needs.
Parameter 'lang' enum restricted to ['en', 'zh'] with no description explaining fallback behavior, character support, or output format per language. If an unsupported language is passed, error guidance is absent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 77 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |
No error handling guidance visible in tool definition. The compute_signal, search_* functions may fail (network errors, rate limits, source unavailability) but the tool description does not explain recovery paths or categorize errors as retryable vs user-fixable.