Resources
9Install
npx skillscat add git-promog/agenda-deportiva Install via the SkillsCat registry.
SKILL.md
Skill: Equipo Promo (Multi-Agente)
Esta habilidad permite a Antigravity coordinar un equipo de agentes inteligentes trabajando en paralelo sobre el mismo proyecto, replicando la funcionalidad de "Agent Teams" de Claude Code.
Configuración del Entorno
El equipo utiliza una carpeta oculta en la raíz del proyecto para comunicarse:
.antigravity/team/tasks.json-> Lista maestra de tareas, estados y dependencias..antigravity/team/mailbox/-> Mensajes individuales (.msg)..antigravity/team/broadcast.msg-> Mensajes globales para todo el equipo..antigravity/team/locks/-> Semáforos para evitar edición simultánea de archivos.
Roles del Equipo
- Director (Promo): El líder. Divide el problema, asigna roles y aprueba planes.
- Arquitecto: Define la estructura y patrones antes de codificar.
- Especialista (Frontend/Backend/DB): Ejecuta tareas técnicas específicas.
- Investigador: Búsqueda de información, documentación, análisis de datos y análisis de mercado.
- Seo: Búsqueda de nuevas tendencias, análisis de proyecto y ejecución de mejoras SEO.
- Marketer: Análisis y creación de estrategias para campañas e ideas de mercadeo.
- Diseño: Creación de marca, logos, y diseño gráfico para elementos web y redes sociales.
- Copy: Creación de copywriting.
- Revisor (Devil's Advocate): Busca fallos, bugs y problemas de seguridad.
Protocolo de Orquestación Avanzada
1. Modo de Planificación (Gatekeeping)
Antes de realizar cambios significativos, cada agente debe enviar un Plan de Acción al buzón de Promo.
- El agente se mantiene en modo
READ_ONLYoPLANNINGhasta que Promo responda con un mensaje deAPPROVED.
2. Mensajería y Difusión (Broadcast)
- Mensaje Directo: Coordinación 1 a 1 entre especialistas.
- Broadcast: Promo puede escribir en
broadcast.msgpara dar nuevas directrices a todo el equipo simultáneamente.
3. Sincronización de Tareas y Dependencias
- Las tareas en
tasks.jsonpueden tener una lista dedependencies. Una IA no debe reclamar una tarea si sus dependencias no están en estadoCOMPLETED.
Reglas Críticas
- NUNCA editar un archivo si existe un .lock activo en
.antigravity/team/locks/. - Al completar una tarea, el agente debe liberar sus "locks" y notificar a Promo.
---
## 3. Script de Orquestación (team_manager.py)
*Este script automatiza la gestión de las tareas y la comunicación. Guárdalo como `team_manager.py`.*
```python
import json
import os
import sys
TEAM_DIR = ".antigravity/team"
def init_team():
"""Inicializa la infraestructura del equipo."""
os.makedirs(f"{TEAM_DIR}/mailbox", exist_ok=True)
os.makedirs(f"{TEAM_DIR}/locks", exist_ok=True)
tasks_path = f"{TEAM_DIR}/tasks.json"
if not os.path.exists(tasks_path):
with open(tasks_path, 'w') as f:
json.dump({"tasks": [], "members": []}, f, indent=2)
if not os.path.exists(f"{TEAM_DIR}/broadcast.msg"):
with open(f"{TEAM_DIR}/broadcast.msg", 'w') as f: f.write("")
print("✓ Infraestructura 'Equipo Promo' lista.")
def assign_task(title, assigned_to, deps=[]):
"""Asigna una nueva tarea con soporte para dependencias."""
path = f"{TEAM_DIR}/tasks.json"
with open(path, 'r+') as f:
data = json.load(f)
task = {
"id": len(data["tasks"]) + 1,
"title": title,
"status": "PENDING",
"plan_approved": False,
"assigned_to": assigned_to,
"dependencies": deps
}
data["tasks"].append(task)
f.seek(0)
json.dump(data, f, indent=2)
print(f"✓ Tarea {task['id']} ({title}) asignada a {assigned_to}.")
def broadcast(sender, text):
"""Envía un mensaje a todos los miembros del equipo."""
msg = {"de": sender, "tipo": "BROADCAST", "mensaje": text}
with open(f"{TEAM_DIR}/broadcast.msg", 'a') as f:
f.write(json.dumps(msg) + "\n")
print(f"✓ Mensaje global enviado por {sender}.")
def send_message(sender, receiver, text):
"""Envía un mensaje al buzón de un agente específico."""
msg = {"de": sender, "mensaje": text}
with open(f"{TEAM_DIR}/mailbox/{receiver}.msg", 'a') as f:
f.write(json.dumps(msg) + "\n")
print(f"✓ Mensaje enviado a {receiver}.")
if __name__ == "__main__":
if len(sys.argv) > 1:
cmd = sys.argv[1]
if cmd == "init": init_team()4. Cómo usarlo
- Activa el Líder: Pídele a Antigravity: "Usa la habilidad Equipo Promo para inicializar este proyecto".
- Reparte el trabajo: Promo dividirá el trabajo. Abre terminales nuevas para cada agente (Frontend, Marketer, etc.).
- Flujo de Planificación: Los agentes envían sus planes a Promo antes de empezar. Un equipo bien coordinado es imparable.