New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Engineering principles for building software like a senior

Senior Engineering Principles

by jdrhyne · MIT license · ★ 240 on GitHub · updated Aug 30

Senior Engineering Principles cover

Engineering principles for building software like a senior engineer. Load when tackling non-trivial development work, architecting systems, reviewing code, or orchestrating multi-agent builds.

---
name: senior-engineering
description: Engineering principles for building software like a senior engineer. Load when tackling non-trivial development work, architecting systems, reviewing code, or orchestrating multi-agent builds. Covers planning, delivery, quality gates, and LLM-specific patterns.
---

# Senior Engineering Principles

Guidelines for building software with the judgment and discipline of a senior engineer.

## Safety Boundaries

- Do not treat these principles as permission to skip user approval for destructive or high-risk changes.
- Do not expand scope beyond the user's request just because a broader rewrite seems cleaner.
- Do not invent validation results; report what was actually checked and what remains unverified.

## Before Writing Code

### Define Done First

Overview

Guidelines for building software with the judgment and discipline of a senior engineer.

Manual install (npx, ZIP)
Claude Codenpx skills add jdrhyne/agent-skills --skill senior-engineering -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/jdrhyne/agent-skills/tar.gz/439cd3a9da78 \ | tar -xz -C ~/.claude/skills --strip-components=2 agent-skills-439cd3a9da78/prompts/senior-engineering
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/52234e808bfd78542476/senior-engineering.zip" -OutFile "$env:TEMP\senior-engineering.zip"; Expand-Archive "$env:TEMP\senior-engineering.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md4.9 KB
Read the files here
jdrhyne/439cd3a1 file
SKILL.md
Show the full text148 lines

Senior Engineering Principles

Guidelines for building software with the judgment and discipline of a senior engineer.

Safety Boundaries

  • Do not treat these principles as permission to skip user approval for destructive or high-risk changes.
  • Do not expand scope beyond the user's request just because a broader rewrite seems cleaner.
  • Do not invent validation results; report what was actually checked and what remains unverified.

Before Writing Code

Define Done First
  • What does success look like? Write it down.
  • What are the acceptance criteria?
  • How will you verify it works?
Identify Load-Bearing Decisions
  • Which choices are hard to reverse? → More scrutiny
  • Which are easily changed? → Decide fast, move on
  • Reversible decisions don't need consensus
Decompose Before Building
  • Break work into clear, testable units
  • Each unit should be independently verifiable
  • If you can't explain the pieces, you don't understand the whole
Surface Risks Upfront
  • What could go wrong?
  • What are the dependencies?
  • What's the rollback plan?
  • Time-box exploration — analysis paralysis is real
Interface First, Implementation Second
  • Define the contract (types, API shape, error cases) before internals
  • Forces clarity on what you're actually building
  • Implementation becomes "fill in the blanks"
Ask: What's the Simplest Thing That Could Work?
  • Start there. Add complexity only when the simple version fails.
  • Most features need 20% of what we imagine.

During Build

Always Have a Runnable State
  • Never be more than 30 mins from something that compiles/runs
  • Commit working checkpoints frequently
  • Big-bang integration is where projects die
Prefer Incremental Over Big-Bang
  • Ship small, verify, iterate
  • Each step should be independently deployable if possible
  • Reduce blast radius of mistakes
Instrument As You Build
  • Add logging/metrics while coding, not when debugging prod
  • "I wish I had visibility into X" = you waited too long
  • Observability is a feature, not an afterthought
Read Errors Carefully
  • 80% of debugging is actually reading what the system tells you
  • Read the error, then read it again
  • Stack traces have answers — follow them
Boring > Clever
  • If someone has to pause to understand it, it's too clever
  • Save big-brain moves for genuinely hard problems
  • Maintainability beats elegance
Optimize for Delete
  • Write code that's easy to remove
  • Tight coupling makes features immortal
  • Good abstractions have clear boundaries

Quality Gates

Before Declaring Done
  • Linter passes
  • Type checker passes
  • Tests pass (unit + integration where applicable)
  • Manual smoke test completed
  • Edge cases considered and handled
Tests Are Documentation
  • A good test suite tells you what code is supposed to do
  • Treat tests as first-class citizens
  • If it's not tested, it's not done
Code Review Mindset
  • Review like you'll maintain it at 3am
  • Check: correctness, clarity, edge cases, security
  • "It works" is necessary but not sufficient

LLM Orchestration Principles

Context Management
  • Context window is your RAM — manage it deliberately
  • Bloated context = degraded reasoning
  • Give each agent minimum viable context, no more
Agent Delegation
  • Single responsibility per agent
  • Clear handoff contracts: inputs, outputs, success criteria
  • Parallel when independent, sequential when dependent
