---
name: file_operations
version: 2.0.0
author: "KogniTerm Core"
description: "Conjunto avanzado de herramientas para operaciones CRUD y edición sofisticada de archivos."
category: "filesystem"
tags: ["file", "filesystem", "crud", "read", "write", "delete", "edit", "sophisticated"]
dependencies: []
required_permissions: ["filesystem"]
security_level: "high"
allowlist: true
auto_approve: false
sandbox_required: false
---

# Instrucciones para el LLM

Esta skill proporciona herramientas granulares y avanzadas para interactuar con el sistema de archivos. **NUNCA inventes nombres de parámetros - usa exactamente los que se indican abajo.**

## Herramientas disponibles

### sophisticated_editor_tool (EDICIÓN AVANZADA)

**IMPORTANTE:** Esta herramienta siempre requiere confirmación del usuario. Primero llama SIN `confirm` (o `confirm=False`), espera el diff, y si el usuario aprueba, vuelve a llamar con `confirm=True`.

**Parámetros OBLIGATORIOS:**
- `path`: Ruta absoluta o relativa del archivo a editar (string)
- `action`: La operación a realizar (string). Valores válidos: `insert_line`, `replace_regex`, `prepend_content`, `append_content`, `full_replacement`

**Parámetros según acción:**

| action | Parámetros requeridos |
|--------|----------------------|
| `insert_line` | `path`, `action`, `line_number` (int), `content` (str) |
| `replace_regex` | `path`, `action`, `regex_pattern` (str), `replacement_content` (str) |
| `prepend_content` | `path`, `action`, `content` (str) |
| `append_content` | `path`, `action`, `content` (str) |
| `full_replacement` | `path`, `action`, `content` (str) |

**Parámetro opcional:**
- `confirm`: boolean. False (default) = pide confirmación. True = aplica cambios directamente.

**Ejemplo de uso correcto:**
```python
# Primera llamada - pidiendo confirmación
sophisticated_editor_tool(
    path="/home/user/proyecto/main.py",
    action="insert_line",
    line_number=10,
    content="import os\n",
    confirm=False
)

# Segunda llamada (DESPUÉS de que el usuario apruebe) - aplicando cambios
sophisticated_editor_tool(
    path="/home/user/proyecto/main.py",
    action="insert_line",
    line_number=10,
    content="import os\n",
    confirm=True
)
```

**ERRORES COMUNES A EVITAR:**
- ❌ No usar `action` como primer parámetro posicional
- ❌ Usar `new_content` en lugar de `content`
- ❌ Usar `regex` en lugar de `regex_pattern`
- ❌ Usar `replacement` en lugar de `replacement_content`
- ❌ Omitir `line_number` en `insert_line`
- ❌ Llamar con `confirm=True` sin esperar aprobación previa

---

### file_write_tool (ESCRITURA SIMPLE)

Escribe contenido completo en un archivo (sobrescribe).

**Parámetros:**
- `path`: Ruta del archivo (string)
- `content`: Contenido a escribir (string)
- `confirm`: boolean. False = pide confirmación, True = aplica directamente

**Ejemplo:**
```python
file_write_tool(
    path="/home/user/proyecto/config.json",
    content='{"debug": true}',
    confirm=False
)
```

---

### append_file_tool (AÑADIR CONTENIDO)

Añade contenido al final de un archivo existente.

**Parámetros:**
- `path`: Ruta del archivo (string)
- `content`: Contenido a añadir (string)
- `confirm`: boolean

---

### delete_file_tool (ELIMINAR)

Elimina un archivo o directorio permanentemente.

**Parámetros:**
- `path`: Ruta a eliminar (string)
- `confirm`: boolean

---

### read_file_tool (LECTURA)

Lee el contenido de un archivo.

**Parámetros:**
- `path`: Ruta del archivo (string)
- `start_line`: (optional) Línea inicial (int, 1-based)
- `end_line`: (optional) Línea final (int, 1-based)

---

### list_directory_tool (LISTAR)

Lista archivos en un directorio.

**Parámetros:**
- `path`: Ruta del directorio (string)
- `recursive`: boolean. True = subdirectorios también

---

### create_directory_tool (CREAR DIR)

Crea un directorio.

**Parámetros:**
- `path`: Ruta del directorio a crear (string)

---

## Consideraciones de seguridad

- **Nivel de seguridad: high** - Requiere confirmación del usuario para escrituras.
- **Protección contra Race Conditions:** El `sophisticated_editor_tool` valida que el archivo no haya cambiado entre la lectura y la escritura.
- **Diff Preview:** Todas las herramientas de escritura generan un diff para revisión antes de aplicar los cambios.

## Patrones ignorados por defecto

- Directorios: `venv`, `.git`, `__pycache__`, `.venv`, `node_modules`.
- Archivos/directorios ocultos (que empiezan con `.`).
