Install
$ agentstack add skill-fusengine-agents-fusecore ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
FuseCore Modular Architecture
Agent Workflow (MANDATORY)
Before ANY implementation in FuseCore project, use TeamCreate to spawn 3 agents:
- fuse-ai-pilot:explore-codebase - Analyze existing modules in
/FuseCore/ - fuse-ai-pilot:research-expert - Verify Laravel 13 patterns via Context7
- 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 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) |
Critical Rules
- All code in
/FuseCore/{Module}/- Never in/app/ - One module.json per module - Required for discovery
- ServiceProvider per module - Use
HasModuletrait - **Files loadModuleMigrations();
} }
### Routes
```php
Route::middleware(['api', 'auth:sanctum'])->group(function () {
Route::apiResource('items', ItemController::class);
});
Module Checklist
- [ ]
/FuseCore/{Module}/directory created - [ ]
module.jsonwith name, version, dependencies - [ ]
{Module}ServiceProvider.phpwithHasModuletrait - [ ] 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
| 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 app->bind(PostRepositoryContract::class, EloquentPostRepository::class); // NE PAS faire : $defaults = new Post(); ← LogicException en L13 }
public function boot(): void { Post::observe(PostObserver::class); }
### Cache prefixes par module
L13 utilise hyphens par défaut. Pour FuseCore, configurer le préfixe par module via `module.json` reste compatible :
```json
{
"name": "BlogPost",
"cache_prefix": "blogpost-"
}
Best Practices
DO
- Créer un module = un dossier
FuseCore//complet (Contracts/, Services/, Http/, Models/) - Déclarer toutes les dépendances inter-modules via Contracts (jamais classes concrètes)
- Utiliser
final readonly classpour DTOs de module (PHP 8.3+) - Migrer toute logique Model du
register()versboot() - Préférer Inertia 2 + React 19 pour les modules avec UI
DON'T
- Importer une classe d'un autre module sans passer par son Contract
- Mettre la logique métier dans Controllers (extraire en Service du module)
- Instancier un modèle Eloquent dans
register()(LogicException L13) - Dépasser 100 lignes par fichier (splitter en sous-modules ou Services)
- Partager des migrations entre modules (chaque module possède ses tables)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: fusengine
- Source: fusengine/agents
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.