Strict Architecture Governance
These rules apply to ALL code in this project, regardless of language.
1. Universal Limits (Non-Negotiable)
These constraints apply to every source file:
- •MAX_LINES: 500 lines per file. (Split file if exceeded)
- •MAX_FUNCS: 5 public functions/methods per class/struct.
- •MAX_ARGS: 4 arguments per function/constructor.
- •NO_DEFAULTS: No default argument values allowed.
- •NO_ENV_VARS: No reading environment variables inside constructors or methods (pass values in).
2. Implementation Patterns by Language
🐍 Python Implementation
- •Interfaces: Use
typing.Protocolfor all dependencies.pythonclass IClient(Protocol): def fetch(self) -> dict: ... - •Config: Use
@dataclassfor configuration objects if args > 4. - •Env Block: Reject
os.environoros.getenvanywhere exceptmain.py.
🐹 Golang Implementation
- •Interfaces: Define
type Service interfacefor all dependencies. - •Config: Use strict structs for config.
- •Env Block: Reject
os.Getenvanywhere exceptmain.go. - •Forbidden: Do not use struct pointers for dependencies; use interfaces.
🔷 .NET / C# Implementation
- •Interfaces: Use
IInterfaceprefix. - •Config: Use
IOptions<T>pattern or simple POCO config objects. - •Env Block: Reject
Environment.GetEnvironmentVariableanywhere exceptProgram.cs.
3. Enforcement Checklist
Before saving any file, verify:
- • Is the file < 500 lines?
- • Does the constructor have dependencies passed as Interfaces?
- • Are there 0 calls to env var readers?
- • Are there 0 default arguments?