mirror of
https://github.com/samiyev/puaros.git
synced 2025-12-27 23:06:54 +05:00
906 lines
22 KiB
Markdown
906 lines
22 KiB
Markdown
# 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
|
|

|
|
```
|
|
|
|
### 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. |