feat(infra): auto-commit con 88 cambios

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-11 00:16:46 +02:00
parent 6bc97df5c0
commit eb8dbf66a1
126 changed files with 10933 additions and 287 deletions
@@ -0,0 +1,52 @@
---
name: delete_obsidian_note
kind: function
lang: py
domain: obsidian
version: "1.0.0"
purity: impure
signature: "def delete_obsidian_note(path: str) -> bool"
description: "Borra un archivo de nota Markdown de Obsidian del disco. Por seguridad solo borra un archivo concreto, nunca un directorio. No depende de la app GUI de Obsidian: opera directamente sobre el archivo .md plano."
tags: [obsidian, markdown, delete, write, notes]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["os"]
params:
- name: path
desc: "ruta al archivo .md de la nota a borrar"
output: "True (bool) si el archivo fue borrado correctamente"
tested: true
tests:
- "borra archivo existente y devuelve true"
- "archivo inexistente lanza filenotfounderror"
- "directorio lanza isadirectoryerror"
- "no borra otros archivos"
test_file_path: "python/functions/obsidian/delete_obsidian_note_test.py"
file_path: "python/functions/obsidian/delete_obsidian_note.py"
---
## Ejemplo
```python
import sys, os
sys.path.insert(0, os.path.join("python", "functions"))
from obsidian import delete_obsidian_note
ok = delete_obsidian_note("/home/me/vault/Inbox/Idea descartada.md")
print(ok) # True
```
## Cuando usarla
Cuando quieras eliminar una nota concreta de un vault de Obsidian desde codigo o un agente: limpiar el Inbox, borrar notas generadas temporalmente, o eliminar una nota tras consolidar su contenido en otra. Para varias notas, llama una vez por archivo (no acepta directorios).
## Gotchas
- **Borra del disco** (I/O impuro) y de forma **irreversible**: no manda a papelera, hace `os.remove`. El archivo no se puede recuperar salvo backup del vault.
- **Solo archivos, nunca directorios**: lanza `IsADirectoryError` si el path apunta a una carpeta, para evitar borrados masivos accidentales.
- **No respeta locks de la app GUI**: si Obsidian tiene la nota abierta, borrarla en disco dejara la pestana huerfana en el editor; al guardar desde Obsidian podria recrearse el archivo.
- Lanza `FileNotFoundError` si el archivo no existe.
- No borra archivos asociados (adjuntos, attachments referenciados): solo el `.md` indicado.