PHPackages                             stumason/claudavel - 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. [Framework](/categories/framework)
4. /
5. stumason/claudavel

ActiveLibrary[Framework](/categories/framework)

stumason/claudavel
==================

Opinionated Laravel starter setup: Horizon, Reverb, Telescope, Sanctum, health checks, coding standards, and a concurrent dev script.

v1.5.1(4mo ago)12.5k↑70%[1 issues](https://github.com/StuMason/claudavel/issues)[1 PRs](https://github.com/StuMason/claudavel/pulls)MITPHPPHP ^8.3CI failing

Since Jan 5Pushed 1mo agoCompare

[ Source](https://github.com/StuMason/claudavel)[ Packagist](https://packagist.org/packages/stumason/claudavel)[ RSS](/packages/stumason-claudavel/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (8)Dependencies (6)Versions (19)Used By (0)

Claudavel
=========

[](#claudavel)

[![CI](https://github.com/StuMason/claudavel/actions/workflows/ci.yml/badge.svg)](https://github.com/StuMason/claudavel/actions/workflows/ci.yml)[![Latest Version](https://camo.githubusercontent.com/93a972413d0790fb27b538b19381bf6ef7d94893a94cc7664f6286e6c93c0e05/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7374756d61736f6e2f636c6175646176656c2e737667)](https://packagist.org/packages/stumason/claudavel)[![PHP Version](https://camo.githubusercontent.com/94dab6ca7fe3e0f6390d8889e5437b53554bcb2c8d2e8e3640ca3a9ecb7f44b0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f7374756d61736f6e2f636c6175646176656c2e737667)](https://packagist.org/packages/stumason/claudavel)[![Laravel Version](https://camo.githubusercontent.com/345c267d4886d1fc482cf93fe78528d8c43967446838fb9fa7bc77a09821b3b3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2d31322e782d7265642e737667)](https://laravel.com)[![License](https://camo.githubusercontent.com/5d929f57953629b09b6c08032c78e2377873cb004332a2b7a245b036874900c8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7374756d61736f6e2f636c6175646176656c2e737667)](LICENSE)

**Laravel + Claude Code, configured to work together.**

One command installs a complete Laravel stack with AI-powered code review, consistent coding standards that Claude actually follows, and GitHub workflows that let you @mention Claude in issues and PRs.

```
composer require stumason/claudavel
php artisan claudavel:install
```

Why This Exists
---------------

[](#why-this-exists)

Claude Code is powerful, but it works better when your project has clear conventions. Claudavel gives you:

- **Coding standards Claude follows** - Published to `docs/standards/` and referenced in CLAUDE.md. No more explaining the same patterns every session.
- **AI code review on every PR** - Claude reviews your code automatically via GitHub Actions. Catches bugs, suggests improvements, checks against your standards.
- **@claude in issues and PRs** - Mention Claude anywhere in GitHub and it responds with context about your codebase.
- **A complete stack** - Fortify, Sanctum, Horizon, Reverb, Telescope, Pail, Wayfinder, Sqids. All configured, all working together.

Quick Start
-----------

[](#quick-start)

```
laravel new my-app
cd my-app
composer require stumason/claudavel
php artisan claudavel:install
createdb my_app
composer run dev
```

Then set up Claude's GitHub integration:

```
claude /install-github-app
```

This adds the `CLAUDE_CODE_OAUTH_TOKEN` secret to your repository, enabling AI code review and @claude mentions.

What Gets Installed
-------------------

[](#what-gets-installed)

### Packages

[](#packages)

PackagePurposelaravel/fortifyAuthentication without Breeze/Jetstream bloatlaravel/sanctumAPI tokenslaravel/horizonRedis queue dashboardlaravel/reverbWebSockets without third-party serviceslaravel/telescopeDebug assistantlaravel/pailReal-time log tailinglaravel/wayfinderType-safe routes in TypeScriptsqids/sqidsID obfuscation### GitHub Workflows

[](#github-workflows)

WorkflowWhat it doesclaude-code-review.ymlAI reviews every PR automaticallyclaude.ymlResponds to @claude mentionsci.ymlUnified CI: Lint, Test (Postgres), Securitydependabot-automerge.ymlAuto-merges minor/patch dependency updates**Note:** The unified `ci.yml` workflow runs three parallel jobs:

- **Lint** (~55s): PHP Pint, Wayfinder types, TypeScript, ESLint, Prettier
- **Test** (~1m20s): PostgreSQL 16, frontend build, Pest with coverage
- **Security** (~20s): Composer + npm audit

#### @claude Workflow Security

[](#claude-workflow-security)

The `claude.yml` workflow gives Claude write access to your repository. This is intentional - it allows Claude to create branches, push commits, and open PRs on your behalf.

**Who can trigger Claude:**

- Only repository **owners** and **collaborators** can trigger Claude via @mentions
- External contributors and random users cannot trigger Claude, even on public repos

**What Claude can do:**

- Create and push branches
- Create pull requests (`gh pr create`)
- Merge pull requests (`gh pr merge`)
- Comment on issues and PRs
- Close issues

**What Claude cannot do:**

- Delete branches or force push
- Modify repository settings
- Access secrets beyond `CLAUDE_CODE_OAUTH_TOKEN`
- Trigger on comments from non-collaborators

If you need stricter controls, you can modify the workflow's `if` condition or remove `claude.yml` entirely with `--no-workflows`.

### Coding Standards

[](#coding-standards)

Published to `docs/standards/` with conventions that matter:

- **Actions pattern** - Business logic in `app/Actions/{Domain}/`
- **DTOs** - Type-safe data containers in `app/DataTransferObjects/`
- **Money as integers** - Store cents, not dollars
- **Lowercase imports** - `@/components/button` not `@/Components/Button`

These get referenced in your CLAUDE.md so every Claude session knows your conventions.

### Environment

[](#environment)

```
DB_CONNECTION=pgsql
SESSION_DRIVER=redis
CACHE_STORE=redis
QUEUE_CONNECTION=redis
ADMIN_EMAILS=you@example.com,team@example.com
```

### Configuration

[](#configuration)

Claudavel publishes `config/claudavel.php` for package settings:

```
// config/claudavel.php
return [
    'admin_emails' => env('ADMIN_EMAILS'),  // Comma-separated list
];
```

Admin emails control access to Horizon and Telescope in production. In local environment, everyone has access.

Features
--------

[](#features)

### ID Obfuscation

[](#id-obfuscation)

Never expose sequential IDs. Add the trait to any model:

```
use App\Models\Traits\HasUid;

class User extends Model
{
    use HasUid;
}

$user->uid;  // "K4x9Pq" instead of "1"
User::findByUid('K4x9Pq');  // Works
Route::get('/users/{user}', ...);  // Binds automatically
```

### Generator Commands

[](#generator-commands)

```
php artisan make:action User/UpdateProfile
php artisan make:dto UserProfile --properties=id:int,name:string,email:?string
php artisan types:generate  # Generates TypeScript interfaces from DTOs
```

### Health Check

[](#health-check)

The `/health` endpoint verifies database, Redis, cache, queue, and storage. Use it for load balancer checks.

Installation Options
--------------------

[](#installation-options)

```
php artisan claudavel:install                      # Install everything (default)
php artisan claudavel:install --horizon            # Only Horizon (skip Reverb, Telescope)
php artisan claudavel:install --no-workflows       # Skip GitHub workflows
php artisan claudavel:install --force              # Overwrite existing files
```

The command is idempotent - run it on existing projects and it only installs what's missing.

Development Server
------------------

[](#development-server)

`composer run dev` runs everything concurrently:

- Laravel dev server
- Horizon (queue worker)
- Reverb (WebSockets)
- Scheduler (`schedule:work`)
- Pail (log tailing)
- Vite (frontend)

Repository Setup
----------------

[](#repository-setup)

Claudavel installs comprehensive GitHub repository setup scaffolding:

### Issue Templates

[](#issue-templates)

- **Bug Report** - Structured bug reports with area classification
- **Feature Request** - Feature requests with MVP priority tracking
- **Config** - Links to project board for roadmap visibility

### Pull Request Template

[](#pull-request-template)

Laravel-specific compliance checklist:

- Code standards verification (`docs/standards/`)
- Type generation check (`php artisan types:generate`)
- Pint formatting (`vendor/bin/pint --dirty`)

### CODEOWNERS

[](#codeowners)

Template file for automatic PR reviewer assignment.

### Husky + lint-staged Pre-commit Hooks

[](#husky--lint-staged-pre-commit-hooks)

Automatically formats code before commits:

- PHP files → Laravel Pint
- JS/TS files → ESLint + Prettier
- CSS/JSON/MD/YAML → Prettier

**Setup:**

```
npm install --save-dev husky lint-staged
npx husky init
```

The installer creates `.husky/pre-commit` and adds `lint-staged` config to `package.json`.

### Branch Protection (Recommended)

[](#branch-protection-recommended)

Configure branch protection rules for `main`:

- Require status checks: Lint, Test, Security
- Dismiss stale reviews
- Don't enforce on admins (allows maintainer override)
- No force pushes or deletions

**Note:** Branch protection requires GitHub Pro for private repositories.

### ESLint Configuration

[](#eslint-configuration)

The ESLint config automatically ignores Wayfinder generated files:

- `resources/js/actions/**`
- `resources/js/routes/**`

This prevents import order and unused variable warnings for generated code.

Keeping Stubs Updated
---------------------

[](#keeping-stubs-updated)

The workflow files, templates, and configs installed by Claudavel are static copies. To get updates:

```
composer update stumason/claudavel
php artisan claudavel:install --force
```

The `--force` flag overwrites existing files with the latest versions. Review the changes before committing.

**Note:** Dependabot monitors your project's `composer.json`, `package.json`, and workflow files - but not the stub templates in the Claudavel package itself. Updating Claudavel is how you get improved stubs.

Requirements
------------

[](#requirements)

- PHP 8.3+
- Laravel 12+
- Postgres
- Redis

License
-------

[](#license)

MIT

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance64

Regular maintenance activity

Popularity24

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75% 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 ~1 days

Total

7

Last Release

125d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/81944ec9cc7c6d5f0380f888fd5e34f1481dbba5bfdd5af01809529aad5762b4?d=identicon)[StuMason](/maintainers/StuMason)

---

Top Contributors

[![StuMason](https://avatars.githubusercontent.com/u/21249318?v=4)](https://github.com/StuMason "StuMason (21 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (7 commits)")

---

Tags

aiclaudeclaude-codecode-reviewdeveloper-toolsgithub-actionslaravelphplaravelstarterhorizontelescopeopinionatedreverb

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/stumason-claudavel/health.svg)

```
[![Health](https://phpackages.com/badges/stumason-claudavel/health.svg)](https://phpackages.com/packages/stumason-claudavel)
```

###  Alternatives

[laravel/tinker

Powerful REPL for the Laravel framework.

7.4k423.8M1.8k](/packages/laravel-tinker)[laravel/ui

Laravel UI utilities and presets.

2.7k134.9M601](/packages/laravel-ui)[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M532](/packages/laravel-passport)[laravel/sail

Docker files for running a basic Laravel application.

1.9k186.9M1.0k](/packages/laravel-sail)[laravel/jetstream

Tailwind scaffolding for the Laravel framework.

4.1k19.8M136](/packages/laravel-jetstream)[laravel/breeze

Minimal Laravel authentication scaffolding with Blade and Tailwind.

3.0k31.3M148](/packages/laravel-breeze)

PHPackages © 2026

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