Agent Skills: SOLID Astro — Modular Architecture

Use when applying SOLID principles and clean architecture to Astro projects. Enforces files < 100 lines, src/interfaces/ for types, JSDoc on all exports, modular directory structure, and DRY enforcement.

UncategorizedID: fusengine/agents/solid-astro

Install this agent skill to your local

pnpm dlx add-skill https://github.com/fusengine/agents/tree/HEAD/plugins/astro-expert/skills/solid-astro

Skill Files

Browse the full folder contents for solid-astro.

Download Skill

Loading file tree…

plugins/astro-expert/skills/solid-astro/SKILL.md

Skill Metadata

Name
solid-astro
Description
Use when applying SOLID principles and clean architecture to Astro projects. Enforces files < 100 lines, src/interfaces/ for types, JSDoc on all exports, modular directory structure, and DRY enforcement.

SOLID Astro — Modular Architecture

Agent Workflow (MANDATORY)

Before ANY implementation, use TeamCreate to spawn 3 agents:

  1. fuse-ai-pilot:explore-codebase - Analyze project structure, naming, and existing patterns
  2. fuse-ai-pilot:research-expert - Verify Astro 6 architecture best practices via Context7/Exa
  3. 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:

  1. Explore src/ directory to understand existing architecture
  2. Read existing similar files to follow established naming and patterns
  3. Grep for similar function/component names before creating new ones
  4. Identify where interfaces, utilities, and shared logic live

DRY Enforcement (MANDATORY)

Before writing ANY new code:

  1. Grep for similar logic — function names, class patterns, component names
  2. Check src/lib/ for existing utilities
  3. Check src/components/ for existing UI components
  4. If logic appears in 2+ places → extract to src/lib/
  5. 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 .astro files
  • 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
  • any TypeScript type