spec: separar responsabilidades feat: agregra pipeline de construccion en gitea
1.9 KiB
1.9 KiB
ADDED Requirements
Requirement: Organización del código fuente por archivos
El código fuente del proyecto SHALL estar distribuido en múltiples archivos dentro del paquete único main, agrupando cada archivo una única responsabilidad: entrypoint (main.go), cliente HTTP de Outline (client.go), handlers de tools MCP (tools.go) y auto-update (updater.go).
Scenario: Distribución de archivos
- WHEN se revisa la raíz del módulo
outline-mcp - THEN existen los archivos
main.go,client.go,tools.goyupdater.go, todos declarandopackage main
Scenario: Contenido del entrypoint
- WHEN se revisa
main.go - THEN contiene únicamente la función
main(), las variables de build inyectadas por-ldflags(Version,GiteaURL,RepoOwner,RepoName) y el registro de tools en el servidor MCP
Scenario: Aislamiento del auto-update
- WHEN se revisa
updater.go - THEN contiene
giteaRelease,parseVersion,versionNewerydoUpdate, sin referencias al cliente de Outline ni a los handlers de tools MCP
Requirement: Refactor sin cambio de comportamiento
La distribución del código en archivos SHALL preservar íntegramente el comportamiento observable del servidor: nombres y esquemas de las tools MCP, manejo de errores de configuración, protocolo MCP y lógica de auto-update.
Scenario: El servidor funciona tras el refactor
- WHEN se compila el binario resultante y se ejecuta el handshake MCP por stdio seguido de una petición
tools/list - THEN el servidor responde correctamente y lista las mismas tools con los mismos esquemas que antes del refactor
Scenario: Sin cambios en dependencias ni pipeline
- WHEN se compara el estado del repositorio antes y después del refactor
- THEN
go.mod,go.sum,.gitea/workflows/release.ymly el contrato de nombres de assets (outline-mcp_{GOOS}_{GOARCH}) permanecen inalterados