Skill
principles
19 idle · 637 body · v0.2.1
When to Use
A design choice is contested. Apply the rules that would change the decision, and name that decision. Do not recite this list.
Rules
- Prefer deleting code. Stop at the smallest change that solves the job.
- Choose the core data structures before writing behavior around them.
- When a new requirement shows up, fit it as if it had been a requirement from the start.
- After two failed fixes, write down the premise they shared and test that premise.
- Remove the dead path before building beside it.
- Cut layers and hidden state a reader would have to remember.
- Point a rewrite at the end state. Do not preserve a compatibility shim that only the migration needed.
- When the user's result and the implementation's convenience disagree, pick the result.
- If there is no precedent, build two or three small alternatives before committing to one.
- If a step can be a script, make it a script a reviewer can rerun. Leave judgment to the agent.
- Encode a repeated rule in one structure, not in scattered conditionals.
- Validate at the boundary. Trust the types inside it.
- Make states that should be impossible unrepresentable.
- A retry must converge on the same end state.
- Move every caller, then delete the old API in the same change.
- Give parallel work separate state. Do not add a lock as the first fix.
- Prove the real artifact. A proxy that stayed green is not the proof.
- Reproduce the failure and trace it to a cause before editing.
- Each small unit ends in a check that can fail.
- Test what a caller can observe. A test that breaks when internals move is a bad test.
- Before reporting a number, say what limited it and what else it might have measured.
- Send bulk reading to a subagent. Keep the finding, not the dump, in the parent.
- Do reversible work without asking. Ask only when the choice is a preference or a destructive act Hermes will not already block.
- A lesson stated twice becomes a check, a lint, or a script. Advice in a doc is the last resort.
Rules 17 and 21 are prove. Rule 18 is bundled systematic-debugging. Rule 20 is bundled test-driven-development. Those are reminders. Do not copy those skills into this file.