MCP Skill: wiki-delete — Borrado de drafts wiki con confirmación
MCP Skill: wiki-delete
Skill del supercontexto CreaRack Pro que guía al agente (Claude) para borrar una página wiki en estado draft de forma segura y con confirmación explícita del usuario. Definida en .claude/skills/wiki-delete/SKILL.md.
Propósito
Activa cuando el usuario dice “borra esa página”, “elimina <slug>” o usa el comando /wiki-delete. Protege contra borrados accidentales mediante un flujo de verificación en 6 pasos antes de ejecutar la tool wiki_delete_page.
Reglas de oro
- Solo borra
status: draft. Si la página es active, stale o archived, el agente avisa y se niega.
- Confirmación explícita obligatoria. El agente muestra: “¿Seguro? Esto borra la fila de D1 y el
.md del repo. [s/N]”
- Por defecto
delete_file: true. Borra el .md del repo vía GitHub API. El commit queda como audit trail.
Flujo de ejecución (6 pasos)
| Paso | Acción |
|---|
| 1 | Identificar el slug del draft a borrar (de contexto o preguntando al usuario) |
| 2 | Verificar que existe y tiene status: draft con bib_ask o bib_search_nodes |
| 3 | Mostrar resumen de la página (slug, título, fecha de creación) |
| 4 | Pedir confirmación explícita: “¿Seguro? Borra D1 + .md. [s/N]” y esperar “sí” |
| 5 | Ejecutar wiki_delete_page({ slug, reason, actor, delete_file: true }) |
| 6 | Confirmar al usuario: “Borrada. Fila eliminada de D1, .md eliminado del repo. Log operation=delete registrado en bib_wiki_log.” Si hay file_warning, mostrarlo. |
mcp__workspace__wiki_delete_page({
slug: "<slug>",
reason: "<razón corta del borrado>",
actor: "<edu|dani>",
delete_file: true
})
Cuándo NO usar esta skill
- La página tiene
status: active → usar wiki_archive_page primero.
- El usuario titubea o responde algo distinto de “sí” explícito → cancelar sin ejecutar.
- Se quiere solo limpiar el
.md sin tocar D1 → acción manual git rm (fuera de scope de esta skill).
Historial de versiones
| Versión | Cambio |
|---|
| Fase 4 (sesión anterior) | Implementación inicial. El paso 5 usaba wiki_archive_page como fallback (no había hard-delete). La fila D1 no se borraba, solo cambiaba a archived. |
Pulido sesión 17 (commit 2db6309) | Pasos 5-6 reescritos. Ahora invoca wiki_delete_page real. Hard-delete de fila D1 + .md del repo. El fallback de archive quedó obsoleto. |
Archivos relacionados
| Archivo | Rol |
|---|
.claude/skills/wiki-delete/SKILL.md | Definición de la skill (instrucciones para el agente) |
functions/api/mcp/handlers/wiki.ts | Handler wikiDeletePage() — lógica real de borrado |
functions/api/mcp/tools.ts | Declaración de wiki_delete_page en el array TOOLS |
functions/api/mcp/index.ts | LOGGED_TOOLS — telemetría y auditoría |
Véase también
- [[entity—mcp—tool—wiki-delete-page]]