Content-addressed evidence for DSH configuration winners and shadowed sources
Server defines 4 tools with basic schemas and descriptions, but significant gaps limit production readiness. Tool names lack clear action verbs (config_origin_inspect_inline vs inspect_config_origin_inline). Descriptions are present but minimal (10-60 chars, below the 50-200 char baseline for LLM optimization). Parameter descriptions are absent or trivial, recordingJson and recordingPath lack guidance on format, constraints, or error cases. Output schemas are undocumented; tools return JSON but no schema is declared for downstream tool chaining. Error handling is minimal, no recovery guidance or actionable error messages.
Inspect one bounded inline redacted origin recording.
Verify inline origin and shadowing evidence without filesystem access.
Inspect an explicit value-redacted configuration-origin recording.
Verify precedence winners, value digests, shadowed sources and observation gaps; write one content-addressed report.
Tool names lack action verbs. 'config_origin_inspect_inline' should be 'inspect_config_origin_inline' or 'inspect_origin_recording'. LLMs infer intent from the verb, current names bury the action.
Parameter descriptions are missing or trivial. 'recordingJson' and 'recordingPath' lack guidance on format, max size, encoding, or what happens on invalid input. LLMs cannot infer constraints from names alone.
Output schemas are undocumented. Tools return JSON objects but no schema is declared for what fields to expect. Downstream tool chaining and LLM planning are blocked without knowing the response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2025-06-18+ | v2 |
Filesystem tools (dsh_config_origin_inspect, dsh_config_origin_verify) have no visible explicit schema registration in index.js.
Error handling lacks recovery guidance. No tool documents what errors are retryable, what the LLM should do on failure, or how to correct invalid input. A 'max 4MB' constraint is mentioned in code but not in parameter descriptions.