solid-generic
SKILL.md
SOLID Generic - TypeScript / Bun / Node.js
Agent Workflow (MANDATORY)
Before ANY implementation, use TeamCreate to spawn 3 agents:
- 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
Weekly Installs
13
Repository
fusengine/agentsGitHub Stars
3
First Seen
Feb 28, 2026
Security Audits
Installed on
gemini-cli13
opencode13
codebuddy13
github-copilot13
codex13
kimi-cli13