Repository navigation
v0.2.0 — skills, and browser-tests CI
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:
MarkdownFormattermangles shell comments inside fenced code blocks. Its heading rule is
unanchored and not fence-aware, socomposer install # if PHP deps changedreads as a heading
and the installed copy gains blank lines the source never had. Put such explanations in a table
instead;SkillsTestasserts byte-equality so a regression fails CI here.boost:updatedrops the "Test Enforcement" block from agent files.enforceTestsis an
install-time answerboost.jsondoes not persist, so everycomposer updatesilently deletes it.
Not fixed in this release.