Public leaderboard

Public assessment

jmpdsevilla/BovedIA (bovedia)

bovedia · v2.7.0 · scanned

What changed in the harness

Selection accuracy 100→100, token cost up 4%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

20.3 / 30

20.3 out of 30
03Economics

16.5 / 20

16.5 out of 20
04Discoverability

14.0 / 20

14.0 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

36 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
read_note
no_return_description
Lee y devuelve el contenido completo (Markdown) de una nota, buscándola en todas las categorías de la bóveda. Parámetro: name, el nombre de la nota sin extensión .md.
search_notes
no_return_description
Busca notas por texto libre y devuelve la lista de notas que coinciden. Con múltiples palabras busca notas que contengan TODAS (lógica AND). Busca en títulos, contenido y etiquetas, y no distingue mayúsculas ni acentos: "piramide" y "pirámide" devuelven lo mismo. Los resultados se ordenan por relevancia (título y etiquetas antes que cuerpo) y vienen limitados; usa limit o category para acotar.
list_notes
no_return_description
Devuelve las notas con sus metadatos, filtradas opcionalmente por categoría y/o tag. El filtro de categoría es RECURSIVO: incluye la categoría indicada y todas sus subcarpetas. Por ejemplo, category "conocimiento" devuelve las notas sueltas en su raíz Y todas las de subcarpetas como "conocimiento/problemas-resueltos". Para ver la estructura completa de carpetas, usa get_index.
get_index
no_return_description
Devuelve el mapa de categorías de la base de conocimiento con el número de notas de cada una. Devuelve solo el árbol, que es barato; el listado nota a nota (caro en bóvedas grandes) hay que pedirlo con full:true y conviene acotarlo con category.
write_note
no_return_description
Crear, guardar, anotar, añadir o actualizar una nota en la base de conocimiento (la bóveda). Operación de escritura — úsala cuando quieras guardar contenido nuevo o sobrescribir uno existente, incluyendo notas en la carpeta bandeja-de-entrada. Si la nota ya existe, la actualiza completa (sobrescribe el cuerpo entero). Para retoques puntuales sin reenviar todo, prefiere edit_note, append_to_note, prepend_to_note, update_section o insert_after_section. Usa "name" para actualizar una nota existente por su slug real (útil cuando el título nuevo difiere del nombre de archivo). Devuelve confirmación de que la nota se ha creado o sobrescrito.
delete_note
no_return_description
Eliminar, borrar o quitar una nota de la base de conocimiento. La nota va a la papelera (fuera de la bóveda), así que se puede recuperar. Devuelve confirmación de la eliminación y avisa si otras notas la referencian con wikilinks.
create_category
no_return_description
Crear una nueva subcarpeta o categoría en la base de conocimiento. Úsala antes de guardar la primera nota en una categoría que aún no exista. Devuelve confirmación de la categoría creada.
move_note
no_return_description
Mover, renombrar o reubicar una nota — cambiarla de categoría y/o cambiarle el título. Actualiza automáticamente los wikilinks de otras notas que la referencien. Devuelve confirmación de la nueva categoría y título de la nota.
delete_category
no_return_description
Eliminar o borrar una categoría/subcarpeta vacía. Solo funciona si la carpeta no tiene notas dentro. Devuelve confirmación de la eliminación, o un error si la carpeta no está vacía.
edit_note
no_return_description
Editar, modificar, retocar o cambiar una porción concreta de una nota mediante find/replace exacto. Reemplaza old_text por new_text dentro del cuerpo de la nota sin reenviar el archivo entero. Falla si old_text no aparece o aparece más de una vez (ambigüedad). Es la operación más eficiente para correcciones puntuales: una palabra, una línea, una entrada de tabla. Para añadir contenido al final usa append_to_note; para reemplazar una sección entera usa update_section. Devuelve confirmación de la sustitución realizada.
append_to_note
no_return_description
Añadir, agregar, anexar o concatenar contenido al final del cuerpo de una nota sin tocar el resto. Si la nota termina en una línea de hashtags `#snake_case`, el contenido se inserta antes de los hashtags (preservando la convención de la bóveda). Ideal para notas-bandeja, listas crecientes y logs. Devuelve confirmación del contenido añadido.
prepend_to_note
no_return_description
Añadir, insertar o anteponer contenido al principio del cuerpo de una nota (justo después del título h1, antes del resto del contenido). Útil para entradas tipo log invertido donde lo más nuevo va arriba. Devuelve confirmación del contenido insertado.
update_section
no_return_description
Reemplazar, sustituir o reescribir una sección Markdown entera de una nota, identificada por el título exacto de su encabezado (sin los `#`). La sección abarca desde su encabezado hasta el siguiente encabezado del mismo nivel o superior. Conserva el encabezado original, sustituye solo el contenido entre encabezados. Es markdown-aware: ideal para regenerar tablas grandes, listas o párrafos largos sin tocar el resto del documento. Devuelve confirmación de la sección reemplazada.
insert_after_section
no_return_description
Insertar, añadir o intercalar una nueva sección Markdown justo después de otra sección existente, identificada por su título. La sección nueva incluye su propio encabezado dentro de new_content. Útil para añadir entradas en orden a un inventario sin reescribir todo el archivo. Devuelve confirmación de la sección insertada.
list_broken_links
no_return_description
Devuelve todos los wikilinks rotos de la bóveda (referencias [[slug]] que apuntan a notas inexistentes), agrupados por la nota que los contiene. Operación de mantenimiento: úsala periódicamente para limpiar la bóveda.
find_backlinks
no_return_description
Devuelve únicamente los backlinks de una nota (qué notas la referencian), sin cargar su contenido. Más rápido y económico en tokens que read_note cuando solo se quieren los backlinks. Devuelve la lista de notas que referencian a la nota indicada.
find_orphans
no_return_description
Devuelve las notas huérfanas: notas que no tienen backlinks ni outlinks (no enlazan a ninguna nota ni son enlazadas por nadie). Útil para auditar notas aisladas que probablemente deberían integrarse o eliminarse.
rename_wikilink
no_return_description
Renombrar, cambiar o sustituir globalmente un wikilink en todas las notas que lo referencian. Útil cuando se ha consolidado un concepto y hay que redirigir todas las referencias [[old_slug]] a [[new_slug]] sin tocar las notas origen ni destino. No mueve archivos — usa move_note si lo que quieres es renombrar la propia nota. Devuelve confirmación de las referencias actualizadas.
list_tags
no_return_description
Devuelve todos los hashtags `#snake_case` presentes en el cuerpo de las notas, con el número de notas en que aparece cada uno. Útil para auditar la taxonomía, detectar variantes y mantener consistencia.
update_frontmatter
no_return_description
Actualizar, modificar o cambiar campos concretos del frontmatter YAML de una nota (title, category, tags, created) sin tocar el cuerpo. El campo updated se renueva automáticamente. Para mover de categoría usa move_note (mantiene wikilinks); este tool solo edita el YAML in situ sin mover archivos. Devuelve confirmación de los campos actualizados.
peek_note
no_return_description
Echar un vistazo rápido a una nota: devuelve solo frontmatter + primer párrafo del cuerpo. Ahorra tokens cuando solo se quiere comprobar la categoría, tags o de qué trata la nota antes de decidir si leerla entera.
read_section
no_return_description
Leer únicamente una sección Markdown de una nota, identificada por el título exacto de su encabezado. Devuelve desde ese encabezado hasta el siguiente del mismo nivel o superior. Ideal para notas largas (inventarios, capturas) cuando solo interesa una parte.
read_frontmatter
no_return_description
Leer únicamente el frontmatter YAML de una nota, sin el cuerpo, y devolverlo. Útil para validaciones rápidas o cuando solo se necesitan los metadatos.
recently_updated
no_return_description
Devuelve las notas modificadas recientemente, en los últimos N días (por defecto 7). Útil para retomar contexto de qué se ha tocado últimamente sin leer toda la bóveda.
move_category
no_return_description
Mover, renombrar o reubicar una categoría/carpeta entera con todas sus notas dentro. Actualiza el campo category del frontmatter de cada nota. Más eficiente que mover una a una. No actualiza wikilinks porque los slugs no cambian. Devuelve confirmación del movimiento y las notas afectadas.
validate_note
no_return_description
Validar, comprobar o auditar la estructura de una nota según el protocolo de la bóveda: frontmatter completo (title, category, created, updated), presencia de sección "Ver también", presencia de hashtags `#snake_case` al final, y wikilinks no rotos. Devuelve un reporte con los problemas detectados.
bulk_move
no_return_description
Mover, reubicar o desplazar varias notas a la vez a una misma categoría destino. Procesa el array de slugs en una sola llamada. Útil al procesar la bandeja de entrada cuando hay varias notas para la misma carpeta. No renombra — para renombrar usa move_note una a una. Devuelve confirmación de las notas movidas.
due_notes
no_return_description
Revisar las notas programadas y devolver SOLO las que ya toca sacar hoy. Lee la fecha `> APARECER: AAAA-MM-DD` del principio de cada nota de la carpeta de programados y la compara con la fecha actual. Sustituye a mirar una por una: una sola llamada barata para la comprobación de arranque de sesión. Devuelve la lista de notas que vencen hoy (y, con include_upcoming, las próximas con su fecha y los días que faltan).
list_sections
no_return_description
Devuelve el índice de secciones (los encabezados) de una nota, con su nivel y su tamaño en líneas, sin devolver el contenido. Sirve para orientarse en notas largas y decidir qué leer: después se lee solo lo necesario con read_section en vez de cargar la nota entera.
migrate_yaml_tags
no_return_description
Migrar, trasladar o bajar al cuerpo los tags que quedan en el frontmatter YAML, convirtiéndolos en hashtags `#snake_case` al final de la nota, y dejar el frontmatter limpio. Los tags que ya existen como hashtag no se duplican. Operación one-shot e idempotente: conserva la fecha de modificación y la autoría. Por defecto corre en dry_run y devuelve el informe de lo que haría sin tocar nada.
list_snapshots
no_return_description
Devuelve las copias de seguridad (instantáneas) disponibles de la bóveda, con su fecha y el motivo por el que se hicieron. Se crean solas antes de cada operación masiva, y también se puede crear una a mano con create_snapshot.
create_snapshot
no_return_description
Crear ahora una copia de seguridad completa de la bóveda, antes de hacer algo arriesgado. Se guarda fuera de la bóveda, con fecha y motivo, y se puede volver a ella con restore_snapshot. Devuelve confirmación de la copia creada.
restore_snapshot
no_return_description
Restaurar, recuperar o volver a una copia de seguridad anterior de la bóveda: devuelve las notas al estado que tenían en esa instantánea. Antes de tocar nada guarda otra copia del estado actual, así que también se puede deshacer la restauración. Devuelve el resultado de la restauración; por defecto simula y devuelve qué notas cambiarían.
vault_health
no_return_description
Revisar el estado de salud de toda la bóveda en una sola llamada: wikilinks rotos, notas huérfanas, notas sin etiquetar o con demasiadas, etiquetas mal formadas, restos de tags en el frontmatter y notas que incumplen el estándar (sin "Ver también"). Devuelve un parte corto con lo que está mal y qué herramienta lo arregla. Pensada para pasarla de vez en cuando y que el desorden no se acumule sin que nadie lo vea.
prune_tags
no_return_description
Podar, limpiar o simplificar las etiquetas de la bóveda: fusionar variantes que significan lo mismo (#tipo_filosofia → #tipo_doctrina) y recortar las notas que llevan más etiquetas de la cuenta, quedándose con las que de verdad agrupan. Conserva siempre el `#tipo_*`, lo que se indique en `keep` y las etiquetas más usadas; las que sobran se retiran empezando por las de uso único, que no agrupan nada. Preserva la fecha de modificación y la autoría. Devuelve el informe de lo que haría; por defecto corre en dry_run.
audit_tags
no_return_description
Auditar, revisar o comprobar la salud de las etiquetas de la bóveda: hashtags mal formados con guión medio (que los editores no agrupan y el extractor trunca), variantes del mismo concepto, etiquetas usadas una sola vez y notas que aún conservan tags en el frontmatter YAML. Devuelve un informe para limpiar la taxonomía. Si fix_dashes es true, además corrige los guiones a snake_case.

Selection evidence

Confusable tool pairs.

11 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
append_to_note prepend_to_note medium Both tools trigger on 'añadir/agregar contenido a una nota' with near-identical phrasing; a task like 'añade este párrafo a la nota X' without specifying la posición (final vs principio) is genuinely ambiguous, and the agent may default to append.
update_section update_frontmatter medium Both are update_* tools that 'actualizar/modificar/cambiar' something in a note; tasks like 'actualiza los datos de la nota X' or 'cambia la categoría' don't reveal whether a body section or the YAML fields are meant.
update_section insert_after_section medium Both operate on markdown sections identified by heading title; 'añade o actualiza una sección sobre Y' is ambiguous between replacing the existing section content and inserting a new section after another.
move_note move_category medium Both are 'mover/renombrar/reubicar' tools sharing the category vocabulary; a task like 'mueve conocimiento/problemas-resueltos a X' is ambiguous unless the agent knows whether the target is a note or a folder.
move_category bulk_move medium Both relocate content across categories; a task like 'mueve todo lo de la bandeja a clientes' could mean moving the whole folder (move_category) or moving several notes at once (bulk_move).
prune_tags audit_tags medium Both concern tag taxonomy health; 'revisa/limpia/arregla las etiquetas' could select either, since audit reports problems (dashes, variants, YAML leftovers) while prune performs the merge/trim.
list_tags audit_tags low A task like 'dime cómo están las etiquetas' could pull the plain listing (list_tags) or the health audit (audit_tags); 'revisar' hints at the latter but is not decisive.
read_note search_notes low A task like 'muéstrame la nota sobre pirámides' is ambiguous: with a known exact name read_note is right, but without one only search_notes can locate the note.
delete_note delete_category low Both trigger on 'borrar/eliminar'; 'elimina X' is ambiguous between a note and an empty category unless the object type is explicit.
find_backlinks find_orphans low Both are find_* link analyses; 'busca notas que no estén enlazadas' could be read as orphan detection or as checking the backlinks of a specific note.
migrate_yaml_tags audit_tags low Audit flags notes that still keep tags in YAML and migrate moves them to the body; 'organiza/limpia los tags del frontmatter' could plausibly pick either.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard