chore: disable server3 defaults and simplify deployment

This commit is contained in:
devRaGonSa
2026-05-19 08:56:37 +02:00
parent 50d11f0c34
commit feb516f411
9 changed files with 229 additions and 23 deletions

View File

@@ -91,12 +91,25 @@ estado live de `/api/servers`, pero el histórico sigue dependiendo del
scoreboard público porque no hay todavía una canalización persistente basada
en eventos/logs RCON.
Modo normal recomendado:
- levantar solo `backend` + `frontend`
- mantener `historical-runner` y `rcon-historical-worker` como servicios
avanzados bajo demanda
- mantener Comunidad Hispana #03 fuera de los targets RCON por defecto
- dejar Elo/MMR y la materializacion historica compleja en pausa operativa
hasta una reintroduccion explicita
Primer arranque:
```powershell
docker compose up --build
```
Con la configuracion actual, ese comando levanta solo `backend` y `frontend`.
Los workers historicos estan en el perfil Compose `advanced` y no forman parte
del arranque normal.
Accesos locales esperados:
- frontend: `http://localhost:8080`
@@ -170,8 +183,16 @@ Buenas practicas:
despliegue
- mantener `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard` hasta tener
una ingesta historica RCON realmente persistida
- no reintroducir Comunidad Hispana #03 en `HLL_BACKEND_RCON_TARGETS` salvo que
una task nueva valide su disponibilidad
## Operaciones historicas con Docker
## Operaciones historicas avanzadas con Docker
Estas operaciones quedan disponibles para uso explicito, pero no son parte del
arranque recomendado. La ruta normal de despliegue es `backend` + `frontend`.
El codigo, las migraciones, los snapshots historicos y Elo/MMR se conservan en
la repo, pero Elo/MMR y la materializacion historica compleja quedan pausados
operativamente en esta fase.
Refresh historico puntual dentro del contenedor backend:
@@ -191,17 +212,18 @@ Regeneracion puntual de snapshots mediante refresh controlado:
docker compose exec backend python -m app.historical_runner --max-runs 1
```
Automatizacion horaria recomendada:
Automatizacion horaria avanzada:
```powershell
docker compose up -d backend historical-runner frontend
docker compose --profile advanced up -d backend historical-runner frontend
```
`historical-runner` es un servicio Compose separado que ejecuta
`python -m app.historical_runner --hourly`, refresca el historico de
`comunidad-hispana-01`, `comunidad-hispana-02` y `comunidad-hispana-03`, y
regenera snapshots al terminar cada refresh correcto sin acoplar ese bucle al
proceso HTTP del backend.
`python -m app.historical_runner --hourly`. Sigue disponible para tareas
historicas explicitas, pero no se recomienda como requisito normal de
despliegue. Los targets RCON por defecto solo incluyen `comunidad-hispana-01`
y `comunidad-hispana-02`; `comunidad-hispana-03` queda deshabilitado en la
configuracion por defecto porque ya no es una fuente operativa vigente.
Verificacion minima:

View File

@@ -76,5 +76,7 @@ Community website repository with a static landing in the current phase and a pl
- The V1 monthly MVP scoring proposal for persisted historical player metrics is documented in `docs/monthly-mvp-ranking-scoring-design.md`.
- The audited boundary between direct live RCON and future event-driven RCON metrics is documented in `docs/rcon-data-capability-audit.md`.
- The first V2 player-event foundation now lives in dedicated `player_event_*` backend modules and starts from CRCON match-detail summaries, not from live RCON.
- The default operational deployment is simplified to `backend` + `frontend`; historical workers and RCON historical capture are advanced/manual services.
- Comunidad Hispana #03 is disabled from default RCON targets, while existing historical/Elo code and persisted data remain available for explicit future reintroduction.
- Frontend data consumption should remain progressive, endpoint by endpoint, with static fallbacks preserved during migration.
- The frontend integration strategy is documented in `docs/frontend-data-consumption-plan.md`.

View File

@@ -19,6 +19,8 @@ This repository is in foundation stage. The objective is to grow in a controlled
- Backend: not implemented yet, but planned in Python
- AI Platform: integrated to coordinate planning and task execution
- Product goal in current phase: maintain a clean landing and repository structure
- Default deployment: `backend` + `frontend`; historical workers are advanced/manual only.
- Comunidad Hispana #03 is not part of default RCON targets. Historical/Elo code and persisted data are preserved but paused operationally.
## Repository Areas

View File

@@ -0,0 +1,158 @@
---
id: TASK-108
title: Disable server #03 defaults and simplify deployment
status: done
type: documentation
team: PM
supporting_teams:
- Backend Senior
- Arquitecto Python
roadmap_item: foundation
priority: high
branch: chore/disable-server3-defaults
---
# TASK-108 - Disable server #03 defaults and simplify deployment
## Goal
Remove Comunidad Hispana server #03 from the default operational deployment/configuration path and document the simplified normal mode for HLL Vietnam.
This task must keep the existing Elo/MMR, historical ingestion, migrations, and persisted data available in the repository. The goal is to stop treating server #03 and complex historical/Elo work as default operational requirements for the current phase, not to delete that work.
## Context
The AI Platform integration has just been updated and merged into `main`. The project now needs a simpler operational deployment path because the previous Elo/MMR and historical materialization work became too complex for the current phase, and Comunidad Hispana server #03 is no longer relevant because the server appears to have disappeared.
The recommended default deployment path should be `backend` + `frontend`. Historical workers and RCON historical services may remain available for explicit advanced use, but they should not be part of the recommended normal startup.
Preserve the current product identity: Spanish-speaking HLL Vietnam community, military/Vietnam/tactical/sober visual direction and controlled repository evolution.
## Steps
1. Create or switch to branch `chore/disable-server3-defaults`.
2. Inspect all files listed in **Files to Read First** before changing anything.
3. Locate every default deployment/configuration reference that treats Comunidad Hispana server #03 as part of the normal RCON operational path.
4. Remove Comunidad Hispana server #03 from default RCON targets in `docker-compose.yml`.
5. Ensure the default operational deployment path is clearly `backend` + `frontend`.
6. Keep `historical-runner` and `rcon-historical-worker` available only as explicit/advanced services, not part of the recommended normal startup.
7. Update `README.md` deployment/runbook documentation accordingly.
8. Update any relevant docs to state:
- server #03 is disabled or removed from defaults;
- Elo/MMR and complex historical ranking/materialization are paused for now;
- code and data are not deleted in this task;
- rollback or reintroduction remains possible later.
9. Do not remove code, migrations, persisted data, or database schemas.
10. Do not change live server #01 or #02 definitions except where required for formatting or consistency.
11. Keep secrets as placeholders or environment variables; do not add real passwords.
12. Validate the change with the checks below.
13. Move this task file from `ai/tasks/pending/` to `ai/tasks/done/` when validation is complete, or to `ai/tasks/review/` only if human/orchestrator review is explicitly required.
14. Commit and push the completed work. Do not leave completed work only in local.
## Files to Read First
- `ai/architecture-index.md`
- `ai/repo-context.md`
- `docker-compose.yml`
- `README.md`
- `backend/.env.example`
- `backend/app/config.py`
- `backend/app/data_sources.py`
- `backend/app/historical_runner.py`
- `backend/app/rcon_historical_worker.py` if present
- `docs/`
## Expected Files to Modify
- `docker-compose.yml`
- `README.md`
- possibly `backend/.env.example`
- possibly docs under `docs/`
- possibly `ai/repo-context.md`
- possibly `ai/architecture-index.md`
- this task file, moved from `ai/tasks/pending/` to `ai/tasks/done/` or `ai/tasks/review/` according to the AI Platform workflow
If additional files become necessary, explain why in the task outcome and commit message.
## Expected Files Not to Modify
- `frontend/**`, unless there is a direct hardcoded visible reference to server #03 that must be removed
- database migrations
- persisted data
- Elo/MMR algorithm implementation files
- unrelated backend modules
## Constraints
- Keep the change narrow and operational.
- Do not delete Elo/MMR code.
- Do not delete historical ingestion code.
- Do not delete database migrations or persisted data.
- Do not alter database schemas.
- Do not introduce unnecessary frameworks or dependencies.
- Do not build new backend functionality.
- Do not change frontend behavior unless a visible server #03 default reference is directly found and must be adjusted.
- Do not modify unrelated files.
- Preserve HLL Vietnam project identity.
- Keep secrets as placeholders or environment variables; never add real credentials.
## Validation
Before completing the task ensure:
- Run `git status`.
- Validate that `docker-compose.yml` remains syntactically valid YAML if a YAML parser is available.
- Run `powershell -ExecutionPolicy Bypass -File scripts/run-integration-tests.ps1`.
- Confirm `backend/runtime/` is not created or committed.
- Confirm server #03 is no longer present in default RCON targets.
- Confirm server #01 and server #02 remain present.
- Confirm no Elo/MMR code was deleted.
- Confirm no historical ingestion code was deleted.
- Confirm no database migrations, persisted data, or schema definitions were removed.
- Confirm no frontend behavior was unintentionally changed.
- Review `git diff --name-only` and confirm changed files match the expected scope.
If any validation cannot be run, document the reason in the outcome before moving the task.
## Commit And Push Requirements
1. Run validation before committing.
2. Run `git status`.
3. Stage only intended files.
4. Commit with a clear message, for example:
```text
chore: disable server3 defaults and simplify deployment
```
5. Push branch `chore/disable-server3-defaults` to `origin`.
Do not leave completed work only in local.
## Outcome
- Removed Comunidad Hispana #03 from default RCON targets in `docker-compose.yml` and `backend/.env.example`; Comunidad Hispana #01 and #02 remain present.
- Simplified the recommended default deployment to `backend` + `frontend`. `docker compose up --build` now resolves only those services because historical workers are behind the `advanced` profile.
- Kept `historical-runner` and `rcon-historical-worker` available for explicit advanced use via `docker compose --profile advanced ...`.
- Paused Elo/MMR and complex historical materialization in documentation without deleting code, migrations, schemas, snapshots or persisted data.
- Changed backend historical defaults to `public-scoreboard` for normal operation while preserving RCON historical code for explicit advanced use.
- Updated root README, backend README, AI context and the decision log so future work does not treat #03 or historical/Elo automation as the default path.
Validation performed:
- `docker compose config --services` returned only `backend` and `frontend` for the default profile.
- Python YAML parser validation was skipped because `PyYAML` is not installed; Compose config validation succeeded instead.
- `powershell -ExecutionPolicy Bypass -File scripts/run-integration-tests.ps1` passed and reported no product integration tests configured for this platform-only scope.
- Confirmed `backend/runtime/` is not present.
- Reviewed `git diff --name-only`; modified files match the expected operational/documentation scope plus backend config default alignment.
- Confirmed no frontend files, migrations, persisted data, Elo/MMR implementation files, historical ingestion implementation files, or database schemas were removed.
Follow-up:
- If Comunidad Hispana #03 becomes available again, create a separate validation/reintroduction task instead of restoring it as a default target directly.
## Change Budget
- Prefer fewer than 5 modified files.
- Prefer changes under 200 lines when feasible.
- Split the work into follow-up tasks if limits are exceeded.

View File

@@ -4,9 +4,9 @@ HLL_BACKEND_STORAGE_PATH=/app/data/hll_vietnam_dev.sqlite3
HLL_BACKEND_ALLOWED_ORIGINS=http://127.0.0.1:8080,http://localhost:8080
HLL_BACKEND_REFRESH_INTERVAL_SECONDS=120
HLL_BACKEND_LIVE_DATA_SOURCE=rcon
HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon
HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard
HLL_BACKEND_RCON_TIMEOUT_SECONDS=20
HLL_BACKEND_RCON_TARGETS=[{"name":"Comunidad Hispana #01","slug":"comunidad-hispana-01","external_server_id":"comunidad-hispana-01","host":"152.114.195.174","port":7779,"password":"replace-me-01","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #02","slug":"comunidad-hispana-02","external_server_id":"comunidad-hispana-02","host":"152.114.195.150","port":7879,"password":"replace-me-02","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #03","slug":"comunidad-hispana-03","external_server_id":"comunidad-hispana-03","host":"5.196.78.45","port":27230,"password":"replace-me-03","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null}]
HLL_BACKEND_RCON_TARGETS=[{"name":"Comunidad Hispana #01","slug":"comunidad-hispana-01","external_server_id":"comunidad-hispana-01","host":"152.114.195.174","port":7779,"password":"replace-me-01","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #02","slug":"comunidad-hispana-02","external_server_id":"comunidad-hispana-02","host":"152.114.195.150","port":7879,"password":"replace-me-02","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null}]
HLL_HISTORICAL_CRCON_PAGE_SIZE=50
HLL_HISTORICAL_CRCON_TIMEOUT_SECONDS=15
HLL_HISTORICAL_CRCON_DETAIL_WORKERS=8

View File

@@ -278,7 +278,7 @@ Valores soportados en esta fase:
Defaults actuales:
- `HLL_BACKEND_LIVE_DATA_SOURCE=rcon`
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon`
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard`
La seleccion efectiva se resuelve en `app/data_sources.py` y en adapters
dedicados dentro de `app/providers/`:
@@ -399,8 +399,12 @@ Runbook operativo minimo:
- modo recomendado por defecto:
- `HLL_BACKEND_LIVE_DATA_SOURCE=rcon`
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon`
- definir `HLL_BACKEND_RCON_TARGETS` fuera de la repo
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard`
- usar solo `comunidad-hispana-01` y `comunidad-hispana-02` en los targets
RCON por defecto
- modo historico/RCON avanzado:
- iniciar workers solo de forma explicita
- no reintroducir `comunidad-hispana-03` salvo validacion nueva
- override legacy completo:
- `HLL_BACKEND_LIVE_DATA_SOURCE=a2s`
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=public-scoreboard`
@@ -1211,8 +1215,8 @@ Flags utiles del runner:
- `--retry-delay 10` para bajar la espera entre fallos
- `--max-runs 1` para una validacion puntual sin bucle indefinido
Para dejar automatizado el refresh historico horario de los tres servidores del
proyecto en local, el comando recomendado es:
Para dejar automatizado el refresh historico horario en local, el comando
avanzado sigue disponible:
```powershell
python -m app.historical_runner --hourly
@@ -1250,15 +1254,16 @@ Operativa local minima:
- `backend/data/snapshots/comunidad-hispana-03/weekly-kills.json`
- `backend/data/snapshots/all-servers/monthly-kills.json`
Operativa minima con Docker Compose:
Operativa avanzada con Docker Compose:
```powershell
docker compose up -d backend historical-runner frontend
docker compose --profile advanced up -d backend historical-runner frontend
```
El servicio `historical-runner` usa el mismo volumen persistente `./backend/data`
y ejecuta `python -m app.historical_runner --hourly` como bucle operativo
dedicado, sin mezclar el scheduler con el proceso HTTP principal.
dedicado, sin mezclar el scheduler con el proceso HTTP principal. No forma
parte del despliegue normal, que queda limitado a `backend` + `frontend`.
En frontend, la landing ya no arranca con cards fake estaticas para servidores:
@@ -1340,7 +1345,7 @@ Comprobaciones utiles con Compose:
Compose para captura prospectiva RCON:
```powershell
docker compose up -d rcon-historical-worker
docker compose --profile advanced up -d rcon-historical-worker
docker compose logs -f rcon-historical-worker
docker compose exec backend python -m app.rcon_historical_worker capture
```

View File

@@ -11,7 +11,7 @@ DEFAULT_PORT = 8000
DEFAULT_STORAGE_FILENAME = "hll_vietnam_dev.sqlite3"
DEFAULT_REFRESH_INTERVAL_SECONDS = 300
DEFAULT_LIVE_DATA_SOURCE = "rcon"
DEFAULT_HISTORICAL_DATA_SOURCE = "rcon"
DEFAULT_HISTORICAL_DATA_SOURCE = "public-scoreboard"
DEFAULT_RCON_TIMEOUT_SECONDS = 20.0
DEFAULT_HISTORICAL_CRCON_PAGE_SIZE = 50
DEFAULT_HISTORICAL_CRCON_TIMEOUT_SECONDS = 15.0

View File

@@ -7,10 +7,10 @@ services:
- ./backend/.env.example
environment:
HLL_BACKEND_LIVE_DATA_SOURCE: ${HLL_BACKEND_LIVE_DATA_SOURCE:-rcon}
HLL_BACKEND_HISTORICAL_DATA_SOURCE: ${HLL_BACKEND_HISTORICAL_DATA_SOURCE:-rcon}
HLL_BACKEND_HISTORICAL_DATA_SOURCE: ${HLL_BACKEND_HISTORICAL_DATA_SOURCE:-public-scoreboard}
HLL_BACKEND_RCON_TIMEOUT_SECONDS: ${HLL_BACKEND_RCON_TIMEOUT_SECONDS:-20}
HLL_BACKEND_RCON_TARGETS: >-
${HLL_BACKEND_RCON_TARGETS:-[{"name":"Comunidad Hispana #01","slug":"comunidad-hispana-01","external_server_id":"comunidad-hispana-01","host":"152.114.195.174","port":7779,"password":"replace-me-01","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #02","slug":"comunidad-hispana-02","external_server_id":"comunidad-hispana-02","host":"152.114.195.150","port":7879,"password":"replace-me-02","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #03","slug":"comunidad-hispana-03","external_server_id":"comunidad-hispana-03","host":"5.196.78.45","port":27230,"password":"replace-me-03","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null}]}
${HLL_BACKEND_RCON_TARGETS:-[{"name":"Comunidad Hispana #01","slug":"comunidad-hispana-01","external_server_id":"comunidad-hispana-01","host":"152.114.195.174","port":7779,"password":"replace-me-01","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #02","slug":"comunidad-hispana-02","external_server_id":"comunidad-hispana-02","host":"152.114.195.150","port":7879,"password":"replace-me-02","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null}]}
ports:
- "8000:8000"
volumes:
@@ -18,6 +18,8 @@ services:
restart: unless-stopped
historical-runner:
profiles:
- advanced
build:
context: ./backend
container_name: hll-vietnam-historical-runner
@@ -29,7 +31,7 @@ services:
HLL_BACKEND_HISTORICAL_DATA_SOURCE: ${HLL_BACKEND_HISTORICAL_DATA_SOURCE:-rcon}
HLL_BACKEND_RCON_TIMEOUT_SECONDS: ${HLL_BACKEND_RCON_TIMEOUT_SECONDS:-20}
HLL_BACKEND_RCON_TARGETS: >-
${HLL_BACKEND_RCON_TARGETS:-[{"name":"Comunidad Hispana #01","slug":"comunidad-hispana-01","external_server_id":"comunidad-hispana-01","host":"152.114.195.174","port":7779,"password":"replace-me-01","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #02","slug":"comunidad-hispana-02","external_server_id":"comunidad-hispana-02","host":"152.114.195.150","port":7879,"password":"replace-me-02","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #03","slug":"comunidad-hispana-03","external_server_id":"comunidad-hispana-03","host":"5.196.78.45","port":27230,"password":"replace-me-03","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null}]}
${HLL_BACKEND_RCON_TARGETS:-[{"name":"Comunidad Hispana #01","slug":"comunidad-hispana-01","external_server_id":"comunidad-hispana-01","host":"152.114.195.174","port":7779,"password":"replace-me-01","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #02","slug":"comunidad-hispana-02","external_server_id":"comunidad-hispana-02","host":"152.114.195.150","port":7879,"password":"replace-me-02","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null}]}
depends_on:
- backend
volumes:
@@ -37,6 +39,8 @@ services:
restart: unless-stopped
rcon-historical-worker:
profiles:
- advanced
build:
context: ./backend
container_name: hll-vietnam-rcon-historical-worker
@@ -48,7 +52,7 @@ services:
HLL_BACKEND_HISTORICAL_DATA_SOURCE: ${HLL_BACKEND_HISTORICAL_DATA_SOURCE:-rcon}
HLL_BACKEND_RCON_TIMEOUT_SECONDS: ${HLL_BACKEND_RCON_TIMEOUT_SECONDS:-20}
HLL_BACKEND_RCON_TARGETS: >-
${HLL_BACKEND_RCON_TARGETS:-[{"name":"Comunidad Hispana #01","slug":"comunidad-hispana-01","external_server_id":"comunidad-hispana-01","host":"152.114.195.174","port":7779,"password":"replace-me-01","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #02","slug":"comunidad-hispana-02","external_server_id":"comunidad-hispana-02","host":"152.114.195.150","port":7879,"password":"replace-me-02","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #03","slug":"comunidad-hispana-03","external_server_id":"comunidad-hispana-03","host":"5.196.78.45","port":27230,"password":"replace-me-03","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null}]}
${HLL_BACKEND_RCON_TARGETS:-[{"name":"Comunidad Hispana #01","slug":"comunidad-hispana-01","external_server_id":"comunidad-hispana-01","host":"152.114.195.174","port":7779,"password":"replace-me-01","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null},{"name":"Comunidad Hispana #02","slug":"comunidad-hispana-02","external_server_id":"comunidad-hispana-02","host":"152.114.195.150","port":7879,"password":"replace-me-02","source_name":"community-hispana-rcon","region":"ES","game_port":null,"query_port":null}]}
HLL_RCON_HISTORICAL_CAPTURE_INTERVAL_SECONDS: ${HLL_RCON_HISTORICAL_CAPTURE_INTERVAL_SECONDS:-600}
HLL_RCON_HISTORICAL_CAPTURE_MAX_RETRIES: ${HLL_RCON_HISTORICAL_CAPTURE_MAX_RETRIES:-2}
HLL_RCON_HISTORICAL_CAPTURE_RETRY_DELAY_SECONDS: ${HLL_RCON_HISTORICAL_CAPTURE_RETRY_DELAY_SECONDS:-15}

View File

@@ -126,3 +126,16 @@ Las claves estables son:
Esto permite bootstrap, refresco incremental e idempotencia sin mezclar
semanticas de estado actual con historico persistido. El modelo detallado queda
en `docs/historical-domain-model.md`.
## Decision 014: despliegue normal simplificado sin servidor #03
El despliegue operativo normal vuelve a quedar reducido a `backend` +
`frontend`. Los servicios `historical-runner` y `rcon-historical-worker` se
mantienen disponibles solo para uso avanzado y explicito mediante el perfil
Compose `advanced`.
Comunidad Hispana #03 deja de formar parte de los targets RCON por defecto
porque ya no es una fuente operativa vigente. El codigo historico, los datos
persistidos, las migraciones y las piezas Elo/MMR no se eliminan; quedan
pausadas operativamente para esta fase y pueden reintroducirse mediante una
task futura si se valida de nuevo la fuente y el coste de mantenimiento.