Iniciar sesión

Smart Actions

Smart Actions es una función poderosa que te permite crear flujos de trabajo de automatización personalizados a través de archivos de configuración JSON/YML. Al colocar definiciones de acciones en la carpeta .supercode/actions/ (en la raíz del proyecto o el directorio de inicio), puedes crear integraciones sofisticadas que modifiquen prompts, interactúen con servicios externos y personalicen el comportamiento de la IA de maneras que se adapten perfectamente a tu flujo de trabajo de desarrollo.

Smart Actions

Una acción es una operación universal que se puede activar de múltiples maneras: a través de la interacción directa del usuario haciendo clic en botones en varios menús (como leerás a continuación), a través de disparadores como comandos de voz, o configurada como acciones automáticas en situaciones específicas. Usando acciones, puedes modificar tu solicitud actual, el prompt del sistema, el modelo seleccionado y el modo de agente elegido de innumerables formas diferentes.

Estas modificaciones pueden variar desde operaciones muy simples como agregar texto a tu solicitud actual o agregar información al prompt del sistema, hasta pipelines complejos donde tu prompt se envía a tu propio servidor para procesamiento personalizado antes de regresar a Cursor. Las acciones representan un subsistema increíblemente poderoso de Supercode que te permite reescribir casi por completo cómo el agente de IA procesa tus solicitudes.

Con las acciones, puedes crear cualquier cosa, desde simples comodidades como un bonito botón con un prompt predefinido y un modelo que ejecute una solicitud específica, hasta enormes flujos de trabajo de múltiples capas que involucren la ejecución secuencial de múltiples solicitudes por diferentes modelos. Las posibilidades son prácticamente ilimitadas.

Creación de acciones personalizadas

Las acciones se definen en archivos JSON/YML en el directorio .supercode/actions/. Cada archivo JSON/YML sirve como una colección de acciones relacionadas, donde puedes agrupar acciones similares o temáticamente conectadas. Dentro de cada archivo, la estructura es un objeto donde las claves representan el nombre de acción único y los valores definen la configuración de la acción. Las acciones pueden realizar múltiples tipos de operaciones, desde simples modificaciones de prompts hasta integraciones complejas con servicios externos y selección dinámica de modelos.

Configuración básica de acción

Aquí hay un ejemplo simple que muestra la estructura básica de las acciones:

{
  "Security Review": {
    "icon": "🔒",
    "menu": "buttons",
    "mode": "SC:Architect",
    "systemPrompt": "You are a security expert. Focus on input validation, authentication, and potential attack vectors.",
    "prompt": "$prompt \n\n Implement it with a focus on security."
  },
  "Performance Analysis": {
    "icon": "⚡",
    "menu": ["prompts", "buttons"],
    "prompt": "Analyze the code for performance bottlenecks and suggest optimizations.",
    "model": "o3",
    "run": true
  }
}
  • "prompts": Aparece en el menú de prompts de usuario junto a los prompts personalizados
  • "enhancers": Disponible en el menú desplegable de mejoradores personalizados para flujos de trabajo de mejora de prompts
  • "buttons": Se muestra como iconos de emoji en la barra de herramientas de Cursor & Antigravity para acceso rápido

Puedes especificar múltiples tipos de menú usando un array: ["prompts", "buttons"]

Updaters: modificación dinámica de valores

Smart Actions admite "updaters" poderosos que pueden modificar dinámicamente prompts, prompts del sistema, modelos y modos. Los updaters pueden usar variables como $prompt, $model y $mode para hacer referencia a los valores actuales y transformarlos.

Tipos de updaters

  • Simple: Reemplazar con un valor de cadena estática (predeterminado al usar cadenas simples)
  • URL: Enviar valores actuales a un servidor web y usar la respuesta como el nuevo valor
  • Command: Ejecutar un comando de shell con valores actuales y usar stdout como el nuevo valor
  • AI: Usar IA para transformar los valores actuales basándose en un prompt del sistema
{
  "Add Project Context": {
    "icon": "🌐",
    "menu": "enhancers",
    "prompt": {
      "url": "https://your-server.com/api/enhance"
    }
  },
  "Security Focus": {
    "icon": "🔐",
    "menu": "enhancers",
    "prompt": {
      "ai": "Add security considerations and best practices to this prompt: $prompt"
    }
  }
}

Uso de variables en updaters

Los updaters pueden hacer referencia al contexto actual usando variables con signo de dólar. Estas variables te permiten crear transformaciones dinámicas que funcionan con el estado actual:

Variables disponibles

  • $prompt - El texto del prompt actual
  • $model - El modelo de IA seleccionado actualmente
  • $mode - El modo actual (si hay alguno)
  • $systemPrompt - El prompt del sistema actual
{
  "Add Debug Logging": {
    "icon": "🐛",
    "menu": "prompts",
    "prompt": "Add comprehensive debug logging to this code. Original request: $prompt",
    "systemPrompt": "Focus on adding meaningful log statements that help with debugging. Current model: $model"
  },
  "Convert to TypeScript": {
    "icon": "🔷",
    "menu": "buttons",
    "prompt": {
      "ai": "Convert the following code to TypeScript with proper type definitions: $prompt"
    },
    "model": "claude-3-5-sonnet"
  }
}

Ejemplos avanzados de updaters