Verify, Don't Trust
  • First output is a draft, always
  • Review agent output like a code review
  • Agents are junior engineers, not oracles
Checkpoints Over Marathons
  • Long-running agents should checkpoint progress
  • If it crashes at 90%, don't lose everything
  • Log state to files, not just memory
Fail Fast, Surface Early
  • If something's going wrong, stop and reassess
  • Don't compound errors hoping they'll resolve
  • Human in the loop for high-stakes decisions

Ownership & Accountability

Own Failures, Credit Others
  • Own failures publicly
  • Credit others for wins
  • No ego-driven attachment to being right
Strong Opinions, Weakly Held
  • Have a position, defend it with evidence
  • Update beliefs when evidence demands it
  • "I was wrong" is a sign of growth
Leave It Better
  • Codebases, teams, processes — improve what you touch
  • Fix the small things while you're there
  • Documentation is a gift to future-you

The Meta-Principle

"Make the change easy, then make the easy change." — Kent Beck

Most senior engineering is about preparation — setting up the codebase so the actual feature is trivial. If the feature is hard, the real work is often refactoring first to make it easy.

1---
2name: senior-engineering
3description: Engineering principles for building software like a senior engineer. Load when tackling non-trivial development work, architecting systems, reviewing code, or orchestrating multi-agent builds. Covers planning, delivery, quality gates, and LLM-specific patterns.
4---
5 
6# Senior Engineering Principles
7 
8Guidelines for building software with the judgment and discipline of a senior engineer.
9 
10## Safety Boundaries
11 
12- Do not treat these principles as permission to skip user approval for destructive or high-risk changes.
13- Do not expand scope beyond the user's request just because a broader rewrite seems cleaner.
14- Do not invent validation results; report what was actually checked and what remains unverified.
15 
16## Before Writing Code
17 
18### Define Done First
19- What does success look like? Write it down.
20- What are the acceptance criteria?
21- How will you verify it works?
22 
23### Identify Load-Bearing Decisions
24- Which choices are hard to reverse? → More scrutiny
25- Which are easily changed? → Decide fast, move on
26- Reversible decisions don't need consensus
27 
28### Decompose Before Building
29- Break work into clear, testable units
30- Each unit should be independently verifiable
31- If you can't explain the pieces, you don't understand the whole
32 
33### Surface Risks Upfront
34- What could go wrong?
35- What are the dependencies?
36- What's the rollback plan?
37- Time-box exploration — analysis paralysis is real
38 
39### Interface First, Implementation Second
40- Define the contract (types, API shape, error cases) before internals
41- Forces clarity on what you're actually building
42- Implementation becomes "fill in the blanks"
43 
44### Ask: What's the Simplest Thing That Could Work?
45- Start there. Add complexity only when the simple version fails.
46- Most features need 20% of what we imagine.
47 
48## During Build
49 
50### Always Have a Runnable State
51- Never be more than 30 mins from something that compiles/runs
52- Commit working checkpoints frequently
53- Big-bang integration is where projects die
54 
55### Prefer Incremental Over Big-Bang
56- Ship small, verify, iterate
57- Each step should be independently deployable if possible
58- Reduce blast radius of mistakes
59 
60### Instrument As You Build
61- Add logging/metrics while coding, not when debugging prod
62- "I wish I had visibility into X" = you waited too long
63- Observability is a feature, not an afterthought
64 
65### Read Errors Carefully
66- 80% of debugging is actually reading what the system tells you
67- Read the error, then read it again
68- Stack traces have answers — follow them
69 
70### Boring > Clever
71- If someone has to pause to understand it, it's too clever
72- Save big-brain moves for genuinely hard problems
73- Maintainability beats elegance
74 
75### Optimize for Delete
76- Write code that's easy to remove
77- Tight coupling makes features immortal
78- Good abstractions have clear boundaries
79 
80## Quality Gates
81 
82### Before Declaring Done
83- [ ] Linter passes
84- [ ] Type checker passes
85- [ ] Tests pass (unit + integration where applicable)
86- [ ] Manual smoke test completed
87- [ ] Edge cases considered and handled
88 
89### Tests Are Documentation
90- A good test suite tells you what code is *supposed* to do
91- Treat tests as first-class citizens
92- If it's not tested, it's not done
93 
94### Code Review Mindset
95- Review like you'll maintain it at 3am
96- Check: correctness, clarity, edge cases, security
97- "It works" is necessary but not sufficient
98 
99## LLM Orchestration Principles
100 
101### Context Management
102- Context window is your RAM — manage it deliberately
103- Bloated context = degraded reasoning
104- Give each agent minimum viable context, no more
105 
106### Agent Delegation
107- Single responsibility per agent
108- Clear handoff contracts: inputs, outputs, success criteria
109- Parallel when independent, sequential when dependent
110 
111### Verify, Don't Trust
112- First output is a draft, always
113- Review agent output like a code review
114- Agents are junior engineers, not oracles
115 
116### Checkpoints Over Marathons
117- Long-running agents should checkpoint progress
118- If it crashes at 90%, don't lose everything
119- Log state to files, not just memory
120 
121### Fail Fast, Surface Early
122- If something's going wrong, stop and reassess
123- Don't compound errors hoping they'll resolve
124- Human in the loop for high-stakes decisions
125 
126## Ownership & Accountability
127 
128### Own Failures, Credit Others
129- Own failures publicly
130- Credit others for wins
131- No ego-driven attachment to being right
132 
133### Strong Opinions, Weakly Held
134- Have a position, defend it with evidence
135- Update beliefs when evidence demands it
136- "I was wrong" is a sign of growth
137 
138### Leave It Better
139- Codebases, teams, processes — improve what you touch
140- Fix the small things while you're there
141- Documentation is a gift to future-you
142 
143## The Meta-Principle
144 
145> "Make the change easy, then make the easy change." — Kent Beck
146 
147Most senior engineering is about *preparation* — setting up the codebase so the actual feature is trivial. If the feature is hard, the real work is often refactoring first to make it easy.
148 
View all files on GitHub →

