# Extensibilidad y personalización (/es/docs/verdent-for-vscode/advanced-features/extensibility)

> Amplía las capacidades de Verdent mediante subagentes personalizados, reglas e integración con MCP



### Lo que aprenderás [#lo-que-aprenderás]

Cómo personalizar y ampliar Verdent for VS Code usando tres potentes métodos de extensibilidad: subagentes personalizados, sistemas de reglas e integración con MCP.

***

## Descripción general de la extensibilidad [#descripción-general-de-la-extensibilidad]

Verdent for VS Code ofrece tres métodos principales para ampliar sus capacidades y personalizar su comportamiento:

1. **Subagentes personalizados**: crea agentes de IA especializados para tareas específicas de un dominio
2. **Sistema de reglas**: guía el comportamiento mediante VERDENT.md, AGENTS.md y plan\_rules.md
3. **Integración con MCP**: conecta herramientas y servicios externos a través del Model Context Protocol

Cada método responde a necesidades distintas de personalización y se puede combinar para optimizar el flujo de trabajo de forma integral.

***

## Método 1: subagentes personalizados [#método-1-subagentes-personalizados]

### Descripción general [#descripción-general]

Los subagentes personalizados son agentes de IA especializados con prompts de sistema dedicados, políticas de invocación y experiencia específica para cada tarea. Amplían los subagentes integrados de Verdent (`@Verifier`, `@Explorer`, `@Code-reviewer`) con capacidades específicas del proyecto.

**Ubicación de almacenamiento:** `~/.verdent/subagents/`

### Creación de subagentes personalizados [#creación-de-subagentes-personalizados]

**Estructura de archivos:**

```markdown
---
name: subagent-name
description: One-line purpose description
---
# System Prompt

[Behavior definition, personality, task interpretation approach]

Invocation policy (strict|flexible): Policy description

When to use:
- Scenario 1
- Scenario 2

When NOT to use:
- Avoid scenario 1
- Avoid scenario 2
```

**Métodos de creación:**

**Método 1: menú de configuración**

1. Configuración → Subagentes
2. "Crear nuevo subagente"
3. Define el nombre, la descripción y el prompt de sistema
4. Configura la política de invocación
5. Guarda en `~/.verdent/subagents/`

**Método 2: creación directa de archivos**

1. Ve a `~/.verdent/subagents/`
2. Crea un archivo markdown (por ejemplo, `security-reviewer.md`)
3. Agrega el frontmatter YAML
4. Escribe el prompt de sistema y las pautas de uso

### Casos de uso de los subagentes personalizados [#casos-de-uso-de-los-subagentes-personalizados]

**Experiencia específica de un dominio:**

* **Cálculos financieros:** cumplimiento fiscal, regulaciones financieras
* **Cumplimiento de HIPAA en el sector salud:** estándares de manejo de datos de pacientes
* **Criptografía:** mejores prácticas de implementación de seguridad

**Flujos de trabajo específicos del equipo:**

* **Aplicadores de estilo de código:** estándares de codificación del equipo más allá de las reglas del linter
* **Consistencia de la documentación:** garantiza que la documentación siga las plantillas del equipo
* **Auditores de dependencias:** supervisan los paquetes de terceros frente a listas aprobadas

**Especialistas en stacks tecnológicos:**

* **Optimizadores de rendimiento de React:** identifican renderizados innecesarios
* **Optimizadores de consultas SQL:** analizan y mejoran el rendimiento de la base de datos
* **Revisores de configuración de Docker:** validan las prácticas de contenedorización

**Aseguramiento de calidad:**

* **Analizadores de cobertura de pruebas:** identifican rutas de código sin probar
* **Revisores de manejo de errores:** garantizan un manejo de excepciones completo
* **Aplicadores de estándares de registro:** verifican las prácticas de registro

### Ejemplo: generador de documentación de API [#ejemplo-generador-de-documentación-de-api]

```markdown
---
name: api-documenter
description: Generates comprehensive API documentation from code
---
# System Prompt

You are an API documentation specialist.

Documentation approach:
- Extract endpoints, parameters, and responses from code
- Generate OpenAPI/Swagger specifications
- Include usage examples and error codes
- Document authentication requirements

Output format:
- Markdown tables for endpoints
- Code examples in multiple languages
- Authentication flow diagrams

Invocation policy (strict): Only run when explicitly requested.

When to use:
- User requests API documentation generation
- Need to document REST/GraphQL endpoints
- Creating developer guides

When NOT to use:
- Inline code comments
- User-facing documentation
```

**Uso:**

```
@api-documenter document the /api/users endpoints
```

### Ejemplo: revisor de migraciones de base de datos [#ejemplo-revisor-de-migraciones-de-base-de-datos]

