This document outlines the development process for the Architectural Discipline Package (ADP).
ADP applies its own principles to itself - this project uses ADP to maintain high architectural standards and is continuously monitored using its own analysis tools.
- Language Agnostic: ADP principles should apply across all supported languages
- Statistical Analysis: Use data-driven approaches for architectural decisions
- Incremental Improvement: Support gradual adoption of architectural discipline
- Consistency: Maintain consistent patterns and practices across all languages
- Self-Governance: ADP uses its own tools to enforce architectural discipline on its codebase
Before committing code, run architectural analysis:
pnpm run check:architectureTo get refactoring recommendations:
pnpm run check:architecture:recommend- Overall Health Score: 27/100
- Maintainability: 0/100
- Testability: 12/100
- Modularity: 96/100
- Complexity: 0/100
- Critical Outliers: 13 files
The project acknowledges the following areas for improvement:
- Code Complexity: Several files exceed complexity thresholds
- Function Purity: Many functions have side effects that could be reduced
- File Size: Some utility and language analyzer files are too large
- Maintainability: Need to extract functions and simplify conditional logic
These issues are tracked and addressed incrementally, demonstrating ADP's principle of gradual architectural improvement.
- Design language-agnostic interfaces first
- Implement language-specific analyzers
- Run
pnpm run check:architecturebefore committing - Test with real-world code examples
- Document patterns and thresholds
- Update validation checklist
ADP currently supports:
- JavaScript/TypeScript (original)
- PowerShell (new)
- C# (new)
- Rust (new)
- All code must pass linting and type checking
- Tests required for new language analyzers
- Documentation must be updated for new features
- Architectural discipline checks must pass (or improvements documented)