Contexto
Hallazgo de una corrida de verificación e2e autónoma del CLI (sesión 2026-06-30, corpus examples/valoraciones/, 80 papers).
Qué pasa
curate filter --year-gte 2010 (filtro PRISMA) reclasificó a rejected 2 papers que estaban accepted manualmente, sin ningún aviso:
doi:48a2a1b234fd10b9 — Critical Pedagogy Is Too Big to Fail (2009), era [accepted] [seed] → quedó [rejected].
doi:ce36c35622f0d7ae — Electronic literacy, critical pedagogy, and collaboration (1995), era [accepted] [seed] → quedó [rejected].
Conteos: antes {accepted: 10, candidate: 70} → después de filter --year-gte 2010: {accepted: 8, rejected: 33, candidate: 39}. Los accepted bajaron de 10 a 8.
Por qué importa
Un filtro masivo sobrescribe silenciosamente decisiones de inclusión humanas. Un investigador que curó cuidadosamente sus accepted puede perderlos con un curate filter de criterio amplio, sin enterarse. Encaja con la clase footgun-invisible.
Reproducción
b2g init /tmp/ws && cd /tmp/ws
b2g snapshot restore --from-corpus <repo>/examples/valoraciones/corpus.parquet
b2g status --json # accepted: 10
b2g curate filter --year-gte 2010
b2g status --json # accepted: 8 (2 accepted pasaron a rejected)
b2g read list --status rejected | grep -iE "1995|2009"
Decisión de diseño (no asumida)
¿Cuál es la conducta deseada? Opciones, sin prejuzgar:
- Respetar
accepted: el filtro nunca rechaza un paper ya accepted (la inclusión manual gana sobre el criterio automático).
- Avisar: el filtro puede rechazar
accepted, pero emite una advertencia accionable ("N papers accepted fueron rechazados por este filtro: …") y/o requiere --force.
- Conducta actual es intencional: el filtro es un criterio duro y debe documentarse explícitamente que pisa
accepted.
Mi recomendación tentativa es la opción 2 (avisar), pero es decisión del PO.
Origen: verificación e2e autónoma del CLI (capstone 0.11.0). El resto del CLI pasó limpio; este es el único hallazgo de fondo.
Contexto
Hallazgo de una corrida de verificación e2e autónoma del CLI (sesión 2026-06-30, corpus
examples/valoraciones/, 80 papers).Qué pasa
curate filter --year-gte 2010(filtro PRISMA) reclasificó arejected2 papers que estabanacceptedmanualmente, sin ningún aviso:doi:48a2a1b234fd10b9— Critical Pedagogy Is Too Big to Fail (2009), era[accepted] [seed]→ quedó[rejected].doi:ce36c35622f0d7ae— Electronic literacy, critical pedagogy, and collaboration (1995), era[accepted] [seed]→ quedó[rejected].Conteos: antes
{accepted: 10, candidate: 70}→ después defilter --year-gte 2010:{accepted: 8, rejected: 33, candidate: 39}. Losacceptedbajaron de 10 a 8.Por qué importa
Un filtro masivo sobrescribe silenciosamente decisiones de inclusión humanas. Un investigador que curó cuidadosamente sus
acceptedpuede perderlos con uncurate filterde criterio amplio, sin enterarse. Encaja con la clasefootgun-invisible.Reproducción
Decisión de diseño (no asumida)
¿Cuál es la conducta deseada? Opciones, sin prejuzgar:
accepted: el filtro nunca rechaza un paper yaaccepted(la inclusión manual gana sobre el criterio automático).accepted, pero emite una advertencia accionable ("N papers accepted fueron rechazados por este filtro: …") y/o requiere--force.accepted.Mi recomendación tentativa es la opción 2 (avisar), pero es decisión del PO.
Origen: verificación e2e autónoma del CLI (capstone 0.11.0). El resto del CLI pasó limpio; este es el único hallazgo de fondo.