| name | linear |
| description | Manage Linear issues with automatic team routing, labels, and status updates. Use when "create issue", "create ticket", "Linear task", "update issue status", "list teams", "track task in Linear", "project management", "attach to project", or "create Linear project". |
| metadata | {"openclaw":{"emoji":"📋","requires":{"env":["LINEAR_API_KEY"]}}} |
Linear Skill
Rick puede gestionar issues en Linear con routing automático de equipos Umbral, labels inteligentes y actualizaciones de estado.
Requisitos
LINEAR_API_KEY: API key de Linear (Settings → API → Personal API keys).
Tasks disponibles
1. Crear issue
Task: linear.create_issue
{
"title": "Revisar landing page de Marketing",
"description": "Actualizar copy y CTAs según brief Q2.",
"team_key": "marketing",
"priority": 2
}
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|
title | str | sí | Título del issue |
description | str | no | Descripción detallada |
team_key | str | no | Clave del equipo Umbral (ej. "marketing", "asesoria"). Se infiere del título si se omite |
team_id | str | no | UUID del equipo en Linear. Si no se pasa, se resuelve por team_name |
team_name | str | no | Nombre del equipo en Linear (default: "Umbral") |
priority | int | no | 0 Sin prioridad, 1 Urgente, 2 Alta, 3 Media, 4 Baja |
add_team_labels | bool | no | Adjuntar labels del equipo (default: true) |
Respuesta
{
"ok": true,
"id": "uuid-123",
"identifier": "UMB-5",
"title": "Revisar landing page de Marketing",
"url": "https://linear.app/umbral/issue/UMB-5",
"routing": {
"team_key": "marketing",
"labels_applied": ["Marketing", "Marketing Supervisor"],
"supervisor": "Marketing Supervisor",
"inferred": false,
"linear_team_id": "uuid-team"
}
}
2. Listar equipos
Task: linear.list_teams
{}
Devuelve la lista de equipos configurados en Linear.
Respuesta
{
"ok": true,
"teams": [
{"id": "uuid-team", "name": "Umbral"}
]
}
3. Actualizar estado de issue
Task: linear.update_issue_status
{
"issue_id": "uuid-123",
"state_name": "Done",
"comment": "Tarea completada correctamente.",
"team_id": "uuid-team"
}
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|
issue_id | str | sí | UUID del issue en Linear |
state_name | str | no | Nombre del workflow state (ej. "Done", "Cancelled", "In Progress") |
comment | str | no | Comentario a agregar al issue |
team_id | str | no | Necesario para resolver state_name → state_id |
4. Listar proyectos
Task: linear.list_projects
{
"query": "Proyecto Embudo",
"limit": 20
}
Devuelve proyectos de Linear filtrables por nombre.
5. Crear proyecto
Task: linear.create_project
{
"name": "Proyecto Embudo Ventas",
"team_name": "Umbral",
"description": "Proyecto operativo para el embudo de ventas."
}
Notas:
- Si
if_exists_return=true (default), retorna el proyecto existente por nombre en vez de duplicarlo.
- Requiere un
team_id o un team_name resoluble.
- Antes de crear un proyecto canonico de Agent Stack, reutilizar el alias historico si ya existe y preferir
LINEAR_AGENT_STACK_PROJECT_ID en produccion.
6. Asociar issue a proyecto
Task: linear.attach_issue_to_project
{
"issue_id": "uuid-del-issue",
"project_name": "Proyecto Embudo Ventas",
"create_project_if_missing": true,
"team_name": "Umbral"
}
Notas:
- Permite corregir issues que existan pero hayan quedado fuera del project view.
- Si se usa
project_name y no existe, puede crear el proyecto automáticamente.
7. Listar issues de un proyecto
Task: linear.list_project_issues
{
"project_name": "Proyecto Embudo Ventas",
"limit": 50
}
Devuelve las issues actualmente asociadas a un proyecto.
7b. Publicar update de proyecto
Task: linear.create_project_update
{
"project_name": "Proyecto Embudo Ventas",
"title": "Cierre de slice CTA",
"body": "Se cerro la definicion provisional de CTA y queda pendiente validar captura.",
"health": "onTrack"
}
Usala para dejar trazabilidad ejecutiva en el proyecto de Linear sin abrir una issue nueva.
8. Publicar follow-up interno de Agent Stack
Task: linear.publish_agent_stack_followup
Usar esta task cuando el pendiente venga de:
- auditorias del repo
- drift operativo
- deuda tecnica u operativa del propio stack
- follow-ups de monitoreo o analisis sobre Worker, Dispatcher, OpenClaw, Redis, Notion, Linear, VPS o VM
Ejemplo:
{
"title": "Unificar dispatcher vivo en VPS",
"summary": "Se detectaron dos procesos dispatcher.service activos.",
"evidence": "ps aux mostro dos procesos Python del dispatcher; systemctl no reflejaba ese estado.",
"impact": "Riesgo de doble consumo y drift operativo silencioso.",
"next_action": "Dejar un solo metodo de arranque y matar el duplicado.",
"kind": "operational_debt",
"designated_agent": "codex"
}
Notas:
- publica siempre en el proyecto canónico
Mejora Continua Agent Stack
- no debe usarse para proyectos externos ni entregables de cliente
9. Tomar una issue de Agent Stack
Task: linear.claim_agent_stack_issue
Ejemplo:
{
"identifier": "UMB-123",
"agent_name": "rick",
"comment": "Voy a tomar el slice de deploy y dejar trazabilidad."
}
Notas:
- agrega una label
Agente: <Nombre>
- puede mover la issue a
In Progress
- solo acepta issues del proyecto canónico de Agent Stack
10. Listar cola interna de Agent Stack
Task: linear.list_agent_stack_issues
Ejemplo:
{
"only_unclaimed": true,
"limit": 20
}
Sirve para que Rick u otros agentes derivados de OpenClaw vean qué pendientes internos del stack todavía no tienen owner operativo.
Notas
- El routing automático infiere el equipo Umbral a partir del título y descripción usando keyword scoring.
- Los labels del equipo se crean automáticamente en Linear si no existen.
- La config de equipos está en
config/teams.yaml.
- Todas las tasks se encolan vía el Dispatcher a Redis y las ejecuta el Worker.
- Para proyectos oficiales, no basta con crear la issue: hay que dejarla asociada al project correcto en Linear.
- Para deuda y mejora interna del repo, usar el proyecto canónico
Mejora Continua Agent Stack.