Skip to content

Load starter kit guidelines and gate full-app guidance on structure - #991

Open
pushpak1300 wants to merge 1 commit into
mainfrom
feat/starter-kit-guidelines
Open

Load starter kit guidelines and gate full-app guidance on structure#991
pushpak1300 wants to merge 1 commit into
mainfrom
feat/starter-kit-guidelines

Conversation

@pushpak1300

Copy link
Copy Markdown
Member

Boost currently gives every project the full-app Laravel guidance. On the new slim agent starter kit (laravel/agent-kit), most of it is wrong: the kit has no package.json, no app/Models, and no app/Http, yet the composed guidelines still tell agents about Vite manifest errors, model factories, and Eloquent API Resources. There was also no way to give a starter kit its own guidance without shipping override files inside the kit skeleton.

This builds on laravel/roster#71. Starter kits declare their identity in composer.json:

"extra": {
    "laravel": {
        "starter-kit": "laravel/agent-kit"
    }
}

GuidelineComposer reads it through ProjectManager::starterKit() and composes .ai/kits/<name>/core.blade.php as a kits/<name> section. An unknown kit with no guideline directory is ignored, and the existing customization points apply unchanged: a project file at .ai/guidelines/kits/agent-kit/core.blade.php replaces the bundled guideline, and boost.guidelines.exclude removes it.

Separately, the Laravel core guideline now only renders sections whose subject exists in the project: the Vite error section requires a package.json, model creation guidance requires app/Models, and the API resources section requires app/Http. Any slim app benefits from this, agent kit or not.

Decisions made along the way:

  • Detection uses extra.laravel.starter-kit rather than the composer name field (users rename it) or a package fingerprint (adding laravel/ai to a full app must not change its Laravel guidance).
  • Roster exposes the raw declared string; the kits/ directory mapping and agent-kit name normalization stay in Boost.
  • laravel/roster is bumped to ^1.1 because starterKit() is not in v1.0.0. A v1.1.0 tag is needed for stable installs; until then minimum-stability: dev resolves 1.x-dev.

Tests cover kit guideline inclusion, absence without a declaration, unknown kits, the .ai/guidelines override path, and both sides of the package.json gate.

🤖 Generated with Claude Code

@pushpak1300
pushpak1300 marked this pull request as ready for review August 31, 2026 14:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant