Reusable skills are not code snippets to copy-paste, but principles and decision-making heuristics that teach Codex HOW TO THINK about a class of problems.
The difference:
BAD (mimicking): "When you see ConnectionResetError, add this try/except block"
GOOD (reusable skill): "In async network code, any I/O operation can fail independently due to client/server lifecycle mismatches. The principle: wrap each I/O operation separately, because failure between operations is the common case, not the exception."
A good skill changes how Codex APPROACHES problems, not just what code it produces.
What is the underlying PRINCIPLE you discovered? Not the code, but the mental model.
Example: "Async I/O operations are independently failable. Client lifecycle != server lifecycle."
The decision-making heuristic, not just code. How should Codex THINK about this?
Example: "For each I/O operation, ask: what if this fails right now? Handle it locally."