PHPackages                             sandermuller/boost-skills - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. sandermuller/boost-skills

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

sandermuller/boost-skills
=========================

A package that ships AI skills to be used for shipping code in both packages and projects

2.0.1(1w ago)11.2k↓24%9MITPHPPHP ^8.3CI passing

Since May 20Pushed 4d agoCompare

[ Source](https://github.com/SanderMuller/boost-skills)[ Packagist](https://packagist.org/packages/sandermuller/boost-skills)[ Docs](https://github.com/sandermuller/boost-skills)[ RSS](/packages/sandermuller-boost-skills/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (13)Versions (31)Used By (9)

boost-skills
============

[](#boost-skills)

> Sander Muller's personal Composer-distributed catalog of AI agent skills for PHP projects and Composer packages. Adopt it if your preferences align with Sander's, or use it as a template for your own.

[![Latest Version on Packagist](https://camo.githubusercontent.com/8ea48621a7456f98ff73e75c7334632fb4a0ce00fece4d377c23848f6238faed/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f73616e6465726d756c6c65722f626f6f73742d736b696c6c732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/sandermuller/boost-skills)[![Total Downloads](https://camo.githubusercontent.com/fb72f27987e7da8a2d0c0ebd0daab09c135b647041886661cee4789fd061c59a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f73616e6465726d756c6c65722f626f6f73742d736b696c6c732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/sandermuller/boost-skills)[![License](https://camo.githubusercontent.com/35574994e7b804e3b8dafafd48e99d0c713d0449cfb2ebe6907278dc4e8f2a2c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f73616e6465726d756c6c65722f626f6f73742d736b696c6c732e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Laravel Boost](https://camo.githubusercontent.com/90f2604136cf241bd1fa46f5c025c7dad12d8cdc1b66e7662c12003c7f79abf8/68747470733a2f2f62616467652e6c61726176656c2e636c6f75642f626f6f73742d62616467652e7376673f7374796c653d666c61742d737175617265)](https://github.com/laravel/boost)

`sandermuller/boost-skills` is one example of a Composer-distributed AI-skill catalog. It ships a curated mix of generic workflow skills (code review, bug fixing, spec-driven implementation, release checklists, Jira workflows, deployment, and more), tag-gated framework-specific extras, and always-on [guidelines](#guidelines) — see the full [Skills](#skills) and [Guidelines](#guidelines) inventories below.

The package carries no runtime code; it's pure Markdown. A sync engine ([`sandermuller/boost-core`](https://github.com/sandermuller/boost-core) or [`laravel/boost`](https://github.com/laravel/boost)) reads these skills and writes them into each AI agent directory you've configured (Claude Code, Cursor, Copilot, Codex, Gemini, and the rest).

Where do skills come from?
--------------------------

[](#where-do-skills-come-from)

Anywhere you want. Skill sources stack — mix and match freely:

- **Your own `.ai/skills/` folder**, hand-authored next to the rest of the project. Same convention `laravel/boost` and `boost-core` both pick up automatically.
- **A Composer-installed catalog package**. Any package that ships `resources/boost/skills/` works. Sander publishes his personal catalog at [`sandermuller/boost-skills`](https://github.com/sandermuller/boost-skills) (this repo) — adopt it if your preferences align with Sander's, or use it as a template for your own private/public catalog.
- **External, non-Composer sources** via `boost-core`'s `withRemoteSkills()`. Pull GitHub-published `.skill` bundles or single-skill repos straight from a URL.
- **`laravel/boost`'s bundled Laravel skills** — Laravel-specific skills shipped by Laravel via `laravel/boost` (Laravel apps only).

`withAllowedVendors()` gates Composer-scanned vendors (source 2) only. `withTags()` filters sources 2, 3, and 4 (Composer vendors, remote skills, `laravel/boost` bundle). Host `.ai/skills/` (source 1) bypasses **both** gates — your project authored those skills, so the engine treats them as canonical and applies neither filter.

The boost family
----------------

[](#the-boost-family)

If you adopt `sandermuller/boost-skills` (or any Composer-distributed catalog), pair it with the sync engine that matches your role:

- [`sandermuller/package-boost-php`](https://github.com/sandermuller/package-boost-php) if you write framework-agnostic Composer packages
- [`sandermuller/package-boost-laravel`](https://github.com/sandermuller/package-boost-laravel) if you write Laravel packages
- [`sandermuller/project-boost`](https://github.com/sandermuller/project-boost) if you build a PHP application
- [`sandermuller/project-boost-laravel`](https://github.com/sandermuller/project-boost-laravel) if you build a Laravel application (coexists with `laravel/boost` — adds nine-agent fanout, tag filter, vendor allowlist, remote skills)

The four `sandermuller/*` packages bundle the [`sandermuller/boost-core`](https://github.com/sandermuller/boost-core) sync engine, so you rarely install `boost-core` yourself. [`laravel/boost`](https://github.com/laravel/boost) (Laravel's own engine, MCP server, and docs API) coexists with `project-boost-laravel` in Laravel apps — the family-package layers the nine-agent fanout and filters on top. If you'd rather skip the family controls and use `laravel/boost` standalone, it reads any Composer-distributed catalog (including this one) just as well; follow its setup for that one. If none of these fit (a non-PHP package, say), install `boost-core` directly.

Install
-------

[](#install)

If you adopt `sandermuller/boost-skills` as your catalog, install it together with the family package for your engine role. For a framework-agnostic package author, that is `package-boost-php`:

```
composer require --dev sandermuller/boost-skills sandermuller/package-boost-php
```

Swap `package-boost-php` for `package-boost-laravel` or `project-boost` to match your role. The steps below use the `boost-core` engine's commands; on `laravel/boost`, follow [its own setup](https://github.com/laravel/boost) instead and ensure `sandermuller/boost-skills` is among the packages it syncs.

`boost-core`, pulled in by the family package, ships an interactive setup command:

```
vendor/bin/boost install
```

`boost install` generates a `boost.php` in your project root and lets you pick target agents and allowlisted vendors. Skills sync only from allowlisted vendors, so make sure `sandermuller/boost-skills` is selected. The result looks like:

```
return BoostConfig::configure()
    ->withAgents([
        Agent::CLAUDE_CODE,
        Agent::COPILOT,
        Agent::CODEX,
    ])
    ->withAllowedVendors([
        'sandermuller/boost-skills',
        'sandermuller/package-boost-php',
    ])
    ->withTags(['php', 'github']);
```

Declare your project's capabilities in `->withTags(...)` — tagged skills and guidelines sync only to projects that opt in. Common starters are `'php'` and `'github'`; see the [Tags](#tags) registry for the full vocabulary. After a sync, `vendor/bin/boost tags` shows which tagged content is currently filtered out vs synced — handy for spotting capabilities you may want to declare.

Then fan the skills out:

```
vendor/bin/boost sync
```

Re-sync after edits by running `vendor/bin/boost sync`, or wire the [`BoostAutoSync` callback](https://github.com/sandermuller/boost-core#auto-sync-on-composer-install) into your `composer.json`'s `post-install-cmd` / `post-update-cmd` to re-sync automatically on every `composer install` / `composer update`. The generated agent directories (`.claude/skills/`, `.github/skills/`, and the rest) stay out of version control; `boost-core` manages that `.gitignore` block.

Skills
------

[](#skills)

SkillWhat it doesTags`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 + related tests on every change, PHPStan + full suite on completion.`php``bug-fixing`Test-driven bug workflow: reproduce with a failing test, then fix it.—`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 apps on Laravel Cloud via the `cloud` CLI — environments, databases, domains, billing.`laravel-cloud` `hosting``eloquent-models`Create and maintain Eloquent models with column/relation constants, comprehensive docblocks, and FK constants.`laravel``evaluate`Self-review a full implementation and fix the issues it surfaces.—`final-verification-review`Pre-PR closeout: run the full evaluate loop, dry-run the PR preflight and gates, report READY / NOT READY.`github``frontend-quality`Frontend quality gate: type-checking and linting for the project's frontend toolchain.`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`Structured Q&amp;A to gather 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; post Blocked-by-Question comments.`jira` `github``pr-review-feedback`Apply PR review comments, evaluating each critically before acting.`github``pre-release`Pre-push gauntlet: Rector, Pint, full test suite, PHPStan, and a doc-staleness audit.`php` `github``pull-requests`Create and manage your own GitHub PRs via `gh`: write the description, verify, route by risk.`github``readme`Author and maintain a high-quality README for a Composer package — stub vs comprehensive shape, voice, staleness audit.`release-automation``release-notes`Draft GitHub release bodies for Composer packages — structure, voice, breaking-change callouts, what to omit.`release-automation``resolve-conflicts`Resolve git merge conflicts without dropping functionality from either side.—`test-writing`Write specific, descriptively named tests that follow Arrange-Act-Assert.—`upgrading`Canonical structure for UPGRADING.md in a Composer package — when to maintain one, what to put in it.`release-automation``ux-review`Weigh UX/UI options for a new feature, recommend an approach, and document the decision.—`write-spec`Write implementation-ready specification files with progress-trackable phases.—Tags
----

[](#tags)

Most skills and guidelines are universal — they sync to every project. Some carry **capability tags** naming what the project needs (or has opted in to) for the content to be useful. A project declares its capabilities in `boost.php` via `->withTags(...)`, and only matching content syncs.

The tag **mechanism** (subset-AND match, `withTags()` declaration in `boost.php`, `metadata.boost-tags` in skill frontmatter, the `.boost-tags.yaml` sidecar manifest for guidelines) is family-canonical — defined by `boost-core` and applies to any Composer-distributed catalog. The tag **vocabulary** below is one catalog's choice — Sander's mix of capabilities surfaced by skills and guidelines `boost-skills` ships. Other catalogs may organize differently. **Owner** names which boost-family package ships the content using each tag.

`boost-core` ships a broader `Tag` enum (`SanderMuller\BoostCore\Enums\Tag`) with cases not bound to any skill in this catalog — `Tag::Filament`, `Tag::Livewire`, `Tag::Volt`, `Tag::Inertia`, `Tag::Flux`, `Tag::Pest`, `Tag::Tailwind`, and others. These are forward-compatible slots in the family vocabulary. Declaring them in your `withTags(...)` is harmless today (no shipped skill targets them yet) and survives `boost install` picker re-runs per `boost-core`'s declared-but-undiscovered preservation rule. The table below covers only the tags `boost-skills` itself currently ships content under; see `Tag::*` in `boost-core` for the full enum vocabulary.

TagMeaningOwner`boost-extension`opt-in — extending boost-core (custom skills + FileEmitters)`package-boost-php``database`project has a database`boost-skills``frontend`frontend toolchain — type-checking, linting`boost-skills``github`hosted on GitHub`boost-skills``github-issues`issue tracking in GitHub Issues`boost-skills``hosting`project deploys to a hosted platform (parent of platform-specific tags)`boost-skills``jira`issue tracking in Jira`boost-skills``laravel`project uses the Laravel framework (Eloquent, service providers, etc.)`boost-skills``laravel-cloud`app deploys to Laravel Cloud (pair with `hosting`)`boost-skills``php`PHP toolchain — Pint, PHPStan, Rector`boost-skills``release-automation`opt-in — release flow content: README authoring, release notes, UPGRADING, CI changelog automation`boost-skills`, `package-boost-php``single-issue-scope`opt-in — enforce single-issue PR/branch/session discipline`boost-skills`**`github` and `github-issues` are independent.** `github` covers any GitHub-hosted repo (used by PR and release skills); `github-issues` is the narrower tag for projects that track issues in GitHub Issues specifically. A repo hosted on GitHub but tracking issues in Jira declares `github` but not `github-issues`. Both are independently declarable in `->withTags(...)`.

A skill or guideline can carry more than one tag, and then applies only where the project declares *all* of them — `jira-rework` is `jira` + `github`. Skill tags live inline in the skill's `SKILL.md` frontmatter (`metadata.boost-tags`); guideline tags live in a sidecar `.boost-tags.yaml` manifest (guidelines stay frontmatter-free for `laravel/boost` compatibility). Filtering needs `boost-core` 0.5+ for skills and 0.6+ for the guideline manifest; on older versions or under `laravel/boost`, the tags are inert and everything in this package syncs.

Project Conventions schema
--------------------------

[](#project-conventions-schema)

Some vendor skills in this catalog reference project-specific values — Jira project key, GitHub owner / repo, branch-naming patterns, PR title format, test framework, codex invocation mode, MCP server-name mappings. Rather than baking those values into vendor skill bodies (which would force every consumer to shadow the skill to override the embedded value), `boost-skills 1.7.0+` ships a **JSONSchema vocabulary** at `resources/boost/conventions-schema.json` that names the slots. Consumers declare values in `boost.php` via `->withConventions([...])`; `boost sync` inlines each slot value directly into the skill bodies at sync time (2.0+; the `1.7`–`1.9` line instead rendered a `## Project Conventions` block that skills read at agent runtime).

**Requires** `sandermuller/boost-core ^0.20` (accepted range `^0.20 || ^0.21 || ^0.22 || ^0.23 || ^1.0`). Slot-aware skills resolve their convention values at sync time via `boost-core`'s conventions-inlining tokens (`\`, shipped in `0.15.0`); the three Jira skills additionally use an `mcp.jira` sub-key token that only the `0.16.0` resolver handles. The conventions-token machinery itself requires `0.16.0`+ (below it the `mcp.*` sub-key token emits raw and the value is lost), but the **declared floor is higher by policy**: `boost-skills 2.1.0` declares `boost-core ^0.20 || ^0.21 || ^0.22 || ^0.23 || ^1.0`, raising the floor from `^0.16` to `^0.20` as a support-policy cutoff that aligns the catalog with the config API `boost-core` froze for `1.0` (`->withTags(...)` became array-form in `0.20.0`) — not merely the token resolver. Each newer 0.x minor is accepted additively and `^1.0` forward-covers the 1.x line; the family package you adopt (`package-boost-php` / `package-boost-laravel` / `project-boost` / `project-boost-laravel`) also floats the engine. Earlier engine milestones folded in: `0.9.0` (conventions-source-flip — values move to `boost.php`), `0.9.3` (data-loss patch), `0.10.0` (cross-agent capability-loss fix), `0.11.0` (`BoostWrapperContract`), `0.12.0` (markerless guidance files — operator content moves to `.ai/guidelines/`), `0.14.0` (reconcile-on-sync), `0.15.0` (**conventions inlining** — convention values render into skills at sync; the always-loaded `## Project Conventions` block drops once a project is fully token-sourced), `0.16.0` (open-vocab `mcp.*` sub-key resolution + conventions-token leak detection).

Skill bodies inline slots via `\` tokens, resolved at sync time; the `boost slots` command lists the same slots in dotted form (`jira.project_key`). The `path=` and dotted forms name the same slot.

Declare conventions in `boost.php`:

```
return BoostConfig::configure()
    ->withAgents([Agent::CLAUDE_CODE, Agent::COPILOT, Agent::CODEX])
    ->withAllowedVendors(['sandermuller/boost-skills', /* ... */])
    ->withTags([Tag::Php, Tag::Github, Tag::Laravel])
    ->withConventions([
        'schema-version' => 1,
        'jira' => [
            'project_key' => 'HPB',
        ],
        'github' => [
            'owner' => 'my-org',
            'repo' => 'my-app',
        ],
        // … other slot groups consumer needs …
    ]);
```

`boost sync` renders the array into a marker-bounded YAML block under `## Project Conventions` in `CLAUDE.md` (agent-read surface). `boost.php` is the single source of truth; edit there, run `boost sync`, the rendered block updates automatically.

### Slot taxonomy

[](#slot-taxonomy)

Two patterns:

- **Value slots** — scalar / array / path values. Vendor skill reads and uses directly. Example: `jira.project_key` is a string; vendor `jira-create` substitutes it into mutation calls.
- **Policy slots** — typed-object arrays with a `type:` discriminator. Vendor dispatches on the discriminator. Example: `pr.gates` is a list of typed gates (`skill_invoked` / `shell_command` / `mcp_tool`); vendor `pull-requests` enforces each in declared order.

Missing-slot behavior is per-slot: value slots prompt the user once per session; policy slots are skipped silently (no enforcement) when absent.

### Slot groups (v1)

[](#slot-groups-v1)

GroupPurposeUsed by skills`jira`Jira issue tracker — project key, refuse-other-projects policy, description-format doc`jira-create`, `jira-rework`, `jira-updates``github`GitHub repo identity — owner, repo, default base branch`pull-requests`, `pr-review-feedback`, `github-issue-updates``branches`Branch-name patterns + per-pattern base resolution (typed-object array)`pull-requests``pr`PR conventions — title format, template path, pre-PR gates, risk-tier routing (`pr.risk`)`pull-requests`, `final-verification-review``testing`Test framework conventions — `phpunit` / `pest`, forbid list`bug-fixing`, `test-writing`, `backend-quality``codex`Codex invocation — `plugin` (default) / `bare_cli`, setup doc`codex-review``spec`Spec-file conventions — filename pattern, research docs`write-spec`, `implement-spec`, `interview``mcp`Project-specific MCP server-name mappings (open vocabulary)`jira-*`, `pull-requests` (when MCP-mediated)`translations`DB-driven translation-key validation (optional; DB-stored keys only) — per-consumer key pattern + file-based exemptions`evaluate`All 9 groups are root-optional — only `schema-version: 1` is root-required. A consumer without (say) a Jira tracker simply doesn't declare the `jira` group; no scaffold noise, no forced placeholder. Inside each declared group, leaves with `required` semantics must be present (e.g. `jira.project_key` is required if `jira` is declared at all). The full machine-readable contract lives in [`resources/boost/conventions-schema.json`](resources/boost/conventions-schema.json).

### Tooling

[](#tooling)

CommandWhat it does`vendor/bin/boost validate`Validates the `->withConventions([...])` declaration in `boost.php` against allowlisted vendors' schemas. Surfaces missing-required, unknown-slot, schema-version mismatches as `SyncResult::diagnostics`.`vendor/bin/boost slots [--vendor=X] [--missing] [--filled] [--json]`Lists declared slots across allowlisted vendors; flags filter to missing / filled subsets.`vendor/bin/boost doctor --check-conventions`Adds conventions-validation to the existing doctor report.`vendor/bin/boost convert-conventions`One-time migration: extracts a `1.7.x`-era hand-edited YAML block from `CLAUDE.md` and writes it into `boost.php`'s `->withConventions([...])` array. See [Migrating from 1.7.x](#migrating-from-17x).`vendor/bin/boost paths --managed`Lists agent-managed paths (for vendor skills resolving `since_last_code_change` window semantics in `pr.gates`).### Schema-versioning

[](#schema-versioning)

Vendor skills declare `metadata.schema-required` in their frontmatter — a Composer-style semver range naming which `schema-version` they consume. boost-skills' v1 vocabulary is `schema-version: 1`; current slot-aware skills (`jira-create`, `pull-requests`) declare `schema-required: ^1`. A future v2 schema is published via a vendor minor bump; consumers update their host `schema-version` declaration when their full vendor lineup supports it. Skills with mismatched `schema-required` skip-write with a warning; no broken syncs.

### Vendor schema vs catalog vocabulary

[](#vendor-schema-vs-catalog-vocabulary)

The mechanism (JSONSchema validation, `->withConventions([...])` builder method, `boost-core` engine surface) is family-canonical — defined by `boost-core` and applies to any vendor catalog. The slot vocabulary above is THIS catalog's choice; other Composer-distributed catalogs can ship their own schemas at `resources/boost/conventions-schema.json` and contribute to the host's combined slot vocabulary (subject to the engine's collision-handling rules: first-allowlisted wins on same-type, throws on type-mismatch).

### Migrating from 1.7.x

[](#migrating-from-17x)

If you adopted `boost-skills 1.7.0` / `1.7.1` / `1.7.2`, your `## Project Conventions` block lived as a hand-edited YAML region inside `CLAUDE.md` (the `boost-core 0.8.x` shape). Under `boost-core 0.9.0`+, `boost.php` becomes the single source of truth; the YAML block in `CLAUDE.md` is regenerated from `boost.php` at every sync.

One-command migration:

```
vendor/bin/boost convert-conventions
```

This reads the existing YAML block from `CLAUDE.md`, decodes it, and writes the values into `boost.php`'s `->withConventions([...])` array (or appends the method to the existing builder chain if absent). After conversion, `boost sync` rerenders the block from the new source. CLAUDE.md remains tracked in git; no `git rm --cached` step is needed (the `0.8.3` tracking decision carries through 0.9.0).

If `boost.php` already declares `->withConventions([...])` and the CLAUDE.md block also has non-empty content that differs, `convert-conventions` fails closed and asks the operator to reconcile manually — never silently destroys either source. After reconciliation, re-run.

Guidelines
----------

[](#guidelines)

Alongside skills, the package ships **guidelines** under `resources/boost/guidelines/` — short Markdown files of project-wide conventions that the sync engine folds into `CLAUDE.md` / `AGENTS.md`. Unlike skills, guidelines are always active — no on-demand activation.

Guidelines can be tagged, like skills, so one ships only to projects with the matching capability. But a guideline file stays frontmatter-free (for `laravel/boost` compatibility — it has no guideline frontmatter parser), so the tags live in a sidecar `resources/boost/guidelines/.boost-tags.yaml` manifest instead. `boost-core` 0.6.0+ reads it; on older `boost-core` and under `laravel/boost` the manifest is inert and every guideline ships.

GuidelineWhat it coversTags`database-safety`Never run destructive database commands; treat the test database as test-runner-owned.`database``javascript`JS/TS control-structure style — always use curly braces, no single-line conditionals.`frontend``migrations`Self-contained migration files; append columns instead of positioning them mid-table.`database``phpstan-fixing`Fixing a PHPStan error — write a failing test first when it maps to a runtime bug.`php``single-issue-scope`Keep each session, branch, and PR focused on exactly one issue.`single-issue-scope` (opt-in)`verification-before-completion`Run the verification command and read its output before claiming work is done.—Editing skills and guidelines
-----------------------------

[](#editing-skills-and-guidelines)

Each skill is a Markdown file at `resources/boost/skills//SKILL.md` with YAML frontmatter — `name` and `description`, plus optional `metadata` (a skill's `boost-tags` live here) and `argument-hint`. Guidelines are plain Markdown at `resources/boost/guidelines/.md` with **no** frontmatter — they must start directly at a heading, so they render correctly under both `boost-core` and `laravel/boost`. Edit both here in this repository, not in a consuming project's synced copy, which `boost-core` overwrites on the next sync. The `ai-guidelines` skill documents the frontmatter contract and authoring conventions.

Changelog
---------

[](#changelog)

See [`CHANGELOG.md`](CHANGELOG.md) for release history.

Security
--------

[](#security)

Found a vulnerability? Email `github@scode.nl` rather than opening a public issue. See [`SECURITY.md`](SECURITY.md) for the disclosure policy.

Credits
-------

[](#credits)

- [Sander Muller](https://github.com/sandermuller)

License
-------

[](#license)

MIT. See [`LICENSE`](LICENSE).

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance99

Actively maintained with recent releases

Popularity23

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

28

Last Release

8d ago

Major Versions

0.1.0 → 1.0.02026-05-21

1.9.9 → 2.0.02026-05-31

### Community

Maintainers

![](https://www.gravatar.com/avatar/abeb7bd51fd77656b4133bdcdf4eca99cc8b495b83ca72f63674ff15f2b72a39?d=identicon)[SanderMuller](/maintainers/SanderMuller)

---

Top Contributors

[![SanderMuller](https://avatars.githubusercontent.com/u/9074391?v=4)](https://github.com/SanderMuller "SanderMuller (126 commits)")

---

Tags

phpsandermullerboost-skills

### Embed Badge

![Health badge](/badges/sandermuller-boost-skills/health.svg)

```
[![Health](https://phpackages.com/badges/sandermuller-boost-skills/health.svg)](https://phpackages.com/packages/sandermuller-boost-skills)
```

###  Alternatives

[imanghafoori/laravel-anypass

A minimal yet powerful package to help you in development.

21422.6k](/packages/imanghafoori-laravel-anypass)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
