| name | linux-philosophy |
| description | Unix/Linux design principles for CLI tools and system architecture. |
Unix/Linux Philosophy
Core Principles
- Do one thing well - Each program/function should have a single purpose
- Compose with others - Design for pipelines and composition
- Text streams - Use text as universal interface
- Small, sharp tools - Prefer focused tools over monolithic solutions
- Fail fast, fail loudly - Exit on error with clear messages
Design Guidelines
- Prefer explicit over implicit behavior
- Make default behavior safe; require flags for dangerous operations
- Support stdin/stdout for composition
- Use exit codes meaningfully (0=success, non-zero=error)
- Write to stderr for diagnostics, stdout for output
Checklist
- Single responsibility per module/function
- Composable via standard I/O
- Clear error messages to stderr
- Meaningful exit codes
- No hidden side effects