reverse is a Codex skill for reverse-engineering software into product-level specifications.
It is designed for cases where you want to study an OSS project, internal system, API, or product artifact in terms of:
- operator value
- user value
- system capabilities
- observable behavior
- constraints
- non-goals
The goal is to describe what the software does and why it matters without collapsing into implementation details.
SKILL.md: The actual skill instructions and workflow.agents/openai.yaml: UI metadata for the skill name, description, and default prompt.references/prompts.md: Reusable prompt pack for different reverse-engineering stages.references/rubric.md: Rubric for spotting implementation leakage and rewriting drafts at the product layer.
Invoke the skill explicitly in a Codex prompt:
Use $reverse to analyze this repo as a product, not an implementation.
Produce:
1. problem statement
2. actors and goals
3. operator value
4. core capabilities
5. observable behaviors
6. edge cases
7. implementation leakage
You can also ask for narrower outputs:
Use $reverse to extract the operator value and observable behaviors of this system.
Use $reverse to convert these notes into a product spec and flag implementation leakage.
- Start with product framing.
- Extract actors and jobs-to-be-done.
- Group capabilities by outcome.
- Describe only black-box behavior.
- Convert observations into testable requirements.
- Run a leakage review and move technical details out of the product spec.
The usual sequence is:
Product LensCapability ExtractionObservable BehaviorRequirement ConversionLeakage Review
These prompts live in references/prompts.md.
A good reverse-engineered product spec:
- survives a rewrite in another stack
- can be verified by black-box testing
- explains user or operator value
- avoids naming libraries, frameworks, classes, or internal workers unless they are part of the external contract
- Claude Subconscious — Persistent background agent that gives Claude Code long-term memory via Letta. Observes sessions, reads codebases, whispers guidance back. (2026-03-28)
The skill root is ~/src/reverse, not a nested directory. Treat this folder itself as the skill.