Skip to content
CAI
Software that uses CAICheck a score

Sprorowski/clean-architecture-laravel

52.2

Adequate · 22 September 2026

1.5k

lines of production code

PHP

primary language

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Laravel-based web application that implements a CQRS architecture for managing user accounts. It provides HTTP endpoints for user registration, retrieval, and authentication via Sanctum tokens. The codebase includes a full test suite and database migrations to support these core identity and authentication features.

Features

Added HTTP layer for user management and authentication

Introduced the HTTP presentation layer for user operations, including controllers and request classes for creating, loading, and logging in users. The setup includes API routes under /v1/user, with a login endpoint that issues Sanctum tokens and a user creation endpoint that returns a 201 Created response. Middleware for authentication, string trimming, and proxy trust is also configured.

app/Presenter/Http · high confidence

Added default configuration files for a Laravel application

The project now includes a full set of default configuration files for a Laravel application, including app, auth, broadcasting, cache, CORS, database, filesystems, hashing, logging, mail, queue, Sanctum, services, session, and view settings. These files establish the baseline environment for application behavior, such as database connections, session management, and mail drivers, allowing the application to be configured via environment variables.

config · high confidence

Added project configuration and environment setup files

The repository now includes essential configuration files to support development and deployment. This includes an \.editorconfig\ to enforce consistent coding styles (e.g., 4-space indentation, UTF-8 encoding), a \.env.example\ template for application environment variables (including database, mail, and cache settings), and a \.gitignore\ to exclude local configuration files and build artifacts from version control. Additionally, a \.phpcs-cache\ file has been added to store PHP CodeSniffer results, indicating the presence of a code quality enforcement workflow.

(repo-wide) · high confidence

Initial Laravel application scaffolding

The project now includes the standard Laravel bootstrap and public entry points. The application is configured to use custom kernel and exception handler classes (App\\Presenter\\Http\\Kernel, App\\Presenter\\Console\\Kernel, App\\Presenter\\Exceptions\\Handler) instead of the default ones. The public directory contains the .htaccess rewrite rules for Apache, the index.php front controller, and standard robots.txt and favicon files.

bootstrap, public · high confidence

Initial database schema and test infrastructure

The database module is initialized with standard Laravel migrations for the users, password reset tokens, failed jobs, and personal access tokens tables. Additionally, a factory for the User model is added to support unit testing, and a base DatabaseSeeder is included to facilitate database seeding during development and testing.

database · high confidence

Introduce CQRS application layer with user command and query handlers

The application layer now implements a Command Query Responsibility Segregation (CQRS) structure. This includes base classes and interfaces for commands, command handlers, queries, and query handlers. Specific implementations for user management have been added: a CreateUser command and handler, a LoadUser query and handler, and a LoginUser command and handler. The login handler integrates with the existing Auth facade to attempt authentication. Domain models for User and a Users repository interface are also introduced to support these operations.

app/Application · high confidence

Introduce Eloquent-based user persistence layer

The application now includes a new database infrastructure for managing users, featuring an Eloquent model (UserModel) that maps to the 'users' table and a corresponding repository (EloquentUsers) that implements the Users interface. This change enables the system to persist and retrieve user data using Laravel's Eloquent ORM, supporting operations like fetching by ID and creating new user records.

app/Infrastructure · high confidence

Introduce Laravel service providers for application bootstrapping

The application now includes a set of Laravel service providers that handle core bootstrapping tasks. AppServiceProvider registers the Users repository with its Eloquent implementation, while EventServiceProvider configures the email verification listener for new user registrations. RouteServiceProvider defines the API route group and rate limiting, and BroadcastServiceProvider sets up broadcasting routes. AuthServiceProvider is also added to manage authentication and authorization policies.

app/Presenter/Providers · high confidence

Test coverage

Initial test suite for user management features

Added comprehensive test coverage for the user domain, including unit tests for application handlers (CreateUser, LoadUser, LoginUser) and controllers, as well as feature tests for HTTP endpoints and infrastructure repositories. The suite validates user creation, retrieval, and authentication flows, ensuring that command handlers, query handlers, and HTTP controllers behave as expected under various conditions.

tests · high confidence

Dependencies

Initial project setup with Laravel 10 and PHP 8.1

The project has been initialized with a new composer.json and composer.lock, establishing a PHP 8.1+ environment using Laravel 10.10, Laravel Sanctum 3.2, and Guzzle 7.2, alongside development tools like PHPUnit 10.1 and Laravel Pint.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 52 → 52 (+0.5)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 100 → 74 (-25.9)
  • Maturity 67 → 67 (+0.0)
  • Readiness 21 → 27 (+5.7)
  • Security 82 → 87 (+5.1)

Resolved (23)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • High vulnerability: [GHSA redacted] (composer.lock)
  • High vulnerability: [GHSA redacted] (composer.lock)
  • Low CVE: [GHSA redacted] (composer.lock)
  • Low CVE: [GHSA redacted] (composer.lock)
  • Medium CVE: [GHSA redacted] (composer.lock)
  • Medium CVE: [GHSA redacted] (composer.lock)
  • Medium CVE: [GHSA redacted] (composer.lock)
  • Medium CVE: [GHSA redacted] (composer.lock)
  • Medium CVE: [GHSA redacted] (composer.lock)
  • No exposed public API
  • Test reliability not included
  • The prerequisites link only Docker and PHP; no links are given for Docker Compose or Laravel Sail. (README.md)
  • early-stage repository — too few commits for a meaningful bus factor
  • …and 3 more

New (20)

  • Documentation: no usage examples (README.md)
  • End-of-life framework: Laravel 10
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • Low CVE: [GHSA redacted] (composer.lock)
  • Low CVE: [GHSA redacted] (composer.lock)
  • Medium CVE: [GHSA redacted] (composer.lock)
  • Medium CVE: [GHSA redacted] (composer.lock)
  • Medium CVE: [GHSA redacted] (composer.lock)
  • Medium CVE: [GHSA redacted] (composer.lock)
  • Medium CVE: [GHSA redacted] (composer.lock)
  • Medium IaC: WD-COMPOSE-0002 (docker-compose.yml)
  • Medium IaC: WD-COMPOSE-0002 (docker-compose.yml)
  • No ADRs found

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

Sprorowski/clean-architecture-laravel was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit f5b8125cad3ce5fe1a03b8b4a5075ab350d7c2ad — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-821afab8930d.