---
name: architecture-guidelines
description: System architecture: modules, project structure, ADRs, and testing. Use when designing or reviewing systems.
---
# Architecture Guidelines
Guidelines for system design, project structure, and architectural decisions.
## Quick Start
```typescript
// Use ES Modules with explicit extensions
import * as path from "@std/path";
import { readFile } from "./utils.ts";
export function processFile() {}
```
## Key Principles
- Use ES Modules (avoid CommonJS/AMD)
- Follow consistent directory structure with kebab-case directories
- Document architectural decisions with ADRs including trade-offs
- Write automated tests with CI (target 80%+ coverage for critical paths)
- Use naming conventions: PascalCase for components, camelCase for utilities
- Hexagonal architecture: domain + ports together, adapters separate
- Explicit composition only: import adapters directly, pass as parameters (no
magic config strings, no convenience factories)
## References
See [rules.md](references/rules.md) for complete guidelines with examples.