mirror of
https://github.com/samiyev/puaros.git
synced 2025-12-27 23:06:54 +05:00
docs: move guardian analysis docs to docs folder
This commit is contained in:
895
packages/guardian/docs/COMPARISON.md
Normal file
895
packages/guardian/docs/COMPARISON.md
Normal file
@@ -0,0 +1,895 @@
|
||||
# Guardian vs Competitors: Comprehensive Comparison 🔍
|
||||
|
||||
**Last Updated:** 2025-01-24
|
||||
|
||||
This document provides an in-depth comparison of Guardian against major competitors in the static analysis and architecture enforcement space.
|
||||
|
||||
---
|
||||
|
||||
## 🎯 TL;DR - When to Use Each Tool
|
||||
|
||||
| Your Need | Recommended Tool | Why |
|
||||
|-----------|------------------|-----|
|
||||
| **TypeScript + AI coding + DDD** | ✅ **Guardian** | Only tool built for AI-assisted DDD development |
|
||||
| **Multi-language + Security** | SonarQube | 35+ languages, deep security scanning |
|
||||
| **Dependency visualization** | dependency-cruiser + Guardian | Best visualization + architecture rules |
|
||||
| **Java architecture** | ArchUnit | Java-specific with unit test integration |
|
||||
| **TypeScript complexity metrics** | FTA + Guardian | Fast metrics + architecture enforcement |
|
||||
| **Python architecture** | import-linter + Guardian (future) | Python layer enforcement |
|
||||
|
||||
---
|
||||
|
||||
## 📊 Feature Comparison Matrix
|
||||
|
||||
### Core Capabilities
|
||||
|
||||
| Feature | Guardian | SonarQube | dependency-cruiser | ArchUnit | FTA | ESLint |
|
||||
|---------|----------|-----------|-------------------|----------|-----|--------|
|
||||
| **Languages** | JS/TS | 35+ | JS/TS/Vue | Java | TS/JS | JS/TS |
|
||||
| **Setup Complexity** | ⚡ Simple | 🐌 Complex | ⚡ Simple | ⚙️ Medium | ⚡ Simple | ⚡ Simple |
|
||||
| **Price** | 🆓 Free | 💰 Freemium | 🆓 Free | 🆓 Free | 🆓 Free | 🆓 Free |
|
||||
| **GitHub Stars** | - | - | 6.2k | 3.1k | - | 24k+ |
|
||||
|
||||
### Detection Capabilities
|
||||
|
||||
| Feature | Guardian | SonarQube | dependency-cruiser | ArchUnit | FTA | ESLint |
|
||||
|---------|----------|-----------|-------------------|----------|-----|--------|
|
||||
| **Hardcode Detection** | ✅✅ (with AI tips) | ⚠️ (secrets only) | ❌ | ❌ | ❌ | ❌ |
|
||||
| **Circular Dependencies** | ✅ | ✅ | ✅✅ (visual) | ✅ | ❌ | ✅ |
|
||||
| **Architecture Layers** | ✅✅ (DDD/Clean) | ⚠️ (generic) | ✅ (via rules) | ✅✅ | ❌ | ⚠️ |
|
||||
| **Framework Leak** | ✅✅ UNIQUE | ❌ | ⚠️ (via rules) | ⚠️ | ❌ | ❌ |
|
||||
| **Entity Exposure** | ✅✅ UNIQUE | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| **Naming Conventions** | ✅ (DDD-specific) | ✅ (generic) | ❌ | ✅ | ❌ | ✅ |
|
||||
| **Repository Pattern** | ✅✅ UNIQUE | ❌ | ❌ | ⚠️ | ❌ | ❌ |
|
||||
| **Dependency Direction** | ✅✅ | ❌ | ✅ (via rules) | ✅ | ❌ | ❌ |
|
||||
| **Security (SAST)** | ❌ | ✅✅ | ❌ | ❌ | ❌ | ⚠️ |
|
||||
| **Dependency Risks (SCA)** | ❌ | ✅✅ | ❌ | ❌ | ❌ | ❌ |
|
||||
| **Complexity Metrics** | ❌ | ✅ | ❌ | ❌ | ✅✅ | ⚠️ |
|
||||
| **Code Duplication** | ❌ | ✅✅ | ❌ | ❌ | ❌ | ❌ |
|
||||
|
||||
### Developer Experience
|
||||
|
||||
| Feature | Guardian | SonarQube | dependency-cruiser | ArchUnit | FTA | ESLint |
|
||||
|---------|----------|-----------|-------------------|----------|-----|--------|
|
||||
| **CLI** | ✅ | ✅ | ✅ | ❌ (lib) | ✅ | ✅ |
|
||||
| **Configuration** | ✅ (v0.6+) | ✅✅ | ✅ | ✅ | ⚠️ | ✅✅ |
|
||||
| **Visualization** | ✅ (v0.7+) | ✅✅ (dashboard) | ✅✅ (graphs) | ❌ | ⚠️ | ❌ |
|
||||
| **Auto-Fix** | ✅✅ (v0.9+) UNIQUE | ❌ | ❌ | ❌ | ❌ | ✅ |
|
||||
| **AI Workflow** | ✅✅ UNIQUE | ❌ | ❌ | ❌ | ❌ | ❌ |
|
||||
| **CI/CD Integration** | ✅ (v0.8+) | ✅✅ | ✅ | ✅ | ⚠️ | ✅✅ |
|
||||
| **IDE Extensions** | 🔜 (v1.0+) | ✅ | ❌ | ❌ | ⚠️ | ✅✅ |
|
||||
| **Metrics Dashboard** | ✅ (v0.10+) | ✅✅ | ⚠️ | ❌ | ✅ | ❌ |
|
||||
|
||||
**Legend:**
|
||||
- ✅✅ = Excellent support
|
||||
- ✅ = Good support
|
||||
- ⚠️ = Limited/partial support
|
||||
- ❌ = Not available
|
||||
- 🔜 = Planned/Coming soon
|
||||
|
||||
---
|
||||
|
||||
## 🔥 Guardian's Unique Advantages
|
||||
|
||||
Guardian has **7 unique features** that no competitor offers:
|
||||
|
||||
### 1. ✨ Hardcode Detection with AI Suggestions
|
||||
|
||||
**Guardian:**
|
||||
```typescript
|
||||
// Detected:
|
||||
app.listen(3000)
|
||||
|
||||
// Suggestion:
|
||||
💡 Extract to: DEFAULT_PORT
|
||||
📁 Location: infrastructure/config/constants.ts
|
||||
🤖 AI Prompt: "Extract port 3000 to DEFAULT_PORT constant in config"
|
||||
```
|
||||
|
||||
**Competitors:**
|
||||
- SonarQube: Only detects hardcoded secrets (API keys), not magic numbers
|
||||
- Others: No hardcode detection at all
|
||||
|
||||
### 2. 🔌 Framework Leak Detection
|
||||
|
||||
**Guardian:**
|
||||
```typescript
|
||||
// domain/entities/User.ts
|
||||
import { Request } from 'express' // ❌ VIOLATION!
|
||||
|
||||
// Detected: Framework leak in domain layer
|
||||
// Suggestion: Use dependency injection via interfaces
|
||||
```
|
||||
|
||||
**Competitors:**
|
||||
- ArchUnit: Can check via custom rules (not built-in)
|
||||
- Others: Not available
|
||||
|
||||
### 3. 🎭 Entity Exposure Detection
|
||||
|
||||
**Guardian:**
|
||||
```typescript
|
||||
// ❌ Bad: Domain entity exposed
|
||||
async getUser(): Promise<User> { }
|
||||
|
||||
// ✅ Good: Use DTOs
|
||||
async getUser(): Promise<UserDto> { }
|
||||
|
||||
// Guardian detects this automatically!
|
||||
```
|
||||
|
||||
**Competitors:**
|
||||
- None have this built-in
|
||||
|
||||
### 4. 📚 Repository Pattern Validation
|
||||
|
||||
**Guardian:**
|
||||
```typescript
|
||||
// Detects ORM types in domain interfaces:
|
||||
interface IUserRepository {
|
||||
findOne(query: { where: ... }) // ❌ Prisma-specific!
|
||||
}
|
||||
|
||||
// Detects concrete repos in use cases:
|
||||
constructor(private prisma: PrismaClient) {} // ❌ VIOLATION!
|
||||
```
|
||||
|
||||
**Competitors:**
|
||||
- None validate repository pattern
|
||||
|
||||
### 5. 🤖 AI-First Workflow
|
||||
|
||||
**Guardian:**
|
||||
```bash
|
||||
# Generate AI-friendly fix prompt
|
||||
guardian check ./src --format ai-prompt > fix.txt
|
||||
|
||||
# Feed to Claude/GPT:
|
||||
"Fix these Guardian violations: $(cat fix.txt)"
|
||||
|
||||
# AI fixes → Run Guardian again → Ship it!
|
||||
```
|
||||
|
||||
**Competitors:**
|
||||
- Generic output, not optimized for AI assistants
|
||||
|
||||
### 6. 🛠️ Auto-Fix for Architecture (v0.9+)
|
||||
|
||||
**Guardian:**
|
||||
```bash
|
||||
# Automatically extract hardcodes to constants
|
||||
guardian fix ./src --auto
|
||||
|
||||
# Rename files to match conventions
|
||||
guardian fix naming ./src --auto
|
||||
|
||||
# Interactive mode
|
||||
guardian fix ./src --interactive
|
||||
```
|
||||
|
||||
**Competitors:**
|
||||
- ESLint has `--fix` but only for syntax
|
||||
- None fix architecture violations
|
||||
|
||||
### 7. 🎯 DDD Pattern Detection (30+)
|
||||
|
||||
**Guardian Roadmap:**
|
||||
- Aggregate boundaries
|
||||
- Anemic domain model
|
||||
- Domain events
|
||||
- Value Object immutability
|
||||
- CQRS violations
|
||||
- Saga pattern
|
||||
- Ubiquitous language
|
||||
- And 23+ more DDD patterns!
|
||||
|
||||
**Competitors:**
|
||||
- Generic architecture checks only
|
||||
- No DDD-specific patterns
|
||||
|
||||
---
|
||||
|
||||
## 📈 Detailed Tool Comparisons
|
||||
|
||||
## vs SonarQube
|
||||
|
||||
### When SonarQube Wins
|
||||
|
||||
✅ **Multi-language projects**
|
||||
```
|
||||
Java + Python + TypeScript → Use SonarQube
|
||||
TypeScript only → Consider Guardian
|
||||
```
|
||||
|
||||
✅ **Security-critical applications**
|
||||
```
|
||||
SonarQube: SAST, SCA, OWASP Top 10, CVE detection
|
||||
Guardian: Architecture only (security coming later)
|
||||
```
|
||||
|
||||
✅ **Large enterprise with compliance**
|
||||
```
|
||||
SonarQube: Compliance reports, audit trails, enterprise support
|
||||
Guardian: Lightweight, developer-focused
|
||||
```
|
||||
|
||||
✅ **Existing SonarQube investment**
|
||||
```
|
||||
Already using SonarQube? Add Guardian for DDD-specific checks
|
||||
```
|
||||
|
||||
### When Guardian Wins
|
||||
|
||||
✅ **TypeScript + AI coding workflow**
|
||||
```typescript
|
||||
// AI generates code → Guardian checks → AI fixes → Ship
|
||||
// 10x faster than manual review
|
||||
```
|
||||
|
||||
✅ **Clean Architecture / DDD enforcement**
|
||||
```typescript
|
||||
// Guardian understands DDD out-of-the-box
|
||||
// SonarQube requires custom rules
|
||||
```
|
||||
|
||||
✅ **Fast setup (< 5 minutes)**
|
||||
```bash
|
||||
npm install -g @samiyev/guardian
|
||||
guardian check ./src
|
||||
# Done! (vs hours of SonarQube setup)
|
||||
```
|
||||
|
||||
✅ **Hardcode detection with context**
|
||||
```typescript
|
||||
// Guardian knows the difference between:
|
||||
const port = 3000 // ❌ Should be constant
|
||||
const increment = 1 // ✅ Allowed (semantic)
|
||||
```
|
||||
|
||||
### Side-by-Side Example
|
||||
|
||||
**Scenario:** Detect hardcoded port in Express app
|
||||
|
||||
```typescript
|
||||
// src/server.ts
|
||||
app.listen(3000)
|
||||
```
|
||||
|
||||
**SonarQube:**
|
||||
```
|
||||
❌ No violation (not a secret)
|
||||
```
|
||||
|
||||
**Guardian:**
|
||||
```
|
||||
✅ Hardcode detected:
|
||||
Type: magic-number
|
||||
Value: 3000
|
||||
💡 Suggested: DEFAULT_PORT
|
||||
📁 Location: infrastructure/config/constants.ts
|
||||
🤖 AI Fix: "Extract 3000 to DEFAULT_PORT constant"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## vs dependency-cruiser
|
||||
|
||||
### When dependency-cruiser Wins
|
||||
|
||||
✅ **Visualization priority**
|
||||
```bash
|
||||
# Best-in-class dependency graphs
|
||||
depcruise src --output-type dot | dot -T svg > graph.svg
|
||||
```
|
||||
|
||||
✅ **Custom dependency rules**
|
||||
```javascript
|
||||
// Highly flexible rule system
|
||||
forbidden: [
|
||||
{
|
||||
from: { path: '^src/domain' },
|
||||
to: { path: '^src/infrastructure' }
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
✅ **Multi-framework support**
|
||||
```
|
||||
JS, TS, Vue, Svelte, JSX, CoffeeScript
|
||||
```
|
||||
|
||||
### When Guardian Wins
|
||||
|
||||
✅ **DDD/Clean Architecture out-of-the-box**
|
||||
```typescript
|
||||
// Guardian knows these patterns:
|
||||
// - Domain/Application/Infrastructure layers
|
||||
// - Entity exposure
|
||||
// - Repository pattern
|
||||
// - Framework leaks
|
||||
|
||||
// dependency-cruiser: Write custom rules for each
|
||||
```
|
||||
|
||||
✅ **Hardcode detection**
|
||||
```typescript
|
||||
// Guardian finds:
|
||||
setTimeout(() => {}, 5000) // Magic number
|
||||
const url = "http://..." // Magic string
|
||||
|
||||
// dependency-cruiser: Doesn't check this
|
||||
```
|
||||
|
||||
✅ **AI workflow integration**
|
||||
```bash
|
||||
guardian check ./src --format ai-prompt
|
||||
# Optimized for Claude/GPT
|
||||
|
||||
depcruise src
|
||||
# Generic output
|
||||
```
|
||||
|
||||
### Complementary Usage
|
||||
|
||||
**Best approach:** Use both!
|
||||
|
||||
```bash
|
||||
# Guardian for architecture + hardcode
|
||||
guardian check ./src
|
||||
|
||||
# dependency-cruiser for visualization
|
||||
depcruise src --output-type svg > architecture.svg
|
||||
```
|
||||
|
||||
**Coming in Guardian v0.7.0:**
|
||||
```bash
|
||||
# Guardian will have built-in visualization!
|
||||
guardian visualize ./src --output architecture.svg
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## vs ArchUnit (Java)
|
||||
|
||||
### When ArchUnit Wins
|
||||
|
||||
✅ **Java projects**
|
||||
```java
|
||||
// ArchUnit is built for Java
|
||||
@ArchTest
|
||||
void domainShouldNotDependOnInfrastructure(JavaClasses classes) {
|
||||
noClasses().that().resideInPackage("..domain..")
|
||||
.should().dependOnClassesThat().resideInPackage("..infrastructure..")
|
||||
.check(classes);
|
||||
}
|
||||
```
|
||||
|
||||
✅ **Test-based architecture validation**
|
||||
```java
|
||||
// Architecture rules = unit tests
|
||||
// Runs in your CI with other tests
|
||||
```
|
||||
|
||||
✅ **Mature Java ecosystem**
|
||||
```
|
||||
Spring Boot, Hibernate, JPA patterns
|
||||
Built-in rules for layered/onion architecture
|
||||
```
|
||||
|
||||
### When Guardian Wins
|
||||
|
||||
✅ **TypeScript/JavaScript projects**
|
||||
```typescript
|
||||
// Guardian is built for TypeScript
|
||||
// ArchUnit doesn't support TS
|
||||
```
|
||||
|
||||
✅ **AI coding workflow**
|
||||
```bash
|
||||
# Guardian → AI → Fix → Ship
|
||||
# ArchUnit is test-based (slower feedback)
|
||||
```
|
||||
|
||||
✅ **Zero-config DDD**
|
||||
```bash
|
||||
guardian check ./src
|
||||
# Works immediately with DDD structure
|
||||
|
||||
# ArchUnit requires writing tests for each rule
|
||||
```
|
||||
|
||||
### Philosophical Difference
|
||||
|
||||
**ArchUnit:**
|
||||
```java
|
||||
// Architecture = Tests
|
||||
// You write explicit tests for each rule
|
||||
```
|
||||
|
||||
**Guardian:**
|
||||
```bash
|
||||
# Architecture = Linter
|
||||
# Pre-configured DDD rules out-of-the-box
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## vs FTA (Fast TypeScript Analyzer)
|
||||
|
||||
### When FTA Wins
|
||||
|
||||
✅ **Complexity metrics focus**
|
||||
```bash
|
||||
# FTA provides:
|
||||
# - Cyclomatic complexity
|
||||
# - Halstead metrics
|
||||
# - Line counts
|
||||
# - Technical debt estimation
|
||||
```
|
||||
|
||||
✅ **Performance (Rust-based)**
|
||||
```
|
||||
FTA: 1600 files/second
|
||||
Guardian: ~500 files/second (Node.js)
|
||||
```
|
||||
|
||||
✅ **Simplicity**
|
||||
```bash
|
||||
# FTA does one thing well: metrics
|
||||
fta src/
|
||||
```
|
||||
|
||||
### When Guardian Wins
|
||||
|
||||
✅ **Architecture enforcement**
|
||||
```typescript
|
||||
// Guardian checks:
|
||||
// - Layer violations
|
||||
// - Framework leaks
|
||||
// - Circular dependencies
|
||||
// - Repository pattern
|
||||
|
||||
// FTA: Only measures complexity, no architecture checks
|
||||
```
|
||||
|
||||
✅ **Hardcode detection**
|
||||
```typescript
|
||||
// Guardian finds magic numbers/strings
|
||||
// FTA doesn't check this
|
||||
```
|
||||
|
||||
✅ **AI workflow**
|
||||
```bash
|
||||
# Guardian provides actionable suggestions
|
||||
# FTA provides metrics only
|
||||
```
|
||||
|
||||
### Complementary Usage
|
||||
|
||||
**Best approach:** Use both!
|
||||
|
||||
```bash
|
||||
# Guardian for architecture
|
||||
guardian check ./src
|
||||
|
||||
# FTA for complexity metrics
|
||||
fta src/ --threshold complexity:15
|
||||
```
|
||||
|
||||
**Coming in Guardian v0.10.0:**
|
||||
```bash
|
||||
# Guardian will include complexity metrics!
|
||||
guardian metrics ./src --include-complexity
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## vs ESLint + Plugins
|
||||
|
||||
### When ESLint Wins
|
||||
|
||||
✅ **General code quality**
|
||||
```javascript
|
||||
// Best for:
|
||||
// - Code style
|
||||
// - Common bugs
|
||||
// - TypeScript errors
|
||||
// - React/Vue specific rules
|
||||
```
|
||||
|
||||
✅ **Huge ecosystem**
|
||||
```bash
|
||||
# 10,000+ plugins
|
||||
eslint-plugin-react
|
||||
eslint-plugin-vue
|
||||
eslint-plugin-security
|
||||
# ...and many more
|
||||
```
|
||||
|
||||
✅ **Auto-fix for syntax**
|
||||
```bash
|
||||
eslint --fix
|
||||
# Fixes semicolons, quotes, formatting, etc.
|
||||
```
|
||||
|
||||
### When Guardian Wins
|
||||
|
||||
✅ **Architecture enforcement**
|
||||
```typescript
|
||||
// ESLint doesn't understand:
|
||||
// - Clean Architecture layers
|
||||
// - DDD patterns
|
||||
// - Framework leaks
|
||||
// - Entity exposure
|
||||
|
||||
// Guardian does!
|
||||
```
|
||||
|
||||
✅ **Hardcode detection with context**
|
||||
```typescript
|
||||
// ESLint plugins check patterns
|
||||
// Guardian understands semantic context
|
||||
```
|
||||
|
||||
✅ **AI workflow integration**
|
||||
```bash
|
||||
# Guardian optimized for AI assistants
|
||||
# ESLint generic output
|
||||
```
|
||||
|
||||
### Complementary Usage
|
||||
|
||||
**Best approach:** Use both!
|
||||
|
||||
```bash
|
||||
# ESLint for code quality
|
||||
eslint src/
|
||||
|
||||
# Guardian for architecture
|
||||
guardian check ./src
|
||||
```
|
||||
|
||||
**Many teams run both in CI:**
|
||||
```yaml
|
||||
# .github/workflows/quality.yml
|
||||
- name: ESLint
|
||||
run: npm run lint
|
||||
|
||||
- name: Guardian
|
||||
run: guardian check ./src --fail-on error
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## vs import-linter (Python)
|
||||
|
||||
### When import-linter Wins
|
||||
|
||||
✅ **Python projects**
|
||||
```ini
|
||||
# .importlinter
|
||||
[importlinter]
|
||||
root_package = myproject
|
||||
|
||||
[importlinter:contract:1]
|
||||
name = Layers contract
|
||||
type = layers
|
||||
layers =
|
||||
myproject.domain
|
||||
myproject.application
|
||||
myproject.infrastructure
|
||||
```
|
||||
|
||||
✅ **Mature Python ecosystem**
|
||||
```python
|
||||
# Django, Flask, FastAPI integration
|
||||
```
|
||||
|
||||
### When Guardian Wins
|
||||
|
||||
✅ **TypeScript/JavaScript**
|
||||
```typescript
|
||||
// Guardian is for TS/JS
|
||||
// import-linter is Python-only
|
||||
```
|
||||
|
||||
✅ **More than import checking**
|
||||
```typescript
|
||||
// Guardian checks:
|
||||
// - Hardcode
|
||||
// - Entity exposure
|
||||
// - Repository pattern
|
||||
// - Framework leaks
|
||||
|
||||
// import-linter: Only imports
|
||||
```
|
||||
|
||||
### Future Integration
|
||||
|
||||
**Guardian v2.0+ (Planned):**
|
||||
```bash
|
||||
# Multi-language support coming
|
||||
guardian check ./python-src --language python
|
||||
guardian check ./ts-src --language typescript
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💰 Cost Comparison
|
||||
|
||||
| Tool | Free Tier | Paid Plans | Enterprise |
|
||||
|------|-----------|------------|------------|
|
||||
| **Guardian** | ✅ MIT License (100% free) | - | - |
|
||||
| **SonarQube** | ✅ Community Edition | Developer: $150/yr | Custom pricing |
|
||||
| **dependency-cruiser** | ✅ MIT License | - | - |
|
||||
| **ArchUnit** | ✅ Apache 2.0 | - | - |
|
||||
| **FTA** | ✅ Open Source | - | - |
|
||||
| **ESLint** | ✅ MIT License | - | - |
|
||||
|
||||
**Guardian will always be free and open-source (MIT License)**
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Setup Time Comparison
|
||||
|
||||
| Tool | Setup Time | Configuration Required |
|
||||
|------|------------|------------------------|
|
||||
| **Guardian** | ⚡ 2 minutes | ❌ Zero-config (DDD) |
|
||||
| **SonarQube** | 🐌 2-4 hours | ✅ Extensive setup |
|
||||
| **dependency-cruiser** | ⚡ 5 minutes | ⚠️ Rules configuration |
|
||||
| **ArchUnit** | ⚙️ 30 minutes | ✅ Write test rules |
|
||||
| **FTA** | ⚡ 1 minute | ❌ Zero-config |
|
||||
| **ESLint** | ⚡ 10 minutes | ⚠️ Plugin configuration |
|
||||
|
||||
**Guardian Setup:**
|
||||
```bash
|
||||
# 1. Install (30 seconds)
|
||||
npm install -g @samiyev/guardian
|
||||
|
||||
# 2. Run (90 seconds)
|
||||
cd your-project
|
||||
guardian check ./src
|
||||
|
||||
# Done! 🎉
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Real-World Performance
|
||||
|
||||
### Analysis Speed (1000 TypeScript files)
|
||||
|
||||
| Tool | Time | Notes |
|
||||
|------|------|-------|
|
||||
| **FTA** | ~0.6s | ⚡ Fastest (Rust) |
|
||||
| **Guardian** | ~2s | Fast (Node.js, tree-sitter) |
|
||||
| **dependency-cruiser** | ~3s | Fast |
|
||||
| **ESLint** | ~5s | Depends on rules |
|
||||
| **SonarQube** | ~15s | Slower (comprehensive) |
|
||||
|
||||
### Memory Usage
|
||||
|
||||
| Tool | RAM | Notes |
|
||||
|------|-----|-------|
|
||||
| **Guardian** | ~150MB | Efficient |
|
||||
| **FTA** | ~50MB | Minimal (Rust) |
|
||||
| **dependency-cruiser** | ~200MB | Moderate |
|
||||
| **ESLint** | ~300MB | Varies by plugins |
|
||||
| **SonarQube** | ~2GB | Heavy (server) |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Use Case Recommendations
|
||||
|
||||
### Scenario 1: TypeScript Startup Using AI Coding
|
||||
|
||||
**Best Stack:**
|
||||
```bash
|
||||
✅ Guardian (architecture + hardcode)
|
||||
✅ ESLint (code quality)
|
||||
✅ Prettier (formatting)
|
||||
```
|
||||
|
||||
**Why:**
|
||||
- Fast setup
|
||||
- AI workflow integration
|
||||
- Zero-config DDD
|
||||
- Catches AI mistakes (hardcode)
|
||||
|
||||
### Scenario 2: Enterprise Multi-Language
|
||||
|
||||
**Best Stack:**
|
||||
```bash
|
||||
✅ SonarQube (security + multi-language)
|
||||
✅ Guardian (TypeScript DDD specialization)
|
||||
✅ ArchUnit (Java architecture)
|
||||
```
|
||||
|
||||
**Why:**
|
||||
- Comprehensive coverage
|
||||
- Security scanning
|
||||
- Language-specific depth
|
||||
|
||||
### Scenario 3: Clean Architecture Refactoring
|
||||
|
||||
**Best Stack:**
|
||||
```bash
|
||||
✅ Guardian (architecture enforcement)
|
||||
✅ dependency-cruiser (visualization)
|
||||
✅ Guardian v0.9+ (auto-fix)
|
||||
```
|
||||
|
||||
**Why:**
|
||||
- Visualize current state
|
||||
- Detect violations
|
||||
- Auto-fix issues
|
||||
|
||||
### Scenario 4: Python + TypeScript Monorepo
|
||||
|
||||
**Best Stack:**
|
||||
```bash
|
||||
✅ Guardian (TypeScript)
|
||||
✅ import-linter (Python)
|
||||
✅ SonarQube (security, both languages)
|
||||
```
|
||||
|
||||
**Why:**
|
||||
- Language-specific depth
|
||||
- Unified security scanning
|
||||
|
||||
---
|
||||
|
||||
## 🏆 Winner by Category
|
||||
|
||||
| Category | Winner | Runner-up |
|
||||
|----------|--------|-----------|
|
||||
| **TypeScript Architecture** | 🥇 Guardian | dependency-cruiser |
|
||||
| **Multi-Language** | 🥇 SonarQube | - |
|
||||
| **Visualization** | 🥇 dependency-cruiser | SonarQube |
|
||||
| **AI Workflow** | 🥇 Guardian | - (no competitor) |
|
||||
| **Security** | 🥇 SonarQube | - |
|
||||
| **Hardcode Detection** | 🥇 Guardian | - (no competitor) |
|
||||
| **DDD Patterns** | 🥇 Guardian | ArchUnit (Java) |
|
||||
| **Auto-Fix** | 🥇 ESLint (syntax) | Guardian v0.9+ (architecture) |
|
||||
| **Complexity Metrics** | 🥇 FTA | SonarQube |
|
||||
| **Setup Speed** | 🥇 FTA | Guardian |
|
||||
|
||||
---
|
||||
|
||||
## 🔮 Future Roadmap Comparison
|
||||
|
||||
### Guardian v1.0.0 (Q4 2026)
|
||||
- ✅ Configuration & presets (v0.6)
|
||||
- ✅ Visualization (v0.7)
|
||||
- ✅ CI/CD kit (v0.8)
|
||||
- ✅ Auto-fix (v0.9) **UNIQUE!**
|
||||
- ✅ Metrics dashboard (v0.10)
|
||||
- ✅ 30+ DDD patterns (v0.11-v0.32)
|
||||
- ✅ VS Code extension
|
||||
- ✅ JetBrains plugin
|
||||
|
||||
### Competitors
|
||||
- **SonarQube**: Incremental improvements, AI-powered fixes (experimental)
|
||||
- **dependency-cruiser**: Stable, no major changes planned
|
||||
- **ArchUnit**: Java focus, incremental improvements
|
||||
- **FTA**: Adding more metrics
|
||||
- **ESLint**: Flat config, performance improvements
|
||||
|
||||
**Guardian's Advantage:** Only tool actively expanding DDD/architecture detection
|
||||
|
||||
---
|
||||
|
||||
## 💡 Migration Guides
|
||||
|
||||
### From SonarQube to Guardian
|
||||
|
||||
**When to migrate:**
|
||||
- TypeScript-only project
|
||||
- Want faster iteration
|
||||
- Need DDD-specific checks
|
||||
- Don't need multi-language/security
|
||||
|
||||
**How to migrate:**
|
||||
```bash
|
||||
# Keep SonarQube for security
|
||||
# Add Guardian for architecture
|
||||
npm install -g @samiyev/guardian
|
||||
guardian check ./src
|
||||
|
||||
# CI/CD: Run both
|
||||
# SonarQube (security) → Guardian (architecture)
|
||||
```
|
||||
|
||||
### From ESLint-only to ESLint + Guardian
|
||||
|
||||
**Why add Guardian:**
|
||||
```typescript
|
||||
// ESLint checks syntax
|
||||
// Guardian checks architecture
|
||||
```
|
||||
|
||||
**How to add:**
|
||||
```bash
|
||||
# Keep ESLint
|
||||
npm run lint
|
||||
|
||||
# Add Guardian
|
||||
guardian check ./src
|
||||
|
||||
# Both in CI:
|
||||
npm run lint && guardian check ./src
|
||||
```
|
||||
|
||||
### From dependency-cruiser to Guardian
|
||||
|
||||
**Why migrate:**
|
||||
- Need more than circular deps
|
||||
- Want hardcode detection
|
||||
- Need DDD patterns
|
||||
- Want auto-fix (v0.9+)
|
||||
|
||||
**How to migrate:**
|
||||
```bash
|
||||
# Replace:
|
||||
depcruise src --config .dependency-cruiser.js
|
||||
|
||||
# With:
|
||||
guardian check ./src
|
||||
|
||||
# Or keep both:
|
||||
# dependency-cruiser → visualization
|
||||
# Guardian → architecture + hardcode
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
### Guardian
|
||||
- [GitHub Repository](https://github.com/samiyev/puaros)
|
||||
- [Documentation](https://puaros.ailabs.uz)
|
||||
- [npm Package](https://www.npmjs.com/package/@samiyev/guardian)
|
||||
|
||||
### Competitors
|
||||
- [SonarQube](https://www.sonarsource.com/products/sonarqube/)
|
||||
- [dependency-cruiser](https://github.com/sverweij/dependency-cruiser)
|
||||
- [ArchUnit](https://www.archunit.org/)
|
||||
- [FTA](https://ftaproject.dev/)
|
||||
- [import-linter](https://import-linter.readthedocs.io/)
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Community & Support
|
||||
|
||||
| Tool | Community | Support |
|
||||
|------|-----------|---------|
|
||||
| **Guardian** | GitHub Issues | Community (planned: Discord) |
|
||||
| **SonarQube** | Community Forum | Commercial support available |
|
||||
| **dependency-cruiser** | GitHub Issues | Community |
|
||||
| **ArchUnit** | GitHub Issues | Community |
|
||||
| **ESLint** | Discord, Twitter | Community |
|
||||
|
||||
---
|
||||
|
||||
**Guardian's Position in the Market:**
|
||||
|
||||
> **"The AI-First Architecture Guardian for TypeScript teams practicing DDD/Clean Architecture"**
|
||||
|
||||
**Guardian is NOT:**
|
||||
- ❌ A replacement for SonarQube's security scanning
|
||||
- ❌ A replacement for ESLint's code quality checks
|
||||
- ❌ A multi-language tool (yet)
|
||||
|
||||
**Guardian IS:**
|
||||
- ✅ The best tool for TypeScript DDD/Clean Architecture
|
||||
- ✅ The only tool optimized for AI-assisted coding
|
||||
- ✅ The only tool with intelligent hardcode detection
|
||||
- ✅ The only tool with auto-fix for architecture (v0.9+)
|
||||
|
||||
---
|
||||
|
||||
**Questions? Feedback?**
|
||||
|
||||
- 📧 Email: fozilbek.samiyev@gmail.com
|
||||
- 🐙 GitHub: https://github.com/samiyev/puaros/issues
|
||||
- 🌐 Website: https://puaros.ailabs.uz
|
||||
323
packages/guardian/docs/COMPETITIVE_ANALYSIS_SUMMARY.md
Normal file
323
packages/guardian/docs/COMPETITIVE_ANALYSIS_SUMMARY.md
Normal file
@@ -0,0 +1,323 @@
|
||||
# Competitive Analysis & Roadmap - Summary
|
||||
|
||||
**Date:** 2025-01-24
|
||||
**Prepared for:** Puaros Guardian
|
||||
**Documents Created:**
|
||||
1. ROADMAP_NEW.md - Updated roadmap with reprioritized features
|
||||
2. COMPARISON.md - Comprehensive competitor comparison
|
||||
3. docs/v0.6.0-CONFIGURATION-SPEC.md - Configuration feature specification
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Executive Summary
|
||||
|
||||
Guardian has **5 unique features** that no competitor offers, positioning it as the **only tool built for AI-assisted DDD/Clean Architecture development**. However, to achieve enterprise adoption, we need to first match competitors' baseline features (configuration, visualization, CI/CD, metrics).
|
||||
|
||||
### Current Position (v0.5.1)
|
||||
|
||||
**Strengths:**
|
||||
- ✅ Hardcode detection with AI suggestions (UNIQUE)
|
||||
- ✅ Framework leak detection (UNIQUE)
|
||||
- ✅ Entity exposure detection (UNIQUE)
|
||||
- ✅ Repository pattern validation (UNIQUE)
|
||||
- ✅ DDD-specific naming conventions (UNIQUE)
|
||||
|
||||
**Gaps:**
|
||||
- ❌ No configuration file support
|
||||
- ❌ No visualization/graphs
|
||||
- ❌ No ready-to-use CI/CD templates
|
||||
- ❌ No metrics/quality score
|
||||
- ❌ No auto-fix capabilities
|
||||
|
||||
---
|
||||
|
||||
## 📊 Competitive Landscape
|
||||
|
||||
### Main Competitors
|
||||
|
||||
| Tool | Strength | Weakness | Market Position |
|
||||
|------|----------|----------|-----------------|
|
||||
| **SonarQube** | Multi-language + Security | Complex setup, expensive | Enterprise leader |
|
||||
| **dependency-cruiser** | Best visualization | No hardcode/DDD | Dependency specialist |
|
||||
| **ArchUnit** | Java architecture | Java-only | Java ecosystem |
|
||||
| **FTA** | Fast metrics (Rust) | No architecture checks | Metrics tool |
|
||||
| **ESLint** | Huge ecosystem | No architecture | Code quality standard |
|
||||
|
||||
### Guardian's Unique Position
|
||||
|
||||
> **"The AI-First Architecture Guardian for TypeScript teams practicing DDD/Clean Architecture"**
|
||||
|
||||
**Market Gap Filled:**
|
||||
- No tool optimizes for AI-assisted coding workflow
|
||||
- No tool deeply understands DDD patterns (except ArchUnit for Java)
|
||||
- No tool combines hardcode detection + architecture enforcement
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Strategic Roadmap
|
||||
|
||||
### Phase 1: Market Parity (v0.6-v0.10) - Q1-Q2 2026
|
||||
|
||||
**Goal:** Match competitors' baseline features
|
||||
|
||||
| Version | Feature | Why Critical | Competitor |
|
||||
|---------|---------|--------------|------------|
|
||||
| v0.6.0 | Configuration & Presets | All competitors have this | ESLint, SonarQube |
|
||||
| v0.7.0 | Visualization | dependency-cruiser's main advantage | dependency-cruiser |
|
||||
| v0.8.0 | CI/CD Integration Kit | Enterprise requirement | SonarQube |
|
||||
| v0.9.0 | **Auto-Fix (UNIQUE!)** | Game-changer, no one has this | None |
|
||||
| v0.10.0 | Metrics & Quality Score | Enterprise adoption | SonarQube |
|
||||
|
||||
**After v0.10.0:** Guardian competes with SonarQube/dependency-cruiser on features
|
||||
|
||||
### Phase 2: DDD Specialization (v0.11-v0.32) - Q3-Q4 2026
|
||||
|
||||
**Goal:** Deepen DDD/Clean Architecture expertise
|
||||
|
||||
30+ DDD pattern detectors:
|
||||
- Aggregate boundaries
|
||||
- Anemic domain model
|
||||
- Domain events
|
||||
- Value Object immutability
|
||||
- CQRS validation
|
||||
- Saga pattern
|
||||
- Anti-Corruption Layer
|
||||
- Ubiquitous Language
|
||||
- And 22+ more...
|
||||
|
||||
**After Phase 2:** Guardian = THE tool for DDD/Clean Architecture
|
||||
|
||||
### Phase 3: Enterprise Ecosystem (v1.0+) - Q4 2026+
|
||||
|
||||
**Goal:** Full enterprise platform
|
||||
|
||||
- VS Code extension
|
||||
- JetBrains plugin
|
||||
- Web dashboard
|
||||
- Team analytics
|
||||
- Multi-language support (Python, C#, Java)
|
||||
|
||||
---
|
||||
|
||||
## 🔥 Critical Changes to Current Roadmap
|
||||
|
||||
### Old Roadmap Issues
|
||||
|
||||
❌ **v0.6.0 was "Aggregate Boundaries"** → Too early for DDD-specific features
|
||||
❌ **v0.12.0 was "Configuration"** → Way too late! Critical feature postponed
|
||||
❌ **Missing:** Visualization, CI/CD, Auto-fix, Metrics
|
||||
❌ **Too many consecutive DDD features** → Need market parity first
|
||||
|
||||
### New Roadmap Priorities
|
||||
|
||||
✅ **v0.6.0 = Configuration (MOVED UP)** → Critical for adoption
|
||||
✅ **v0.7.0 = Visualization (NEW)** → Compete with dependency-cruiser
|
||||
✅ **v0.8.0 = CI/CD Kit (NEW)** → Enterprise requirement
|
||||
✅ **v0.9.0 = Auto-Fix (NEW, UNIQUE!)** → Game-changing differentiator
|
||||
✅ **v0.10.0 = Metrics (NEW)** → Compete with SonarQube
|
||||
✅ **v0.11+ = DDD Features** → After market parity
|
||||
|
||||
---
|
||||
|
||||
## 💡 Key Recommendations
|
||||
|
||||
### Immediate Actions (Next 2 Weeks)
|
||||
|
||||
1. **Review & Approve New Roadmap**
|
||||
- Read ROADMAP_NEW.md
|
||||
- Approve priority changes
|
||||
- Create GitHub milestones
|
||||
|
||||
2. **Start v0.6.0 Configuration**
|
||||
- Read v0.6.0-CONFIGURATION-SPEC.md
|
||||
- Create implementation tasks
|
||||
- Start Phase 1 development
|
||||
|
||||
3. **Update Documentation**
|
||||
- Update main README.md with comparison table
|
||||
- Add "Guardian vs Competitors" section
|
||||
- Link to COMPARISON.md
|
||||
|
||||
### Next 3 Months (Q1 2026)
|
||||
|
||||
4. **Complete v0.6.0 (Configuration)**
|
||||
- 8-week timeline
|
||||
- Beta test with community
|
||||
- Stable release
|
||||
|
||||
5. **Start v0.7.0 (Visualization)**
|
||||
- Design graph system
|
||||
- Choose visualization library
|
||||
- Prototype SVG/Mermaid output
|
||||
|
||||
6. **Marketing & Positioning**
|
||||
- Create comparison blog post
|
||||
- Submit to Product Hunt
|
||||
- Share on Reddit/HackerNews
|
||||
|
||||
### Next 6 Months (Q1-Q2 2026)
|
||||
|
||||
7. **Complete Market Parity (v0.6-v0.10)**
|
||||
- Configuration ✅
|
||||
- Visualization ✅
|
||||
- CI/CD Integration ✅
|
||||
- Auto-Fix ✅ (UNIQUE!)
|
||||
- Metrics ✅
|
||||
|
||||
8. **Community Growth**
|
||||
- 1000+ GitHub stars
|
||||
- 100+ weekly npm installs
|
||||
- 10+ enterprise adopters
|
||||
|
||||
---
|
||||
|
||||
## 📈 Success Metrics
|
||||
|
||||
### v0.10.0 (Market Parity Achieved) - June 2026
|
||||
|
||||
**Feature Parity:**
|
||||
- ✅ 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)
|
||||
|
||||
**Adoption Metrics:**
|
||||
- 1,000+ GitHub stars
|
||||
- 100+ weekly npm installs
|
||||
- 50+ projects with guardian.config.js
|
||||
- 10+ enterprise teams
|
||||
|
||||
### v1.0.0 (Enterprise Ready) - December 2026
|
||||
|
||||
**Feature Completeness:**
|
||||
- ✅ All baseline features
|
||||
- ✅ 30+ DDD pattern detectors
|
||||
- ✅ IDE extensions (VS Code, JetBrains)
|
||||
- ✅ Web dashboard
|
||||
- ✅ Team analytics
|
||||
|
||||
**Market Position:**
|
||||
- #1 tool for TypeScript DDD/Clean Architecture
|
||||
- Top 3 in static analysis for TypeScript
|
||||
- Known in enterprise as "the AI code reviewer"
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Positioning Strategy
|
||||
|
||||
### Target Segments
|
||||
|
||||
1. **Primary:** TypeScript developers using AI coding assistants (GitHub Copilot, Cursor, Windsurf, Claude, ChatGPT, Cline)
|
||||
2. **Secondary:** Teams implementing DDD/Clean Architecture
|
||||
3. **Tertiary:** Startups/scale-ups needing fast quality enforcement
|
||||
|
||||
### Messaging
|
||||
|
||||
**Tagline:** "The AI-First Architecture Guardian"
|
||||
|
||||
**Key Messages:**
|
||||
- "Catches the #1 AI mistake: hardcoded values everywhere"
|
||||
- "Enforces Clean Architecture that AI often ignores"
|
||||
- "Closes the AI feedback loop for cleaner code"
|
||||
- "The only tool with auto-fix for architecture" (v0.9+)
|
||||
|
||||
### Differentiation
|
||||
|
||||
**Guardian ≠ SonarQube:** We're specialized for TypeScript DDD, not multi-language security
|
||||
**Guardian ≠ dependency-cruiser:** We detect patterns, not just dependencies
|
||||
**Guardian ≠ ESLint:** We enforce architecture, not syntax
|
||||
|
||||
**Guardian = ESLint for architecture + AI code reviewer**
|
||||
|
||||
---
|
||||
|
||||
## 📚 Document Guide
|
||||
|
||||
### ROADMAP_NEW.md
|
||||
|
||||
**Purpose:** Complete technical roadmap with reprioritized features
|
||||
**Audience:** Development team, contributors
|
||||
**Key Sections:**
|
||||
- Current state analysis
|
||||
- Phase 1: Market Parity (v0.6-v0.10)
|
||||
- Phase 2: DDD Specialization (v0.11-v0.32)
|
||||
- Phase 3: Enterprise Ecosystem (v1.0+)
|
||||
|
||||
### COMPARISON.md
|
||||
|
||||
**Purpose:** Marketing-focused comparison with all competitors
|
||||
**Audience:** Users, potential adopters, marketing
|
||||
**Key Sections:**
|
||||
- Feature comparison matrix
|
||||
- Detailed tool comparisons
|
||||
- When to use each tool
|
||||
- Use case recommendations
|
||||
- Winner by category
|
||||
|
||||
### v0.6.0-CONFIGURATION-SPEC.md
|
||||
|
||||
**Purpose:** Technical specification for Configuration feature
|
||||
**Audience:** Development team
|
||||
**Key Sections:**
|
||||
- Configuration file format
|
||||
- Preset system design
|
||||
- Rule configuration
|
||||
- Implementation plan (8 weeks)
|
||||
- Testing strategy
|
||||
|
||||
---
|
||||
|
||||
## 🎬 Next Steps
|
||||
|
||||
### Week 1-2: Planning & Kickoff
|
||||
|
||||
- [ ] Review all three documents
|
||||
- [ ] Approve new roadmap priorities
|
||||
- [ ] Create GitHub milestones for v0.6.0-v0.10.0
|
||||
- [ ] Create implementation issues for v0.6.0
|
||||
- [ ] Update main README.md with comparison table
|
||||
|
||||
### Week 3-10: v0.6.0 Development
|
||||
|
||||
- [ ] Phase 1: Core Configuration (Week 3-4)
|
||||
- [ ] Phase 2: Rule Configuration (Week 4-5)
|
||||
- [ ] Phase 3: Preset System (Week 5-6)
|
||||
- [ ] Phase 4: Ignore Patterns (Week 6-7)
|
||||
- [ ] Phase 5: CLI Integration (Week 7-8)
|
||||
- [ ] Phase 6: Documentation (Week 8-9)
|
||||
- [ ] Phase 7: Beta & Release (Week 9-10)
|
||||
|
||||
### Post-v0.6.0
|
||||
|
||||
- [ ] Start v0.7.0 (Visualization) planning
|
||||
- [ ] Marketing push (blog, Product Hunt, etc.)
|
||||
- [ ] Community feedback gathering
|
||||
|
||||
---
|
||||
|
||||
## ❓ Questions?
|
||||
|
||||
**For technical questions:**
|
||||
- Email: fozilbek.samiyev@gmail.com
|
||||
- GitHub Issues: https://github.com/samiyev/puaros/issues
|
||||
|
||||
**For strategic decisions:**
|
||||
- Review sessions: Schedule with team
|
||||
- Roadmap adjustments: Create GitHub discussion
|
||||
|
||||
---
|
||||
|
||||
## 📝 Changelog
|
||||
|
||||
**2025-01-24:** Initial competitive analysis and roadmap revision
|
||||
- Created comprehensive competitor comparison
|
||||
- Reprioritized roadmap (Configuration moved to v0.6.0)
|
||||
- Added market parity phase (v0.6-v0.10)
|
||||
- Designed v0.6.0 Configuration specification
|
||||
|
||||
---
|
||||
|
||||
**Status:** ✅ Analysis complete, ready for implementation
|
||||
|
||||
**Confidence Level:** HIGH - Analysis based on thorough competitor research and market positioning
|
||||
906
packages/guardian/docs/ROADMAP_NEW.md
Normal file
906
packages/guardian/docs/ROADMAP_NEW.md
Normal file
@@ -0,0 +1,906 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user