Unified capability management for the DeepSeek Harness: catalog (ctx.capability) + meta_search/meta_invoke + Resident/On-demand/Disabled projection policy + 能力菜单 settings tab, in one installable bundle (server + browser).
Two tools with reasonable descriptions but critical schema gaps. meta_search has a complete input schema with proper types and descriptions (query, kind enum, limit). meta_invoke also has a complete schema (id, kind enum, args object). However, NEITHER tool documents its output schema, LLMs cannot plan downstream calls or extract required data without knowing what fields are returned. Descriptions are adequate (100-150 chars) but lack actionable context on when to use each tool vs alternatives. No error handling guidance. No tool annotations (readOnlyHint/destructiveHint). meta_invoke is a write operation but lacks confirmation/dry-run pattern. Tool names are reasonable (verb_noun style) but 'meta_' prefix is domain-specific jargon that doesn't clearly convey action to LLMs unfamiliar with the capability-menu system.
Execute a capability by its exact id (from meta_search) and kind. For tools (kind "tool", e.g. mcp__gongfeng__create_issue or a native tool such as bash), forwards to the underlying tool call with args. For skills (kind "skill", e.g. frontend-design), loads the full skill instructions and returns them as <skill_content> — no args needed. Always pass the same kind the search result reported.
Search and discover capabilities (tools and skills) by name, description, or tags. Returns matching capabilities with their metadata, schemas, and classification status.
No output schemas documented for either tool. LLMs cannot infer what fields meta_search returns (e.g., does it return capability_id, description, schema, tags?) or what meta_invoke returns (success/failure, result content, error details?). Without documented output, agents cannot chain tools or extract required data.
meta_invoke is a write operation (kind='tool' can execute arbitrary tools; kind='skill' loads instructions) but lacks error handling guidance, confirmation pattern, or dry-run support. Agents may invoke destructive tools without understanding consequences or recovery paths.
Tool names 'meta_search' and 'meta_invoke' use domain-specific 'meta_' prefix that does not clearly convey action to LLMs. Names should start with action verbs (search_capabilities, invoke_capability) to improve discoverability and intent clarity.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Parameter 'args' in meta_invoke accepts additionalProperties=true with no schema constraints. LLMs cannot validate what arguments are valid for a given tool_id without seeing the target tool's schema. No guidance on how to construct args for different capability types.
No pagination support visible in meta_search. If search returns many results, no limit enforcement or cursor/offset mechanism documented. Large result sets will blow context windows.