# hereaftersol/laraslice architecture

> Architecture diagram of the GitHub repository hereaftersol/laraslice, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/hereaftersol/laraslice
- Repository: https://github.com/hereaftersol/laraslice

## Overview

LaraSlice is a Laravel vertical-slice application framework. A developer or project owner plans or ports an application, declares its authoritative runtime schema in slice manifests, and uses discovery and generation to make slices available; the framework then serves web/API behavior, security, and declared workflows. The README also describes AI/MCP support, Flutter clients, and a starter application shell. The excerpts and index establish only selected connections, so unsampled capability links are omitted or marked unverified.

Main entry points: [`src/Core/Discovery/SliceManager.php`](https://github.com/hereaftersol/laraslice/blob/master/src/Core/Discovery/SliceManager.php) (Slice discovery), [`src/Core/Base/BaseSliceWebController.php`](https://github.com/hereaftersol/laraslice/blob/master/src/Core/Base/BaseSliceWebController.php) (Web slice handling), [`src/Core/Ai/AiEngine.php`](https://github.com/hereaftersol/laraslice/blob/master/src/Core/Ai/AiEngine.php) (AI engine), [`src/Wizard/WizardController.php`](https://github.com/hereaftersol/laraslice/blob/master/src/Wizard/WizardController.php) (Slice wizard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_definition["Planning and porting"]
  node_studio["Blueprint studio"]
  node_porting["Legacy porting"]
  node_surface["Surface derivation"]
  node_wizard["Slice wizard"]
end

subgraph group_runtime["Slice runtime"]
  node_discovery["Slice discovery<br/>[SliceManager.php]"]
  node_manifest["Slice manifest<br/>[SliceManifest.php]"]
  node_web["Web slice handling"]
  node_directory["Record surfaces<br/>[DirectoryUi.php]"]
end

subgraph group_domains["Domain capabilities"]
  node_auth["Authentication"]
  node_users["User domain<br/>[User.php]"]
  node_workflow["Workflow engine"]
  node_workflowdata[("Workflow definitions<br/>[Workflow.php]")]
  node_flutter["Flutter clients"]
end

subgraph group_support["Framework services"]
  node_generator["Slice generation<br/>[SliceGenerator.php]"]
  node_security["Permission checks<br/>[Access.php]"]
  node_ai["AI engine<br/>[AiEngine.php]"]
  node_metadata["Metadata exploration"]
  node_facade["Framework facade<br/>[LaraSlice.php]"]
  node_mcp["MCP support<br/>[AiEngine.php]"]
end

subgraph group_shell["Application shell"]
  node_starter["Starter shell<br/>[app.blade.php]"]
end

node_owner(("Developer / owner"))

node_owner -->|"plans system"| node_studio
node_owner -->|"ports legacy app"| node_porting
node_porting -->|"derives surfaces"| node_surface
node_owner -.->|"generates slices"| node_wizard
node_wizard -->|"rediscovers slices"| node_discovery
node_wizard -.->|"generates slices"| node_generator
node_discovery -->|"loads manifests"| node_manifest
node_discovery -->|"syncs permissions"| node_security
node_web -->|"resolves slices"| node_discovery
node_web -->|"renders records"| node_directory
node_web -->|"checks access"| node_security
node_auth -->|"authenticates users"| node_users
node_workflow -->|"reads definitions"| node_workflowdata
node_ai -->|"uses slice metadata"| node_discovery
node_ai -->|"checks permissions"| node_security
node_ai -->|"uses port service"| node_porting
node_metadata -->|"uses framework facade"| node_facade
node_starter -->|"reads framework state"| node_facade
node_owner -.->|"scaffolds clients"| node_flutter
node_owner -.->|"uses agent tools"| node_mcp

click node_studio "https://github.com/hereaftersol/laraslice/blob/master/src/Blueprint/BlueprintStudioController.php"
click node_porting "https://github.com/hereaftersol/laraslice/blob/master/src/Porting/SlicePortService.php"
click node_surface "https://github.com/hereaftersol/laraslice/blob/master/src/Porting/SurfaceDerivationPipeline.php"
click node_wizard "https://github.com/hereaftersol/laraslice/blob/master/src/Wizard/WizardController.php"
click node_generator "https://github.com/hereaftersol/laraslice/blob/master/src/Generator/SliceGenerator.php"
click node_discovery "https://github.com/hereaftersol/laraslice/blob/master/src/Core/Discovery/SliceManager.php"
click node_manifest "https://github.com/hereaftersol/laraslice/blob/master/src/Core/Discovery/SliceManifest.php"
click node_web "https://github.com/hereaftersol/laraslice/blob/master/src/Core/Base/BaseSliceWebController.php"
click node_directory "https://github.com/hereaftersol/laraslice/blob/master/src/Support/DirectoryUi.php"
click node_auth "https://github.com/hereaftersol/laraslice/blob/master/src/Slices/Auth/Controllers/AuthWebController.php"
click node_users "https://github.com/hereaftersol/laraslice/blob/master/src/Slices/Users/Models/User.php"
click node_workflow "https://github.com/hereaftersol/laraslice/blob/master/src/Slices/Workflows/Services/WorkflowEngineService.php"
click node_workflowdata "https://github.com/hereaftersol/laraslice/blob/master/src/Slices/Workflows/Models/Workflow.php"
click node_security "https://github.com/hereaftersol/laraslice/blob/master/src/Core/Security/Access.php"
click node_ai "https://github.com/hereaftersol/laraslice/blob/master/src/Core/Ai/AiEngine.php"
click node_metadata "https://github.com/hereaftersol/laraslice/blob/master/src/Core/Metadata/ConfirmationController.php"
click node_facade "https://github.com/hereaftersol/laraslice/blob/master/src/Facades/LaraSlice.php"
click node_starter "https://github.com/hereaftersol/laraslice/blob/master/resources/stubs/starter/views/layouts/app.blade.php"
click node_flutter "https://github.com/hereaftersol/laraslice/blob/master/src/Generator/FlutterSliceGenerator.php"
click node_mcp "https://github.com/hereaftersol/laraslice/blob/master/src/Core/Ai/AiEngine.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_studio,node_porting,node_surface,node_wizard toneBlue
class node_discovery,node_manifest,node_web,node_directory toneAmber
class node_auth,node_users,node_workflow,node_workflowdata,node_flutter toneMint
class node_generator,node_security,node_ai,node_metadata,node_facade,node_mcp toneRose
class node_starter,node_owner toneIndigo
```

## Components

### Planning and porting

- [Blueprint studio](https://github.com/hereaftersol/laraslice/blob/master/src/Blueprint/BlueprintStudioController.php): `src/Blueprint/BlueprintStudioController.php`
- [Legacy porting](https://github.com/hereaftersol/laraslice/blob/master/src/Porting/SlicePortService.php): `src/Porting/SlicePortService.php`
- [Surface derivation](https://github.com/hereaftersol/laraslice/blob/master/src/Porting/SurfaceDerivationPipeline.php): `src/Porting/SurfaceDerivationPipeline.php`
- [Slice wizard](https://github.com/hereaftersol/laraslice/blob/master/src/Wizard/WizardController.php): `src/Wizard/WizardController.php`

### Slice runtime

- [Slice discovery](https://github.com/hereaftersol/laraslice/blob/master/src/Core/Discovery/SliceManager.php): `src/Core/Discovery/SliceManager.php`
- [Slice manifest](https://github.com/hereaftersol/laraslice/blob/master/src/Core/Discovery/SliceManifest.php): `src/Core/Discovery/SliceManifest.php`
- [Web slice handling](https://github.com/hereaftersol/laraslice/blob/master/src/Core/Base/BaseSliceWebController.php): `src/Core/Base/BaseSliceWebController.php`
- [Record surfaces](https://github.com/hereaftersol/laraslice/blob/master/src/Support/DirectoryUi.php): `src/Support/DirectoryUi.php`

### Domain capabilities

- [Authentication](https://github.com/hereaftersol/laraslice/blob/master/src/Slices/Auth/Controllers/AuthWebController.php): `src/Slices/Auth/Controllers/AuthWebController.php`
- [User domain](https://github.com/hereaftersol/laraslice/blob/master/src/Slices/Users/Models/User.php): `src/Slices/Users/Models/User.php`
- [Workflow engine](https://github.com/hereaftersol/laraslice/blob/master/src/Slices/Workflows/Services/WorkflowEngineService.php): `src/Slices/Workflows/Services/WorkflowEngineService.php`
- [Workflow definitions](https://github.com/hereaftersol/laraslice/blob/master/src/Slices/Workflows/Models/Workflow.php): `src/Slices/Workflows/Models/Workflow.php`
- [Flutter clients](https://github.com/hereaftersol/laraslice/blob/master/src/Generator/FlutterSliceGenerator.php): `src/Generator/FlutterSliceGenerator.php`

### Framework services

- [Slice generation](https://github.com/hereaftersol/laraslice/blob/master/src/Generator/SliceGenerator.php): `src/Generator/SliceGenerator.php`
- [Permission checks](https://github.com/hereaftersol/laraslice/blob/master/src/Core/Security/Access.php): `src/Core/Security/Access.php`
- [AI engine](https://github.com/hereaftersol/laraslice/blob/master/src/Core/Ai/AiEngine.php): `src/Core/Ai/AiEngine.php`
- [Metadata exploration](https://github.com/hereaftersol/laraslice/blob/master/src/Core/Metadata/ConfirmationController.php): `src/Core/Metadata/ConfirmationController.php`
- [Framework facade](https://github.com/hereaftersol/laraslice/blob/master/src/Facades/LaraSlice.php): `src/Facades/LaraSlice.php`
- [MCP support](https://github.com/hereaftersol/laraslice/blob/master/src/Core/Ai/AiEngine.php): `src/Core/Ai/AiEngine.php`

### Application shell

- [Starter shell](https://github.com/hereaftersol/laraslice/blob/master/resources/stubs/starter/views/layouts/app.blade.php): `resources/stubs/starter/views/layouts/app.blade.php`

### Other components

- **Developer / owner**

## Connections

- Developer / owner → Blueprint studio: plans system
- Developer / owner → Legacy porting: ports legacy app
- Legacy porting → Surface derivation: derives surfaces (evidence: `src/Porting/SurfaceDerivationPipeline.php`)
- Developer / owner → Slice wizard: generates slices
- Slice wizard → Slice discovery: rediscovers slices (evidence: `src/Wizard/WizardController.php`)
- Slice wizard → Slice generation: generates slices (evidence: `src/Wizard/WizardController.php`)
- Slice discovery → Slice manifest: loads manifests (evidence: `src/Core/Discovery/SliceManager.php`)
- Slice discovery → Permission checks: syncs permissions (evidence: `src/Core/Discovery/SliceManager.php`)
- Web slice handling → Slice discovery: resolves slices (evidence: `src/Core/Base/BaseSliceWebController.php`)
- Web slice handling → Record surfaces: renders records (evidence: `src/Core/Base/BaseSliceWebController.php`)
- Web slice handling → Permission checks: checks access (evidence: `src/Core/Base/BaseSliceWebController.php`)
- Authentication → User domain: authenticates users (evidence: `src/Slices/Auth/Controllers/AuthWebController.php`)
- Workflow engine → Workflow definitions: reads definitions (evidence: `src/Slices/Workflows/Services/WorkflowEngineService.php`)
- AI engine → Slice discovery: uses slice metadata (evidence: `src/Core/Ai/AiEngine.php`)
- AI engine → Permission checks: checks permissions (evidence: `src/Core/Ai/AiEngine.php`)
- AI engine → Legacy porting: uses port service (evidence: `src/Core/Ai/AiEngine.php`)
- Metadata exploration → Framework facade: uses framework facade (evidence: `src/Core/Metadata/ConfirmationController.php`)
- Starter shell → Framework facade: reads framework state (evidence: `resources/stubs/starter/views/layouts/app.blade.php`)
- Developer / owner → Flutter clients: scaffolds clients
- Developer / owner → MCP support: uses agent tools
