317 lines
6.9 KiB
Markdown
317 lines
6.9 KiB
Markdown
|
|
# FASE 0: LIMPIEZA Y CONSOLIDACIÓN
|
||
|
|
|
||
|
|
**Complejidad:** Simple
|
||
|
|
**Duración estimada:** 1 día
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## OBJETIVO
|
||
|
|
|
||
|
|
Eliminar confusión, actualizar documentación obsoleta, sincronizar estado real con documentación.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## PREREQUISITOS
|
||
|
|
|
||
|
|
- Acceso SSH a ARCHITECT
|
||
|
|
- Token de escritura Gitea: `ac5a604b9aac5cee81192a656fc918f9efa3834b`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## PASO 0.1: Limpiar repo architect
|
||
|
|
|
||
|
|
### Acción
|
||
|
|
Eliminar carpetas obsoletas que causan confusión.
|
||
|
|
|
||
|
|
### Script
|
||
|
|
|
||
|
|
```bash
|
||
|
|
#!/bin/bash
|
||
|
|
# 0.1-limpiar-architect.sh
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
WORK_DIR="/tmp/cleanup-architect"
|
||
|
|
SSH_KEY="/home/orchestrator/.ssh/tzzr"
|
||
|
|
|
||
|
|
echo "=== Limpiando repo architect ==="
|
||
|
|
|
||
|
|
# Clonar
|
||
|
|
rm -rf $WORK_DIR
|
||
|
|
mkdir -p $WORK_DIR
|
||
|
|
cd $WORK_DIR
|
||
|
|
|
||
|
|
GIT_SSH_COMMAND="ssh -i $SSH_KEY -p 2222 -o StrictHostKeyChecking=no" \
|
||
|
|
git clone ssh://git@localhost:2222/tzzr/architect.git
|
||
|
|
|
||
|
|
cd architect
|
||
|
|
|
||
|
|
# Eliminar carpetas obsoletas
|
||
|
|
rm -rf app-v2 orchestrator-setup orchestrator-v3 local
|
||
|
|
|
||
|
|
# Commit
|
||
|
|
git add -A
|
||
|
|
git commit -m "Limpieza: eliminar carpetas obsoletas (app-v2, orchestrator-*, local)"
|
||
|
|
|
||
|
|
# Push
|
||
|
|
GIT_SSH_COMMAND="ssh -i $SSH_KEY -p 2222" git push origin main
|
||
|
|
|
||
|
|
echo "=== Completado ==="
|
||
|
|
```
|
||
|
|
|
||
|
|
### Verificación
|
||
|
|
|
||
|
|
```bash
|
||
|
|
curl -s "http://localhost:3000/api/v1/repos/tzzr/architect/contents" \
|
||
|
|
-H "Authorization: token 5ca10e5b71d41f9b22f12d0f96bfc2e6de5c2c7f" | jq -r '.[].name'
|
||
|
|
# No debe aparecer: app-v2, orchestrator-setup, orchestrator-v3, local
|
||
|
|
```
|
||
|
|
|
||
|
|
### Rollback
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Git revert del último commit
|
||
|
|
cd $WORK_DIR/architect
|
||
|
|
git revert HEAD --no-edit
|
||
|
|
GIT_SSH_COMMAND="ssh -i $SSH_KEY -p 2222" git push origin main
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## PASO 0.2: Actualizar referencias NocoDB
|
||
|
|
|
||
|
|
### Acción
|
||
|
|
Buscar y reemplazar referencias a NocoDB por Directus en todos los repos.
|
||
|
|
|
||
|
|
### Script
|
||
|
|
|
||
|
|
```bash
|
||
|
|
#!/bin/bash
|
||
|
|
# 0.2-actualizar-nocodb.sh
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
WORK_DIR="/tmp/cleanup-nocodb"
|
||
|
|
SSH_KEY="/home/orchestrator/.ssh/tzzr"
|
||
|
|
TOKEN="5ca10e5b71d41f9b22f12d0f96bfc2e6de5c2c7f"
|
||
|
|
|
||
|
|
# Repos a revisar
|
||
|
|
REPOS="deck corp hst system contratos-comunes"
|
||
|
|
|
||
|
|
rm -rf $WORK_DIR
|
||
|
|
mkdir -p $WORK_DIR
|
||
|
|
cd $WORK_DIR
|
||
|
|
|
||
|
|
for repo in $REPOS; do
|
||
|
|
echo "=== Procesando $repo ==="
|
||
|
|
|
||
|
|
GIT_SSH_COMMAND="ssh -i $SSH_KEY -p 2222 -o StrictHostKeyChecking=no" \
|
||
|
|
git clone ssh://git@localhost:2222/tzzr/$repo.git
|
||
|
|
|
||
|
|
cd $repo
|
||
|
|
|
||
|
|
# Buscar y reemplazar
|
||
|
|
find . -name "*.md" -type f -exec grep -l "NocoDB" {} \; | while read file; do
|
||
|
|
echo " Actualizando: $file"
|
||
|
|
sed -i 's/NocoDB/Directus/g' "$file"
|
||
|
|
sed -i 's/nocodb/directus/g' "$file"
|
||
|
|
done
|
||
|
|
|
||
|
|
# Si hay cambios, commit
|
||
|
|
if [[ -n $(git status --porcelain) ]]; then
|
||
|
|
git add -A
|
||
|
|
git commit -m "Actualizar referencias: NocoDB -> Directus (migración completada)"
|
||
|
|
GIT_SSH_COMMAND="ssh -i $SSH_KEY -p 2222" git push origin main
|
||
|
|
echo " Cambios pusheados"
|
||
|
|
else
|
||
|
|
echo " Sin cambios"
|
||
|
|
fi
|
||
|
|
|
||
|
|
cd ..
|
||
|
|
done
|
||
|
|
|
||
|
|
echo "=== Completado ==="
|
||
|
|
```
|
||
|
|
|
||
|
|
### Verificación
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# No debe encontrar NocoDB en ningún README actual
|
||
|
|
for repo in deck corp hst system contratos-comunes; do
|
||
|
|
result=$(curl -s "http://localhost:3000/api/v1/repos/tzzr/$repo/raw/README.md" \
|
||
|
|
-H "Authorization: token 5ca10e5b71d41f9b22f12d0f96bfc2e6de5c2c7f" | grep -i nocodb || echo "")
|
||
|
|
if [[ -n "$result" ]]; then
|
||
|
|
echo "WARN: NocoDB encontrado en $repo"
|
||
|
|
else
|
||
|
|
echo "OK: $repo limpio"
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## PASO 0.3: Sincronizar READMEs con realidad
|
||
|
|
|
||
|
|
### Acción
|
||
|
|
Añadir badges de estado a cada repo indicando si está IMPLEMENTADO, PARCIAL, o PLANIFICADO.
|
||
|
|
|
||
|
|
### Ejemplo de Badge
|
||
|
|
|
||
|
|
```markdown
|
||
|
|
<!-- Al inicio de cada README -->
|
||
|
|

|
||
|
|
```
|
||
|
|
|
||
|
|
### Script
|
||
|
|
|
||
|
|
```bash
|
||
|
|
#!/bin/bash
|
||
|
|
# 0.3-sincronizar-estados.sh
|
||
|
|
|
||
|
|
# Definición de estados
|
||
|
|
declare -A ESTADOS
|
||
|
|
ESTADOS[clara]="IMPLEMENTADO"
|
||
|
|
ESTADOS[hst]="IMPLEMENTADO"
|
||
|
|
ESTADOS[packet]="IMPLEMENTADO"
|
||
|
|
ESTADOS[orchestrator]="IMPLEMENTADO"
|
||
|
|
ESTADOS[context]="IMPLEMENTADO"
|
||
|
|
ESTADOS[grace]="PARCIAL"
|
||
|
|
ESTADOS[penny]="PARCIAL"
|
||
|
|
ESTADOS[the-factory]="PARCIAL"
|
||
|
|
ESTADOS[deck]="PARCIAL"
|
||
|
|
ESTADOS[alfred]="PLANIFICADO"
|
||
|
|
ESTADOS[jared]="PLANIFICADO"
|
||
|
|
ESTADOS[margaret]="PLANIFICADO"
|
||
|
|
ESTADOS[mason]="PLANIFICADO"
|
||
|
|
ESTADOS[feldman]="PLANIFICADO"
|
||
|
|
ESTADOS[sentinel]="PLANIFICADO"
|
||
|
|
ESTADOS[vision-builder]="PLANIFICADO"
|
||
|
|
ESTADOS[locker]="PLANIFICADO"
|
||
|
|
ESTADOS[mind-link]="PLANIFICADO"
|
||
|
|
|
||
|
|
# Colores de badge
|
||
|
|
declare -A COLORES
|
||
|
|
COLORES[IMPLEMENTADO]="green"
|
||
|
|
COLORES[PARCIAL]="orange"
|
||
|
|
COLORES[PLANIFICADO]="yellow"
|
||
|
|
|
||
|
|
SSH_KEY="/home/orchestrator/.ssh/tzzr"
|
||
|
|
WORK_DIR="/tmp/sync-estados"
|
||
|
|
|
||
|
|
rm -rf $WORK_DIR
|
||
|
|
mkdir -p $WORK_DIR
|
||
|
|
cd $WORK_DIR
|
||
|
|
|
||
|
|
for repo in "${!ESTADOS[@]}"; do
|
||
|
|
estado="${ESTADOS[$repo]}"
|
||
|
|
color="${COLORES[$estado]}"
|
||
|
|
badge=""
|
||
|
|
|
||
|
|
echo "=== $repo: $estado ==="
|
||
|
|
|
||
|
|
GIT_SSH_COMMAND="ssh -i $SSH_KEY -p 2222 -o StrictHostKeyChecking=no" \
|
||
|
|
git clone ssh://git@localhost:2222/tzzr/$repo.git 2>/dev/null
|
||
|
|
|
||
|
|
cd $repo
|
||
|
|
|
||
|
|
# Verificar si README tiene badge
|
||
|
|
if grep -q "img.shields.io/badge/Estado" README.md 2>/dev/null; then
|
||
|
|
# Actualizar badge existente
|
||
|
|
sed -i "s|!\[Estado\](https://img.shields.io/badge/Estado-[^)]*)|${badge}|g" README.md
|
||
|
|
else
|
||
|
|
# Añadir badge al inicio
|
||
|
|
if [[ -f README.md ]]; then
|
||
|
|
echo -e "${badge}\n\n$(cat README.md)" > README.md
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [[ -n $(git status --porcelain) ]]; then
|
||
|
|
git add README.md
|
||
|
|
git commit -m "Añadir badge de estado: $estado"
|
||
|
|
GIT_SSH_COMMAND="ssh -i $SSH_KEY -p 2222" git push origin main
|
||
|
|
fi
|
||
|
|
|
||
|
|
cd ..
|
||
|
|
done
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## PASO 0.4: Decidir sobre mind-link
|
||
|
|
|
||
|
|
### Opciones
|
||
|
|
|
||
|
|
1. **Eliminar repo** - Si no se va a implementar
|
||
|
|
2. **Marcar como ABANDONADO** - Si puede implementarse en el futuro
|
||
|
|
3. **Implementar básico** - Si es prioritario
|
||
|
|
|
||
|
|
### Recomendación
|
||
|
|
Marcar como ABANDONADO por ahora, implementar después de FASE 4.
|
||
|
|
|
||
|
|
### Script (opción 2)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
#!/bin/bash
|
||
|
|
# 0.4-archivar-mind-link.sh
|
||
|
|
|
||
|
|
SSH_KEY="/home/orchestrator/.ssh/tzzr"
|
||
|
|
WORK_DIR="/tmp/mind-link-archive"
|
||
|
|
|
||
|
|
rm -rf $WORK_DIR
|
||
|
|
mkdir -p $WORK_DIR
|
||
|
|
cd $WORK_DIR
|
||
|
|
|
||
|
|
GIT_SSH_COMMAND="ssh -i $SSH_KEY -p 2222 -o StrictHostKeyChecking=no" \
|
||
|
|
git clone ssh://git@localhost:2222/tzzr/mind-link.git
|
||
|
|
|
||
|
|
cd mind-link
|
||
|
|
|
||
|
|
# Actualizar README
|
||
|
|
cat > README.md << 'EOF'
|
||
|
|

|
||
|
|
|
||
|
|
# MIND LINK
|
||
|
|
|
||
|
|
> **NOTA:** Este repo está temporalmente archivado. Se implementará después de completar el pipeline principal (FASE 4).
|
||
|
|
|
||
|
|
## Concepto Original
|
||
|
|
|
||
|
|
Interfaz para conectar ideas y conceptos. Visualización de relaciones entre elementos.
|
||
|
|
|
||
|
|
## Funciones Planificadas
|
||
|
|
|
||
|
|
- Conexión de conceptos
|
||
|
|
- Grafos de conocimiento
|
||
|
|
- Navegación visual
|
||
|
|
- Búsqueda semántica
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
*Archivado: 2025-12-24*
|
||
|
|
EOF
|
||
|
|
|
||
|
|
# Eliminar carpetas vacías
|
||
|
|
rm -rf src docs
|
||
|
|
|
||
|
|
git add -A
|
||
|
|
git commit -m "Archivar temporalmente: implementar post-FASE 4"
|
||
|
|
GIT_SSH_COMMAND="ssh -i $SSH_KEY -p 2222" git push origin main
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## CHECKLIST FINAL FASE 0
|
||
|
|
|
||
|
|
- [ ] 0.1 - Carpetas obsoletas eliminadas de architect
|
||
|
|
- [ ] 0.2 - Referencias a NocoDB actualizadas
|
||
|
|
- [ ] 0.3 - Badges de estado en todos los READMEs
|
||
|
|
- [ ] 0.4 - mind-link archivado
|
||
|
|
- [ ] Todos los cambios pusheados a Gitea
|
||
|
|
- [ ] Sin errores en los repos
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## SIGUIENTE FASE
|
||
|
|
|
||
|
|
Continuar con [FASE_1_PIPELINE_MINIMO.md](FASE_1_PIPELINE_MINIMO.md)
|