```markdown
---
name: migration-reviewer
description: Reviews database migrations for safety and correctness
---
# System Prompt

You are a database migration safety specialist.

Review checklist:
- Check for destructive operations (DROP, DELETE without WHERE)
- Verify reversible migrations (up/down compatibility)
- Identify potential data loss scenarios
- Validate index creation strategies
- Check for blocking operations on large tables

Risk assessment:
- Categorize migrations: low/medium/high risk
- Recommend staging environment testing for high-risk changes
- Suggest rollback procedures

Invocation policy (strict): Only run when explicitly requested.

When to use:
- User creates or modifies migration files
- Pre-deployment migration review
- Investigating migration failures

When NOT to use:
- Schema design from scratch
- Query optimization
```

### Políticas de invocación [#políticas-de-invocación]

**Política estricta:**

* El subagente solo se ejecuta cuando se solicita explícitamente mediante una @mención
* Mantienes el control total sobre la invocación
* Ideal para subagentes especializados de uso ocasional

**Política flexible:**

* Permite la invocación automática según la detección de patrones de tareas
* El agente principal enruta automáticamente las tareas coincidentes
* Ideal para subagentes bien definidos y de uso frecuente

***

## Método 2: sistema de reglas [#método-2-sistema-de-reglas]

### Descripción general [#descripción-general-1]

Los archivos de reglas son documentos Markdown que guían el comportamiento de Verdent, el formato de salida y la toma de decisiones sin necesidad de modificar el código. Tres tipos de reglas ofrecen una personalización integral:

| Tipo de regla      | Alcance                          | Prioridad     | Almacenamiento               |
| ------------------ | -------------------------------- | ------------- | ---------------------------- |
| **VERDENT.md**     | Global en todos los proyectos    | Media         | `~/.verdent/VERDENT.md`      |
| **AGENTS.md**      | Específico del proyecto (equipo) | Más alta      | Directorio raíz del proyecto |
| **plan\_rules.md** | Formato de Plan Mode             | Independiente | `~/.verdent/plan_rules.md`   |

### Precedencia de las reglas [#precedencia-de-las-reglas]

Cuando se producen conflictos:

1. **AGENTS.md** (más alta): las reglas del proyecto prevalecen sobre las preferencias del usuario
2. **VERDENT.md** (media): se aplica cuando no hay conflicto con el proyecto
3. **Comportamiento predeterminado** (más baja): los valores predeterminados integrados de Verdent

**Ejemplo de conflicto:**

```
VERDENT.md: "Use 2-space indentation"
AGENTS.md: "Use 4-space indentation for this project"
→ Result: 4-space indentation (project rules win)
```

### VERDENT.md (preferencias globales) [#verdentmd-preferencias-globales]

**Propósito:** estilo de codificación personal y preferencias en todos los proyectos

**Ejemplo:**

```markdown
# User Rules

## TypeScript Preferences
- Use strict mode in tsconfig.json
- Prefer interfaces over type aliases
- Include return types on all functions

## Code Organization
- One component per file
- Named exports instead of default exports
- Organize imports: external, internal, types

## Documentation
- TSDoc comments for public APIs
- Include @param and @returns tags

## Communication
- Provide explanations before showing code
- Highlight breaking changes explicitly
```

**Acceso:** Configuración → Reglas → Reglas de usuario

### AGENTS.md (reglas del proyecto) [#agentsmd-reglas-del-proyecto]

**Propósito:** estándares de codificación para todo el equipo y convenciones específicas del proyecto

**Ejemplo:**

```markdown
# AGENTS.md

## Dev environment tips
- Use `pnpm dlx turbo run where <project_name>` to navigate
- Run `pnpm install --filter <project_name>` for dependencies
- Check package.json name field for correct package name

## Testing instructions
- Run `pnpm turbo run test --filter <project_name>`
- From package root: `pnpm test`
- Focus on one test: `pnpm vitest run -t "<test name>"`
- Fix all errors before merge

## PR instructions
- Title format: [<project_name>] <Title>
- Always run `pnpm lint` and `pnpm test` before committing
```

**Acceso:** directorio raíz del proyecto (bajo control de versiones)

### plan\_rules.md (personalización del plan) [#plan_rulesmd-personalización-del-plan]

**Propósito:** controlar el formato de salida y el nivel de detalle de Plan Mode

**Ejemplo:**

```markdown
# Plan Rules

## Plan Structure
- Start with brief summary (2-3 sentences)
- Include estimated time for each major step
- List prerequisites before implementation steps
- Identify potential risks

## Level of Detail
- Break tasks into subtasks of 15-30 minutes
- Include specific file paths for modifications
- List functions/components to create/modify

## Format
- Use numbered lists for sequential steps
- Use bullet points for options
- Include code snippets for complex changes
```

