py2golisted
Install: claude install-skill vanducng/skills
# py2go
End-to-end Python → Go migration. Discover the source, lock the design, scaffold the Go module, translate file-by-file with TDD, validate behavioral parity against real data, cut over, then sweep dead code.
The skill is opinionated. It enforces idiomatic Go output over Python-shaped Go, rejects dead toolchains (Grumpy/py2go transpilers), defaults to `sqlc` over GORM, defaults to `pgx` over lib/pq, defaults to `Gin` for HTTP, prefers stdlib `slog` over zap/zerolog, and treats real-data parity validation as non-optional.
## When to load which reference
| Task | Open |
|---|---|
| Decide which Python pattern maps to which Go idiom | [references/translation-rules.md](references/translation-rules.md) |
| Pick the right Go stack per project type | (playbooks — extend as needed) |
| Configure strangler-fig gateway / traffic shadow | (extend as needed) |
| Drive from an existing OpenAPI/proto spec | (extend as needed) |
## The 7 phases
```
discover → design → scaffold → translate → validate → cutover → cleanup
```
1. **Discover** — two-pass: 7 discovery prompts individually → synthesize to `notes/`
2. **Design** — emit `CLAUDE.md` (translation rules) + `MIGRATION.md` (ordered file map + checkboxes)
3. **Scaffold** — `go mod init`, layout, lint (`golangci-lint`), CI, Makefile, smoke target
4. **Translate** — per-file loop: Python source → Go test first → Go impl → `go build && vet && test -race && lint` → commit
5. **Validate** — golden-file parity on real production da