namht-rails-to-springlisted
Install: claude install-skill NamHT4Devlop/nam-claude-skill
# namht-rails-to-spring — behavior-preserving cross-stack port (parity-verified, multi-agent)
Distinct from `/namht-migrate` (which evolves a contract **in place**, same codebase). This is a
**rewrite onto a different stack that must behave identically** — clients must not notice. Every
endpoint answers one question: *"does the new implementation return exactly what the old one did,
with the same side effects?"*
**The oracle is executable, not opinion.** Correctness is decided by **golden/shadow tests** — real
recorded source responses that the new code must reproduce. **Agents assist** (multi-lens extraction
to not miss rules; an independent reviewer to catch divergence) but **tests decide**. Never let
"the agents agreed" stand in for a passing parity test.
**Default target profile (this project):** Spring Boot · **MyBatis** (SQL-first, not JPA) · Flyway ·
Camel · SQS · MySQL, sharing the **same database** as the source. GraphQL on Java via **Spring for
GraphQL** (or Netflix DGS). Confirm at step 0.
## Ground rules
- **Contract frozen.** Port the GraphQL schema 1:1 and the chosen REST contracts exactly; a **diff
proves** it (types, nullability, enums, pagination, status codes, JSON shape).
- **Behavior parity is the acceptance bar.** An endpoint is done only when its **golden/shadow tests
pass** — happy, edge, error, and auth-denied — AND its **side effects** match.
- **Author ≠ reviewer.** Whoever writes the Java does NOT sign off parity. A separate, adversarial
r