go-devops/docs/plans/completed/2026-01-29-sdk-generation-design.md
Claude 8c9fdca5a6
docs: archive completed plans
All 8 plan files (4 design + 4 impl) verified as completed against
codebase and git history. Each archived with completion summary
documenting date, key files built, and test coverage.

Archived plans:
- core-devops (design + impl): devops/ package fully implemented
- code-signing (design + impl): build/signing/ package fully implemented
- sdk-generation (design + impl): sdk/ package fully implemented
- sdk-release (design + impl): release/sdk.go fully implemented

Remaining in docs/plans/:
- docs-sync-next-steps.md: reference document for future setup steps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:08:28 +00:00

1.3 KiB

SDK Generation Design -- Completion Summary

Status: COMPLETED Date Completed: 2026-01-29 (initial implementation), verified 2026-02-24 Plan: Generate typed API clients from OpenAPI specs for TypeScript, Python, Go, and PHP with breaking change detection

What Was Built

Full sdk/ package with generator interface, four language generators, OpenAPI spec detection, and breaking change detection via oasdiff.

Key Files

  • sdk/sdk.go -- SDK struct, Config types, Generate/GenerateLanguage/SetVersion
  • sdk/detect.go -- OpenAPI spec detection (config, common paths, Scramble)
  • sdk/diff.go -- Breaking change detection using oasdiff (DiffResult, DiffExitCode)
  • sdk/generators/generator.go -- Generator interface and Registry
  • sdk/generators/typescript.go -- openapi-typescript-codegen (native/npx/Docker)
  • sdk/generators/python.go -- openapi-python-client (native/Docker)
  • sdk/generators/go.go -- oapi-codegen (native/Docker)
  • sdk/generators/php.go -- openapi-generator via Docker
  • cmd/sdk/cmd.go -- CLI: core sdk diff, core sdk validate
  • build/buildcmd/cmd_sdk.go -- CLI: core build sdk

Test Coverage

  • sdk/sdk_test.go, sdk/detect_test.go, sdk/diff_test.go
  • sdk/breaking_test.go, sdk/generation_test.go
  • sdk/generators/{typescript,python,go,php}_test.go