trackops 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,193 @@
1
+ # El Ciclo O.P.E.R.A. — Referencia Completa
2
+
3
+ Este documento detalla cada fase del ciclo con sus reglas, procedimientos y Definitions of Done.
4
+
5
+ ---
6
+
7
+ ## 1️⃣ O — Orquestar (Visión y Lógica)
8
+
9
+ ### Descubrimiento
10
+
11
+ Haz al usuario las 5 preguntas clave:
12
+
13
+ 1. **Directriz Principal**: ¿Cuál es el resultado singular deseado?
14
+ 2. **Integraciones**: ¿Qué servicios externos necesitamos? ¿Están listas las claves?
15
+ 3. **Fuente de la Verdad**: ¿Dónde viven los datos primarios?
16
+ 4. **Carga Útil (Payload)**: ¿Cómo y dónde debe entregarse el resultado final?
17
+ 5. **Reglas de Comportamiento**: Restricciones o tono específico.
18
+
19
+ ### Regla "Datos-Primero"
20
+
21
+ Antes de pasar a la siguiente fase, DEBES definir el **Esquema de Datos JSON** (Input/Output) en `genesis.md`.
22
+
23
+ Ejemplo de schema en genesis.md:
24
+
25
+ ```json
26
+ {
27
+ "input": {
28
+ "source": "API externa",
29
+ "schema": {
30
+ "id": "string (UUID)",
31
+ "timestamp": "ISO 8601",
32
+ "data": "object"
33
+ }
34
+ },
35
+ "output": {
36
+ "destination": "webhook POST",
37
+ "schema": {
38
+ "processed_id": "string (UUID)",
39
+ "result": "object",
40
+ "status": "enum: success|error"
41
+ }
42
+ }
43
+ }
44
+ ```
45
+
46
+ ### Definition of Done — Fase O
47
+
48
+ - [ ] Las 5 preguntas de descubrimiento están respondidas.
49
+ - [ ] Esquema JSON de Input/Output definido en `genesis.md`.
50
+ - [ ] Reglas de comportamiento documentadas en `genesis.md`.
51
+ - [ ] `task_plan.md` tiene plano aprobado por el usuario.
52
+
53
+ ---
54
+
55
+ ## 2️⃣ P — Probar (Conectividad)
56
+
57
+ Verifica las tuberías antes de pasar el agua. El objetivo es confirmar que todos los servicios externos responden y devuelven datos con la forma esperada.
58
+
59
+ ### Procedimiento
60
+
61
+ 1. **Verificación de credenciales**: Lee `.env` y confirma que todas las claves necesarias existen y no están vacías.
62
+ 2. **Handshake**: Construye scripts mínimos en `tools/` (ej: `test_api.py`) para verificar cada servicio.
63
+ 3. **Validación de Shape**: No basta con un HTTP 200. Verifica que la respuesta coincide con el schema definido en `genesis.md`. Compara campos, tipos de datos y estructura.
64
+ 4. **Bloqueo**: Si algún test falla, NO procedas a la fase de Estructurar. Documenta el fallo en `findings.md`.
65
+
66
+ ### Ejemplo de test mínimo
67
+
68
+ ```python
69
+ # tools/test_api.py
70
+ import os
71
+ import requests
72
+
73
+ API_KEY = os.getenv("API_KEY")
74
+ BASE_URL = os.getenv("API_BASE_URL")
75
+
76
+ def test_connection():
77
+ """Verifica conexión y shape de respuesta."""
78
+ response = requests.get(f"{BASE_URL}/health", headers={"Authorization": f"Bearer {API_KEY}"})
79
+ assert response.status_code == 200, f"Expected 200, got {response.status_code}"
80
+ data = response.json()
81
+ assert "id" in data, "Missing 'id' field in response"
82
+ assert "status" in data, "Missing 'status' field in response"
83
+ print("✅ API connection and shape validated")
84
+
85
+ if __name__ == "__main__":
86
+ test_connection()
87
+ ```
88
+
89
+ ### Definition of Done — Fase P
90
+
91
+ - [ ] Todas las credenciales `.env` verificadas (existen y no están vacías).
92
+ - [ ] Scripts `test_*.py` ejecutados y pasando.
93
+ - [ ] Respuestas de APIs validadas contra el schema de `genesis.md`.
94
+ - [ ] Resultados documentados en `findings.md`.
95
+
96
+ ---
97
+
98
+ ## 3️⃣ E — Estructurar (La Construcción de 3 Capas)
99
+
100
+ ### Capa 1: Arquitectura (`architecture/`)
101
+
102
+ SOPs (Standard Operating Procedures) técnicos en Markdown. Cada SOP define:
103
+
104
+ - Propósito del script.
105
+ - Entradas esperadas (con referencia al schema en `genesis.md`).
106
+ - Salidas producidas.
107
+ - Casos extremos y cómo manejarlos.
108
+ - Dependencias con otras herramientas.
109
+
110
+ **Regla**: Si la lógica cambia, actualiza el SOP **antes** que el código.
111
+
112
+ ### Capa 2: Navegación (El Agente)
113
+
114
+ Capa de razonamiento. Enruta datos entre SOPs y herramientas. No ejecuta lógica de negocio directamente; delega a los scripts.
115
+
116
+ ### Capa 3: Herramientas (`tools/`)
117
+
118
+ - Scripts atómicos y deterministas.
119
+ - Las variables de entorno van en `.env`.
120
+ - Usa `.tmp/` para todas las operaciones intermedias.
121
+ - Cada script hace UNA cosa bien.
122
+
123
+ ### Regla de Idempotencia
124
+
125
+ Toda herramienta DEBE ser idempotente. Herramientas con side-effects irreversibles se marcan:
126
+
127
+ ```python
128
+ # META: side-effect: true
129
+ # META: idempotent: false
130
+ # META: requires-confirmation: true
131
+ ```
132
+
133
+ ### Grafo de Dependencias
134
+
135
+ Si una herramienta produce output que consume otra, documéntalo en `genesis.md` bajo `## Pipeline`:
136
+
137
+ ```markdown
138
+ ## Pipeline
139
+ ### tool_fetch.py → tool_transform.py
140
+ - Output: `.tmp/raw_data.json`
141
+ - Formato: JSON array según schema X
142
+ ```
143
+
144
+ ### Definition of Done — Fase E
145
+
146
+ - [ ] SOPs escritos en `architecture/` para cada herramienta.
147
+ - [ ] Scripts implementados en `tools/`.
148
+ - [ ] Grafo de dependencias documentado en `genesis.md`.
149
+ - [ ] Tests de integración entre herramientas pasando.
150
+ - [ ] Herramientas con side-effects marcadas con META tags.
151
+
152
+ ---
153
+
154
+ ## 4️⃣ R — Refinar (Refinamiento)
155
+
156
+ ### Templates de Output
157
+
158
+ Toda salida del sistema se valida contra una plantilla definida en `templates/`. Las plantillas se referencian desde `genesis.md` bajo `## Templates`.
159
+
160
+ El refinamiento no es subjetivo; es verificable contra una plantilla. Si el output no coincide con el template, no pasa.
161
+
162
+ ### Refinamiento de Carga Útil
163
+
164
+ Formatea todas las salidas (Markdown, HTML, JSON limpio) para entrega profesional según lo definido en `genesis.md`.
165
+
166
+ ### UX/UI
167
+
168
+ Si el proyecto tiene interfaz, aplica diseños limpios e intuitivos según las especificaciones.
169
+
170
+ ### Definition of Done — Fase R
171
+
172
+ - [ ] Todas las salidas validadas contra sus templates en `templates/`.
173
+ - [ ] Formatos de entrega (Markdown, HTML, JSON) verificados.
174
+ - [ ] Si hay interfaz: revisión visual completada.
175
+
176
+ ---
177
+
178
+ ## 5️⃣ A — Automatizar (Despliegue)
179
+
180
+ ### Procedimiento
181
+
182
+ 1. **Limpieza**: Elimina residuos de `.tmp/`.
183
+ 2. **Transferencia**: Mueve la lógica finalizada a producción/nube.
184
+ 3. **Configuración**: Establece los disparadores (Cron, Webhooks).
185
+ 4. **Smoke Test**: Verificación mínima en el entorno de producción.
186
+
187
+ ### Definition of Done — Fase A
188
+
189
+ - [ ] `.tmp/` limpio (sin archivos residuales).
190
+ - [ ] Código desplegado en destino final.
191
+ - [ ] Triggers configurados y verificados.
192
+ - [ ] Smoke test en producción pasando.
193
+ - [ ] `progress.md` actualizado con estado final.
@@ -0,0 +1,28 @@
1
+ # Skills Registry — {{PROJECT_NAME}}
2
+
3
+ > Índice de skills instaladas en este proyecto. Gestionado automáticamente por `trackops skill`.
4
+
5
+ ---
6
+
7
+ ## Skills Instaladas
8
+
9
+ _Sin skills instaladas. Usa `trackops skill install <nombre>` para añadir una._
10
+
11
+ ---
12
+
13
+ ## Cómo Usar una Skill
14
+
15
+ 1. Identifica el contexto en `.agent/hub/router.md`.
16
+ 2. Abre el archivo `SKILL.md` de la skill correspondiente.
17
+ 3. Sigue las instrucciones del protocolo definido en la skill.
18
+
19
+ ---
20
+
21
+ ## Gestión
22
+
23
+ ```bash
24
+ trackops skill list # Ver skills instaladas
25
+ trackops skill catalog # Ver skills disponibles
26
+ trackops skill install <n> # Instalar una skill
27
+ trackops skill remove <n> # Desinstalar una skill
28
+ ```
@@ -0,0 +1,39 @@
1
+ # Router de Skills
2
+
3
+ ## Propósito
4
+ Este archivo define las reglas de enrutamiento entre el agente principal y las skills disponibles. Cuando el agente detecta un contexto específico, consulta estas reglas para decidir qué skill invocar.
5
+
6
+ ## Reglas de Enrutamiento
7
+
8
+ ### Contexto: Commit de código
9
+ - **Trigger**: El usuario pide hacer un commit o se completa un cambio de código.
10
+ - **Skill**: `commiter`
11
+ - **Acción**: Consulta la skill para formatear el mensaje de commit.
12
+
13
+ ### Contexto: Post-commit
14
+ - **Trigger**: Se acaba de realizar un commit exitoso.
15
+ - **Skill**: `changelog-updater`
16
+ - **Acción**: Ejecuta el script de actualización del changelog.
17
+
18
+ ### Contexto: Inicialización de proyecto
19
+ - **Trigger**: El usuario quiere crear un nuevo proyecto.
20
+ - **Skill**: `project-starter-skill` (global)
21
+ - **Acción**: Ejecutar el protocolo de inicialización completo.
22
+
23
+ ### Contexto: Seguimiento operativo
24
+ - **Trigger**: Se va a empezar, retomar o cerrar un bloque de trabajo.
25
+ - **Skill**: No aplica skill externa.
26
+ - **Acción**: Ejecutar `trackops status`, tomar la siguiente tarea con `trackops next` y mantener `project_control.json` como fuente de verdad operativa.
27
+
28
+ ## Cómo Añadir Nuevas Reglas
29
+
30
+ Cada regla sigue este formato:
31
+
32
+ ```markdown
33
+ ### Contexto: [descripción]
34
+ - **Trigger**: [qué activa la regla]
35
+ - **Skill**: [nombre de la skill]
36
+ - **Acción**: [qué debe hacer el agente]
37
+ ```
38
+
39
+ Al instalar una nueva skill con `trackops skill install <nombre>`, añade su regla de enrutamiento aquí.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: "changelog-updater"
3
+ description: "Herramienta automatizada para actualizar el archivo CHANGELOG.md basándose en el último commit realizado. Usa esta skill inmediatamente después de confirmar un commit para mantener el historial de cambios al día. Se activa con 'actualizar changelog', 'registrar cambio', 'update changelog', o automáticamente tras un commit exitoso cuando el router lo indique."
4
+ metadata:
5
+ version: "1.0"
6
+ type: "project"
7
+ triggers:
8
+ - "actualizar changelog"
9
+ - "registrar cambio"
10
+ - "update changelog"
11
+ - "post-commit"
12
+ ---
13
+
14
+ # Actualizador de Changelog
15
+
16
+ Esta skill mantiene actualizado el archivo `CHANGELOG.md` del proyecto de forma automática, leyendo la información directamente desde el historial de git.
17
+
18
+ ## Cuándo Usar
19
+
20
+ Usa esta skill **inmediatamente después de realizar un commit** exitoso. El router debería activarla automáticamente tras detectar un commit, pero también puede invocarse manualmente.
21
+
22
+ ## Qué Hace
23
+
24
+ 1. Obtiene el último commit del repositorio via `git log`.
25
+ 2. Analiza el mensaje buscando el patrón de **Conventional Commits** (con soporte para emojis al inicio).
26
+ 3. Formatea una nueva entrada para `CHANGELOG.md` incluyendo:
27
+ - Emoji correspondiente al tipo de cambio.
28
+ - Ámbito (scope) si existe.
29
+ - Descripción del cambio.
30
+ - Hash corto del commit (7 caracteres).
31
+ 4. Inserta la entrada en la sección correspondiente a la fecha actual (`YYYY-MM-DD`).
32
+ 5. Si no existe `CHANGELOG.md`, lo crea con la estructura base.
33
+
34
+ ## Mapeo de Emojis
35
+
36
+ El script reconoce estos tipos de commit y asigna sus emojis:
37
+
38
+ | Tipo | Emoji | Descripción |
39
+ | :--- | :---: | :--- |
40
+ | `feat` | ✨ | Nueva característica |
41
+ | `fix` | 🐛 | Corrección de errores |
42
+ | `docs` | 📚 | Documentación |
43
+ | `style` | 💄 | Estilos y formato |
44
+ | `refactor` | ♻️ | Refactorización de código |
45
+ | `perf` | ⚡ | Mejoras de rendimiento |
46
+ | `test` | ✅ | Tests |
47
+ | `build` | 📦 | Build y dependencias |
48
+ | `ci` | 👷 | Integración continua |
49
+ | `chore` | 🔧 | Tareas de mantenimiento |
50
+ | `revert` | ⏪ | Reversión de cambios |
51
+
52
+ Commits que no sigan el formato Conventional Commits se registran como "Misc".
53
+
54
+ ## Flujo de Trabajo Recomendado
55
+
56
+ 1. Realiza tus cambios en el código.
57
+ 2. Haz el commit siguiendo las convenciones (usa la skill `commiter`).
58
+ 3. Actualiza el changelog manualmente o via script si está configurado.
59
+
60
+ ## Requisitos
61
+
62
+ - Repositorio git inicializado con al menos un commit.
63
+ - El script se ejecuta desde la raíz del proyecto.
64
+
65
+ ## Manejo de Errores
66
+
67
+ - Si no hay commits en el repo, el script muestra un mensaje informativo y no modifica nada.
68
+ - Si `git` no está disponible, el script reporta el error y termina.
69
+ - Si el `CHANGELOG.md` tiene una estructura inesperada, añade la entrada al final como fallback.
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: "commiter"
3
+ description: "Guía para generar mensajes de commit en español siguiendo Conventional Commits estrictos con Emojis. Usa esta skill siempre que el usuario pida hacer un commit, generar un mensaje de commit, commitear cambios, o cuando se complete un cambio de código y sea momento de registrarlo en git. También se activa con 'commit', 'commitear', 'guardar cambios', 'registrar cambios' o cualquier intención de crear un punto en el historial de git."
4
+ metadata:
5
+ version: "1.0"
6
+ type: "project"
7
+ triggers:
8
+ - "commit"
9
+ - "commitear"
10
+ - "guardar cambios"
11
+ - "registrar cambios"
12
+ - "hacer commit"
13
+ - "git commit"
14
+ ---
15
+
16
+ # Generador de Commits
17
+
18
+ Cuando se te pida realizar un commit o generar un mensaje de commit, DEBES seguir estrictamente este formato.
19
+
20
+ ## Estándar: Conventional Commits con Emojis
21
+
22
+ Utilizamos **Conventional Commits** enriquecidos con **Gitmoji** como base. Todo el contenido debe estar en **ESPAÑOL**.
23
+
24
+ ## Formato
25
+
26
+ ```text
27
+ <emoji> <tipo>(<alcance>): <descripción corta>
28
+
29
+ <cuerpo detallado y extenso>
30
+
31
+ <footer>
32
+ ```
33
+
34
+ ## Reglas Obligatorias
35
+
36
+ 1. **Emoji**: El mensaje DEBE comenzar con el emoji correspondiente al tipo de cambio.
37
+ 2. **Idioma**: Todo el contenido del commit (descripción y cuerpo) debe estar en **ESPAÑOL**.
38
+ 3. **Límite del Título**: La primera línea (asunto) **NO debe exceder los 50 caracteres** (sin contar el emoji). Sé conciso.
39
+ 4. **Descripción Extensa**: El cuerpo del mensaje es **OBLIGATORIO**. Debes explicar detalladamente:
40
+ - **Qué** se ha cambiado.
41
+ - **Por qué** se ha hecho el cambio.
42
+ - Detalles técnicos relevantes de la implementación.
43
+ 5. **Tiempos Verbales**: Usa el modo imperativo en el asunto (ej: "agrega", "corrige", "cambia"), no en pasado.
44
+
45
+ ## Tipos Permitidos y Emojis
46
+
47
+ | Emoji | Tipo | Descripción |
48
+ | :---: | :--- | :--- |
49
+ | ✨ | `feat` | Nueva característica (correlaciona con MINOR en SemVer). |
50
+ | 🐛 | `fix` | Corrección de un bug (correlaciona con PATCH en SemVer). |
51
+ | 📚 | `docs` | Cambios en la documentación. |
52
+ | 💄 | `style` | Cambios que no afectan el significado del código (espacios, formato, etc). |
53
+ | ♻️ | `refactor` | Cambio de código que no corrige bugs ni añade funcionalidades. |
54
+ | ⚡ | `perf` | Cambio de código que mejora el rendimiento. |
55
+ | ✅ | `test` | Añadir tests faltantes o corregir existentes. |
56
+ | 📦 | `build` | Cambios que afectan el sistema de construcción o dependencias externas. |
57
+ | 👷 | `ci` | Cambios en archivos de configuración y scripts de CI. |
58
+ | 🔧 | `chore` | Otros cambios que no modifican src o test files (ej. config de herramientas). |
59
+ | ⏪ | `revert` | Reversión de un commit anterior. |
60
+
61
+ ## Procedimiento
62
+
63
+ Cuando el usuario pida hacer commit:
64
+
65
+ 1. **Analiza los cambios**: Revisa qué archivos se modificaron y qué tipo de cambio representan.
66
+ 2. **Selecciona el tipo**: Elige el tipo de commit más apropiado de la tabla.
67
+ 3. **Define el alcance**: Identifica el módulo o componente afectado (opcional pero recomendado).
68
+ 4. **Redacta el asunto**: Máximo 50 caracteres, imperativo, en español.
69
+ 5. **Redacta el cuerpo**: Explica qué, por qué y detalles técnicos. Es obligatorio.
70
+ 6. **Ejecuta el commit**: Usa `git commit -m` con el formato completo.
71
+
72
+ ## Ejemplo Correcto
73
+
74
+ ```text
75
+ ✨ feat(auth): integra login social con Google
76
+
77
+ Se ha implementado la autenticación mediante OAuth2 con Google para facilitar
78
+ el acceso a nuevos usuarios.
79
+
80
+ Cambios principales:
81
+ - Agrega configuración de estrategia de Passport.js para Google.
82
+ - Crea nuevas rutas de callback en el controlador de autenticación.
83
+ - Actualiza el modelo de Usuario para almacenar el providerId.
84
+ - Ajusta la interfaz de login para incluir el botón de "Entrar con Google".
85
+
86
+ Motivación:
87
+ Reducir la fricción en el registro de usuarios y aumentar la conversión.
88
+ ```
89
+
90
+ ## Errores Comunes a Evitar
91
+
92
+ - `fix: error login` → Falta emoji, título vago, sin cuerpo.
93
+ - `🐛 Fix: arregla login` → Tipo en mayúscula, lo correcto es minúscula `fix`.
94
+ - `✨ feat(user): Update user logic` → En inglés, debe ser en español.
95
+ - Título que excede 50 caracteres → Acorta y mueve el detalle al cuerpo.
96
+
97
+ ## Integración con el Workflow
98
+
99
+ Después de ejecutar un commit exitoso, el router debe activar la skill `changelog-updater` para registrar el cambio automáticamente en `CHANGELOG.md`.
@@ -0,0 +1,202 @@
1
+ ---
2
+ name: "project-starter-skill"
3
+ description: "Skill global para inicializar proyectos completos usando el protocolo O.P.E.R.A. (Orquestar, Probar, Estructurar, Refinar, Automatizar). Usa esta skill siempre que el usuario quiera crear un nuevo proyecto, inicializar una estructura de agente, configurar un repositorio, o arrancar cualquier automatización desde cero. También se activa cuando el usuario menciona 'nuevo proyecto', 'iniciar proyecto', 'configurar proyecto', 'opera', 'project starter', 'scaffold', o cualquier intención de comenzar algo nuevo que necesite estructura."
4
+ metadata:
5
+ version: "3.0"
6
+ type: "global"
7
+ triggers:
8
+ - "iniciar proyecto"
9
+ - "nuevo proyecto"
10
+ - "configurar proyecto"
11
+ - "opera"
12
+ - "project starter"
13
+ - "scaffold"
14
+ - "inicializar"
15
+ ---
16
+
17
+ # 🚀 ProjectStarterSkill — O.P.E.R.A. v3.0
18
+
19
+ ## Identidad
20
+
21
+ Eres el **Piloto del Sistema**. Tu misión es construir automatización determinista y autorreparable usando el protocolo O.P.E.R.A.
22
+
23
+ ## Filosofía
24
+
25
+ - Fiabilidad sobre velocidad. Nunca adivines lógica de negocio.
26
+ - Los LLMs son probabilísticos, pero tu código debe ser **determinista**.
27
+ - Cada fase tiene un **Definition of Done** verificable. No avanzas sin cumplirlo.
28
+ - `genesis.md` es la ley. Si un script la contradice, el script está mal.
29
+
30
+ ---
31
+
32
+ ## Protocolo de Inicialización
33
+
34
+ Este protocolo se ejecuta secuencialmente y sin excepciones al crear un nuevo proyecto.
35
+
36
+ ### Paso 1 — Descubrimiento
37
+
38
+ Antes de crear cualquier archivo, haz al usuario estas preguntas:
39
+
40
+ | # | Pregunta | Propósito |
41
+ |---|----------|-----------|
42
+ | 1 | ¿Cuál es el resultado singular deseado? | Directriz principal |
43
+ | 2 | ¿Qué servicios externos necesitamos? ¿Están listas las claves? | Integraciones |
44
+ | 3 | ¿Dónde viven los datos primarios? | Fuente de la verdad |
45
+ | 4 | ¿Cómo y dónde debe entregarse el resultado final? | Carga útil |
46
+ | 5 | ¿Restricciones, tono o reglas específicas? | Reglas de comportamiento |
47
+
48
+ También pregunta:
49
+ - ¿Repositorio **público o privado**?
50
+ - ¿Tipo de **licencia**? (MIT, Apache 2.0, GPL v3, Propietario)
51
+
52
+ ### Paso 2 — Inicialización con Ops
53
+
54
+ Ejecuta la inicialización del sistema operativo:
55
+
56
+ ```bash
57
+ npx trackops init --with-opera
58
+ ```
59
+
60
+ Esto crea `project_control.json`, instala OPERA y registra el proyecto.
61
+
62
+ ### Paso 3 — Poblar genesis.md
63
+
64
+ Con las respuestas del descubrimiento, completa `genesis.md` con:
65
+
66
+ 1. **Esquema de Datos JSON** (Input/Output) — esto es obligatorio antes de escribir código.
67
+ 2. **Reglas de comportamiento** — restricciones de negocio.
68
+ 3. **Invariantes arquitectónicas** — decisiones técnicas inamovibles.
69
+
70
+ Esto es la regla "Datos-Primero": si el schema no está definido en `genesis.md`, no se escribe código.
71
+
72
+ ### Paso 4 — Completar task_plan.md
73
+
74
+ Ejecuta `trackops sync` para regenerar `task_plan.md` y luego ajusta:
75
+ - Fases y objetivos.
76
+ - **Definition of Done** por cada fase (ver referencia `references/opera-cycle.md`).
77
+ - Checklist verificable.
78
+
79
+ ### Paso 5 — Skills Base
80
+
81
+ 1. Instala las skills obligatorias:
82
+ ```bash
83
+ trackops skill install commiter
84
+ trackops skill install changelog-updater
85
+ ```
86
+ 2. Analiza la definición del proyecto en `genesis.md`.
87
+ 3. Busca skills adicionales con `trackops skill catalog` y **recomienda** (no instales sin aprobación) las que apliquen.
88
+
89
+ ### Paso 6 — Repositorio
90
+
91
+ 1. Crea el repositorio en GitHub (público o privado según elección).
92
+ 2. Genera `README.md` con la descripción del proyecto basada en `genesis.md`.
93
+ 3. Crea `LICENSE` según la elección del usuario.
94
+ 4. Inicializa `CHANGELOG.md` con entrada de creación.
95
+ 5. Realiza el primer commit (usa la skill `commiter`).
96
+
97
+ ### Paso 7 — Freno de Mano 🛑
98
+
99
+ Tienes **prohibido** escribir scripts en `tools/` hasta que:
100
+
101
+ - [ ] Las preguntas de descubrimiento estén respondidas.
102
+ - [ ] El esquema de datos esté definido en `genesis.md`.
103
+ - [ ] `task_plan.md` tenga un plano aprobado con Definition of Done.
104
+ - [ ] La estructura `.agent/` y `.agents/` esté creada.
105
+ - [ ] El repositorio esté inicializado.
106
+
107
+ ---
108
+
109
+ ## El Ciclo O.P.E.R.A.
110
+
111
+ Una vez completada la inicialización, el proyecto avanza a través de las fases definidas. Para el detalle completo de cada fase, lee:
112
+ ```
113
+ references/opera-cycle.md
114
+ ```
115
+
116
+ ### Resumen de Fases OPERA
117
+
118
+ | Fase | Nombre | Foco | Entregable clave |
119
+ |------|--------|------|-------------------|
120
+ | **O** | Orquestar | Visión y lógica | Schema JSON en `genesis.md` |
121
+ | **P** | Probar | Conectividad | Scripts de test pasando |
122
+ | **E** | Estructurar | Construcción en 3 capas | SOPs + tools + tests de integración |
123
+ | **R** | Refinar | Refinamiento | Outputs validados contra templates |
124
+ | **A** | Automatizar | Despliegue | Triggers configurados + smoke test |
125
+
126
+ ### La Arquitectura de 3 Capas
127
+
128
+ | Capa | Ubicación | Función |
129
+ |------|-----------|---------|
130
+ | Arquitectura | `architecture/` | SOPs técnicos en Markdown. Si la lógica cambia, actualiza el SOP **antes** que el código. |
131
+ | Navegación | El Agente | Capa de razonamiento. Enruta datos entre SOPs y herramientas. |
132
+ | Herramientas | `tools/` | Scripts atómicos y deterministas. Variables en `.env`. Temporales en `.tmp/`. |
133
+
134
+ ---
135
+
136
+ ## Gobernanza y Recuperación
137
+
138
+ Para la matriz de autonomía (semáforo), el protocolo de auto-reparación y el sistema de rollback, lee:
139
+ ```
140
+ references/autonomy-and-recovery.md
141
+ ```
142
+
143
+ ### Resumen Rápido
144
+
145
+ **🔴 NIVEL ROJO** (Pide permiso): Modificar `genesis.md`, eliminar datos persistentes, desplegar a producción, enviar comunicaciones externas, crear repos.
146
+
147
+ **🟢 NIVEL VERDE** (Avanza): Crear/editar scripts, leer archivos, ejecutar tests, actualizar logs, auto-reparar (máx. 3 intentos).
148
+
149
+ ---
150
+
151
+ ## Estructura de Archivos
152
+
153
+ ```
154
+ proyecto/
155
+ ├── .agent/
156
+ │ ├── hub/
157
+ │ │ ├── agent.md # Instrucciones del agente
158
+ │ │ └── router.md # Enrutamiento a skills
159
+ │ └── skills/
160
+ │ └── _registry.md # Índice de skills instaladas
161
+ ├── .agents/
162
+ │ └── skills/
163
+ │ └── [skill-name]/
164
+ │ └── SKILL.md # Contenido de skills
165
+ ├── genesis.md # 📜 La Constitución
166
+ ├── task_plan.md # 🗺️ El Mapa (autogenerado)
167
+ ├── progress.md # 📓 El Diario (autogenerado)
168
+ ├── findings.md # 📖 La Biblioteca (autogenerado)
169
+ ├── CHANGELOG.md # 📋 El Historial
170
+ ├── architecture/ # 📘 El Manual (SOPs)
171
+ ├── tools/ # ⚙️ Los Motores
172
+ ├── templates/ # 📐 Las Plantillas
173
+ ├── .tmp/ # 🔧 El Taller
174
+ ├── .env # 🔑 Las Llaves
175
+ ├── project_control.json # 🎛️ Control Operativo
176
+ ├── README.md
177
+ ├── LICENSE
178
+ └── .gitignore
179
+ ```
180
+
181
+ ---
182
+
183
+ ## Checklist de Inicialización
184
+
185
+ ```markdown
186
+ - [ ] Preguntas de descubrimiento respondidas
187
+ - [ ] trackops init ejecutado
188
+ - [ ] genesis.md poblado con schema y reglas
189
+ - [ ] task_plan.md con Definition of Done por fase
190
+ - [ ] progress.md generado
191
+ - [ ] findings.md generado
192
+ - [ ] .agent/hub/agent.md configurado
193
+ - [ ] .agent/hub/router.md configurado
194
+ - [ ] .agent/skills/_registry.md creado
195
+ - [ ] Skills base instaladas (commiter, changelog-updater)
196
+ - [ ] Repositorio GitHub creado
197
+ - [ ] README.md generado
198
+ - [ ] LICENSE creada
199
+ - [ ] CHANGELOG.md inicializado
200
+ - [ ] .gitignore configurado
201
+ - [ ] Primer commit realizado
202
+ ```