Skip to content

v0.2.0 — skills, and browser-tests CI

Choose a tag to compare

@tjloong tjloong released this 30 Aug 09:33
· 25 commits to main since this release
3475c94

First release that ships skills as well as guidelines, and the CI input the app skeleton needs
to adopt the reusable workflow.

Skills (#1)

jiannius-dev and jiannius-qa-tester now ship at resources/boost/skills/, the path Boost
discovers inside composer packages. Boost copies them into the committed .claude/skills/, so a
teammate who only ever runs git clone gets them without composer.

Each skill was trimmed of the universal rules it used to restate — those arrive always-resident in
the guidelines block, and a second copy of a convention is the thing this package exists to prevent.

Reusable CI (#2)

laravel-ci.yml gains a browser-tests input. Off by default; turn it on for any app with
tests/Browser/, or Pest dies on PlaywrightNotInstalledException.

Upgrading

Composer constraint changes. ^0.1.0 does not allow 0.2.0 — Composer's caret stops at the
next minor for 0.x. Update the requirement:

composer require --dev "jiannius/playbook:^0.2.0"

To get the skills, boost.json needs a skills key. Skills are opt-in per repo and the opt-in
is not packages: boost:update gates on Config::hasSkills(), which reads skills from
boost.json, and only boost:install ever writes it. A repo listing jiannius/playbook under
packages with no skills entry gets the guidelines and silently no skills, reporting success
every time. Run php artisan boost:install and tick Agent Skills, or seed the key directly.

Consumers of the reusable workflows pin @v0, which now points here.

Two Boost behaviours worth knowing

Both are documented in docs/playbook-install.md:

  • MarkdownFormatter mangles shell comments inside fenced code blocks. Its heading rule is
    unanchored and not fence-aware, so composer install # if PHP deps changed reads as a heading
    and the installed copy gains blank lines the source never had. Put such explanations in a table
    instead; SkillsTest asserts byte-equality so a regression fails CI here.
  • boost:update drops the "Test Enforcement" block from agent files. enforceTests is an
    install-time answer boost.json does not persist, so every composer update silently deletes it.
    Not fixed in this release.