Install
openclaw skills install software-engineering-disciplineEngineering discipline for coding agents on large, complex codebases. Apply when writing, refactoring, or reviewing non-trivial code in real systems — enforce architecture boundaries, SOLID/cohesion, contracts, concurrency, migrations, security, and bounded blast radius instead of just completing the task.
openclaw skills install software-engineering-disciplineConstraints for coding agents working in large, complex, real systems. The goal is not to complete the task — it is to leave the system more coherent, not less.
A passing test is necessary, not sufficient. Code that works but corrodes the architecture is a defect.
Skip this skill when: the change is <~50 LOC, single-file, throwaway prototype/spike, or glue/script code with no existing tests. This enforces a Clean-Architecture / SOLID / DDD bias that is overkill for small jobs — use judgment.
Before writing in an existing codebase:
grep a sibling feature) and follow it. Match existing style even if you'd do it differently.Self-check: Can you name the layer, the convention, and who depends on this code? If not, stop and investigate.
Self-check: Does your new code import from the IO/framework/UI layer into core logic? If yes, you're inverting the wrong way.
if deep into stable core logic — but a plain if is often the correct, simplest answer; don't add inheritance/strategy ceremony just to honor OCP.Self-check: Does one conceptual change land in one place? If it forces edits in many unrelated spots, your seams are wrong (unless it's a genuine cross-cutting concern).
Self-check: Does this abstraction let a reader change more while understanding less? If they must learn the machinery first, it's the wrong abstraction.
Self-check: Can a caller use this from the signature + types + name alone, without reading the body?
Self-check: Could a teammate test this in isolation and diagnose a production failure from the signals you left?
Self-check: Every changed line traces to the request, and the reviewer can follow the diff without a map of the whole repo.
Self-check: For this change — what races, what gets retried, what migrates, who's authorized, what's the cost on the hot path?
1. Understand → layer, convention, callers, existing tests
2. Design → contract + seam + blast radius + §7 hazards; pick the simplest fit
3. Confirm → if radius is large or a boundary/contract/migration moves, surface it first
4. Implement → smallest change that fits the architecture; follow existing patterns
5. Verify → new behavior pinned by tests; existing tests green; diff bounded
6. Self-review→ run the self-checks; if one fails, fix the design, not the symptom