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