56 laws, principles, and rules of thumb of software engineering, packaged as an installable Claude Code skill. Covers Conway, Brooks, Hyrum, Gall, Postel, CAP, YAGNI, DRY, SOLID, Pareto, Amdahl, Murphy, and ~45 more.
Paraphrased from lawsofsoftwareengineering.com — the original catalog. Full credit to the source site; content here is a derivative work for use with LLM coding assistants.
Structure inspired by forrestchang/andrej-karpathy-skills.
56 laws organized into 7 categories:
| Category | Count | Examples |
|---|---|---|
| Teams | 9 | Conway's, Brooks's, Dunbar, Ringelmann, Bus Factor |
| Planning | 6 | Premature Optimization, Parkinson, Goodhart, Hofstadter |
| Architecture | 9 | Hyrum, Gall, CAP, Leaky Abstractions, Fallacies of Distributed Computing |
| Quality | 11 | Boy Scout, Murphy, Postel, Technical Debt, Testing Pyramid |
| Scale | 3 | Amdahl, Gustafson, Metcalfe |
| Design | 6 | YAGNI, DRY, KISS, SOLID, Demeter, Least Astonishment |
| Decisions | 12 | Dunning-Kruger, Occam, Pareto, Lindy, Inversion, First Principles |
Each law has a deep-dive file with definition, takeaways, real-world examples, and "when to apply" triggers. Claude loads the main index, then reads individual law files on demand (progressive disclosure).
/plugin marketplace add Y0lan/laws-of-software-engineering
/plugin install laws-of-software-engineering@laws-of-software-engineering
After install, the skill appears as laws-of-software-engineering in the Skill tool. Claude invokes it automatically when architecture, planning, code-review, or decision-making cues match the skill description.
Append the condensed single-file version to your project's CLAUDE.md:
curl -fsSL https://raw.githubusercontent.com/Y0lan/laws-of-software-engineering/main/CLAUDE.md >> CLAUDE.mdThis adds all 56 laws with one-line definitions and apply-when cues. Good for any tool that reads project-level markdown instructions.
Copy the .mdc file into your project:
mkdir -p .cursor/rules
curl -fsSL https://raw.githubusercontent.com/Y0lan/laws-of-software-engineering/main/.cursor/rules/laws-of-software-engineering.mdc \
-o .cursor/rules/laws-of-software-engineering.mdcUses alwaysApply: false so Cursor surfaces the laws contextually rather than in every prompt.
The skill uses progressive disclosure:
skills/laws-of-software-engineering/SKILL.md— main index: all 56 laws with one-line definitions, organized by category, with pointers to deep-dive files.skills/laws-of-software-engineering/laws/<slug>.md— one file per law with takeaways, why it matters, examples, when-to-apply triggers, and related-law links.
When a situation triggers the skill, Claude loads the index and Reads whichever specific law files are relevant. This keeps context usage proportional to the actual question.
Laws are tendencies, not theorems. They're useful when they sharpen a concrete decision — and noise when they're name-dropped. Good uses:
- "Adding three more engineers to this slipping project risks Brooks's Law; the new-joiner ramp-up cost may outweigh their output for months."
- "This API change looks safe on paper, but per Hyrum's Law some clients likely depend on the current error-message text."
- "The 'we might need X later' argument is a YAGNI flag — let's defer until a real caller shows up."
Bad uses: dropping a name without applying it, or using a law to short-circuit actual analysis.
- Source catalog: lawsofsoftwareengineering.com — all laws selected and categorized there.
- Content in this repo is paraphrased; each deep-dive file links back to the original source page.
MIT. See LICENSE.