paqad-ai
Version:
Spec-driven development framework — AI agents that think before they type
147 lines (146 loc) • 4.36 kB
YAML
name: laravel
display_name: Laravel
ecosystem: php
version: 1.0.0
description: Built-in Laravel coding stack pack
maintainer: paqad-ai
detection:
manifests:
- file: composer.json
packages:
- laravel/framework
heuristics:
- file: artisan
traits:
- name: inertia
display_name: Inertia
detect_package: inertiajs/inertia-laravel
description: Laravel application uses Inertia.js
- name: boost
display_name: Boost
detect_package: laravel/boost
description: Laravel application uses Laravel Boost
- name: sail
display_name: Sail
detect_package: laravel/sail
description: Laravel application uses Laravel Sail
- name: pest
display_name: Pest
detect_package: pestphp/pest
description: Laravel application uses Pest
- name: phpunit
display_name: PHPUnit
detect_package: phpunit/phpunit
description: Laravel application uses PHPUnit
- name: react
display_name: React
detect_package: react
description: Laravel application includes a React frontend
- name: vue
display_name: Vue
detect_package: vue
description: Laravel application includes a Vue frontend
- name: tailwind
display_name: Tailwind
detect_package: tailwindcss
description: Laravel application uses Tailwind CSS
toolchains:
- ecosystem: php
package_managers:
- composer
lockfiles:
- composer.lock
mcp_defaults:
- name: laravel-boost
when: when_trait
trait: boost
- name: tailwind-mcp
when: when_trait
trait: tailwind
pentest:
file_check_map:
- glob: routes/**
checks: [permission-boundary-review, business-logic-abuse-review]
- glob: app/Http/Controllers/**
checks: [permission-boundary-review, business-logic-abuse-review]
- glob: app/Http/Middleware/**
checks: [permission-boundary-review, runtime-surface-probing]
- glob: composer.lock
checks: [dependency-advisory-triage]
- glob: config/**
checks: [runtime-surface-probing]
- glob: .env*
checks: [runtime-surface-probing, cryptographic-review]
- glob: database/migrations/**
checks: [business-logic-abuse-review]
- glob: app/Models/**
checks: [input-validation-review]
- glob: config/auth.php
checks: [auth-mechanism-review]
- glob: config/sanctum.php
checks: [auth-mechanism-review]
- glob: config/logging.php
checks: [logging-monitoring-review]
- glob: config/app.php
checks: [cryptographic-review]
- glob: app/Http/Controllers/Auth/**
checks: [auth-mechanism-review]
- glob: routes/api.php
checks: [input-validation-review, auth-mechanism-review]
audit_commands:
- command: composer audit --format=json
parser: composer
ast:
language: php
tree_sitter_grammar: tree-sitter-php
file_extensions: ['.php']
testing:
frameworks:
- name: pest
detect_package: pestphp/pest
run_command: php artisan test
- name: phpunit
detect_package: phpunit/phpunit
run_command: php artisan test
test_runners:
- runner_id: pest
structured_format: junit-xml
structured_flags: --log-junit .paqad/test-results/pest.xml
default_command: php artisan test
output_source: file
output_path_pattern: .paqad/test-results/pest.xml
single_test_selector: test_id
parallel:
mode: flag
flag: --parallel --processes=<processes>
requires_package: brianium/paratest
- runner_id: phpunit
structured_format: junit-xml
structured_flags: --log-junit .paqad/test-results/phpunit.xml
default_command: php artisan test
output_source: file
output_path_pattern: .paqad/test-results/phpunit.xml
single_test_selector: test_id
parallel:
mode: flag
flag: --parallel --processes=<processes>
requires_package: brianium/paratest
docs:
overview_template: rules/foundation/guide.md
conventions_template: rules/conventions/guide.md
module_health:
source_roots:
- app
source_globs: []
public_api_extractor: null
test_command: php artisan test
coverage_format: lcov
coverage_path: coverage/lcov.info
test_report_format: junit-xml
test_report_path: junit.xml
git_window_days: 14
visual_evidence:
frontend_globs:
- resources/views/**/*.blade.php
- resources/js/**/*.{vue,jsx,tsx,js}
- resources/css/**/*