docs: add CLAUDE.md project instructions

Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
Snider 2026-03-13 13:38:02 +00:00
parent 97909bec75
commit 8b09fd7fab

43
CLAUDE.md Normal file
View file

@ -0,0 +1,43 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
Laravel package providing the authenticated SaaS customer dashboard (`Core\Front\Client`). Extracted from the `core/php` monorepo. Part of a frontend tier hierarchy:
- `Core\Front\Web` — public/anonymous
- **`Core\Front\Client` — authenticated customer (this package)**
- `Core\Front\Admin` — privileged admin
- `Core\Hub` — SaaS operator control plane
**Domain concepts:** A **Namespace** is a user identity tied to a URI/handle. A **Workspace** is a management container (org/agency). A personal workspace maps 1:1 to a namespace for solo users.
## Commands
```bash
composer install # Install dependencies
```
No test suite, linter, or static analysis is configured in this package. Quality tooling is inherited from the `lthn/php` dependency in the monorepo context.
## Architecture
**Namespace:** `Core\Front\Client` (PSR-4 mapped from `src/Core/Front/Client/`)
**Boot.php** — Laravel ServiceProvider that:
- Registers a `'client'` middleware group (session, CSRF, auth, `Core\Headers\SecurityHeaders`)
- Loads Blade views under the `'client'` namespace from `Blade/`
- Fires `ClientRoutesRegistering` lifecycle event so other packages can lazily register routes
**Routes/client.php** — Defines `GET /dashboard` pointing to the `Dashboard` Livewire component. Additional routes are injected via `LifecycleEventProvider::fireClientRoutes()`.
**View/Dashboard.php** — Livewire component rendering `client::dashboard` inside `client::layouts.app`.
**Blade/layouts/app.blade.php** — Master layout using Tailwind CSS (dark theme), Flux UI components, and Font Awesome icons.
## Key Dependencies
- `lthn/php` — core framework package (provides Laravel, Livewire, Flux, shared middleware)
- PHP ^8.2
- EUPL-1.2 licensed