Repo-specific paved-path tools surfaced via MCP for the in-container Claude agent.
Single tool with adequate naming and schema, but description lacks LLM-optimization guidance. Parameter descriptions are present but minimal. Output schema is documented in the docstring but not formally structured. No error handling guidance for common failure modes (tofu binary missing, permission denied, invalid directory). Tool is read-only and low-risk, but lacks production-grade polish expected for infrastructure automation.
Run OpenTofu/Terraform-compatible `tofu plan` and summarize infrastructure changes. Use for Terraform/OpenTofu IaC review before applying infrastructure changes. Runs in <repo>/<directory> and returns a structured summary. `resource_limit` caps changed resource addresses and `tail_lines` caps stdout/stderr tails. Returns: { exit_code, add, change, destroy, resources: [{address, action}], stderr_tail, stdout_tail }. Resource addresses come from the `# X will be Y` headers tofu emits before each diff block; counts come from the trailing `Plan: A to add, B to change, C to destroy.` line.
Description lacks actionable guidance on when to use this tool vs alternatives, and does not state prerequisites (tofu binary, valid repo structure, permissions). LLMs need explicit context for tool selection.
Parameter descriptions are minimal (e.g., 'Directory relative to repo root where tofu plan runs' lacks guidance on format, constraints, or examples). LLMs cannot infer valid values from sparse descriptions.
Error handling is incomplete. FileNotFoundError returns a generic error dict, but other failure modes (permission denied, invalid directory, tofu syntax errors) are not explicitly handled or documented. LLMs receive raw stderr without recovery guidance.
Output schema is documented in docstring prose but not formally exposed. LLMs cannot reliably parse the response structure from text alone. Consider returning a typed dict with explicit field documentation.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
No validation or constraints on numeric parameters. resource_limit and tail_lines accept any integer; unbounded values could cause memory exhaustion or timeout. Specify min/max ranges in descriptions and enforce them.