codistill – Exprime el SSOT del codigo existente Image: AI generated

Si quieres adoptar SSOT en un proyecto existente pero no puedes reescribir desde cero, si quieres extraer automáticamente OpenAPI y DDL de un backend legacy en Go, TypeScript, Python, Java, C#, Rust o PHP – codistill exprime las especificaciones del código existente.

“Ya tenemos 200 endpoints”

Alguien lee el articulo de yongol y pregunta: “Se ve bien, pero nuestro proyecto ya tiene decenas de miles de lineas. Necesitamos escribir SSOT desde cero?”

Empezar desde cero seria ideal, pero en la practica es imposible. Ningun equipo puede detener un servicio en produccion y escribir specs desde cero. No se pueden arrancar los cimientos de una tienda abierta.

Por eso se creo codistill. Exprime SSOT del codigo existente.


Mete la fruta entera, sale jugo

codistill analiza estaticamente el codigo fuente de frameworks web para extraer automaticamente specs declarativas.

codist scan --openapi ./my-project

Esta sola linea produce una spec OpenAPI 3.0 del codigo existente. Lo que tomaba dias de trabajo manual termina en segundos.

Si el proyecto ya incluye un openapi.yaml, codist lo detecta y lo fusiona – la estructura viene del codigo (el registro del router es la fuente de verdad), las descripciones de la spec existente, y las specs muertas que ya no estan conectadas a ninguna ruta se descartan.

Cero overhead en runtime. Sin instrumentacion. Analisis estatico puro. Tambien se ha endurecido frente a grandes bases de codigo del mundo real – Immich, Ghost, NocoDB, Plane, AppFlowy y otras – corrigiendo defectos de extraccion que solo afloran en codigo a escala de produccion (changelog).


Dieciseis frameworks, ocho lenguajes

LenguajeFrameworks
GoGin, Fiber, Echo
TypeScriptNestJS, Fastify, Hono, Express
PythonFastAPI, Flask, Django
JavaSpring Boot, Quarkus
C#ASP.NET Core
RustActix Web
PHPLaravel
Deno TypeScriptSupabase Edge Functions

Lo que comenzo como tres frameworks – Gin, NestJS, FastAPI – ahora cubre dieciseis en ocho lenguajes. El framework se autodetecta a partir de go.mod, package.json, requirements.txt, pom.xml, *.csproj, Cargo.toml, composer.json o supabase/functions/, o se fija con --framework. La mayoria de los backends se resuelven mediante tree-sitter; Go+Gin usa go/ast + go/types directamente.


Consolidacion DDL

Cuando se acumulan 50 archivos de migracion, es dificil saber como luce el esquema actual.

codist ddl ./migrations -o ./schema

Lee todo el historial de migraciones y genera un snapshot limpio CREATE TABLE por tabla.

Maneja CREATE/ALTER/DROP TABLE, ADD/DROP/ALTER COLUMN, restricciones e indices. Para proyectos basados en Prisma, codist prisma lee schema.prisma directamente – incluidos FKs compuestas, enums y tipos pgvector – y emite DDL ordenado por FK que se aplica limpiamente contra una base de datos en vivo.


Scaffolding de consultas sqlc

Extrae esqueletos de consultas SQL del codigo con patron repository.

codist sql next --repo ./repository --queries ./db/query
codist sql status

Entrada al pipeline yongol

La salida de codistill es la entrada de yongol. codistill extrae SSOT del codigo existente; yongol valida consistencia y genera codigo. La transicion de brownfield a greenfield ocurre incrementalmente.

Existing code
  ↓ codist scan --openapi
  ↓ codist ddl
  ↓ codist sql next
OpenAPI + DDL + sqlc
  ↓ yongol validate
  ↓ yongol generate
SSOT-based codebase

No es obra de cimientos sino refuerzo antisismico. Patron Strangler Fig de Fowler (2004) – no reemplazar legacy de golpe; envolverlo incrementalmente.


Empezar

npx skills add park-jun-woo/codistill
codist scan --openapi ./my-project

El codigo existente se convierte en jugo.

Code: github.com/park-jun-woo/codistill


Articulos relacionados

Referencias

  • Huang, R., Motwani, M., Martinez, I., & Orso, A. (2024). Generating REST API Specifications through Static Analysis. ICSE 2024. ACM
  • Perry, D. E. & Wolf, A. L. (1992). Foundations for the Study of Software Architecture. ACM SIGSOFT, 17(4), 40-52. ACM
  • Fowler, M. (2004). StranglerFigApplication. Link
  • Lercher, A. et al. (2024). Generating Accurate OpenAPI Descriptions from Java Source Code. arXiv
  • Chauhan, S. et al. (2026). OpenAI for OpenAPI. arXiv
  • De Silva, L. & Balasubramaniam, D. (2012). Controlling software architecture erosion. JSS, 85(1). ScienceDirect
  • Fritzsch, J. et al. (2019). Microservices Migration in Industry. IEEE ICSME. arXiv
  • Curino, C. A. et al. (2008). Graceful database schema evolution. VLDB, 1(1). VLDB
  • Nghiem, D. et al. (2023). REST API Design and Specification Practices. IEEE VL/HCC. IEEE

Registro de cambios

  • 2026-06-19: Cobertura ampliada a 16 frameworks en 8 lenguajes; soporte de DDL ALTER COLUMN y esquema Prisma; endurecido frente a bases de codigo del mundo real (codistill v0.1.11)
  • 2026-05-26: Versión inicial