Skip to main content
← Projects

ArchSentinal

View on GitHub →

ArchSentinel is a static analysis and architecture enforcement tool I built to ensure large codebases adhere to well-defined structural boundaries. The goal was to create a system that can automatically detect architectural violations—such as improper layer access, forbidden dependencies, and circular imports—before they evolve into long-term design issues.

The tool is implemented in Rust with a focus on performance and reliability. It operates as a CLI that scans a project’s source code, builds an internal representation of modules and their dependencies, and evaluates them against a set of user-defined architectural rules. These rules allow teams to formally specify constraints like which layers can interact, what dependencies are allowed, and which patterns must be avoided.

At its core, ArchSentinel includes a flexible rule engine that decouples rule definitions from analysis logic. This makes it easy to extend the system with new types of checks or adapt it to different architectural styles such as layered, modular monoliths, or service-oriented designs. The analysis pipeline is designed to be deterministic and efficient, enabling fast feedback even on larger codebases.

To improve usability, the CLI outputs clear, structured reports highlighting violations along with their exact locations and dependency paths. This helps developers quickly understand and fix issues without manual tracing. The tool can be integrated into CI pipelines, making architectural validation a continuous and automated part of the development workflow.

Overall, ArchSentinel focuses on bringing discipline to codebase architecture through automation. It reflects an emphasis on clean system design, enforceable constraints, and scalable engineering practices, rather than relying on informal conventions or manual code reviews.