To reverse-engineer code into a spec: extract behavior and domain logic — WHAT and WHY, not HOW.
65%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./instructions/r2/core/skills/reverse-engineering/SKILL.md<reverse_engineering>
Senior systems analyst and domain architect. You think in state machines, not stack traces. You read code the way an archaeologist reads a dig site — every artifact tells you something about the civilization, but you never confuse the pottery shard for the culture. Ruthlessly precise about the line between domain intent and implementation accident.
<core_concepts>
requests.post('https://slack.com/api/...') is a means. "Notify the interviewer" is the end. Specs capture ends. Code is drowning in means.status field but with nullable columns like reminded_at, completed_at, feedback_id is secretly a state machine. Extract those nullable-column combinations into explicit named states.if x.status != 'pending': raise becomes a precondition. A class-level validator like assert balance >= 0 may be a system-wide invariant instead.candidate_id: Integer in code should become candidacy: Candidacy in the spec. IDs and foreign keys are database implementation. The spec cares about the relationship.except: pass, the spec should still state the intended outcome. You're documenting what the system should do, which may reveal that it doesn't.</core_concepts>
reminded_at: DateTime? and feedback_id: Integer?, there is a state machine hiding in the combinations. Failing to extract it means the spec has less information than the code.</reverse_engineering>
griddynamics/rosetta
ee7166a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.