heyosseus/sloppy
Sloppy is a Laravel package by heyosseus that trims boilerplate and speeds up everyday development tasks with a simple, forgiving API. Drop it into any Laravel app to write less code and ship features faster.
sloppy diff --merge-base scopes findings to what the branch introduced, so you get a per-PR measure of agent-introduced debt.architecture policies and SL301/SL303 layer suffixes. Buying (at MIT, dev-only) beats a homegrown ruleset you'd have to staff.ci with --format=github|sarif|gitlab means you can choose a blocking gate, an advisory annotation, or a dashboard feed — and change your mind later. Exit code 2 is reserved for "invalid invocation," not "findings," which lets you separate "our config is broken" from "our code is bad" in CI telemetry.fail_on: none, prune exclude, then raise the gate" loop is a real work item. Budget it as enablement, not as a one-line install.Adopt when most of these are true:
heyosseus/phpstan-sloppy extension is the highest-leverage surface: findings arrive in editors and existing baselines rather than as a second, competing tool.architecture.require-dev. 1.6 tightened config validation, changed what architecture accepts, and made more inputs exit 2; 1.7 added two more agent hosts. That's healthy, but it's churn on your CI.Look elsewhere or defer when:
sloppy fix is a tidy-up pass, not a refactoring engine..claude/settings.json or won't trust Codex hooks, you're buying the diff gate — useful, but a much smaller purchase.with('relation:columns'), SL108/SL110 null handling), but the pilot-and-prune loop is not optional.Resolve before you pitch, not after: the package metadata's description.md describes an unrelated Eloquent seeder/faker tool. Verify against the tagged repo and the actual vendor/bin/sloppy command surface. This is a five-minute check and a credibility event if a stakeholder finds it first.
To executives, one paragraph: AI coding agents have moved the bottleneck from writing code to reviewing it, and reviewers can't see what an agent introduced versus what was already there. This package, an MIT-licensed dev-only Composer dependency that sends nothing off the machine, runs deterministic checks on the diff rather than the tree — so we can measure agent-introduced debt per PR, enforce architecture boundaries as a build failure instead of a wiki page, and catch the case where someone regenerates a PHPStan baseline and quietly erases the debt signal. It costs a require-dev line, has no production dependency and no vendor relationship, and removes cleanly.
To engineering leads: start diff-scoped, not full-tree — sloppy scan on a mature app produces a wall of pre-existing findings and will get the tool switched off. Wire sloppy ci --merge-base --format=github into the PR job first, install the PHPStan extension so findings show up where people already look, and treat baseline regeneration as a reviewed change. Then pilot agent hooks on one host and one repo for two weeks with fail_on: none, look at what agents actually trip, prune exclude and layer suffixes, and only then raise the gate. agents uninstall --host= gives you a scoped rollback if the pilot sours.
To security and platform: local and deterministic by design — no LLM, no network calls, no data egress. Dev-only dependency, publishable config, clean uninstall that restores settings files and agent configs to their prior state. Two behaviors worth documenting in the runbook: exit code 2 means invalid invocation (bad path, unknown option, type/range error in config, unparseable file in ci) and lists every problem at once, so a previously silently-ignored option can now stop a run; and the diff score is computed against --merge-base by default in ci, which is what you want for PRs but not necessarily for release branches.
Honest risk register to carry into the pitch: single-maintainer project with near-zero dependent count — assume bus-factor risk and keep the config thin enough to migrate off; the mislabeled package description is a discovery hazard you should fix in your own internal notes; false-positive tuning is real work, so scope it as enablement; and agent hooks add latency to every edit, which is why Claude Code hooks deliberately skip the score. None of these are disqualifying at dev-only scope — but if this becomes the thing that blocks merges, you have quietly made a 223-star project load-bearing, and that's a decision, not an accident.
How can I help you explore Laravel packages today?