Skip to content

v0.5.0

Choose a tag to compare

@SanderMuller SanderMuller released this 19 Apr 12:49
· 49 commits to main since this release
Immutable release. Only release title and notes can be modified.
974c6f0

Package Boost v0.5.0

Shipped content release — driven by real feedback from two downstream
peers (laravel-fluent-validation, laravel-js-store) running
package-boost 0.3–0.4 in anger. Two new skills land, the foundation
stops assuming Pest-first, and Boost-specific commands move into
their own table so PHPUnit-only and Boost-less packages stop reading
dead copy.

What's new

Runner-agnostic foundation + Boost sub-table

resources/boost/guidelines/foundation.md and the shipped
package-development SKILL no longer imply Pest-first test running.
The php artisan test row now reads:

The package's configured test runner
(vendor/bin/pest or vendor/bin/phpunit)

Boost-specific rows (boost:install, boost:mcp) move into a
dedicated sub-table:

### Commands that require `laravel/boost`

| Instead of | Use |
|---|---|
| `php artisan boost:install` | `vendor/bin/testbench boost:install` |
| `php artisan boost:mcp`     | `vendor/bin/testbench boost:mcp`     |

Readers without Boost installed see the heading, understand the rows
don't apply, and skip. PHPUnit-only packages stop reading Pest-first
ordering as advice.

New shipped skill: cross-version-laravel-support

Preventive workflow for packages supporting multiple Laravel / PHP
majors. Activate before writing version-sensitive code. Covers:

  • Reading composer.json constraints (^11.0||^12.0||^13.0 decoded)
  • Version-guard patterns — version_compare(app()->version(), ...),
    method_exists feature detection, conditional trait composition
  • Local verification workflow — default / --prefer-lowest /
    --prefer-stable
  • Deprecation-but-not-removed trap
  • Common failure modes (Blade directive availability, parameter
    defaults, macro scopes)

New shipped skill: ci-matrix-troubleshooting

Diagnostic workflow for after a matrix cell has gone red. Covers:

  • Local reproduction of the failing cell
  • Usual suspects — transitive dep floor bumps
    (roave/security-advisories), Testbench ↔ PHPUnit interlock, wrong
    package floor, phpstan/larastan incompat, missing version guard
  • Deeper diagnostics — composer why-not,
    composer update ... --dry-run
  • Fix patterns — widen constraint, raise floor, exclude cell,
    conflict directive
  • Filing useful upstream issues

Trigger partition is deliberate: the preventive and diagnostic skills
cross-link and share only the testbench descriptor. Vocabulary like
prefer-lowest / prefer-stable lives on the diagnostic skill only,
so the skill matcher fires predictably on "CI just broke" language.

.ai/ authoring schema docs

New ## Authoring guidelines section in the shipped
package-development SKILL covers the four things downstream authors
kept reverse-engineering from sibling files:

  • Guideline file shape — plain markdown, no required frontmatter,
    filename controls ordering
  • Skill file shape — YAML frontmatter (name, description),
    body is markdown, description is the trigger surface
  • Rendering model — shipped first, --- divider, user content
    second
  • Opting out — cross-links to the README's Customising excluded
    guidelines
    section (no duplication)

Foundation Cross-Version section trimmed

The paragraph-long advice moved into cross-version-laravel-support.
Foundation now holds a pointer:

Supporting multiple Laravel / PHP majors is routine for packages.
Activate cross-version-laravel-support before writing the
code; activate ci-matrix-troubleshooting after a matrix cell
has failed.

Single source of truth for the workflow, with a disambiguator so
readers know which skill to pick without drilling in.

Upgrading

composer update sandermuller/package-boost
vendor/bin/testbench package-boost:sync

Or, in CI:

vendor/bin/testbench package-boost:sync --check

Migration impact

Downstream --check will report drift on the first run after upgrade:

  • Guidelines — CLAUDE.md, AGENTS.md,
    .github/copilot-instructions.md all pick up the runner-agnostic
    row, new sub-table, trimmed Cross-Version section.
  • Skills — .claude/skills/package-development/SKILL.md and
    .github/skills/package-development/SKILL.md pick up the Authoring
    guidelines section + the Cross-Version trim + the table reshape.
  • New skills — .claude/skills/cross-version-laravel-support/
    and .claude/skills/ci-matrix-troubleshooting/ appear (plus their
    .github/skills/ mirrors).

Expected one-time re-sync.

Internals

  • Tests introduce a SHIPPED_SKILLS constant so each new shipped
    skill gets automatic coverage via a Pest dataset-driven test.
    No more per-skill test-count drift.
  • Seeded ROADMAP.md + specs/ directory in the repo as the plan
    of record for 0.5.x / 0.6.x / 0.7.x work.

Compatibility

No breaking changes. Config shape unchanged, command surface
unchanged, synced file layout unchanged. Content-only evolution of
the shipped skill and guideline text.