**Acceso:** Configuración → Reglas → Reglas del plan

### Mejores prácticas para escribir reglas [#mejores-prácticas-para-escribir-reglas]

**Sé específico y directivo:**

```
✓ Good: "Always use async/await for asynchronous operations"
✗ Vague: "Try to use modern JavaScript"
```

**Organiza de forma lógica:**

* Agrupa las reglas relacionadas bajo encabezados de sección
* Separa los temas (estilo, pruebas, documentación, seguridad)
* Usa una estructura coherente en todos los archivos

**Prioriza las reglas críticas:**

* Coloca las reglas importantes al inicio de cada sección
* Usa énfasis para los estándares no negociables: `**NEVER** commit credentials`
* Concéntrate en la prevención de errores y la seguridad

**Comprueba la eficacia:**

* Inicia una nueva conversación para verificar la aplicación de las reglas
* Refina las reglas según el comportamiento real del agente
* Actualízalas a medida que el proyecto evoluciona

***

## Método 3: integración con MCP [#método-3-integración-con-mcp]

### Descripción general [#descripción-general-2]

El Model Context Protocol (MCP) amplía Verdent al conectar herramientas, fuentes de datos y servicios externos. Los servidores MCP actúan como puentes entre Verdent y los sistemas externos.

**Configuración:** `~/.verdent/mcp.json` mediante Configuración → Servidores MCP

### Capacidades de MCP [#capacidades-de-mcp]

**Acceso a sistemas externos:**

* Herramientas de consulta de bases de datos (PostgreSQL, MySQL, MongoDB)
* APIs de servicios en la nube (AWS, Azure, GCP)
* Gestión de proyectos (Jira, Linear, Asana)
* Pipelines de CI/CD (Jenkins, GitHub Actions)
* Servicios de monitoreo (Datadog, New Relic)

**Desarrollo de herramientas personalizadas:**
Crea servidores MCP para sistemas propietarios:

* Integraciones internas de API
* Puentes con sistemas heredados
* Fuentes de datos especializadas
* Herramientas de automatización de flujos de trabajo

### MCP frente a subagentes personalizados frente a reglas [#mcp-frente-a-subagentes-personalizados-frente-a-reglas]

| Necesidad                                | Mejor método            | Por qué                                                |
| ---------------------------------------- | ----------------------- | ------------------------------------------------------ |
| Análisis especializado con IA            | Subagente personalizado | Requiere razonamiento de IA con contexto personalizado |
| Aplicación de estándares de codificación | Reglas (AGENTS.md)      | Guía de comportamiento simple                          |
| Acceso a bases de datos externas         | Integración con MCP     | Requiere conexión con un sistema externo               |
| Preferencias personales de codificación  | Reglas (VERDENT.md)     | Personalización global del comportamiento              |
| Convenciones del equipo                  | Reglas (AGENTS.md)      | Estándares compartidos del proyecto                    |
| Integración con API                      | Integración con MCP     | Interacción con servicios externos                     |
| Personalización del formato del plan     | Reglas (plan\_rules.md) | Control de salida de Plan Mode                         |
| Experiencia de dominio (finanzas, salud) | Subagente personalizado | Aplicación de conocimiento especializado               |

### Ejemplo: combinación de los tres métodos [#ejemplo-combinación-de-los-tres-métodos]

**Escenario:** equipo de desarrollo full-stack con requisitos estrictos de cumplimiento

**Subagente personalizado:**

```markdown
---
name: compliance-auditor
description: Audits code for regulatory compliance (SOC2, HIPAA)
---
[System prompt for compliance checking]
```

**AGENTS.md (reglas del proyecto):**

```markdown
## Security Standards
- All API endpoints must validate inputs
- Never log PII or credentials
- Encrypt sensitive data at rest and in transit

## Compliance
- Run @compliance-auditor before all PRs
- Document data retention policies in code comments
- Include audit trails for data access
```

**Integración con MCP:**

* **Servidor MCP de base de datos de cumplimiento:** verifica las operaciones frente a las reglas de cumplimiento
* **Servidor MCP de registro de auditoría:** registra todo el acceso a datos sensibles

**Flujo de trabajo:**

```
User: "Create endpoint for user profile updates"
Verdent: [Applies AGENTS.md rules]
         [Generates secure endpoint with validation]
         [Automatically invokes @compliance-auditor]
         [Uses MCP to log operation in audit system]
         Result: Compliant, secure, audited endpoint
```

***

## Mejores prácticas de extensibilidad [#mejores-prácticas-de-extensibilidad]

### Empieza simple y escala [#empieza-simple-y-escala]

**Adopción progresiva:**

1. **Fase 1:** comienza con reglas básicas (VERDENT.md o AGENTS.md)
2. **Fase 2:** agrega subagentes personalizados para tareas especializadas repetidas
3. **Fase 3:** integra MCP para conexiones con sistemas externos

