surface-enumerationlisted
Install: claude install-skill devseunggwan/praxis
# surface-enumeration
## Overview
Code that validates, classifies, routes, sanitizes, or interprets variable input
fails one missed variant at a time. A reviewer finds case A, you fix it, the next
round finds case B, and so on — each round is a full round-trip because the input
surface was never enumerated up front. This skill front-loads that enumeration:
list the variants **before** implementing, turn each into a test case, and re-run
the full list after every fix.
**Core principle:** enumerate the input surface before writing the handler — a
variant you did not list is a variant you did not test.
## When to Use
- Implementing anything that inspects variable input: SQL/shell/markup parsers,
sanitizers, auth/validation checks, intent/command classifiers, tokenizers,
routers, regex matchers.
- A reviewer (Codex / BugBot / human) just found a missed input case — before
fixing only that case, enumerate the whole surface so the next round is empty.
- Designing a mock/fixture for input-handling code (each enumerated variant is a
fixture case, including a must-fail case).
- Dispatching N independent PRs / worktrees in parallel, or authoring a
lesson-reflection / convention-guideline update — enumerate the shared-file
collision surface, or the source guideline's own §1~§N matrix, before starting.
Skip for code with a fixed, closed input (a function called only with an enum you
control) or a single-token mechanical transform with no interpretation.
## Process
###