Claude-skill-registry fusecore

FuseCore Modular Architecture - Laravel 12 modular monolith with auto-discovery, React integration, and SOLID principles. Use when creating modules, understanding FuseCore structure, or implementing features in FuseCore projects.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/fusecore" ~/.claude/skills/majiayu000-claude-skill-registry-fusecore && rm -rf "$T"
manifest: skills/data/fusecore/SKILL.md
source content

FuseCore Modular Architecture

Agent Workflow (MANDATORY)

Before ANY implementation in FuseCore project, launch in parallel:

  1. fuse-ai-pilot:explore-codebase - Analyze existing modules in
    /FuseCore/
  2. fuse-ai-pilot:research-expert - Verify Laravel 12 patterns via Context7
  3. fuse-laravel:laravel-expert - Apply Laravel best practices

After implementation, run fuse-ai-pilot:sniper for validation.


Overview

FuseCore is a Modular Monolith architecture for Laravel 12 with React 19 integration.

ComponentPurpose
ModuleSelf-contained feature (User, Dashboard, Blog)
Auto-DiscoveryAutomatic registration via
module.json
Traits
HasModule
for resource loading
Contracts
ModuleInterface
,
ReactModuleInterface
React IntegrationIsolated React per module
i18nMulti-language support (FR/EN/DE/IT/ES)

Critical Rules

  1. All code in
    /FuseCore/{Module}/
    - Never in
    /app/
  2. One module.json per module - Required for discovery
  3. ServiceProvider per module - Use
    HasModule
    trait
  4. Files < 100 lines - Split at 90 lines (SOLID)
  5. Interfaces in
    /App/Contracts/
    - Never in components
  6. Migrations in module -
    /Database/Migrations/
  7. Routes in module -
    /Routes/api.php

Architecture Overview

FuseCore/
├── 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"]

Reference Guide

Architecture

TopicReferenceWhen to consult
Overviewarchitecture.mdUnderstanding FuseCore design
Module Structuremodule-structure.mdDirectory organization
Auto-Discoverymodule-discovery.mdHow modules are loaded
module.jsonmodule-json.mdModule configuration

Implementation

TopicReferenceWhen to consult
Contractscontracts.mdModuleInterface, ReactModuleInterface
Traitstraits.mdHasModule, HasModuleDatabase
ServiceProviderservice-provider.mdModule registration
Routesroutes.mdAPI routing

Resources

TopicReferenceWhen to consult
React Integrationreact-integration.mdFrontend per module
Migrationsmigrations.mdDatabase per module
i18ni18n.mdMulti-language setup

Guides

TopicReferenceWhen to consult
Creating Modulecreating-module.mdStep-by-step guide

Templates (Code Examples)

TemplatePurpose
module.json.mdModule configuration
ServiceProvider.php.mdModule service provider
Controller.php.mdAPI controller
Model.php.mdEloquent model
Migration.php.mdDatabase migration
ReactStructure.mdReact module structure
ApiRoutes.php.mdAPI routes file
Resource.php.mdAPI Resource
Request.php.mdForm Request
Service.php.mdBusiness logic service

Quick Reference

Create New Module

# 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

module.json

{
    "name": "ModuleName",
    "version": "1.0.0",
    "enabled": true,
    "isCore": false,
    "dependencies": ["User"]
}

ServiceProvider

class ModuleNameServiceProvider extends ServiceProvider
{
    use HasModule;

    public function boot(): void
    {
        $this->loadModuleMigrations();
    }
}

Routes

Route::middleware(['api', 'auth:sanctum'])->group(function () {
    Route::apiResource('items', ItemController::class);
});

Module Checklist

  • /FuseCore/{Module}/
    directory created
  • module.json
    with name, version, dependencies
  • {Module}ServiceProvider.php
    with
    HasModule
    trait
  • Routes in
    /Routes/api.php
  • Migrations in
    /Database/Migrations/
  • Models in
    /App/Models/
  • Controllers in
    /App/Http/Controllers/
  • React in
    /Resources/React/
    (if needed)
  • i18n in
    /Resources/React/i18n/locales/

SOLID Compliance

RuleFuseCore Implementation
Single ResponsibilityOne module = one feature
Open/ClosedExtend via
ModuleInterface
Liskov Substitution
ReactModuleInterface extends ModuleInterface
Interface SegregationSeparate contracts
Dependency InversionInject via ServiceProvider

File limits: All files < 100 lines. Split at 90.


Naming Conventions

TypeConventionExample
Module folderPascalCase
BlogPost
module.json namePascalCase
"name": "BlogPost"
ServiceProvider
{Module}ServiceProvider
BlogPostServiceProvider
Controller
{Resource}Controller
PostController
ModelSingular
Post
Migration
create_{table}_table
create_posts_table
Routes file
api.php
Always
api.php