Static analysis for the debt AI coding agents leave behind, on any PHP project: 25 rules, git-diff review, coverage-aware reading order, PHPStan baseline-growth detection, a Rector and Pint fix pass, Pest expectations, CI annotations, agent rulesets and an MCP server. Extra rules and dashboards for Laravel. Deterministic, local, no LLM.
Four tools with complete input schemas and descriptions. Naming follows verb_noun pattern (sloppy_scan, sloppy_diff, sloppy_rules, sloppy_health). Descriptions are substantive (100-200 chars), explaining WHAT and WHEN. Parameters are typed with descriptions. However, output schemas are not documented, LLMs cannot predict response structure. No error handling guidance. No tool annotations (readOnlyHint). Risk fields marked READ_ONLY but not formally declared in schema.
Compare the working tree against a git revision and report only what the change introduced, ranked by risk. Use this to check your own work before reporting a task finished: findings listed as new are yours, findings listed as inherited are not.
Report the project's slop score, the count of findings by severity, and the few worth reading first. Use it to orient yourself in an unfamiliar codebase before changing anything.
List the code rules this project enforces, with what each one flags and what to write instead. Read this before writing code in an unfamiliar repository. Pass a rule ID for one rule in full.
Analyse PHP files for AI-slop patterns: god methods, duplicated logic, swallowed exceptions, needless abstraction, N+1 risks and more. Call it on the files you just wrote, before reporting the task finished, and fix what it reports.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Forces agents to guess what data is returned.
No error handling guidance. Tools do not describe what errors can occur, whether they are retryable, or what the LLM should do next (e.g., 'If project not found, verify the project root parameter').
Tool annotations missing. Risk field marked READ_ONLY in metadata but not formally declared via readOnlyHint in schema. Prevents MCP clients from rendering safety warnings.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
Parameter 'min_confidence' (sloppy_scan) lacks range constraints in description. Should state '0-100 inclusive' to guide LLM input validation.
No pagination support documented. If sloppy_scan returns many findings, no limit or offset parameters exist. Large result sets risk context window exhaustion.