Source-level parity checks across pen-mcp's three derived artifacts: Source of truth: ELEMENT_TOOL_DEFINITIONS array Derived 1: ELEMENT_TOOL_NAMES set (runtime dispatch filter) Derived 2: handler file at tools/<kebab-case>.ts Derived 3: switch branch in handleElementToolCall Checks: - ≥42 tools registered (floor) - Every tool name matches add_[a-z_]+_v0 - Every tool has a handler file at the expected kebab path - Every handler file exports handle<PascalName> - Every handler imports its matching build<Name> from pen-core - Every tool has a switch branch in the runtime dispatcher - Every switch branch actually calls the handler (no copy-paste typos where a case dispatches to the wrong handler) - No orphan handler files (every tools/add-*-v0.ts maps to a name) - No duplicate tool names - ELEMENT_TOOL_NAMES set === ELEMENT_TOOL_DEFINITIONS names This is the pen-mcp-side counterpart to apps/web's shim-server-parity.test.ts. Together they guard against drift on both client and server sides of the N-tool integration. |
||
|---|---|---|
| .. | ||
| agent-native@e1f90cab96 | ||
| pen-acp | ||
| pen-ai-skills | ||
| pen-core | ||
| pen-engine | ||
| pen-figma | ||
| pen-mcp | ||
| pen-react | ||
| pen-renderer | ||
| pen-sdk | ||
| pen-types | ||
| CLAUDE.md | ||