Aquí hay ejemplos más sofisticados usando diferentes tipos de updaters:

{
  "Context-Aware Assistant": {
    "icon": "🤖",
    "menu": "prompts",
    "systemPrompt": {
      "ai": "Create a system prompt optimized for the current model ($model) and mode ($mode)"
    },
    "prompt": "Help me with: $prompt"
  },
  "Test External": {
    "menu": "buttons",
    "icon": "🚀",
    "prompt": {
      "url": "https://api.supercode.sh/prompt-echo"
    },
    "systemPrompt": "You must start your response with 'Hello, world!'",
    "run": true
  }
}

Comandos de voz e integración con IDE

Las acciones también pueden integrarse con comandos de voz y operaciones de IDE:

{
  "Run Tests": {
    "voiceCommand": ["run tests", "execute tests", "test project"],
    "ideCommand": {
      "name": "workbench.action.tasks.runTask",
      "args": ["npm: test"]
    }
  },
  "Quick Fix": {
    "icon": "⚡",
    "menu": "prompts",
    "prompt": "Fix any obvious errors in the selected code",
    "run": true
  }
}

Ejemplo completo de acción

Aquí hay un ejemplo completo que demuestra múltiples características de Smart Actions:

{
  "Full-Stack Code Review": {
    "icon": "🔍",
    "menu": ["prompts", "buttons"],
    "model": {
      "ai": "Select the best model for code review based on current context: $model"
    },
    "systemPrompt": {
      "ai": "Create a comprehensive system prompt for code review that considers the current project context and selected model ($model)"
    },
    "prompt": {
      "url": "https://your-company.com/api/enhance-review-prompt"
    },
    "voiceCommand": ["review code", "full stack review"],
    "actions": ["security_scan", "performance_check"]
  }
}

Workflows: ejecución secuencial de acciones

Una de las características más poderosas de Smart Actions es la capacidad de crear Workflows a través de la ejecución automática secuencial. Cuando una acción incluye "run": true o "instantRun": true, el prompt actual (incluidas todas las modificaciones anidadas) se envía automáticamente al agente de Cursor para su ejecución inmediatamente después de que se complete la acción.

Ejecución automática

Cuando creas un Workflow que consta de múltiples acciones, cada una con "run": true, Supercode activará automáticamente la siguiente solicitud después de la finalización exitosa de la anterior. Esto crea flujos de trabajo de desarrollo automatizados increíblemente poderosos.

Por ejemplo, puedes usar un modo arquitectónico con un modelo de pensamiento profundo en una acción para diseñar la implementación de funciones, luego otra acción realizará la implementación con un modelo más simple. Una acción de Workflow puede entonces llamar secuencialmente a la primera acción para diseñar la solución y automáticamente cambiar a la segunda acción para la implementación sin requerir tu intervención manual.

{
  "Architecture Design": {
    "icon": "🏗️",
    "mode": "SC:Architect",
    "model": "o3",
    "prompt": "Design the architecture and implementation plan for: $prompt",
    "systemPrompt": "Focus on system design, component relationships, and implementation strategy.",
    "run": true
  },
  "Implementation": {
    "icon": "⚙️",
    "model": "claude-4-sonnet",
    "prompt": "Implement the feature based on the architectural design: $prompt",
    "systemPrompt": "Focus on clean, maintainable code implementation.",
    "run": true
  },
  "Full Feature Workflow": {
    "icon": "🚀",
    "menu": ["prompts", "buttons"],
    "actions": ["Architecture Design", "Implementation"],
    "voiceCommand": ["build feature", "full workflow"]
  }
}

Workflows anidados

Usando este mecanismo, puedes crear Workflows anidados que permiten al agente de Cursor realizar secuencias complejas de operaciones durante decenas de minutos. Cada paso en el flujo de trabajo puede usar diferentes modelos, modos y prompts del sistema optimizados para tareas específicas, creando pipelines de automatización sofisticados que se adaptan a tu proceso de desarrollo.

{
  "Code Review & Fix": {
    "model": "claude-4-opus",
    "prompt": "Review this code for issues: $prompt",
    "systemPrompt": "Identify bugs, security issues, and improvement opportunities.",
    "run": true
  },
  "Apply Fixes": {
    "model": "claude-4-sonnet",
    "prompt": "Apply the suggested fixes from the review: $prompt",
    "run": true
  },
  "Generate Tests": {
    "model": "claude-4-sonnet",
    "prompt": "Create comprehensive tests for the fixed code: $prompt",
    "run": true
  },
  "Complete Code Pipeline": {
    "icon": "🔄",
    "menu": ["buttons"],
    "actions": ["Code Review & Fix", "Apply Fixes", "Generate Tests"],
    "voiceCommand": ["run pipeline", "complete workflow"]
  }
}

Beneficios y casos de uso

Smart Actions desbloquea poderosas posibilidades de automatización:

  • Crear asistentes de IA específicos de dominio para diferentes partes de tu aplicación
  • Integrar con herramientas y bases de conocimiento específicas de la empresa a través de llamadas API y RAG
  • Automatizar flujos de trabajo de desarrollo complejos de múltiples pasos

Con Smart Actions, Supercode se convierte en una plataforma para crear flujos de trabajo de desarrollo sofisticados con IA que se adaptan a tus requisitos únicos e se integran sin problemas con tus herramientas existentes y procesos.