This repository is bpmore/statamic-sweep: a standalone Statamic addon, developed outside any site and linked into a host site through a Composer path repository. That is the layout Statamic's docs recommend for an addon reused across projects.
php artisan boost:add-skill bpmore/statamic-sweep
Save this content to: AGENTS.md
<!-- BPMORE-KIT:BEGIN: generated by new-addon.sh, edits here are overwritten -->
## Where things live
This repository is **bpmore/statamic-sweep**: a standalone Statamic addon, developed
outside any site and linked into a host site through a Composer path repository. That is
the layout Statamic's docs recommend for an addon reused across projects.
- **This repo** (`/Users/bpmore/Herd/statamic-sweep`) is where the code and git history live. Work happens here.
- **The host site** (`/Users/bpmore/Herd/statamic-dev`) is where anything needing a booted Statamic runs.
The host site's `composer.json` has a path repository pointing here, and Composer symlinks
it: edits in this repo are live in the site immediately. There is **no reinstall or rebuild
step** after changing addon code.
## Target platform: do not resolve to anything older
- **Statamic:** `^6.0`: this addon targets Statamic 6. If a dependency resolves
to `statamic/cms` 5.x, that is a bug: fix the constraint and re-resolve before doing any
further work. Statamic 6 has a different control panel, Vue 3 + Inertia, and different
extension points; anything built against 5.x will have to be rewritten.
- **PHP:** `^8.2`
- **Laravel / Testbench:** whatever Statamic 6 requires: let Composer resolve it, but
verify afterwards with `composer show statamic/cms`.
## Build commands
- Tests, from this repo: `vendor/bin/pest`
- Formatting, from this repo: `vendor/bin/pint`
- Control panel assets, from this repo: `npm install && npm run build`
- Statamic commands run from the host site, never here:
`cd /Users/bpmore/Herd/statamic-dev && php please <command>`
- After changing `composer.json` here:
`cd /Users/bpmore/Herd/statamic-dev && composer update bpmore/statamic-sweep`
Do not run `php please` from this repo: there is no Statamic application here, and it
will fail.
This addon's test suite uses **Pest**. Statamic's `make:addon` scaffolds
PHPUnit and a `TestCase` extending `Statamic\Testing\AddonTestCase` (built on Orchestra
Testbench). Keep extending `AddonTestCase` whichever runner is used.
## Working agreement for unattended runs
- **Read `PROGRESS.md` first.** It is the source of truth for what is done and what is next: more so than anything you remember from earlier in the session.
- **Do the next unfinished task, and only that task.** Do not run ahead into later phases, even when they look easy. Small, verified steps survive interruption; large ones don't.
- **Before you stop, always:**
1. Update `PROGRESS.md`: tick the task, and record anything surprising under Notes.
2. Confirm the repo builds and the test suite passes.
3. Commit, with a message naming the task you completed.
- **Never end a task with the repo in a non-building state.** An unattended run may not resume for hours; leaving it broken wastes the whole next cycle.
- If a task turns out to be wrong or blocked, **write that under Notes in `PROGRESS.md` and stop.** Don't improvise a different plan: a stopped run with a clear note is far more useful than an autonomous detour.
- When every task is complete, put the line `ALL TASKS COMPLETE` at the top of `PROGRESS.md`.
## Compact Instructions
When compacting, preserve:
- The current state of the task list in `PROGRESS.md`
- Which files have been modified in this session
- The most recent test output and whether it passed
- Any decision recorded under Notes
<!-- BPMORE-KIT:END -->
## This addon
- Spec: `docs/SPECS.md`. Shared rules for every bpmore addon: `docs/CONVENTIONS.md`. Read both before a task.
- Task list and decisions: `PROGRESS.md`.
- The search and replace engine lives in `src/Engine` and is plain PHP: no `Statamic\`, `Illuminate\` or `Laravel\`. An arch test enforces it. Statamic is met in `src/Content`.
This repository is bpmore/statamic-sweep: a standalone Statamic addon, developed outside any site and linked into a host site through a Composer path repository. That is the layout Statamic's docs recommend for an addon reused across projects.
/Users/bpmore/Herd/statamic-sweep) is where the code and git history live. Work happens here./Users/bpmore/Herd/statamic-dev) is where anything needing a booted Statamic runs.The host site's composer.json has a path repository pointing here, and Composer symlinks
it: edits in this repo are live in the site immediately. There is no reinstall or rebuild
step after changing addon code.
^6.0: this addon targets Statamic 6. If a dependency resolves
to statamic/cms 5.x, that is a bug: fix the constraint and re-resolve before doing any
further work. Statamic 6 has a different control panel, Vue 3 + Inertia, and different
extension points; anything built against 5.x will have to be rewritten.^8.2composer show statamic/cms.vendor/bin/pestvendor/bin/pintnpm install && npm run buildcd /Users/bpmore/Herd/statamic-dev && php please <command>composer.json here:
cd /Users/bpmore/Herd/statamic-dev && composer update bpmore/statamic-sweepDo not run php please from this repo: there is no Statamic application here, and it
will fail.
This addon's test suite uses Pest. Statamic's make:addon scaffolds
PHPUnit and a TestCase extending Statamic\Testing\AddonTestCase (built on Orchestra
Testbench). Keep extending AddonTestCase whichever runner is used.
PROGRESS.md first. It is the source of truth for what is done and what is next: more so than anything you remember from earlier in the session.PROGRESS.md: tick the task, and record anything surprising under Notes.PROGRESS.md and stop. Don't improvise a different plan: a stopped run with a clear note is far more useful than an autonomous detour.ALL TASKS COMPLETE at the top of PROGRESS.md.When compacting, preserve:
PROGRESS.mddocs/SPECS.md. Shared rules for every bpmore addon: docs/CONVENTIONS.md. Read both before a task.PROGRESS.md.src/Engine and is plain PHP: no Statamic\, Illuminate\ or Laravel\. An arch test enforces it. Statamic is met in src/Content.How can I help you explore Laravel packages today?