architecture · git:20260305.038102d · 2026-03-05 · sha256 2a0c0ec1baa8148f

architecture git:20260305.038102dA

Immutable. This exact content is served forever at /api/v1/blob/2a0c0ec1baa8148f.

---
name: architecture
description: "System architecture and design patterns. Modular design, interface stability, dependency management, AI-code health nexus. Triggers: architecture, design, structure, modules, dependencies, coupling, system design."
allowed-tools: Read, Grep, Glob, Task
---

<skill id="architecture">

<purpose>
Architecture is about managing change over time.
Good architecture makes easy things easy and hard things possible.
AI-generated code amplifies existing patterns—good or bad.
</purpose>

<prerequisite>
Understand existing codebase structure before proposing changes.
Check for established patterns. Follow them unless explicitly changing.
</prerequisite>

<reference>
Skill-specific: skills/architecture/reference/architecture-research.md
</reference>

<core_principles>
1. FOLLOW EXISTING PATTERNS: Don't introduce new patterns without justification.
2. INTERFACE STABILITY: Changing interfaces breaks everything. Stabilize them first.
3. MODULAR BOUNDARIES: Clear separation. Each module has one reason to change.
4. DEPENDENCY DIRECTION: Depend on abstractions, not concretions. Core doesn't know about edges.
5. SMALLEST CHANGE: Prefer minimal changes that achieve the goal.
</core_principles>

<ai_code_health_nexus>
From research: 30%+ defect risk when AI applied to unhealthy code.
AI amplifies existing patterns. If code is messy, AI makes it messier.
Before adding AI to a codebase:
1. Identify health score (coupling, complexity, test coverage)
2. Fix critical health issues first
3. Establish clear interfaces
4. Then apply AI within those boundaries
</ai_code_health_nexus>

<design_heuristics>
- If you can't explain it simply, the design is too complex
- Three concrete examples before abstraction
- Composition over inheritance
- Make illegal states unrepresentable
- Parse, don't validate
</design_heuristics>

<anti_patterns>
- Premature abstraction (abstract before 3 concrete uses)
- Leaky abstractions (implementation details bleeding through)
- Circular dependencies
- God objects (one class doing everything)
- Feature envy (methods that use another class more than their own)
</anti_patterns>

</skill>