- Does laravel-ai-harness add runtime dependencies or migrations to my production Laravel app?
- No. Laravel AI Harness is a dev-only Composer dependency plus a CLI, so it ships with no production runtime footprint. There are no migrations, no request-path code, and no service provider surface that alters your application architecture. That makes it safe to include as a require-dev package while keeping AI wiring out of your production dependency graph.
- Should I install laravel-ai-harness per project or globally with Composer?
- Both topologies are supported: a project-local install runs as ./.ai-harness, while a global Composer install runs as ai-harness. The tradeoff is that mixing modes gives you two different config filenames and possible version skew across repositories. Pick one topology, document it, and enforce it across the team before rollout.
- Which PHP and Laravel versions does Laravel AI Harness support?
- The package's CI runs across PHP 8.2 through 8.5, alongside ShellCheck and static analysis. It is built on Laravel-native configuration, dependency injection, and Composer conventions, so it fits standard Laravel application structure. Check the composer.json constraints for the exact Laravel framework range before adopting it in a legacy app.
- How do I write deterministic tests for AI features built with Laravel AI Harness?
- The package includes a test harness designed for deterministic AI feature tests, so you assert against structured responses rather than live provider output. Because prompts, tool calls, and drivers sit behind a single mockable interface, you can swap in a fake driver in your test suite. In practical terms, your feature tests stay fast and stable in CI without network calls or API keys.
- Can I switch AI providers without rewriting my controllers?
- Yes. Provider-agnostic setup lets you swap supported drivers or register custom ones through configuration and dependency injection. Prompts and tool calls are abstracted behind structured responses, so your controllers and jobs stay free of provider-specific quirks. Multi-step agent workflows can be expressed as extensible pipelines instead of ad hoc chained calls.
- Why does composer require fail after upgrading Laravel AI Harness to 0.6.0?
- Version 0.6.0 removes seven configuration keys with no aliases and no automatic migration, and Composer's refresh hook aborts if any removed key survives in a config file. The blast radius is wider than the primary checkout: .ai-harness.config.global, .ai-harness.config.local, and personal files in the main checkout are inherited by linked worktrees, so one stale key can break installs on every branch. Audit and clean every personal, global, and worktree config file before the upgrade window.
- Is using --no-scripts a safe workaround for the removed-config-key error?
- It unblocks the install, but it skips all Composer scripts, including unrelated project scripts that may handle autoloading, asset builds, or deployment hooks. That makes it a diagnostic step rather than a fix. If you rely on it, follow up with a manual audit of your scripts and configuration before continuing.
- Why do my Herd sites return http:// URLs after upgrading Laravel AI Harness?
- This is a deliberate behavior change in 0.6.0: Herd now writes HTTP URLs when HTTPS is disabled for a site. Local workflows that assume https:// anywhere can misbehave, including cookie Secure flags, hardcoded redirect URIs, and OAuth callback registrations. Search your projects for hardcoded https:// local hostnames and update them before rolling the upgrade out.
- Does Laravel AI Harness create or delete my local Herd, Valet, or Sail sites?
- The runtime and site orchestration half of the package touches developer machines rather than repo files, and it does create and clean up harness-owned sites. That half has a medium risk profile because it mutates local environment state outside version control. Decide who owns harness-managed sites and confirm no developer depends on site state the harness may remove.
- Can I just pin ^0.5 and ignore the 0.6.0 release?
- You can, but ^0.5 does not include 0.6.0 under 0.x semver rules, so teams floating that constraint stay silently behind rather than breaking. That is convenient short term but means you will accumulate drift while other teams upgrade. Whatever you choose, define a version policy for this dev dependency, because further 0.x minors may break configuration again.