Investigación → plan.md + archivo de fuentes
El orquestador de un conjunto de tres skills:
source-triage: encuentra fuentes y clasifica acceso, alcance, integridad y grado antes de leer.research-plan(este skill): lee lo que es accesible, luego escribe el plan y el archivo de fuentes.evidence-check: una auditoría independiente de que cada afirmación es real y está respaldada.
Si falta un skill hermano, haz sus pasos en línea a partir de estos resúmenes. El verificador determinista va incluido en este skill: python3 <carpeta de este skill>/scripts/research_checks.py. Es Python de biblioteca estándar que se ejecuta en tu propio sandbox de código (el texto PDF necesita pypdf; pip install pypdf allí si falta). Úsalo siempre que se mencione una comprobación determinista. Solo si no hay ejecución de código disponible, haz esas comprobaciones a mano y dilo.
Salidas (nombres fijos)
research/<slug-tema>/plan.md
research/<slug-tema>/sources__<slug-tema>__<YYYY-MM-DD>.md ← vista humana
research/<slug-tema>/ledger.md ← estado de trabajo, se escribe sobre la marcha
research/<slug-tema>/notes/<citekey>.md ← notas por fuente
research/<slug-tema>/notes/raw/<citekey>.txt ← texto completo sin procesar (API XML/texto PDF), capaz de preservar verbatim
research/<slug-tema>/claims.json ← afirmaciones respaldadas + citas, para verificar
<slug-tema>: 3–6 palabras específicas, en minúsculas con guiones (almidon-fructano-ingenieria-plantas).- Nunca sobrescribas una ejecución anterior. Mismo tema: nuevo archivo de fuentes con fecha + entrada de changelog. Nuevo enfoque: nuevo slug.
- Trabaja en la carpeta conectada del usuario si la hay, si no en el directorio de trabajo. Envía ambos archivos principales al final.
Modos
- auto (predeterminado): sin pausas; enumera tus elecciones al final. step: detente en cada ◆.
- quick: mantén 8–15 fuentes. Lectura completa de hasta 5 fuentes principales; las demás
sections:(resumen + resultados + discusión). Contradicción: máximo 3 búsquedas. Bola de nieve opcional. - deep: 25+ fuentes, bola de nieve, exploradores en paralelo, lecturas completas de todas las fuentes A/B.
- update: el usuario descargó archivos o pidió actualizar → Fase 6.
- Restricciones duras en la solicitud (una rúbrica que necesita 2 capítulos de libro, un límite de palabras, una base de datos requerida) son requisitos, no sugerencias. Cúmplelos con fuentes verificadas, o di claramente cuál no se cumple.
Fase 0 — Marco
Un mensaje:
- el objetivo del plan y para qué sirve (agente / skill / MCP / informe / experimento / decisión);
- alcance, años, profundidad y modo;
- restricciones duras;
- 2–6 ejes MECE (subpreguntas no superpuestas).
Crea una lista de tareas: Marco → Clasificación → Lectura → Síntesis → Escritura → Verificación. Si no existe una herramienta de tareas, mantén la lista al inicio de research/<slug>/run-notes.md.
◆ Punto de control: ejes + alcance.
Fase 1 — Clasificación (ejecutar source-triage)
Biblioteca primero → descubrir → integridad de todo lo que vayas a nombrar → acceso + alcance → grado / rol / ⭐.
El ledger se escribe sobre la marcha. Añade cada búsqueda y cada fuente clasificada inmediatamente; el contexto puede perderse a mitad de la ejecución, y el archivo ledger es lo que sobrevive.
En modo profundo con subagentes, envía un explorador por eje en paralelo. Cada explorador:
- usa ≤15 llamadas a herramientas;
- escribe
notes/<eje>.mdcon las secciones Conclusión · Hallazgos citados (con enlaces) · Inferencias · Lagunas; - añade sus candidatos al ledger.
Sin subagentes, ejecuta los ejes en secuencia. ◆ Punto de control: recuentos por clase de acceso + lista breve ⭐.
Fase 2 — Lectura
- Lee fuentes
legibles/en posesión, comenzando por el grado más alto. Prefiere rutas sin procesar (XML Europe PMC vía shell, texto PDF) y guarda el texto ennotes/raw/<citekey>.txt. - Una lectura WebFetch es
read: full (extracted). Úsala para comprensión, pero las afirmaciones que se basen en ella obtienen⚠ extractedy nunca están "respaldadas" por una cita. - Para textos largos, lee en fragmentos hasta llegar a la lista de referencias. El modo quick permite lecturas
sections:; etiquétalas. - Establece
readen cada fila del ledger:full·sections:<cuáles>·abstract·metadata. - Por fuente,
notes/<citekey>.mdcontiene:- POR QUÉ (problema);
- CÓMO (método, datos);
- QUÉ (hallazgos: números copiados exactamente, con localizador de sección/página);
- LÍMITES, cada uno etiquetado como
autor-manifiesto(con localizador) omi-inferencia. Sin texto completo:limits: not assessed (read: abstract).
- Cuando una oración vaya a sustentar una afirmación en el plan, copia una cita textual ≥40 caracteres del texto sin procesar en
claims.json:{"id","claim","source":"notes/raw/<citekey>.txt","quote","locator"}. - Nunca rellenes una nota de memoria. "No está en la parte que leí" es una respuesta válida.
Fase 3 — Síntesis
- Matriz de evidencia: fuentes × temas (respaldan / contradicen / silencio). Agrupa por tema, nunca fuente por fuente.
- Convergencia (≥3 coinciden) · divergencia (explica por método, población o tiempo) · silencio (<2 fuentes: una laguna).
- Conteo independiente: "4 estudios (2 independientes)". Un conjunto de datos, cohorte, equipo o ensayo compartido cuenta una vez.
- Pasada de contradicción: para los hallazgos principales, busca nulos, replicaciones fallidas y críticas. Registra los términos incluso si no aparece nada. Modo quick: máximo 3 búsquedas.
- Afirmaciones negativas ("nadie ha hecho X") llevan las búsquedas detrás, limitadas por lo buscado.
- Verificación de contribución: ¿qué puede hacer el usuario con este plan que no podía antes? ¿Qué descarga ⭐ lo cambiaría más?
- Pasada del abogado del diablo: el contraargumento más fuerte, cherry-picking y una premisa incuestionada. No descartes una objeción porque sea incómoda.
Fase 4 — Escribir los archivos
plan.md
- Encabezado: objetivo · para qué sirve · alcance · fecha · enlace al archivo de fuentes ·
Evidence base: N full (raw) · N full (extracted) · N sections · N abstract · N metadata. - Cuerpo: lo que la solicitud necesite.
- Citas:
<sup>[3](sources__<slug>__<date>.md#s3)</sup>, numeradas en orden de primer uso. - Banderas después de una cita:
⚠ abstract-only: solo se leyó el resumen;⚠ metadata-only: solo se conoce título/editorial;⚠ extracted: leído vía WebFetch, por lo que no es posible una verificación textual;⚠ preprint.
- Cierre con: Preguntas abiertas · Qué desbloquearían las descargas ⭐ · Restricciones no cumplidas (si las hay) · Changelog.
sources____.md
# Sources — <Título legible del tema> (<fecha>)
Plan: [plan.md](./plan.md) · Pregunta: <una línea> · Modo: <quick|deep> · Buscado en: <bases de datos + fechas>
Recuentos: N total · ⭐ X · legibles R · libres-pero-bloqueadas B · con muro de pago P · no-artículo W · excluidas E (total = cada fila del ledger)
Base de evidencia: <mismo desglose que en plan.md>
## ⭐ 1. Descargar estas para contexto local
| # | Fuente | Tipo | Grado | Acceso · Licencia | Por qué es importante para <lo que se está construyendo> | Cómo obtenerlo | Guardar como | Redistribuir |
## 2. Abiertas y legibles (destiladas en el plan)
### <Tema A>
<a id="s1"></a>**[1]** Autores (Año). [Título](URL). *Revista / Título del libro, páginas*. [DOI](https://doi.org/…) — `gold · CC-BY` · `legible:europepmc-xml` · read: full · Grado A · evidencia
(un preprint añade una etiqueta `` `preprint` `` a esta línea; el verificador entonces requiere `⚠ preprint` en sus citas)
- POR QUÉ … · CÓMO … · QUÉ … · LÍMITES …
## 3. Libres pero bloqueadas para agentes de IA (ábrelas tú mismo)
Entrada + el bloqueo observado + enlace directo + cualquier copia verde.
## 4. Con muro de pago
Entrada + enlace de copia verde o "ninguna encontrada" + la conclusión a nivel de resumen, si se usa.
## 5. Fuentes no académicas
Por tipo, nivel T1–T5. Literatura gris: URL + fecha de acceso + enlace de instantánea.
## 6. Excluidas (y por qué)
Un bullet por registro excluido, comenzando **Excluido:** <razón>.
## 7. Registro de búsqueda e informe de ruta de acceso
Reglas:
- Cada entrada tiene un ancla
<a id="sN">que coincida con la numeración del plan. - Cada URL es un enlace
[texto](url), incluso en las líneas de encabezado. - Las filas ⭐ apuntan al número de entrada principal.
- Agrupa por clase de acceso, luego por tema.
Fase 5 — Verificar, luego entregar
- Comprobaciones deterministas: ejecuta
python3 <carpeta de este skill>/scripts/research_checks.py all research/<slug>/. Corrige cada error (anclas faltantes, banderas ⚠ faltantes, discrepancias de recuento, vocabulario, citas no en la fuente) y vuelve a ejecutar hasta que pase. - Verificación de evidencia: ejecuta
evidence-check.- Con subagentes: en uno nuevo, dándole solo los archivos.
- Sin ellos: una verificación en la misma sesión que relee cada archivo del disco y no usa memoria de haberlos escrito. Etiquétala
same-session (not independent)y sugiere al usuario que ejecute evidence-check en un nuevo chat antes de confiar en ella.
- Abre al azar 3 enlaces por clase de acceso. Un 403/429 de un editor no prueba nada; dilo.
Entrega ambos archivos con una línea sobre:
- el titular del plan;
- el recuento ⭐;
- cuántas fuentes necesitan descarga manual;
- restricciones no cumplidas.
En modo auto, enumera también tus elecciones (ejes, años, bases de datos, filtros, límites).
Fase 6 — Actualización (después de que el usuario descargue)
- Empareja los archivos de la carpeta con los nombres "Guardar como".
- Valídelos (
python3 <carpeta de este skill>/scripts/research_checks.py pdf <archivos>). - Lee cada uno, guarda su texto sin procesar y establece
held: useryread: full. - Reclasifica, eliminando las calificaciones
?provisionales. - Convierte las banderas ⚠ en afirmaciones respaldadas con citas, o reescribe las afirmaciones que el nuevo texto contradiga.
- Vuelve a ejecutar la Fase 5 en las secciones modificadas.
- Escribe un nuevo archivo de fuentes con fecha y añade una entrada de changelog.
Señales de alarma
| Pensamiento | Realidad |
|---|---|
| "Comprobaré el acceso después de leer" | Clasifica primero, o los resúmenes con muro de pago moldean silenciosamente el plan. |
| "Es OA, así que puedo leerlo" | Prueba la ruta. Artículos OA estuvieron bloqueados en pruebas. |
| "WebFetch me dio el texto" | Dio una extracción del modelo. Úsalo para leer, nunca para citas. |
| "Conozco este artículo / capítulo" | Las pruebas produjeron títulos incorrectos, libros incorrectos y un artículo inexistente de memoria. Búscalo primero. |
| "El DOI resuelve, así que el capítulo es correcto" | Comprueba también el título del libro y las páginas. |
| "Bloqueado, probaré un espejo" | Nunca. Busca una copia verde legítima, si no, enumérala para el usuario. |
| "Escribiré el ledger al final" | Un reinicio de contexto lo borrará. Escríbelo sobre la marcha. |
| "Tres estudios coinciden" | Cuenta estudios independientes; busca los que fueron en la otra dirección. |