# Linux Philosophy

> Unix/Linux design principles for CLI tools and system architecture.

- Skill: `majiayu000/linux-philosophy` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/linux-philosophy`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/linux-philosophy/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/linux-philosophy

---


# Unix/Linux Philosophy

## Core Principles

1. **Do one thing well** - Each program/function should have a single purpose
2. **Compose with others** - Design for pipelines and composition
3. **Text streams** - Use text as universal interface
4. **Small, sharp tools** - Prefer focused tools over monolithic solutions
5. **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

