Aplica a OpenClaw v2026.2 | Requiere instalar los skills de
coding-agent,git-workflows,test-runnery tener acceso al repositorio de código del proyecto.
TL;DR: Revisión de código: el Agent analiza cambios de PR y genera informes de revisión. Pruebas automatizadas: "test-runner": {"frameworks": ["jest", "vitest"]}. Integración CI/CD: Webhook recibe eventos de GitHub/GitLab. Gestión multiproyecto: "projects": {"frontend": {...}, "backend": {...}}. Comando principal: openclaw agent --message "revisa este PR".
Objetivo práctico
Construir un asistente de programación con IA capaz de:
- Automatizar la revisión de código
- Ejecutar pruebas y reportar resultados
- Generar documentación de código
- Integrar pipelines CI/CD
- Cambiar contexto entre múltiples proyectos
Instalar skills necesarios
# Skills relacionados con programación
openclaw skill install coding-agent
openclaw skill install debug-pro
openclaw skill install git-workflows
openclaw skill install docker-essentials
# Skill de pruebas
openclaw skill install test-runner
Automatización de revisión de código
Configurar revisión de código
---
name: code-review-assistant
version: 1.0.0
description: Automated code review with OpenClaw
triggers:
- code review
- revisión de código
- review
- PR review
---
# Code Review Assistant
Automate code review for pull requests.
## Features
- Review code changes
- Check for common issues
- Suggest improvements
- Generate review comments
## Review Checklist
1. **Code Quality**
- Naming conventions
- Code structure
- Error handling
2. **Security**
- SQL injection
- XSS vulnerabilities
- Secret exposure
3. **Performance**
- N+1 queries
- Memory leaks
- Inefficient algorithms
4. **Best Practices**
- DRY principle
- SOLID principles
- Design patterns
Escenario de revisión de código
Usuario: Revisa este PR
Agent: De acuerdo, déjame revisar el PR #123...
[Obteniendo información del PR]
[Analizando cambios de código]
[Verificando problemas potenciales]
## Informe de revisión PR #123
### Resumen
- Rama: feature/user-search
- Cambios: +156 -23
- Archivos: 8
### Problemas encontrados
**Críticos** (1):
- 🚨 `auth.js:45` - Riesgo de almacenamiento de contraseña en texto plano
**Advertencias** (3):
- ⚠️ `search.js:23` - Posible inyección SQL
- ⚠️ `user.js:78` - Promise no manejada
- ⚠️ `utils.js:12` - API obsoleta
**Sugerencias** (5):
- 💡 Considerar añadir pruebas unitarias
- 💡 Usar constantes en lugar de números mágicos
- 💡 Sugerir añadir error boundary
- 💡 Considerar extraer método común
- 💡 Sugerir añadir anotaciones de tipo
### Aspectos positivos del código
- ✅ Buen nombrado de funciones
- ✅ División razonable de módulos
- ✅ Comentarios apropiados
¿Necesitas que genere los comentarios de revisión?
Pruebas automatizadas
Configuración del ejecutor de pruebas
{
"skills": {
"test-runner": {
"frameworks": ["jest", "vitest", "pytest"],
"coverage": {
"enabled": true,
"threshold": 80
},
"reporting": {
"format": "markdown",
"output": "test-report.md"
}
}
}
}
Escenario de pruebas
Usuario: Ejecuta las pruebas y reporta los resultados
Agent: Ejecutando pruebas...
[Ejecutando comando de pruebas]
[Recopilando resultados]
[Analizando cobertura]
## Informe de pruebas
### Resultados
- Total: 45 pruebas
- Pasadas: 42 ✅
- Fallidas: 2 ❌
- Omitidas: 1 ⏭️
### Pruebas fallidas
**1. UserSearch.test.js**
AssertionError: expected [] to equal [{id: 1, name: ’test’}]
Sugerencia: Verificar la conexión a base de datos o los datos mock
**2. Auth.test.js**
Timeout: Async callback not invoked within 5000ms
Sugerencia: Aumentar tiempo de espera o verificar lógica asíncrona
### Cobertura
| Archivo | Sentencias | Ramas | Funciones | Líneas |
|-----|-----|-----|-----|-----|
| auth.js | 85% | 78% | 90% | 85% |
| search.js | 72% | 65% | 80% | 70% |
| user.js | 90% | 85% | 95% | 90% |
| **Total** | **82%** | **76%** | **88%** | **82%** |
¿Necesitas que corrija las pruebas fallidas?
Integración CI/CD
Integración con GitHub Actions
# .github/workflows/openclaw-review.yml
name: OpenClaw Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup OpenClaw
run: npm install -g openclaw@latest
- name: Run Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
openclaw agent --message "Review PR #${{ github.event.pull_request.number }}" \
--output review-comment.md
- name: Post Comment
uses: actions/github-script@v6
with:
script: |
const fs = require('fs');
const comment = fs.readFileSync('review-comment.md', 'utf8');
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: comment
});
Despliegue automático
Usuario: Despliega a staging
Agent: Desplegando al entorno staging...
[Obteniendo código más reciente]
[Ejecutando pruebas]
[Construyendo proyecto]
[Desplegando al servidor]
## Informe de despliegue
### Información del despliegue
- Entorno: staging
- Rama: main
- Commit: abc1234
- Hora: 2026-02-26 15:30
### Pasos del despliegue
1. ✅ Obtener código
2. ✅ Instalar dependencias
3. ✅ Ejecutar pruebas (45/45 pasadas)
4. ✅ Construir proyecto
5. ✅ Desplegar al servidor
### Verificación de salud
- API: ✅ Normal
- Base de datos: ✅ Conexión correcta
- Redis: ✅ Conexión correcta
### Direcciones de acceso
- URL: https://staging.example.com
- API: https://api-staging.example.com
¡Despliegue exitoso!
Gestión multiproyecto
Configuración de proyectos
{
"projects": {
"frontend": {
"path": "~/projects/frontend",
"skills": ["coding-agent", "test-runner"],
"context": "AGENTS.md"
},
"backend": {
"path": "~/projects/backend",
"skills": ["coding-agent", "docker-essentials"],
"context": "AGENTS.md"
},
"mobile": {
"path": "~/projects/mobile",
"skills": ["coding-agent"],
"context": "AGENTS.md"
}
}
}
Cambio de proyecto
Usuario: Cambiar al proyecto backend
Agent: Se ha cambiado al proyecto backend.
Información del proyecto actual:
- Nombre: backend
- Ruta: ~/projects/backend
- Tecnología: Python/FastAPI
- Último commit: Añadir autenticación de usuarios
¿En qué puedo ayudarte?
Generación de código
Generar código boilerplate
Usuario: Crea una API CRUD para el modelo User
Agent: De acuerdo, voy a crear la API CRUD para el modelo User...
[Analizando estructura de código existente]
[Generando archivos de código]
Se han generado los siguientes archivos:
**1. models/user.py**
```python
from pydantic import BaseModel
from datetime import datetime
class User(BaseModel):
id: int
name: str
email: str
created_at: datetime
updated_at: datetime
class UserCreate(BaseModel):
name: str
email: str
class UserUpdate(BaseModel):
name: str | None = None
email: str | None = None
2. routers/users.py
from fastapi import APIRouter, HTTPException
from models.user import User, UserCreate, UserUpdate
router = APIRouter(prefix="/users", tags=["users"])
@router.get("/", response_model=list[User])
async def list_users(): ...
@router.get("/{user_id}", response_model=User)
async def get_user(user_id: int): ...
@router.post("/", response_model=User)
async def create_user(user: UserCreate): ...
@router.put("/{user_id}", response_model=User)
async def update_user(user_id: int, user: UserUpdate): ...
@router.delete("/{user_id}")
async def delete_user(user_id: int): ...
3. tests/test_users.py
from fastapi.testclient import TestClient
def test_list_users(): ...
def test_create_user(): ...
def test_update_user(): ...
def test_delete_user(): ...
¿Necesitas que ejecute las pruebas para verificar?
## Generación de documentación
### Documentación de API
Usuario: Genera documentación para esta API
Agent: Analizando los endpoints de la API…
[Escaneando archivos de rutas] [Extrayendo información de la API] [Generando documentación]
Documentación de la API
Módulo de usuarios
GET /users
Obtener lista de usuarios
Parámetros
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
| page | int | No | Número de página |
| limit | int | No | Cantidad por página |
Respuesta
{
"data": [User],
"total": int,
"page": int,
"limit": int
}
POST /users
Crear usuario
Cuerpo de la solicitud
{
"name": "string",
"email": "string"
}
Respuesta
{
"id": 1,
"name": "string",
"email": "string",
"created_at": "2026-02-26T00:00:00Z",
"updated_at": "2026-02-26T00:00:00Z"
}
¿Guardar en docs/api.md?
## Solución de problemas
### Problemas de CI/CD
```bash
# Verificar estado de CI/CD
openclaw ci status
# Ver registros de CI/CD
openclaw ci logs --last
# Reintentar trabajo fallido
openclaw ci retry
Problemas de código
# Analizar problemas de código
openclaw analyze --project backend
# Generar sugerencias de corrección
openclaw suggest --file auth.js
Resumen
Al construir un asistente de programación con OpenClaw:
- Revisión de código: Revisión automatizada de PRs
- Ejecución de pruebas: Pruebas automatizadas y reportes
- Integración CI/CD: Flujo de despliegue automatizado
- Gestión multiproyecto: Cambio rápido de contexto
- Generación de código: Código boilerplate generado automáticamente
- Generación de documentación: Documentación de API generada automáticamente
Registro de actualizaciones:
- 2026-02-26: Publicación inicial
Navegación de la serie: