# Guardian Roadmap πŸ—ΊοΈ **Last Updated:** 2025-01-24 **Current Version:** 0.5.1 This document outlines the current features and strategic roadmap for @puaros/guardian, prioritized based on market competition analysis and enterprise adoption requirements. --- ## πŸ“Š Current State (v0.5.1) βœ… ### ✨ Unique Competitive Advantages Guardian currently has **5 unique features** that competitors don't offer: | Feature | Status | Competitors | |---------|--------|-------------| | **Hardcode Detection + AI Suggestions** | βœ… Released | ❌ None | | **Framework Leak Detection** | βœ… Released | ❌ None | | **Entity Exposure Detection** | βœ… Released (v0.3.0) | ❌ None | | **Dependency Direction Enforcement** | βœ… Released (v0.4.0) | ⚠️ dependency-cruiser (via rules) | | **Repository Pattern Validation** | βœ… Released (v0.5.0) | ❌ None | ### πŸ› οΈ Core Features (v0.1.0-v0.5.0) **Detection Capabilities:** - βœ… Hardcode detection (magic numbers, magic strings) with smart suggestions - βœ… Circular dependency detection - βœ… Naming convention enforcement (DDD layer-based rules) - βœ… Clean Architecture layer violations - βœ… Framework leak detection (domain importing frameworks) - βœ… Entity exposure in API responses (v0.3.0) - βœ… Dependency direction validation (v0.4.0) - βœ… Repository pattern validation (v0.5.0) **Developer Experience:** - βœ… CLI interface with `guardian check` command - βœ… Smart constant name suggestions - βœ… Layer distribution analysis - βœ… Detailed violation reports with file:line:column - βœ… Context snippets for each issue **Quality & Testing:** - βœ… 194 tests across 7 test files (all passing) - βœ… 80%+ code coverage on all metrics - βœ… Self-analysis: 0 violations (100% clean codebase) --- ## 🎯 Strategic Roadmap Overview ### Phase 1: Market Parity (v0.6-v0.10) - Q1-Q2 2026 **Goal:** Match competitors' baseline features to enable enterprise adoption - Configuration & Presets - Visualization & Dependency Graphs - CI/CD Integration Kit - Auto-Fix & Code Generation (UNIQUE!) - Metrics & Quality Score ### Phase 2: DDD Specialization (v0.11-v0.27) - Q3-Q4 2026 **Goal:** Deepen DDD/Clean Architecture expertise - Advanced DDD pattern detection (25+ features) - Aggregate boundaries, Domain Events, Value Objects - CQRS, Saga Pattern, Anti-Corruption Layer - Ubiquitous Language validation ### Phase 3: Enterprise Ecosystem (v1.0+) - Q4 2026+ **Goal:** Full-featured enterprise platform - VS Code extension - JetBrains plugin - Web dashboard - Team analytics - Multi-language support --- ## πŸ“… Detailed Roadmap ## Version 0.6.0 - Configuration & Presets βš™οΈ **Target:** Q1 2026 (January-February) **Priority:** πŸ”₯ CRITICAL > **Why Critical:** All competitors (SonarQube, ESLint, dependency-cruiser) have configuration. Without this, Guardian cannot be customized for different teams/projects. ### Features #### 1. Configuration File Support ```javascript // guardian.config.js (primary) export default { // Zero-config presets preset: 'clean-architecture', // or 'ddd', 'hexagonal', 'onion' // Rule configuration rules: { 'hardcode/magic-numbers': 'error', 'hardcode/magic-strings': 'warn', 'architecture/layer-violation': 'error', 'architecture/framework-leak': 'error', 'architecture/entity-exposure': 'error', 'circular-dependency': 'error', 'naming-convention': 'warn', 'dependency-direction': 'error', 'repository-pattern': 'error', }, // Custom layer paths layers: { domain: 'src/core/domain', application: 'src/core/application', infrastructure: 'src/adapters', shared: 'src/shared', }, // Exclusions exclude: [ '**/*.test.ts', '**/*.spec.ts', 'scripts/', 'migrations/', 'node_modules/', ], // Per-rule ignores ignore: { 'hardcode/magic-numbers': { 'src/config/constants.ts': [3000, 8080], }, }, } ``` #### 2. Built-in Presets ```javascript // Preset: clean-architecture (default) preset: 'clean-architecture' // Enables: layer-violation, dependency-direction, naming-convention // Preset: ddd preset: 'ddd' // Enables all DDD patterns: aggregates, value-objects, domain-events // Preset: hexagonal (Ports & Adapters) preset: 'hexagonal' // Validates port/adapter separation // Preset: minimal (for prototyping) preset: 'minimal' // Only critical rules: hardcode, circular-deps ``` #### 3. Framework-Specific Presets ```javascript // NestJS preset: 'nestjs-clean-architecture' // Express preset: 'express-clean-architecture' // Next.js preset: 'nextjs-clean-architecture' ``` #### 4. Configuration Discovery Support multiple config file formats: - `guardian.config.js` (ES modules) - `guardian.config.cjs` (CommonJS) - `.guardianrc` (JSON) - `.guardianrc.json` - `package.json` (`guardian` field) #### 5. CLI Override ```bash # Override config from CLI guardian check ./src --rule hardcode/magic-numbers=off # Use specific config file guardian check ./src --config custom-config.js # Generate config guardian init --preset clean-architecture ``` ### Implementation Tasks - [ ] Create config parser and validator - [ ] Implement preset system - [ ] Add config discovery logic - [ ] Update AnalyzeProject use case to accept config - [ ] CLI integration for config override - [ ] Add `guardian init` command - [ ] Documentation and examples - [ ] Tests (config parsing, presets, overrides) --- ## Version 0.7.0 - Visualization & Dependency Graphs 🎨 **Target:** Q1 2026 (March) **Priority:** πŸ”₯ HIGH > **Why High:** dependency-cruiser's main advantage is visualization. Guardian needs this to compete. ### Features #### 1. Dependency Graph Visualization ```bash # Generate SVG graph guardian visualize ./src --output architecture.svg # Interactive HTML guardian visualize ./src --format html --output report.html # Mermaid diagram for docs guardian graph ./src --format mermaid > ARCHITECTURE.md # ASCII tree for terminal guardian visualize ./src --format ascii ``` #### 2. Layer Dependency Diagram ```mermaid graph TD I[Infrastructure Layer] --> A[Application Layer] I --> D[Domain Layer] A --> D D --> S[Shared] A --> S I --> S style D fill:#4CAF50 style A fill:#2196F3 style I fill:#FF9800 style S fill:#9E9E9E ``` #### 3. Violation Highlighting Visualize violations on graph: - πŸ”΄ Circular dependencies (red arrows) - ⚠️ Framework leaks (yellow highlights) - 🚫 Wrong dependency direction (dashed red arrows) - βœ… Correct dependencies (green arrows) #### 4. Metrics Overlay ```bash guardian visualize ./src --show-metrics # Shows on each node: # - File count per layer # - Hardcode violations count # - Complexity score ``` #### 5. Export Formats - SVG (for docs/website) - PNG (for presentations) - HTML (interactive, zoomable) - Mermaid (for markdown docs) - DOT (Graphviz format) - JSON (for custom processing) ### Implementation Tasks - [ ] Implement graph generation engine - [ ] Add SVG/PNG renderer - [ ] Create Mermaid diagram generator - [ ] Build HTML interactive viewer - [ ] Add violation highlighting - [ ] Metrics overlay system - [ ] CLI commands (`visualize`, `graph`) - [ ] Documentation and examples - [ ] Tests (graph generation, formats) --- ## Version 0.8.0 - CI/CD Integration Kit πŸš€ **Target:** Q2 2026 (April) **Priority:** πŸ”₯ HIGH > **Why High:** Enterprise requires CI/CD integration. SonarQube succeeds because of this. ### Features #### 1. GitHub Actions ```yaml # .github/workflows/guardian.yml (ready-to-use template) name: Guardian Quality Check on: [push, pull_request] jobs: guardian: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 - name: Guardian Analysis uses: puaros/guardian-action@v1 with: path: './src' fail-on: 'error' report-format: 'markdown' - name: Comment PR uses: actions/github-script@v6 if: github.event_name == 'pull_request' with: script: | // Auto-comment violations on PR ``` #### 2. GitLab CI Template ```yaml # .gitlab-ci.yml include: - template: Guardian.gitlab-ci.yml guardian_check: stage: test extends: .guardian variables: GUARDIAN_FAIL_ON: "error" GUARDIAN_FORMAT: "markdown" ``` #### 3. Quality Gate ```bash # Fail build on violations guardian check ./src --fail-on error guardian check ./src --fail-on warning # Threshold-based guardian check ./src --max-violations 10 guardian check ./src --max-hardcode 5 ``` #### 4. PR Auto-Comments Automatically comment on PRs with: - Summary of violations - Comparison with base branch - Quality score change - Actionable suggestions ```markdown ## πŸ›‘οΈ Guardian Report **Quality Score:** 87/100 (⬆️ +3 from main) ### Violations Found: 5 #### πŸ”΄ Critical (2) - `src/api/server.ts:15` - Hardcoded port 3000 - `src/domain/User.ts:10` - Framework leak (Express) #### ⚠️ Warnings (3) - `src/services/UserService.ts` - Naming convention - ... [View Full Report](link) ``` #### 5. Pre-commit Hook ```bash # Install via npx npx guardian install-hooks # Creates .husky/pre-commit #!/bin/sh guardian check --staged --fail-on error ``` #### 6. Status Checks Integrate with GitHub/GitLab status checks: - βœ… No violations - ⚠️ Warnings only - ❌ Errors found ### Implementation Tasks - [ ] Create GitHub Action - [ ] Create GitLab CI template - [ ] Implement quality gate logic - [ ] Build PR comment generator - [ ] Pre-commit hook installer - [ ] Status check integration - [ ] Bitbucket Pipelines support - [ ] Documentation and examples - [ ] Tests (CI/CD scenarios) --- ## Version 0.9.0 - Auto-Fix & Code Generation πŸ€– **Target:** Q2 2026 (May) **Priority:** πŸš€ GAME-CHANGER (UNIQUE!) > **Why Game-Changer:** No competitor has intelligent auto-fix for architecture. This makes Guardian unique! ### Features #### 1. Auto-Fix Hardcode ```bash # Fix all hardcode violations automatically guardian fix ./src --auto # Preview changes guardian fix ./src --dry-run # Fix specific types guardian fix ./src --type hardcode guardian fix ./src --type naming ``` **Example:** ```typescript // Before const timeout = 5000 app.listen(3000) // After (auto-generated constants.ts) export const DEFAULT_TIMEOUT_MS = 5000 export const DEFAULT_PORT = 3000 // After (fixed code) import { DEFAULT_TIMEOUT_MS, DEFAULT_PORT } from './constants' const timeout = DEFAULT_TIMEOUT_MS app.listen(DEFAULT_PORT) ``` #### 2. Generate Constants File ```bash # Extract all hardcodes to constants guardian generate constants ./src --output src/config/constants.ts # Generated file: // src/config/constants.ts export const DEFAULT_TIMEOUT_MS = 5000 export const DEFAULT_PORT = 3000 export const MAX_RETRIES = 3 export const API_BASE_URL = 'http://localhost:8080' ``` #### 3. Fix Naming Violations ```bash # Rename files to match conventions guardian fix naming ./src --auto # Before: src/application/use-cases/user.ts # After: src/application/use-cases/CreateUser.ts ``` #### 4. AI-Friendly Fix Prompts ```bash # Generate prompt for AI assistant guardian check ./src --format ai-prompt > fix-prompt.txt # Output (optimized for Claude/GPT): """ Fix the following Guardian violations: 1. HARDCODE (src/api/server.ts:15) - Replace: app.listen(3000) - With: Extract 3000 to DEFAULT_PORT constant - Location: Create src/config/constants.ts 2. FRAMEWORK_LEAK (src/domain/User.ts:5) - Remove: import { Request } from 'express' - Reason: Domain layer cannot import frameworks - Suggestion: Use dependency injection via interfaces [Complete fix suggestions...] """ # Then feed to Claude: # cat fix-prompt.txt | pbcopy # Paste into Claude: "Fix these Guardian violations" ``` #### 5. Interactive Fix Mode ```bash # Interactive fix selection guardian fix ./src --interactive # Prompts: # ? Fix hardcode in server.ts:15 (3000)? (Y/n) # ? Suggested constant name: DEFAULT_PORT # [Edit name] [Skip] [Fix All] ``` #### 6. Refactoring Commands ```bash # Break circular dependency guardian refactor circular ./src/services/UserService.ts # Suggests: Extract shared interface # Fix layer violation guardian refactor layer ./src/domain/entities/User.ts # Suggests: Move framework imports to infrastructure ``` ### Implementation Tasks - [ ] Implement auto-fix engine (AST transformation) - [ ] Constants extractor and generator - [ ] File renaming system - [ ] AI prompt generator - [ ] Interactive fix mode - [ ] Refactoring suggestions - [ ] Safe rollback mechanism - [ ] Documentation and examples - [ ] Tests (fix scenarios, edge cases) --- ## Version 0.10.0 - Metrics & Quality Score πŸ“Š **Target:** Q2 2026 (June) **Priority:** πŸ”₯ HIGH > **Why High:** Enterprise needs metrics to justify investment. SonarQube's dashboard is a major selling point. ### Features #### 1. Quality Score (0-100) ```bash guardian score ./src # Output: # πŸ›‘οΈ Guardian Quality Score: 87/100 (Good) # # Category Breakdown: # βœ… Architecture: 95/100 (Excellent) # ⚠️ Hardcode: 78/100 (Needs Improvement) # βœ… Naming: 92/100 (Excellent) # βœ… Dependencies: 89/100 (Good) ``` **Score Calculation:** - Architecture violations: -5 per error - Hardcode violations: -1 per occurrence - Circular dependencies: -10 per cycle - Naming violations: -2 per error #### 2. Metrics Dashboard (JSON/HTML) ```bash # Export metrics guardian metrics ./src --format json > metrics.json guardian metrics ./src --format html > dashboard.html # Metrics included: { "qualityScore": 87, "violations": { "hardcode": 12, "circular": 0, "architecture": 2, "naming": 5 }, "metrics": { "totalFiles": 45, "totalLOC": 3500, "hardcodePerKLOC": 3.4, "averageFilesPerLayer": 11.25 }, "trends": { "scoreChange": "+5", "violationsChange": "-8" } } ``` #### 3. Trend Analysis ```bash # Compare with main branch guardian metrics ./src --compare-with main # Output: # Quality Score: 87/100 (⬆️ +3 from main) # # Changes: # βœ… Hardcode violations: 12 (⬇️ -5) # ⚠️ Naming violations: 5 (⬆️ +2) # βœ… Circular deps: 0 (⬇️ -1) ``` #### 4. Historical Tracking ```bash # Store metrics history guardian metrics ./src --save # View trends guardian trends --last 30d # Output: ASCII graph showing quality score over time ``` #### 5. Export for Dashboards ```bash # Prometheus format guardian metrics ./src --format prometheus # Grafana JSON guardian metrics ./src --format grafana # CSV for Excel guardian metrics ./src --format csv ``` #### 6. Badge Generation ```bash # Generate badge for README guardian badge ./src --output badge.svg # Markdown badge ![Guardian Score](badge.svg) ``` ### Implementation Tasks - [ ] Quality score calculation algorithm - [ ] Metrics collection system - [ ] Trend analysis engine - [ ] JSON/HTML/Prometheus exporters - [ ] Historical data storage - [ ] Badge generator - [ ] CLI commands (`score`, `metrics`, `trends`, `badge`) - [ ] Documentation and examples - [ ] Tests (metrics calculation, exports) --- ## Version 0.11.0+ - DDD Specialization πŸ—οΈ **Target:** Q3-Q4 2026 **Priority:** MEDIUM (After Market Parity) Now we can focus on Guardian's unique DDD/Clean Architecture specialization: ### v0.11.0 - Aggregate Boundary Validation πŸ”’ - Detect entity references across aggregates - Enforce ID-only references between aggregates - Validate aggregate root access patterns ### v0.12.0 - Anemic Domain Model Detection 🩺 - Detect entities with only getters/setters - Count methods vs properties ratio - Suggest moving logic from services to entities ### v0.13.0 - Domain Event Validation πŸ“’ - Validate event publishing pattern - Check events inherit from DomainEvent base - Detect direct infrastructure calls from entities ### v0.14.0 - Value Object Immutability πŸ” - Ensure Value Objects have readonly fields - Detect public setters - Verify equals() method exists ### v0.15.0 - Use Case Single Responsibility 🎯 - Check Use Case has single public method (execute) - Detect multiple responsibilities - Suggest splitting large Use Cases ### v0.16.0 - Interface Segregation πŸ”Œ - Count methods per interface (> 10 = warning) - Check method cohesion - Suggest interface splitting ### v0.17.0 - Port-Adapter Pattern πŸ”Œ - Check Ports (interfaces) are in application/domain - Verify Adapters are in infrastructure - Detect external library imports in use cases ### v0.18.0 - Command Query Separation (CQRS) πŸ“ - Detect methods that both change state and return data - Check Use Case names for CQS violations - Validate Command Use Cases return void ### v0.19.0 - Factory Pattern Validation 🏭 - Detect complex logic in entity constructors - Check for `new Entity()` calls in use cases - Suggest extracting construction to Factory ### v0.20.0 - Specification Pattern Detection πŸ” - Detect complex business rules in use cases - Validate Specification classes in domain - Suggest extracting rules to Specifications ### v0.21.0 - Layered Service Anti-pattern ⚠️ - Detect service methods operating on single entity - Validate entities have behavior methods - Suggest moving service methods to entities ### v0.22.0 - Bounded Context Leak Detection 🚧 - Detect entity imports across contexts - Validate only ID references between contexts - Verify event-based integration ### v0.23.0 - Transaction Script Detection πŸ“œ - Detect procedural logic in use cases - Check use case length (> 30-50 lines = warning) - Suggest moving logic to domain entities ### v0.24.0 - Persistence Ignorance πŸ’Ύ - Detect ORM decorators in domain entities - Check for ORM library imports in domain - Suggest persistence ignorance pattern ### v0.25.0 - Null Object Pattern Detection 🎭 - Count null checks in use cases - Suggest Null Object pattern - Detect repositories returning null vs Null Object ### v0.26.0 - Primitive Obsession Detection πŸ”’ - Detect methods with > 3 primitive parameters - Check for common Value Object candidates - Suggest creating Value Objects ### v0.27.0 - Service Locator Anti-pattern πŸ” - Detect global ServiceLocator/Registry classes - Validate constructor injection - Suggest DI container usage ### v0.28.0 - Double Dispatch Pattern 🎯 - Detect frequent instanceof or type checking - Check for long if-else/switch by type - Suggest Visitor pattern ### v0.29.0 - Entity Identity Validation πŸ†” - Detect public mutable ID fields - Validate ID is Value Object - Check for equals() method implementation ### v0.30.0 - Saga Pattern Detection πŸ”„ - Detect multiple external calls without compensation - Validate compensating transactions - Suggest Saga pattern for distributed operations ### v0.31.0 - Anti-Corruption Layer Detection πŸ›‘οΈ - Detect direct legacy library imports - Check for domain adaptation to external APIs - Validate translator/adapter layer exists ### v0.32.0 - Ubiquitous Language Validation πŸ“– **Priority: HIGH** - Detect synonyms for same concepts (User/Customer/Client) - Check inconsistent verbs (Create/Register/SignUp) - Require Ubiquitous Language glossary --- ## Version 1.0.0 - Stable Release πŸš€ **Target:** Q4 2026 (December) **Priority:** πŸ”₯ CRITICAL Production-ready stable release with ecosystem: ### Core Features - βœ… All detection features stabilized - βœ… Configuration & presets - βœ… Visualization & graphs - βœ… CI/CD integration - βœ… Auto-fix & code generation - βœ… Metrics & quality score - βœ… 30+ DDD pattern detectors ### Ecosystem #### VS Code Extension - Real-time detection as you type - Inline suggestions and quick fixes - Problem panel integration - Code actions for auto-fix #### JetBrains Plugin - IntelliJ IDEA, WebStorm support - Inspection integration - Quick fixes #### Web Dashboard - Team quality metrics - Historical trends - Per-developer analytics - Project comparison #### GitHub Integration - GitHub App - Code scanning integration - Dependency insights - Security alerts for architecture violations --- ## πŸ’‘ Future Ideas (Post-1.0.0) ### Multi-Language Support - Python (Django/Flask + DDD) - C# (.NET + Clean Architecture) - Java (Spring Boot + DDD) - Go (Clean Architecture) ### AI-Powered Features - LLM-based fix suggestions - AI generates code for complex refactorings - Claude/GPT API integration - Natural language architecture queries ### Team Analytics - Per-developer quality metrics - Team quality trends dashboard - Technical debt tracking - Leaderboards (gamification) ### Security Features - Secrets detection (API keys, passwords) - SQL injection pattern detection - XSS vulnerability patterns - Dependency vulnerability scanning ### Code Quality Metrics - Maintainability index - Technical debt estimation - Code duplication detection - Complexity trends --- ## 🎯 Success Criteria ### v0.10.0 (Market Parity Achieved) - βœ… Configuration support (compete with ESLint) - βœ… Visualization (compete with dependency-cruiser) - βœ… CI/CD integration (compete with SonarQube) - βœ… Auto-fix (UNIQUE! Game-changer) - βœ… Metrics dashboard (compete with SonarQube) ### v1.0.0 (Enterprise Ready) - βœ… 1000+ GitHub stars - βœ… 100+ npm installs/week - βœ… 10+ enterprise adopters - βœ… 99%+ test coverage - βœ… Complete documentation - βœ… IDE extensions available --- ## πŸ“Š Competitive Positioning | Feature | Guardian v1.0 | SonarQube | dependency-cruiser | ArchUnit | FTA | |---------|---------------|-----------|-------------------|----------|-----| | TypeScript Focus | βœ…βœ… | ⚠️ | βœ…βœ… | ❌ | βœ…βœ… | | Hardcode + AI Tips | βœ…βœ… UNIQUE | ⚠️ | ❌ | ❌ | ❌ | | Architecture (DDD) | βœ…βœ… UNIQUE | ⚠️ | ⚠️ | βœ… | ❌ | | Visualization | βœ… | βœ… | βœ…βœ… | ❌ | ⚠️ | | Auto-Fix | βœ…βœ… UNIQUE | ❌ | ❌ | ❌ | ❌ | | Configuration | βœ… | βœ…βœ… | βœ… | βœ… | ⚠️ | | CI/CD | βœ… | βœ…βœ… | βœ… | βœ… | ⚠️ | | Metrics | βœ… | βœ…βœ… | ⚠️ | ❌ | βœ…βœ… | | Security (SAST) | ❌ | βœ…βœ… | ❌ | ❌ | ❌ | | Multi-language | ❌ | βœ…βœ… | ⚠️ | ⚠️ | ❌ | **Guardian's Position:** The AI-First Architecture Guardian for TypeScript/DDD teams --- ## 🀝 Contributing Want to help build Guardian? Check out: - [GitHub Issues](https://github.com/samiyev/puaros/issues) - [CONTRIBUTING.md](../../CONTRIBUTING.md) - [Discord Community](#) (coming soon) --- ## πŸ“ˆ Versioning Guardian follows [Semantic Versioning](https://semver.org/): - **MAJOR** (1.0.0) - Breaking changes - **MINOR** (0.x.0) - New features, backwards compatible - **PATCH** (0.x.y) - Bug fixes Until 1.0.0, minor versions may include breaking changes as we iterate on the API.