solid-generic
SkillFiles & storageUse when building CLI tools, libraries, scripts, hooks, or non-framework TypeScript code (Bun/Node.js -- SOLID, files < 100 lines, JSDoc mandatory).
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the solid-generic skill
What this skill tells your AI
The instructions your AI receives, as published by fusengine/agents in plugins/solid/skills/solid-generic/SKILL.md and read by ahel’s review.
Before writing any new code it requires a DRY check across modules/cores/lib, modules/cores/interfaces, and modules/cores/errors, extracting anything repeated 3+ times into a shared helper. Each of the 5 SOLID principles has its own detailed reference (single-responsibility.md through dependency-inversion.md), plus copy-paste-ready templates for modules, services, interfaces, validators, factories, errors, and tests.
SOLID Generic - TypeScript / Bun / Node.js
Agent Workflow (MANDATORY)
Before ANY implementation, spawn 3 agents in parallel, one Agent call each with a name:
- fuse-ai-pilot:explore-codebase - Analyze project structure and existing patterns
- fuse-ai-pilot:research-expert - Verify latest TypeScript/Bun docs via Context7
- mcp__context7__query-docs - Check integration compatibility
After implementation, run fuse-ai-pilot:sniper for validation.
DRY - Reuse Before Creating (MANDATORY)
Before writing ANY new code:
- Grep the codebase for similar function names, patterns, or logic
- Check shared locations:
modules/cores/lib/,modules/cores/interfaces/,modules/cores/errors/ - If similar code exists -> extend/reuse instead of duplicate
- If code will be used by 2+ modules -> create in
modules/cores/ - Extract repeated logic (3+ occurrences) into shared helpers
Absolute Rules (MANDATORY)
1. Files < 100 lines
- Split at 90 lines - Never exceed 100
- Modules < 80 lines
- Services < 60 lines
- Validators < 40 lines
2. Interfaces Separated (Modular MANDATORY)
modules/[feature]/src/interfaces/ # Feature types
|- user.interface.ts
\- service.interface.ts
modules/cores/interfaces/ # Shared types
\- shared.interface.ts
NEVER put interfaces in implementation files.
NEVER use flat src/ structure - always modules/.
3. JSDoc Mandatory
/**
* Parse configuration from file path.
*
* @param filePath - Absolute path to config file
* @returns Parsed configuration object
* @throws ConfigError if file is invalid
*/
export function parseConfig(filePath: string): Config
SOLID Principles (Detailed Guides)
| # | Principle | Reference | Key Rule |
|---|---|---|---|
| S | Single Responsibility | single-responsibility.md | One file = one reason to change |
| O | Open/Closed | open-closed.md | Extend via composition, not modification |
| L | Liskov Substitution | liskov-substitution.md | Implementations honor interface contracts |
| I | Interface Segregation | interface-segregation.md | Many focused interfaces > one fat interface |
| D | Dependency Inversion | dependency-inversion.md | Depend on abstractions, inject dependencies |
See solid-principles.md for overview and architecture-patterns.md for project structure.
Code Templates
| Template | Usage | Max Lines |
|---|---|---|
| module.md | TypeScript/Bun module | 80 |
| service.md | Service with DI | 60 |
| interface.md | TypeScript interfaces | - |
| validator.md | Zod validation schemas | 40 |
| factory.md | Factory pattern | 60 |
| error.md | Custom error classes | 40 |
| test.md | Bun test / Vitest | - |
Forbidden
- Files > 100 lines
- Interfaces in implementation files
- Business logic in entry points
- Missing JSDoc on exports
anytype- Barrel exports (index.ts re-exports)
- Duplicating existing utility without Grep search first
- Copy-pasting logic blocks instead of extracting shared function
- Concrete dependencies without interface abstraction
Signals
- GitHub stars
- 25
- Forks
- 4
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
solid-generic- Source
- github.com/fusengine/agents