solid-astro
SOLID Astro — Modular Architecture
Agent Workflow (MANDATORY)
Before ANY implementation, use TeamCreate to spawn 3 agents:
- fuse-ai-pilot:explore-codebase - Analyze project structure, naming, and existing patterns
- fuse-ai-pilot:research-expert - Verify Astro 6 architecture best practices via Context7/Exa
- mcp__context7__query-docs - Check Astro component API and TypeScript integration
After implementation, run fuse-ai-pilot:sniper for validation.
Codebase Analysis (MANDATORY)
Before ANY implementation:
- Explore
src/directory to understand existing architecture - Read existing similar files to follow established naming and patterns
- Grep for similar function/component names before creating new ones
- Identify where interfaces, utilities, and shared logic live
DRY Enforcement (MANDATORY)
Before writing ANY new code:
- Grep for similar logic — function names, class patterns, component names
- Check
src/lib/for existing utilities - Check
src/components/for existing UI components - If logic appears in 2+ places → extract to
src/lib/ - If types appear in 2+ files → move to
src/interfaces/
Absolute Rules
- Files < 100 lines — split at 90
- All types in
src/interfaces/— never in component files - JSDoc mandatory on all exported functions
- No business logic in
src/pages/
See references/architecture.md, references/file-limits.md, references/solid-principles.md.
Reference Guide
Concepts
| Topic | Reference | When to Consult |
|---|---|---|
| SOLID principles | solid-principles.md | Architecture decisions |
| File limits | file-limits.md | When and how to split files |
| Interfaces | interfaces.md | TypeScript type organization |
| Architecture | architecture.md | Directory structure |
| DRY enforcement | dry-enforcement.md | Avoiding duplication |
| JSDoc | jsdoc.md | Documentation standards |
Templates
| Template | When to Use |
|---|---|
| component.md | Astro component with props + JSDoc |
| layout.md | Layout component with slots |
| service.md | Data fetching service function |
| interface.md | TypeScript interface file |
Forbidden
- Files > 100 lines (split at 90)
- TypeScript interfaces in component
.astrofiles - Business logic in
src/pages/files - Direct CMS/API calls in components (use
src/lib/services) - Copy-pasting logic instead of extracting shared function
- Missing JSDoc on exported functions, components, and types
anyTypeScript type
More from fusengine/agents
laravel-architecture
Design Laravel app architecture with services, repositories, actions, and clean code patterns. Use when structuring projects, creating services, implementing DI, or organizing code layers.
97laravel-blade
Create Blade templates with components, slots, layouts, and directives. Use when building views, reusable components, or templating.
88laravel-livewire
Livewire 3 reactive components - wire:model, actions, events, Volt, Folio. Use when building reactive UI without JavaScript.
86nextjs-i18n
Next.js 16 internationalization with next-intl or DIY. Use when implementing i18n, translations, localization, multilingual, language switch, locale routing, or formatters.
59solid-php
SOLID principles for Laravel 12 and PHP 8.5. Files < 100 lines, interfaces separated, PHPDoc mandatory. Auto-detects Laravel and FuseCore architecture.
51nextjs-zustand
Zustand v5 state management for Next.js 16 App Router. Use when implementing global state, stores, persist, hydration, or client-side state in Client Components.
43