Details

Updated
Aug 30, 2026
License
MIT
Stars on the repo
★ 240
Checked
Source
jdrhyne/agent-skills ↗
Creator
jdrhyne · 24 listings
View creator

Similar skills

See all →
SkillReverse engineer native, managed, Electron/JavaScriptREAmorluto/rea · by morlutoReverse engineer native, managed, Electron/JavaScript, packaged, firmware, and browser targets with REA. Use shipped-artifact or requested runtime evidence to explain features, compare versions, decompile code, or guide a reconstruction. Skip REA for ordinary source-repository architecture analysis.★ 316k GitHub starsSkillBrainstorms ideas into designs before any creative workBrainstorming Ideas Into Designsobra/superpowers · by obraYou MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.★ 290k GitHub starsSkillRequires technical rigor and verificationCode Review Receptionobra/superpowers · by obraUse when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation★ 290k GitHub starsSkillDiagnosis loop for hard bugs and performance regressionsDiagnosing bugsmattpocock/skills · by mattpocockDiagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.★ 267k GitHub starsSkillImplement the result of /to-spec and /to-tickets in codeImplement specmattpocock/skills · by mattpocockImplement the result of /to-spec and /to-tickets in code.★ 267k GitHub starsSkillWriting a PR bodymattpocock/skills · by mattpocockUse when writing a PR body.★ 267k GitHub stars

More from jdrhyne

SkillRun Codex CLI or references OpenAI Codex for code analysisCodex Skill Guidejdrhyne/agent-skills · by jdrhyneUse when the user asks to run Codex CLI (codex exec, codex resume) or references OpenAI Codex for code analysis, refactoring, or automated editing. Uses GPT-5.2 by default for state-of-the-art software engineering.★ 240 GitHub starsSkillCreating a Claude Code slash commandCommand creatorjdrhyne/agent-skills · by jdrhyneThis skill should be used when creating a Claude Code slash command. Use when users ask to "create a command", "make a slash command", "add a command", or want to document a workflow as a reusable command. Essential for creating optimized, agent-executable slash commands with proper structure and best practices.★ 240 GitHub starsSkillRecover missing conversation context after explicitContext recoveryjdrhyne/agent-skills · by jdrhyneRecover missing conversation context after explicit compaction or truncation, or when the user explicitly asks to recover prior work. Use for requests such as "where were we before compaction?" when the current thread is insufficient. Do not trigger on a generic "continue" when the current thread already provides an actionable next step.★ 240 GitHub starsSkillGenerate beautifully designed PDF reportsElegant reportsjdrhyne/agent-skills · by jdrhyneGenerate beautifully designed PDF reports with a Nordic/Scandinavian aesthetic. Use when creating polished executive briefings, analysis reports, or presentation-style PDF outputs from markdown and HTML via Nutrient DWS.★ 240 GitHub starsSkillRead Google Analytics 4 reporting data through the GA4 DataGA4 Data APIjdrhyne/agent-skills · by jdrhyneRead Google Analytics 4 reporting data through the GA4 Data API. Use for explicit GA4 property metadata, compatible metric/dimension reports, traffic analysis, key events, quotas, and bounded exports.★ 240 GitHub starsSkillBulk download images from login-protected gallery websitesGallery scraperjdrhyne/agent-skills · by jdrhyneBulk download images from login-protected gallery websites using an attached browser session. Use when asked to scrape, download, or save images from authenticated gallery pages, extract full-size images from thumbnails, or batch download from multi-page galleries.★ 240 GitHub stars