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
| Lenguaje | Frameworks |
|---|---|
| Go | Gin, Fiber, Echo |
| TypeScript | NestJS, Fastify, Hono, Express |
| Python | FastAPI, Flask, Django |
| Java | Spring Boot, Quarkus |
| C# | ASP.NET Core |
| Rust | Actix Web |
| PHP | Laravel |
| Deno TypeScript | Supabase 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
- yongol – La quilla del SaaS de codificacion con IA – Herramienta que valida y genera codigo del SSOT extraido por codistill.
- Ratchet Pattern – Como hacer que los agentes terminen el trabajo – Trasfondo del flujo ratchet de
codist sql next. - Reins Engineering – IA con riendas – El marco de ingenieria al que pertenece codistill.
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