This article is based on source-code research. The repository is under development as of July 2026.
What is Laravel Package Skeleton?
Laravel Package Skeleton is a starter template for creating Laravel packages.composer install automatically launches an interactive configuration script (configure.php) that lets you set the package name, vendor name, namespace, and which features to include, question by question. Once configured, you can start development immediately.
Why this skeleton exists
If you start building a Laravel package “your own way,” a lot of time is spent on things unrelated to the package logic itself: test environment setup, static analysis, code formatting, GitHub Actions configuration, and so on. Laravel Package Skeleton consolidates the best practices the Laravel team uses in real package development into a single template. It lets you skip environment setup and jump straight to implementing package logic.Included tools
Configurable package features
Thecomposer install prompt lets you select only the features you need. Scaffolding for unselected features is removed.
Configurable tools
Similarly, tools can be toggled on/off per project.Setup flow
1
Create a repository from the template
Click the Use this template button on GitHub to create a new repository, or clone directly.
2
Install dependencies
Running To run the script manually, use the
composer install automatically launches configure.php.--no-scripts option.3
Answer the prompts
Configure the following items via prompts:
- Author Name / Email
- Vendor name (e.g.
kawax) - Package name (e.g.
my-package) - Package description
- Class name (e.g.
MyPackage) - Multi-select for which features to use
- Multi-select for which tools to use
- Auto-create a GitHub repository (if the
ghCLI is authenticated)
4
Verify it works
5
End-to-end testing with Workbench
http://localhost:8000.Non-interactive mode
For setups from CI or scripts, use the--no-interaction flag.
GitHub Actions CI
The bundledtests.yml is a matrix build that runs tests across multiple PHP versions, Laravel versions, and OSes.
- PHPStan (
composer analyse) — static analysis - Pint (
composer lint:check) — style check - Type coverage (
composer test:types) — verify 100% type coverage (Ubuntu only) - Pest (
composer test:unit) — unit tests (Ubuntu only)
Changelog automation
update-changelog.yml is triggered by GitHub Releases and auto-updates CHANGELOG.md. release.yml classifies changes by PR label and generates release notes.
Release note labels:
What configure.php does
configure.php is a one-shot bootstrap script. It’s deleted after execution.
Recommended GitHub setup after installation
Recommended post-install settings from the README:- Manually review Dependabot PRs — auto-merge workflows are not included
- Create release note labels —
breaking,enhancement,bug,documentation,dependencies,maintenance,skip-changelog,duplicate - Configure
mainbranch protection — because changelog automation commits toCHANGELOG.mdvia GitHub Actions, branch protection rules need to be adjusted
GITHUB_TOKEN.
Current development status
- GitHub repository: laravel/package-skeleton
- Publication timing: July 2026 (actively developed)
- Note: because it’s early in development, the API and structure may change
laravel/package-skeleton repository
Source code and latest updates.
Package development official docs
See the official documentation for the basics of Laravel package development.