Larapilot
From product idea to reviewed Laravel code — with an AI product team that follows a real process.
Larapilot is a spec-driven workflow for Laravel projects, integrated with Laravel Boost. Install the package, run /larapilot-* skills in your AI editor, and ship backlog artifacts, plans, and reviewed code from .larapilot/.
The agent proposes. You approve what ships. Human-in-the-loop, always.
📖 Documentation: larapilot.web.ap.it · Walkthrough · API
Why Larapilot
AI agents are fast, but isolated prompts are not a product process. Larapilot gives your assistant a disciplined squad — discovery → backlog → plan → implement → review → ship — with 27 personas (Mark, John, Alex, Anne, …) as review lenses, not costumes.
Each skill orchestrates the conversation. Artisan commands persist state; Boost skills drive the workflow in chat; MCP exposes Laravel context and workflow tools to your editor.
Core loop
Greenfield — repeat steps 3–5 per user story:
/larapilot-inception "…" → /larapilot-spec → /larapilot-plan US-XXX
→ /larapilot-implement US-XXX → /larapilot-review US-XXX
| When | Start with |
|---|---|
| New product, pivot, or legacy rewrite | /larapilot-inception |
| One new capability on an existing product | /larapilot-feature "…" |
| Defect or regression | /larapilot-bug "…" |
Optional: /larapilot-design before plan · /larapilot-ship when MVP stories are DONE · /larapilot-autopilot to batch plan + implement · /larapilot-settings for project effort / git / testing modes.
Git discipline follows settings.git_mode (default Gitflow without auto-push): one feature/US-XXX-* branch per story, atomic commits per plan task; push + remote PR only when mode is GITFLOW_PUSH. Configure with /larapilot-settings. Details on the docs site.
What lands in .larapilot/
| Path | Purpose |
|---|---|
config.yaml |
Project workflow config + settings (effort, git_mode, testing, auto_approve) |
docs/PRD.md |
Product Requirements Document |
backlog/ |
User stories (US-XXX) with status machine |
plans/ |
Technical plans and tasks per spec |
mockups/{spec}/ |
Static HTML previews (optional) |
internal-feedback/{code}.md |
PM/dev comments until DONE |
design-systems/ |
Packaged references (Filament, Starter Kit, Bootstrap 5, Tailwind, AdminLTE) |
Skills write artifacts; the workflow engine blocks invalid state transitions (e.g. implement before plan, approve before review).
Skills
Published via Laravel Boost after php artisan boost:install:
| Skill | Role |
|---|---|
/larapilot-inception |
Product discovery → PRD (includes Frontend Topology) |
/larapilot-spec |
MoSCoW backlog from PRD |
/larapilot-feature |
Mini-inception for one evolutiva |
/larapilot-bug |
Bug triage → fix spec or rework |
/larapilot-frontend-companion |
Sync shared PRD into an external frontend repo |
/larapilot-design |
Static HTML mockups from design system |
/larapilot-plan |
Technical plan + tasks for a spec |
/larapilot-implement |
Code + tests on a feature branch |
/larapilot-review |
Human gate → DONE or rework |
/larapilot-ship |
Release checklist when MVP is done |
/larapilot-autopilot |
Batch plan + implement |
/larapilot-settings |
Persist effort / git mode / testing / auto-approve for the project |
During inception, John + Joe ask Frontend Topology: Laravel-coupled (Blade/Livewire/Inertia in this repo), SPA-in-Laravel (Vite SPA in this repo), or API + external frontend (Laravel API-only + separate FE repo). For the split-repo case, install/copy /larapilot-frontend-companion in the FE project and sync via GET /larapilot/api/companion or php artisan larapilot:companion-export. Details: Frontend companion.
Dashboard & API (dev/staging)
When the dashboard is browsable (never in production):
/larapilot— Kanban board, PRD reader, spec detail with mockup preview and internal feedback/larapilot/api— JSON over the same artifacts (board, specs, PRD, OpenAPI at/larapilot/api/docs)GET /larapilot/api/companion— PRD + frontend topology bundle for an external frontend repoPOST /larapilot/api/specs/{code}/comments— append internal feedback from scripts or tooling
Diagnostics (bug triage)
Read-only runtime snapshot for /larapilot-bug and local debugging — never mutates workflow state.
| Surface | How |
|---|---|
| API | GET /larapilot/api/diagnostics — same dashboard gate (dev/staging only); 404 when LARAPILOT_DIAGNOSTICS_ENABLED=false |
| CLI | php artisan larapilot:diagnostics — --lines= (cap log tail), --no-logs (status + checks only) |
| MCP | Larapilot diagnostics tool, or RunArtisanTool with larapilot:diagnostics |
Query params (API): ?lines=100 (default from config, capped by max_log_lines) · ?no_logs=1 to omit the log tail.
Payload: app (name, env, Laravel/PHP versions, …), checks (storage_writable, cache, database, queue, log_file), healthy (critical checks), optional logs with secrets redacted ([REDACTED]).
Config (config/larapilot.php / env): LARAPILOT_DIAGNOSTICS_ENABLED (default true), LARAPILOT_DIAGNOSTICS_LOG_LINES (default 100), LARAPILOT_DIAGNOSTICS_MAX_LOG_LINES (default 500).
Workflow state still changes only via skills or Artisan — not from the dashboard or API.
Requirements
- PHP ^8.3
- Laravel ^12 or ^13
- Laravel Boost
^2.0(installed automatically) - MCP-capable editor (Cursor, Claude Code, VS Code, …)
Quickstart
composer require andreapollastri/larapilot --dev
php artisan larapilot:install
php artisan boost:install
Already on Boost? Refresh skills once:
php artisan boost:update --discover
Register MCP servers in your editor if needed:
{
"mcpServers": {
"laravel-boost": {
"command": "php",
"args": ["artisan", "boost:mcp"]
},
"larapilot": {
"command": "php",
"args": ["artisan", "mcp:start", "larapilot"]
}
}
}
First run in your editor:
/larapilot-inception "your product idea"
Then /larapilot-spec, and the per-story loop above.
Upgrade
composer update andreapollastri/larapilot
php artisan larapilot:update
php artisan larapilot:doctor
Runtime-only refresh (skip Boost republish): php artisan larapilot:update --skip-boost.
Learn more
- Why & how it works
- Five walkthrough examples — new product, legacy port, feature, bug, frontend companion
- Frontend companion — split FE repo + shared PRD sync
- Design systems
- Team personas
License
MIT © Andrea Pollastri
No comments yet
Be the first to share your take.