mirror of
https://github.com/samiyev/puaros.git
synced 2025-12-27 23:06:54 +05:00
Add @puaros/guardian package v0.1.0 - code quality guardian for vibe coders and enterprise teams. Features: - Hardcode detection (magic numbers, magic strings) - Circular dependency detection - Naming convention enforcement (Clean Architecture) - Architecture violation detection - CLI tool with comprehensive reporting - 159 tests with 80%+ coverage - Smart suggestions for fixes - Built for AI-assisted development Built with Clean Architecture and DDD principles. Works with Claude, GPT, Copilot, Cursor, and any AI coding assistant.
3.5 KiB
3.5 KiB
Guardian Examples
This directory contains examples of good and bad code patterns used for testing Guardian's detection capabilities.
Structure
examples/
├── good-architecture/ # ✅ Proper Clean Architecture + DDD patterns
│ ├── domain/
│ │ ├── aggregates/ # Aggregate Roots
│ │ ├── entities/ # Domain Entities
│ │ ├── value-objects/ # Value Objects
│ │ ├── services/ # Domain Services
│ │ ├── factories/ # Domain Factories
│ │ ├── specifications/# Business Rules
│ │ └── repositories/ # Repository Interfaces
│ ├── application/
│ │ ├── use-cases/ # Application Use Cases
│ │ ├── dtos/ # Data Transfer Objects
│ │ └── mappers/ # Domain <-> DTO mappers
│ └── infrastructure/
│ ├── repositories/ # Repository Implementations
│ ├── controllers/ # HTTP Controllers
│ └── services/ # External Services
│
└── bad-architecture/ # ❌ Anti-patterns for testing
├── hardcoded/ # Hardcoded values
├── circular/ # Circular dependencies
├── framework-leaks/ # Framework in domain
├── entity-exposure/ # Entities in controllers
├── naming/ # Wrong naming conventions
└── anemic-model/ # Anemic domain models
Patterns Demonstrated
Domain-Driven Design (DDD)
- Aggregate Roots: User, Order
- Entities: OrderItem, Address
- Value Objects: Email, Money, OrderStatus
- Domain Services: UserRegistrationService, PricingService
- Domain Events: UserCreatedEvent, OrderPlacedEvent
- Factories: UserFactory, OrderFactory
- Specifications: EmailSpecification, OrderCanBeCancelledSpecification
- Repository Interfaces: IUserRepository, IOrderRepository
SOLID Principles
- SRP: Single Responsibility - each class has one reason to change
- OCP: Open/Closed - extend with new classes, not modifications
- LSP: Liskov Substitution - derived classes are substitutable
- ISP: Interface Segregation - small, focused interfaces
- DIP: Dependency Inversion - depend on abstractions
Clean Architecture
- Dependency Rule: Inner layers don't know about outer layers
- Domain: Pure business logic, no frameworks
- Application: Use cases orchestration
- Infrastructure: External concerns (DB, HTTP, etc.)
Clean Code Principles
- DRY: Don't Repeat Yourself
- KISS: Keep It Simple, Stupid
- YAGNI: You Aren't Gonna Need It
- Meaningful Names: Intention-revealing names
- Small Functions: Do one thing well
- No Magic Values: Named constants
Testing Guardian
Run Guardian on examples:
# Test good architecture (should have no violations)
pnpm guardian check examples/good-architecture
# Test bad architecture (should detect violations)
pnpm guardian check examples/bad-architecture
# Test specific anti-pattern
pnpm guardian check examples/bad-architecture/hardcoded
Use Cases
1. Development
Use good examples as templates for new features
2. Testing
Use bad examples to verify Guardian detects violations
3. Documentation
Learn Clean Architecture + DDD patterns by example
4. CI/CD
Run Guardian on examples in CI to prevent regressions
Note: These examples are intentionally simplified for educational purposes. Real-world applications would have more complexity.