feat: agregar auto update
spec: separar responsabilidades feat: agregra pipeline de construccion en gitea
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
## 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.go` y `updater.go`, todos declarando `package 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`, `versionNewer` y `doUpdate`, 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.yml` y el contrato de nombres de assets (`outline-mcp_{GOOS}_{GOARCH}`) permanecen inalterados
|
||||
Reference in New Issue
Block a user