php artisan boost:add-skill symkit/bundle-ai-kit
Save this content to: .cursor/rules/tests.mdc
# Test Conventions
## General
- `declare(strict_types=1)` in test files
- Structure: `tests/Unit/` for pure logic, `tests/Integration/` for filesystem operations
- PHPUnit 10+ or 11+
## Minimum Required Tests
### Unit Tests
- `SkillNamesDiscoverer::discover()` — sorted skill folder names, ignores files
- `SyncContext` — value object
### Integration (`AiRulesInstaller::sync`)
- Rules → `.cursor/rules/*.mdc`
- All skill dirs (as discovered) → `.cursor/skills/{name}/`
- Non-`.mdc` files in skills copied as-is
- `AGENTS.md`, `.cursor/agents/*.md`
- Merge-only (never delete user files)
## Temp Directory Pattern
Use `sys_get_temp_dir()` + random suffix; recursive delete in `tearDown`.
## After Every Change
Run `make test` and `make infection`.
declare(strict_types=1) in test filestests/Unit/ for pure logic, tests/Integration/ for filesystem operationsSkillNamesDiscoverer::discover() — sorted skill folder names, ignores filesSyncContext — value objectAiRulesInstaller::sync).cursor/rules/*.mdc.cursor/skills/{name}/.mdc files in skills copied as-isAGENTS.md, .cursor/agents/*.mdUse sys_get_temp_dir() + random suffix; recursive delete in tearDown.
Run make test and make infection.
How can I help you explore Laravel packages today?