plugins/laravel-expert/skills/fusecore/SKILL.md
FuseCore Modular Architecture - Laravel 13 modular monolith with auto-discovery, React 19 integration, and SOLID principles. Use when creating modules, understanding FuseCore structure, or implementing features in FuseCore projects.
npx skillsauth add fusengine/agents fusecoreInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Before ANY implementation in FuseCore project, use TeamCreate to spawn 3 agents:
/FuseCore/After implementation, run fuse-ai-pilot:sniper for validation.
FuseCore is a Modular Monolith architecture for Laravel 13 with React 19 integration.
| Component | Purpose |
|-----------|---------|
| Module | Self-contained feature (User, Dashboard, Blog) |
| Auto-Discovery | Automatic registration via module.json |
| Traits | HasModule for resource loading |
| Contracts | ModuleInterface, ReactModuleInterface |
| React Integration | Isolated React per module |
| i18n | Multi-language support (FR/EN/DE/IT/ES) |
/FuseCore/{Module}/ - Never in /app/HasModule trait/App/Contracts/ - Never in components/Database/Migrations//Routes/api.phpFuseCore/
├── Core/ # Infrastructure (priority 0)
│ ├── App/
│ │ ├── Contracts/ # ModuleInterface, ReactModuleInterface
│ │ ├── Services/ # ModuleDiscovery, RouteAggregator
│ │ ├── Traits/ # HasModule, HasModuleDatabase
│ │ └── Providers/ # FuseCoreServiceProvider
│ ├── Config/fusecore.php
│ └── module.json
│
├── User/ # Auth module
│ ├── App/Models/ # User.php, Profile.php
│ ├── Config/ # Module config (sanctum.php, etc.)
│ ├── Database/Migrations/
│ ├── Resources/React/ # Isolated React
│ ├── Routes/api.php
│ └── module.json # dependencies: []
│
└── {YourModule}/ # Your new module
├── App/
│ ├── Models/
│ ├── Http/Controllers/
│ ├── Services/
│ └── Providers/{YourModule}ServiceProvider.php
├── Config/ # Module-specific config
├── Database/Migrations/
├── Resources/React/
├── Routes/api.php
└── module.json # dependencies: ["User"]
| Topic | Reference | When to consult | |-------|-----------|-----------------| | Overview | architecture.md | Understanding FuseCore design | | Module Structure | module-structure.md | Directory organization | | Auto-Discovery | module-discovery.md | How modules are loaded | | module.json | module-json.md | Module configuration |
| Topic | Reference | When to consult | |-------|-----------|-----------------| | Contracts | contracts.md | ModuleInterface, ReactModuleInterface | | Traits | traits.md | HasModule, HasModuleDatabase | | ServiceProvider | service-provider.md | Module registration | | Routes | routes.md | API routing |
| Topic | Reference | When to consult | |-------|-----------|-----------------| | React Integration | react-integration.md | Frontend per module | | Migrations | migrations.md | Database per module | | i18n | i18n.md | Multi-language setup |
| Topic | Reference | When to consult | |-------|-----------|-----------------| | Creating Module | creating-module.md | Step-by-step guide |
| Template | Purpose | |----------|---------| | module.json.md | Module configuration | | ServiceProvider.php.md | Module service provider | | Controller.php.md | API controller | | Model.php.md | Eloquent model | | Migration.php.md | Database migration | | ReactStructure.md | React module structure | | ApiRoutes.php.md | API routes file | | Resource.php.md | API Resource | | Request.php.md | Form Request | | Service.php.md | Business logic service |
# 1. Create directory structure
mkdir -p FuseCore/{ModuleName}/{App/{Models,Http/Controllers,Services,Providers},Database/Migrations,Resources/React,Routes}
# 2. Create module.json
# 3. Create ServiceProvider with HasModule trait
# 4. Create routes/api.php
# 5. Run: php artisan fusecore:cache-clear
{
"name": "ModuleName",
"version": "1.0.0",
"enabled": true,
"isCore": false,
"dependencies": ["User"]
}
class ModuleNameServiceProvider extends ServiceProvider
{
use HasModule;
public function boot(): void
{
$this->loadModuleMigrations();
}
}
Route::middleware(['api', 'auth:sanctum'])->group(function () {
Route::apiResource('items', ItemController::class);
});
/FuseCore/{Module}/ directory createdmodule.json with name, version, dependencies{Module}ServiceProvider.php with HasModule trait/Routes/api.php/Database/Migrations//App/Models//App/Http/Controllers//Resources/React/ (if needed)/Resources/React/i18n/locales/| Rule | FuseCore Implementation |
|------|-------------------------|
| Single Responsibility | One module = one feature |
| Open/Closed | Extend via ModuleInterface |
| Liskov Substitution | ReactModuleInterface extends ModuleInterface |
| Interface Segregation | Separate contracts |
| Dependency Inversion | Inject via ServiceProvider |
File limits: All files < 100 lines. Split at 90.
| Type | Convention | Example |
|------|------------|---------|
| Module folder | PascalCase | BlogPost |
| module.json name | PascalCase | "name": "BlogPost" |
| ServiceProvider | {Module}ServiceProvider | BlogPostServiceProvider |
| Controller | {Resource}Controller | PostController |
| Model | Singular | Post |
| Migration | create_{table}_table | create_posts_table |
| Routes file | api.php | Always api.php |
new Model() dans register() est désormais interdit (LogicException). Toute instanciation Eloquent doit migrer dans boot().
public function register(): void
{
$this->app->bind(PostRepositoryContract::class, EloquentPostRepository::class);
// NE PAS faire : $defaults = new Post(); ← LogicException en L13
}
public function boot(): void
{
Post::observe(PostObserver::class);
}
L13 utilise hyphens par défaut. Pour FuseCore, configurer le préfixe par module via module.json reste compatible :
{
"name": "BlogPost",
"cache_prefix": "blogpost-"
}
FuseCore/<Module>/ complet (Contracts/, Services/, Http/, Models/)final readonly class pour DTOs de module (PHP 8.3+)register() vers boot()register() (LogicException L13)development
Use when optimizing entity-based / semantic SEO 2026. Covers entity maps, Google Knowledge Graph resolution, salience scoring, passage-level ranking, about/sameAs/knowsAbout schema, Cloud Natural Language API validation.
development
Use when running SEO, GEO, schema, Core Web Vitals, sitemap, hreflang, E-E-A-T, AI Overviews, technical SEO, or structured data tasks. Covers full-site audits, single-page analysis, schema markup, content quality, AI search optimization, local SEO, sitemap/robots, internal linking, semantic clustering, and search experience.
development
Use when optimizing search experience (SXO). Covers intent matching, user personas, user stories, page-type analysis, dwell time, scroll depth, pogo-sticking prevention.
development
Use when optimizing local SEO. Covers Google Business Profile, NAP consistency, citations, reviews acquisition, Local Pack ranking, location pages, LocalBusiness schema.