Dependency Rules

CODERU relies on specific package naming conventions to enforce the following architectural rules automatically.

1. Recursive Access

If package P(a) has access to package P(b), then P(a) also has access to all direct children of P(b), except impl packages. This rule applies recursively.

2. Basic Rule

For all packages without special semantic names: A package P has access only to its direct children. Access to sibling or parent packages is not allowed.

Basic Rule

3. Common Rule

Any package named common has special visibility. All sibling packages of a common package (and their descendants) have access to it.

Common Rule

4. Factory Rule

A package named factory and all of its descendants have access to all siblings of the factory.

Factory Rule

5. API Rule

Any package generally has access to any api package, with strict restrictions to prevent cycles.

API Rule