Agent skill

architecture-guardian

Enforce clean architecture principles, proper layering rules, dependency flow, module boundaries, and interface design. Use when designing new features, refactoring code, or reviewing architecture.

Stars 0
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/d-oit/do-novelist-ai/tree/main/.opencode/skill/architecture-guardian

SKILL.md

Architecture Guardian

Enforce clean architecture principles, proper layer separation, and well-defined boundaries between architectural layers.

Quick Reference

  • Core Guidance - Detailed methodology and implementation
  • Layering Rules - Layer separation principles
  • Dependency Flow - Allowed and prohibited dependencies
  • Interface Design - API and interface design
  • Module Boundaries - Module coupling and cohesion

When to Use

  • Designing new feature modules
  • Refactoring existing architecture
  • Creating new interfaces between layers
  • Reviewing code for architectural compliance
  • Setting up dependency injection
  • Decoupling modules

Core Methodology

Enforce clean architecture through systematic layering, dependency flow control, and boundary management.

Key Principles:

  1. Layer separation (Presentation, Application, Domain, Infrastructure)
  2. Upward dependency flow (depends on abstractions, not implementations)
  3. Clear module boundaries (bounded contexts)
  4. Interface-based design (depend on contracts, not concretions)
  5. SOLID principles adherence

Quality Gates:

  • No circular dependencies
  • No layering violations
  • Clear public APIs
  • Proper dependency directions
  • Single responsibility per module

Integration

  • domain-expert: Ensures proper domain modeling
  • typescript-guardian: Type safety in interfaces
  • feature-module-architect: Structures features correctly
  • tech-stack-specialist: Framework and tool configuration

Best Practices

✓ Keep layers strictly separated ✓ Depend on abstractions, not concretions ✓ Define clear public APIs ✓ Use repository interfaces in domain layer ✓ Implement dependency inversion ✓ Enforce bounded contexts ✓ Design interfaces with segregation principle ✗ Mix responsibilities across layers ✗ Leak infrastructure into domain ✗ Create tight coupling between features ✗ Allow circular dependencies ✗ Make interfaces too large (segregate) ✗ Skip dependency flow validation


Content Modules

See detailed modules:

  • Core Guidance - Implementation details and patterns
  • Layering Rules - Layer separation
  • Dependency Flow - Dependency management
  • Interface Design - API design patterns
  • Module Boundaries - Coupling and cohesion

Expand your agent's capabilities with these related and highly-rated skills.

d-oit/do-novelist-ai

novel-development

Work on novel-specific features including plot engines, character development, world-building, timeline management, and GOAP-based story generation. Use when implementing narrative systems, character arcs, or story planning tools.

0 0
Explore
d-oit/do-novelist-ai

tech-stack-specialist

Manage framework usage, dependencies, build configuration, and environment setup. Use when adding new dependencies, updating packages, configuring build tools, or setting up development environment.

0 0
Explore
d-oit/do-novelist-ai

performance-engineer

Optimize application performance including build times, runtime speed, bundle size and resource usage. Use when addressing performance issues, implementing caching strategies, or optimizing rendering.

0 0
Explore
d-oit/do-novelist-ai

e2e-test-optimizer

Optimize Playwright E2E tests by removing anti-patterns, implementing smart waits, enabling test sharding, and improving reliability.

0 0
Explore
d-oit/do-novelist-ai

domain-expert

Apply domain-driven design principles for business logic, entities, events and aggregate boundaries. Use when modeling domain concepts, implementing business rules, or defining clear separation between domain and infrastructure layers.

0 0
Explore
d-oit/do-novelist-ai

qa-engineer

Define comprehensive testing strategies, write tests with proper naming conventions, organize tests by type, and implement mocking strategies. Use when creating tests, refactoring test suites, or improving test coverage.

0 0
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results