This article is based on a source-code investigation. The repository was still under active development in July 2026.
What is Laravel Package Skeleton?
Laravel Package Skeleton is a starter template for building Laravel packages.composer install automatically starts an interactive configuration script named configure.php. It asks for the package name, vendor, namespace, and required features, leaving the package ready for development.
Why use this skeleton?
Starting a Laravel package from scratch often means spending time on test setup, static analysis, formatting, and GitHub Actions before working on the package itself. Laravel Package Skeleton collects the Laravel team’s package-development practices in one template so you can begin with package logic instead of infrastructure.Included tools
| Tool | Purpose |
|---|---|
| Pest | Test framework |
| Larastan | Static analysis for Laravel |
| Pint | Code formatting |
| Orchestra Testbench | Package test environment |
| Workbench | Application for end-to-end development |
Configurable package features
Duringcomposer install, select only the features the package needs. Scaffolding for unselected features is removed.
| Feature | Description |
|---|---|
| Config file | Adds a file under config/ |
| Routes | Adds a route file |
| Views | Adds Blade views |
| Translations | Adds language files |
| Migrations | Adds migration files |
| Assets | Adds publishable assets |
| Commands | Adds an Artisan command |
| Facade | Adds a facade class |
| Boost Skill | Adds a skill for AI agents |
Configurable tooling
You can also enable or disable project tooling:| Tool | Description |
|---|---|
| Dependabot | Automated dependency update pull requests |
| Issue Template | GitHub issue templates |
| Changelog | Automatic CHANGELOG.md updates on release |
| Funding | GitHub Sponsors link |
| Security Policy | Vulnerability reporting policy |
Setup workflow
Create a repository from the template
Select Use this template on GitHub or clone the repository directly.
Install dependencies
Running To run the script manually, skip Composer scripts first.
composer install starts configure.php automatically.Answer the prompts
Configure the author name and email, vendor, package name and description, class name, enabled features, enabled tooling, and optional GitHub repository creation when the GitHub CLI is authenticated.
Non-interactive mode
Use--no-interaction when configuring the package from CI or a script.
GitHub Actions CI
The includedtests.yml workflow runs a matrix across multiple PHP versions, Laravel versions, and operating systems.
- PHPStan with
composer analyse - Pint with
composer lint:check - Type coverage with
composer test:typeson Ubuntu - Pest with
composer test:uniton Ubuntu
Changelog automation
update-changelog.yml updates CHANGELOG.md when a GitHub Release is published. release.yml groups release notes by pull request label.
| Label | Category |
|---|---|
breaking | Breaking changes |
enhancement | Features |
bug | Bug fixes |
documentation | Documentation |
dependencies | Dependencies |
maintenance | Maintenance |
skip-changelog | Excluded from the changelog |
What configure.php does
configure.php is a one-time bootstrap script that removes itself after configuration.
GitHub configuration after installation
The README recommends reviewing Dependabot pull requests manually, creating the release-note labels listed above, and configuring protection formain. Changelog automation commits to CHANGELOG.md, so branch protection must permit the GitHub Actions workflow. No additional repository secrets are required because the workflows use the built-in GITHUB_TOKEN.
Development status
- Repository: laravel/package-skeleton
- Published: July 2026 and under active development
- Caution: APIs and structure may change during early development
laravel/package-skeleton repository
View the source code and latest updates.
Official package development documentation
Learn the fundamentals of Laravel package development.