Skill catalog
Everything sandermuller/boost-skills ships. A skill with no tag ships to every project that allowlists the vendor. A tagged skill ships only where the project declares every tag it carries.
Skills
| Skill | What it does | Tags |
|---|---|---|
ai-guidelines | Create and maintain AI skills and guideline files (.ai/, CLAUDE.md, AGENTS.md) | — |
autoresearch | Autonomous performance loop: benchmark, change code, then keep or revert by measured result | php |
backend-quality | Two-tier PHP quality gate: Pint and related tests on every change, PHPStan and the full suite on completion | php |
bug-fixing | Test-driven bug workflow: reproduce with a failing test, then fix it | — |
clarify | Turn a fuzzy ask into sharp, fact-checked intent. The shared core of interview and promptimize | — |
clean-specs | Remove spec files whose work is merged to the base branch, keeping only live work | — |
code-review | Review recent changes across functionality, code quality, security, and tests | — |
codex-review | Request an independent review from the OpenAI Codex CLI, apply the warranted fixes, re-review until clean | — |
deploying-laravel-cloud | Deploy and manage Laravel applications on Laravel Cloud through the cloud CLI | laravel-cloud hosting |
eloquent-models | Create and maintain Eloquent models with column and relation constants, docblocks, and foreign-key constants | laravel |
evaluate | Self-review a full implementation and fix the issues it surfaces | — |
eye-verification | A browser pass over a frontend change: resolve the testables, drive each one, publish the proof screenshots | frontend |
final-verification-review | Closeout verdict: run the evaluate loop, dry-run the closeout preflight, report READY or NOT READY | github |
frontend-quality | Frontend quality gate: type-checking, linting, the JS test suite, and a browser eye-verify for UI changes | frontend |
github-issue-updates | Append a user-facing description and QA testables to a GitHub issue after a feature ships | github-issues |
humanizer | Remove signs of AI-generated writing so text reads as natural and human | — |
implement-spec | Implement a specification file phase by phase, with progress tracking | — |
interview | Adversarially grill out a complex feature's requirements before writing its spec | — |
jira-create | Create a Jira issue with a well-formed, user-facing description | jira |
jira-rework | Research a Jira issue sent back for rework, then propose fix options | jira github |
jira-updates | Update a Jira issue after its PR is created, and post Blocked-by-Question comments | jira |
migration-squash | Create or review a Laravel migration squash safely, with a checklist for incomplete or data-losing baselines | laravel |
php-generics | Docblock generics and array shapes: name a repeated array{...}, bind a generic base class, type a class-name parameter | php |
pr-review-feedback | Apply PR review comments, evaluating each one critically before acting | github |
pre-release | Pre-push gauntlet: Rector, Pint, the full test suite, PHPStan, and a doc-staleness audit | php github release-automation |
promptimize | Turn a rough prompt into one optimized, model-agnostic prompt | — |
pull-requests | Create and manage your own GitHub PRs through gh: write the description, verify, route by risk | github |
readme | Author and maintain a README for a Composer package: shape, voice, and staleness audits | release-automation |
release-notes | Draft GitHub release bodies: structure, voice, breaking-change callouts, and what to omit | release-automation |
resolve-conflicts | Resolve git merge conflicts without dropping functionality from either side | — |
simplify-shape | Judge whether a change carries its values in the right type: enum, form request, DTO, query-builder method | php |
test-writing | Write specific, descriptively named tests that follow Arrange-Act-Assert | — |
test-value | Judge the tests a change touched: delete the ones that prove nothing, cover what nothing tests | — |
upgrading | The canonical structure for UPGRADING.md in a Composer package | release-automation |
ux-review | Weigh UX and UI options for a new feature, recommend an approach, and document the decision | — |
write-spec | Write implementation-ready specification files with progress-trackable phases | — |
Guidelines
Guidelines are always active. There is no on-demand activation. The sync folds them into CLAUDE.md, AGENTS.md, and the other guidance files.
| Guideline | What it covers | Tags |
|---|---|---|
ask-user-question | Avoid first- and second-person pronouns in AskUserQuestion payloads. Name the actor instead | — |
database-safety | Never run destructive database commands. Treat the test database as test-runner-owned | database |
javascript | JavaScript and TypeScript control-structure style: always use braces, no single-line conditionals | frontend |
migrations | Self-contained migration files. Append columns rather than positioning them mid-table | database |
phpstan-fixing | Fixing a PHPStan error: write a failing test first when it maps to a runtime bug | php |
signed-commits | Never fall back to an unsigned commit when signing is enabled. Surface the failure instead | — |
single-issue-scope | Keep each session, branch, and PR focused on exactly one issue | single-issue-scope |
task-scope | Keep the change to what the task asks, pick one reading of an ambiguous ask, and edit in place | — |
verification-before-completion | Run the verification command and read its output before claiming work is done | — |
voice | One voice rule per writing surface: a routing table plus the Simplified Technical English rules | voice |
A guideline file stays frontmatter-free, for laravel/boost compatibility, so its tags live in a sidecar .boost-tags.yaml manifest beside it.
Subagents
A subagent is a Claude Code definition that runs in its own context. The fresh context is the point: an adversarial pass judges the change as code somebody else wrote. The sync writes these to .claude/agents/boost/sandermuller__boost-skills/. Other agent targets receive nothing. See Subagents.
| Subagent | What it does | Tags |
|---|---|---|
accessibility-reviewer | Review interactive markup against WCAG 2.2 AA, and cite the exact success criterion for every finding | frontend |
comment-analyzer | Check every comment a change added, changed, or made false against the code, then judge whether it earns its place | — |
database-specialist | Judge what a MySQL schema change does in production: the algorithm, the lock, the timeout, and where it must run | laravel database |
db-inspector | Report the real schema, indexes, and data through the Laravel Boost database tools | laravel database |
github-researcher | Mine git and GitHub history for the change, pull request, and review behind a line of code | github |
performance-reviewer | Find N+1 queries, unbounded queries, over-fetching, and slow request-path work, and measure the cost where it can | laravel database |
security-reviewer | Review authorization, injection, and data exposure. Every rated finding names the attacker, source, sink, and missing control | laravel |
sentry-researcher | Pull the error signal from Sentry for a bug or a release: stack trace, trend, and release | sentry |
silent-failure-hunter | Find swallowed exceptions, fallbacks that hide a failure, and failures that nobody sees | laravel |
simplification-auditor | Audit a change for code that does not need to exist, and return a ledger that accounts for every unit it added | — |
tech-lead-reviewer | Review the approach one level above the line: design size, value types, placement, one-way doors | — |
test-coverage-auditor | Find the untested failure paths and the assertions that pass whatever the code does | — |
Every subagent is read-only: it reports and never edits the repository.
Tags
| Tag | Meaning | Shipped by |
|---|---|---|
boost-extension | Opt-in: extending the engine with custom skills and file emitters | package-boost-php |
database | The project has a database | boost-skills |
frontend | The project has a user-facing UI: templates, styles, JS, or any mix. The JS checks skip what the project lacks | boost-skills |
github | Hosted on GitHub | boost-skills |
github-issues | Issue tracking in GitHub Issues | boost-skills |
hosting | The project deploys to a hosted platform. Parent of the platform-specific tags | boost-skills |
jira | Issue tracking in Jira | boost-skills |
laravel | The project uses the Laravel framework | boost-skills |
laravel-cloud | The application deploys to Laravel Cloud. Pair with hosting | boost-skills |
php | A PHP toolchain: Pint, PHPStan, Rector | boost-skills |
release-automation | Opt-in: release-flow content — README authoring, release notes, UPGRADING.md, CI changelog automation | boost-skills, package-boost-php |
sentry | The project tracks errors in Sentry and can reach them through a Sentry MCP server | boost-skills |
single-issue-scope | Opt-in: enforce single-issue PR, branch, and session discipline | boost-skills |
voice | Opt-in: route every writing surface to one voice rule | boost-skills |
github and github-issues are independent. github covers any GitHub-hosted repository and is what the PR and release skills use. github-issues is the narrower tag for projects that track issues in GitHub Issues. A repository hosted on GitHub but tracking issues in Jira declares github and not github-issues.
The engine ships a broader Tag enum with cases no skill in this catalog targets yet: Tag::Filament, Tag::Livewire, Tag::Volt, Tag::Inertia, Tag::Flux, Tag::Pest, Tag::Tailwind, and others. Declaring one is harmless, and it survives a re-run of the boost install picker.
Hand-offs
Several skills call others, and declare it with metadata.boost-requires:
interviewandpromptimizeboth build onclarify;interviewthen hands off towrite-spec;evaluaterunscode-reviewandcodex-review;pre-releasedrafts documents throughreadme,release-notes, andupgrading;pull-requests,pr-review-feedback, andjira-reworkeach run their base-sync merge throughresolve-conflicts.
Whenever one of these skills ships, everything it requires ships too, including a skill your withTags() would otherwise have filtered out. See Tags and dependencies.
Project Conventions
Several skills reference project-specific values: a Jira project key, the GitHub owner and repository, branch patterns, the PR title format, the test framework. The catalog ships a JSONSchema vocabulary at resources/boost/conventions-schema.json that names those slots, and you fill them in boost.php:
->withConventions([
'schema-version' => 1,
'jira' => ['project_key' => 'HPB'],
'github' => ['owner' => 'my-org', 'repo' => 'my-app'],
])The twelve slot groups are jira, github, branches, pr, testing, quality, codex, spec, mcp, translations, fixtures, and review. All are optional; only schema-version: 1 is required at the root. A group you do declare must carry its own required leaves, such as jira.project_key.
The mechanism, the token syntax, and the tooling are covered in Project Conventions.