Skip to content
Development
Skill

/solid-astro

Use when applying SOLID principles to an Astro project — file-size limits, src/interfaces/ for types, JSDoc, modular structure, DRY.

From plugin
fusengine-claude-plugins
34200 skills40 agents34 commands

Claude Code

$ npx -y skills add fusengine/claude-plugins --skill solid-astro --agent claude-code

SKILL.md

solid-astro.SKILL.md
name: solid-astro
description: Use when applying SOLID principles to an Astro project — file-size limits, src/interfaces/ for types, JSDoc, modular structure, DRY.
versions:
  astro: "7"
user-invocable: true
references: references/solid-principles.md, references/file-limits.md, references/interfaces.md, references/architecture.md, references/dry-enforcement.md, references/jsdoc.md, references/templates/component.md, references/templates/layout.md, references/templates/service.md, references/templates/interface.md
related-skills: astro-7, astro-content, astro-styling, astro-i18n

<objective> Enforces SOLID and DRY architecture on Astro projects: source files within `FUSE_SOLID_MAX_LINES` and split by responsibility when cohesion drops, all TypeScript types moved to `src/interfaces/` (never in component files), mandatory JSDoc on exported functions, no business logic in `src/pages/`, and mandatory grepping for existing logic/utilities in `src/lib/` and `src/components/` before writing new code.

Provides ready-to-copy templates for components, layouts, services, and interfaces that already follow these rules. This is a cross-cutting code-quality skill, not a feature skill — it doesn't teach Astro APIs themselves (see astro-7, astro-content, astro-i18n, astro-styling for that), only how to structure the code that uses them. </objective>

SOLID Astro — Modular Architecture

Agent Workflow (MANDATORY)

Before ANY implementation, spawn 3 agents in parallel, one `Agent` call each with a `name`:

1. **fuse-ai-pilot:explore-codebase** - Analyze project structure, naming, and existing patterns 2. **fuse-ai-pilot:research-expert** - Verify Astro 7 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

  • Source files within `FUSE_SOLID_MAX_LINES` — split by responsibility
  • 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](references/solid-principles.md) | Architecture decisions | | File limits | [file-limits.md](references/file-limits.md) | When and how to split files | | Interfaces | [interfaces.md](references/interfaces.md) | TypeScript type organization | | Architecture | [architecture.md](references/architecture.md) | Directory structure | | DRY enforcement | [dry-enforcement.md](references/dry-enforcement.md) | Avoiding duplication | | JSDoc | [jsdoc.md](references/jsdoc.md) | Documentation standards |

Templates

| Template | When to Use | |----------|-------------| | [component.md](references/templates/component.md) | Astro component with props + JSDoc | | [layout.md](references/templates/layout.md) | Layout component with slots | | [service.md](references/templates/service.md) | Data fetching service function | | [interface.md](references/templates/interface.md) | TypeScript interface file |

---

Forbidden

  • Source files exceeding `FUSE_SOLID_MAX_LINES`
  • 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
Read more
@fusengine
Ships withfusengine-claude-plugins

A plugin ecosystem that turns Claude Code into a supervised, multi-agent development environment.

34200 skills40 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
34
Star history of fusengine/agents on GitHub, a chart by star-history.com

Other skills on fusengine-claude-plugins.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about solid-astro.

Which coding agents can use solid-astro?
solid-astro installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.