Software Engineering Foundations
Universal methodology for professional software engineering practice. Language-agnostic foundations that apply regardless of tech stack.
Core Principle
Engineering excellence is methodology, not heroics. Systematic approaches beat clever improvisation. These skills encode battle-tested processes for situations where "just figure it out" leads to wasted time and missed root causes.
When to Use
Load this skill when:
-
Facing a bug that resists simple fixes
-
Need to refactor safely without breaking things
-
Reviewing code (yours or others')
-
Production is on fire
-
Deciding what technical debt to address
-
Taking ownership of code you don't fully understand
Don't use for: Language-specific issues (use language packs), algorithm design (use CS fundamentals), infrastructure/deployment (use DevOps packs).
How to Access Reference Sheets
IMPORTANT: All reference sheets are in the SAME DIRECTORY as this SKILL.md.
When this skill is loaded from: skills/using-software-engineering/SKILL.md
Reference sheets like complex-debugging.md are at: skills/using-software-engineering/complex-debugging.md
NOT at: skills/complex-debugging.md (WRONG PATH)
Routing by Situation
Horrible Bugs
Symptoms:
-
Bug resists simple fixes
-
"I've tried everything"
-
Intermittent failures
-
Works on my machine
-
Can't reproduce reliably
-
Multi-system interactions
-
Heisenbugs (changes when observed)
-
Race conditions suspected
Route to: complex-debugging.md
Why: Systematic debugging methodology using scientific method. Adapted for Claude's strengths (fast codebase reading, pattern recognition) and limitations (no interactive debuggers).
Integration: For domain-specific bugs, use this methodology THEN hand off to specialists:
-
PyTorch issues → yzmir-pytorch-engineering (debug-oom, debug-nan)
-
RL training → yzmir-deep-rl (rl-debugging)
-
Simulation chaos → bravos-simulation-tactics (debugging-simulation-chaos)
-
ML production → yzmir-ml-production (production-debugging-techniques)
Safe Code Transformation
Symptoms:
-
"This code needs cleanup"
-
Large refactoring needed
-
Scared to change working code
-
Technical debt paydown
-
Architecture migration
-
"How do I change this without breaking it?"
Route to: systematic-refactoring.md
Why: Safe, incremental transformation methodology. Preserves behavior while improving structure.
Pairs with: technical-debt-triage.md to decide WHAT to refactor, this skill for HOW.
Code Review
Symptoms:
-
Reviewing someone's PR
-
Want feedback on your code
-
"Is this code good?"
-
Pre-merge quality check
-
Teaching through review
-
Review feels overwhelming
Route to: code-review-methodology.md
Why: Systematic review process - what to look for, in what order, how to give actionable feedback.
Pairs with: codebase-confidence-building.md when reviewing unfamiliar code areas.
Production Fire
Symptoms:
-
Production is down
-
Users are affected NOW
-
Incident in progress
-
Need to triage quickly
-
Postmortem needed
-
"Everything is broken"
Route to: incident-response.md
Why: Fire-fighting methodology - contain, diagnose, fix, learn. Keeps you calm under pressure.
Note: Use DURING incidents for process. Use complex-debugging.md for the debugging portion.
Technical Debt Decisions
Symptoms:
-
"Should we fix this?"
-
Prioritizing cleanup work
-
Debt is slowing us down
-
Sprint planning for maintenance
-
"Everything needs fixing"
-
Justifying refactoring to stakeholders
Route to: technical-debt-triage.md
Why: Systematic identification, categorization, and prioritization. When to pay down vs. live with debt.
Pairs with:
-
systematic-refactoring.md for HOW to fix
-
codebase-confidence-building.md to understand debt in unfamiliar areas
Building Codebase Confidence
Symptoms:
-
"I own this but don't fully understand it"
-
New to a codebase
-
Taking over from someone
-
~70% confidence, need more
-
"Where do I even start?"
-
Undocumented system
Route to: codebase-confidence-building.md
Why: Systematic exploration to internalize a system you'll maintain. Different from archaeology (analysis) - this is about building working mental models.
Pairs with:
-
technical-debt-triage.md - confidence reveals debt
-
code-review-methodology.md - review helps you learn
Related but different: axiom-system-archaeologist is for architecture ANALYSIS. This skill is for INTERNALIZATION of systems you'll maintain long-term.
Cross-Cutting Scenarios
Taking Over a Codebase
-
codebase-confidence-building.md - Build mental model
-
technical-debt-triage.md - Identify what needs fixing
-
systematic-refactoring.md - Execute improvements
Inherited Bug in Unfamiliar Code
-
codebase-confidence-building.md - Understand relevant subsystem
-
complex-debugging.md - Apply debugging methodology
Major Refactoring Project
-
technical-debt-triage.md - Prioritize what to fix
-
systematic-refactoring.md - Safe transformation process
-
code-review-methodology.md - Validate changes
Production Incident with Unknown Root Cause
-
incident-response.md - Contain and triage
-
complex-debugging.md - Find root cause
-
incident-response.md - Postmortem
Ambiguous Queries - Ask First
When situation unclear, ASK ONE clarifying question:
"Help me with this code" → Ask: "What's the goal? Debug a bug? Review quality? Refactor safely? Understand it?"
"This is a mess" → Ask: "Do you need to debug something broken, or clean up working-but-ugly code?"
"Fix this" → Ask: "Is it broken (debugging) or just ugly (refactoring)?"
Never guess. Ask once, route accurately.
Common Routing Mistakes
Symptom Wrong Correct Why
"Code needs cleanup" complex-debugging systematic-refactoring Not broken, needs transformation
"Bug in code I don't know" complex-debugging only confidence-building THEN debugging Understand before debugging
"Production down" complex-debugging incident-response THEN debugging Contain first
"Should we fix this debt?" systematic-refactoring technical-debt-triage Decide WHAT before HOW
"Review this PR" complex-debugging code-review-methodology Review ≠ debugging
Reference Sheet Catalog
Sheet Purpose
complex-debugging.md Scientific method for horrible bugs
systematic-refactoring.md Safe incremental code transformation
code-review-methodology.md How to review systematically
incident-response.md Production fire methodology
technical-debt-triage.md Identify, prioritize, decide
codebase-confidence-building.md Internalize systems you maintain
Cross-Plugin Integration
This plugin provides methodology. Other plugins provide domain expertise. Use together:
This Plugin Pairs With For
complex-debugging yzmir-pytorch-engineering
ML debugging (OOM, NaN)
complex-debugging yzmir-deep-rl:rl-debugging
RL training issues
complex-debugging ordis-quality-engineering
Flaky tests, observability
complex-debugging yzmir-systems-thinking
Systemic/feedback loop bugs
incident-response ordis-quality-engineering
Chaos engineering, load testing
technical-debt-triage axiom-system-architect
Architecture-level debt
technical-debt-triage ordis-quality-engineering
Quality metrics, static analysis
codebase-confidence-building axiom-system-archaeologist
Formal architecture analysis
Pattern: Use this plugin's methodology to structure your approach, then hand off to domain specialists for specific technical guidance.
Claude-Specific Adaptations
All reference sheets are adapted for Claude's unique position:
Claude's Strengths (lean into these):
-
Fast codebase reading - can scan entire codebases quickly
-
Pattern recognition - spot similar bugs across files
-
Exhaustive search - check every occurrence of a pattern
-
No fatigue - systematic processes don't tire Claude out
-
Memory within session - track hypotheses and experiments
Claude's Limitations (work around these):
-
No interactive debuggers (gdb, pdb step-through)
-
Can't observe runtime state directly
-
Must ask user for information Claude can't get (logs, user actions, production state)
When to ask the user: Sooner rather than later, but ONLY if you can't get the information yourself. Check logs, code, git history, tests first.