semitexa/laravel-ai-verify
AI-powered verification for Laravel: validate user input, content, and requests through configurable AI checks with a simple, fluent API. Drop-in service provider, customizable prompts, and sensible defaults make it easy to add intelligent verification to any app.
Architecture fit. v0.6.0 is a distribution change, not an engine change: the package's existing verification, graph, and receipt capabilities are now reachable as MCP tool calls through Laravel Boost's MCP server. This shifts the package from "a CLI an agent shells out to" to "a capability an agent can discover and invoke natively." For teams already running agentic workflows inside a Laravel codebase, that is the difference between a tool the agent can use and one it reliably uses — discovery, typed parameters, and structured returns replace prompt-engineered shell invocations. The three tools map cleanly to distinct product surfaces: ai-verify (verdict/gate), ai-graph (structural inspection), ai-verify-receipt (auditability). Those are exactly the primitives a TPM would want to expose to an autonomous loop.
Integration feasibility. Low friction by design. Registration is conditional on laravel/mcp being present and routed through Boost's own boost.mcp.tools.include list, so the package does not fight Boost's tool registry or invent a parallel one. Nothing changes for teams without Boost. Return payloads are identical to the --json CLI output, which means existing parsing, dashboards, and CI consumers keep working and the MCP path is not a second contract to maintain. The two documented escape hatches (AI_VERIFY_MCP_BOOST=false env var, ai-verify.mcp.boost config key) give per-environment control without code changes — important because env-var opt-out is what makes this safe to disable in CI or air-gapped contexts.
Technical risk. Low, and mostly operational rather than architectural:
timeout parameter exists precisely because that default will be too short for real projects.fail verdict is an answer, not a tool error is the single most consequential design decision in this release. If fail had surfaced as an MCP error, agents would retry, swallow, or misinterpret the result. Worth confirming this holds for all three tools and not just ai-verify.laravel/mcp, and Boost's include list contract. That list is a Boost-owned extension point; if it changes shape, discovery silently degrades to "tools not offered" rather than failing loudly.Key questions.
--json schema, and is that schema a public contract?laravel/mcp is installed but Boost is absent — silent no-op, or a warning?fail-as-answer hold uniformly across ai-verify, ai-graph, and ai-verify-receipt, including partial/timeout outcomes?timeout value for large suites, and does exceeding it return a structured MCP error?Stack fit. Assumes a Laravel app with laravel/mcp, and optionally Laravel Boost. All three are additive conditions — the package remains usable as a standalone CLI in environments with none of them. For a TPM, this means the rollout decision is scoped to the agent tooling layer, not the application runtime.
Migration path. There is no migration. v0.6.0 adds an opt-in surface and leaves the CLI as the source of truth. Teams can adopt in either order: CLI first for CI gates, MCP second for interactive agent loops — or MCP-only for teams that never built a shell-invocation habit. No config changes are required to upgrade; the include registration is automatic when preconditions are met.
Compatibility. Backward compatible with prior versions on the evidence available. Forward compatibility depends on Boost's boost.mcp.tools.include contract remaining stable. Return payloads matching --json output eliminates the classic dual-contract drift between CLI and tool-call consumers.
Sequencing. Recommended order:
laravel/mcp in a non-production environment; confirm the three tools appear in Boost's tool list and that AI_VERIFY_MCP_BOOST=false cleanly removes them.timeout against the largest suite you intend to run under agent control, using the 180-second Boost default as the baseline to beat.Maintenance. Marginal. One new integration seam to track (Boost's include contract) alongside the existing CLI surface. The dual opt-out means disabling is a config change, not a rollback — a meaningful reduction in maintenance blast radius.
Support. Expect the first wave of tickets to be about tool visibility ("the tools aren't showing up") and timeouts. Both have deterministic causes — missing laravel/mcp, Boost absent, opt-out still set, or a suite exceeding the configured timeout. A short diagnostic checklist covering those four covers most of the volume. The fail-is-not-an-error semantic should be called out explicitly in support docs, since it looks like a defect to anyone expecting tool errors on failure.
Scaling. Per-call process spawn means cost scales with call frequency, not just suite size. Agents in tight edit-verify loops will generate many invocations; a fresh process each time is correct for freshness but wasteful for repeated unchanged verification. Worth monitoring invocation counts per session and steering agents toward batched or gated verification patterns. Concurrency is the open question — parallel tool calls spawning parallel processes against large suites could contend on CPU and any shared artifact directory.
Failure modes.
timeout parameter, but requires deliberate tuning.fail as an error and retrying indefinitely. Documented, but prompt-level behavior is not guaranteed by the package.Ramp-up. Low for individual developers — the tools return the same JSON they already know from --json. The real ramp-up is organizational: agent guidelines, skills, and runbooks must be updated to reference the tools instead of shell commands, and the timeout budget for agent-driven verification needs a team-level decision rather than a per-developer one. Budget a short enablement pass alongside the upgrade rather than treating it as a drop-in patch.
How can I help you explore Laravel packages today?