Generate a visual technology-stack inventory (TECH_STACK.html) from any codebase — languages, frameworks, databases, AI SDKs, testing, and infra. CLI + MCP server, stdlib-only scanner.
Two tools with complete schemas and reasonable descriptions, but significant gaps in parameter documentation and error handling. Tool names follow verb_noun convention (generate_tech_stack, list_tech_stack). Descriptions are adequate (120-180 chars) but lack actionable context for LLM selection. Input schemas present with types, but parameter descriptions are minimal or missing. No output schema documentation. Error handling is basic (existence checks only). Missing guidance on when to use each tool vs the other, and no recovery hints for common failures.
Scan a project directory and generate a TECH_STACK.html visual page. Includes a stat row, layered architecture diagram, bar chart summary, and colour-coded tool cards. Detects languages, frameworks, databases, AI SDKs, testing, observability, security, and infrastructure tools.
Scan a project and return the tech stack as structured JSON (no HTML file written). Good for programmatic use.
Parameter descriptions incomplete. 'project_dir' in both tools lacks format guidance (absolute vs relative, must exist?). 'output_file' lacks default behavior explanation. 'open_browser' lacks rationale for when to use.
No output schema documented. LLMs cannot plan downstream operations or extract fields. generate_tech_stack returns text summary; list_tech_stack returns JSON with 'project', 'total_tools', 'categories', structure should be declared in tool definition.
Tool selection ambiguity. Descriptions do not explain when to call generate_tech_stack vs list_tech_stack. LLM must infer: one writes HTML+opens browser, one returns JSON. Add explicit guidance: 'Use generate_tech_stack for visual reports; use list_tech_stack for programmatic access or piping to other tools.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Error handling lacks recovery guidance. 'Directory not found' and 'No recognizable dependency files found' are bare messages. Should suggest: 'Directory not found. Verify the path is absolute and exists. Current working directory: <cwd>.' and 'No dependency files detected. Supported: package.json, requirements.txt, Gemfile, go.mod, pom.xml, etc.'
Missing parameter constraints. 'project_dir' should document: 'Absolute path to project root. Must exist and be readable. Defaults to current working directory.' 'output_file' should clarify: 'Path for output HTML file. Parent directory must exist. Defaults to <project_dir>/TECH_STACK.html.'