### Combina los métodos de forma estratégica [#combina-los-métodos-de-forma-estratégica]

**Ejemplos de sinergia:**

**Reglas + subagentes:**

* AGENTS.md especifica cuándo invocar subagentes personalizados
* Las reglas hacen cumplir que se sigan las recomendaciones del subagente

**Reglas + MCP:**

* AGENTS.md define qué servidores MCP están aprobados para su uso
* Las reglas especifican cuándo se requiere acceso a datos externos

**Subagentes + MCP:**

* El subagente personalizado usa herramientas MCP para acceder a sistemas externos
* El subagente interpreta los resultados de MCP con experiencia especializada

### Documenta las personalizaciones [#documenta-las-personalizaciones]

**Documentación del equipo:**
Para subagentes personalizados y reglas del proyecto (AGENTS.md):

* Documenta la justificación de las reglas o subagentes no evidentes
* Proporciona ejemplos del uso correcto
* Incluye guías de resolución de problemas
* Mantenlos bajo control de versiones junto con el código

**Documentación personal:**
Para VERDENT.md y subagentes personales:

* Comenta las reglas complejas explicando el razonamiento
* Mantén las reglas organizadas y actualizadas
* Elimina las reglas obsoletas con prontitud

### Comprueba a fondo [#comprueba-a-fondo]

**Proceso de validación:**

1. Crea la personalización (subagente/regla/configuración de MCP)
2. Inicia una conversación nueva para probarla
3. Verifica que el comportamiento coincida con lo esperado
4. Refina según los resultados
5. Documenta los patrones exitosos

**Escenarios de prueba comunes:**

* ¿El subagente se invoca automáticamente cuando se espera?
* ¿Las reglas del proyecto prevalecen correctamente sobre las del usuario?
* ¿El servidor MCP se conecta y ejecuta operaciones?
* ¿Los métodos combinados interactúan sin conflictos?

***

## Resolución de problemas de extensibilidad [#resolución-de-problemas-de-extensibilidad]

### Problemas con subagentes personalizados [#problemas-con-subagentes-personalizados]

**El subagente no se invoca:**

* Verifica la política de invocación (la estricta requiere una @mención explícita)
* Comprueba que las pautas de "Cuándo usar" coincidan con tu solicitud
* Asegúrate de que el archivo esté en el directorio `~/.verdent/subagents/`
* Revisa la sintaxis del frontmatter YAML

**Comportamiento inesperado del subagente:**

* Revisa el prompt de sistema para mayor claridad
* Refina las pautas de "Cuándo usar" y "Cuándo NO usar"
* Prueba con una @mención explícita para aislar el comportamiento
* Itera sobre el prompt de sistema según los resultados

### Conflictos de reglas [#conflictos-de-reglas]

**La regla no se aplica:**

* Verifica la precedencia de las reglas (AGENTS.md > VERDENT.md)
* Comprueba que el archivo esté en la ubicación correcta
* Inicia una nueva conversación para probar una aplicación nueva
* Haz las reglas más específicas y directivas

**Comportamiento inesperado:**

* Busca reglas contradictorias en el mismo archivo
* Comprueba si las reglas son demasiado vagas
* Verifica que se esté editando el archivo de reglas correcto
* Usa un lenguaje explícito ("Siempre", "Nunca", "Prefiere")

### Problemas de integración con MCP [#problemas-de-integración-con-mcp]

**Fallos de conexión:**

* Verifica la sintaxis de `mcp.json`
* Comprueba las credenciales de autenticación
* Asegúrate de que el servidor MCP esté en ejecución y sea accesible
* Valida la conectividad de red

**Problemas de invocación de herramientas:**

* Confirma que el servidor MCP exponga las herramientas esperadas
* Verifica los formatos de los parámetros de las herramientas
* Revisa los registros del servidor MCP en busca de errores
* Prueba el servidor MCP de forma independiente

***

## Consulta también [#consulta-también]

<CardGroup cols="2">
  <Card title="Gestión de subagentes" icon="users" href="/docs/verdent-for-vscode/agents-rules/subagent-management">
    Guía detallada de creación de subagentes
  </Card>

  <Card title="Sistemas de reglas" icon="book" href="/docs/verdent-for-vscode/agents-rules/rule-systems">
    Documentación completa de reglas
  </Card>

  <Card title="Integración con MCP" icon="plug" href="/docs/verdent-for-vscode/advanced-features/mcp">
    Configuración e instalación de MCP
  </Card>

  <Card title="Referencia de herramientas" icon="wrench" href="/docs/verdent-for-vscode/advanced-features/tool-reference">
    Capacidades de las herramientas integradas
  </Card>
</CardGroup>
