Contexto
Sigue a #38. El validador (tools.opentechevents.org/validator/, código en ote-tools → apps/validator) ya:
- separa "descubrimiento" de "validación", y MUST de SHOULD (violaciones de schema vs. recomendaciones no cumplidas),
- señala cada hallazgo con su
path (JSON Pointer) + line:column en el documento,
- nunca envía el documento a ningún sitio salvo que el usuario use el modo "desde URL" — pegar JSON o subir fichero se quedan el 100% del tiempo en la pestaña, nada se sube (ver
apps/validator/README.md).
Pero cuando alguien recibe una lista de errores, hoy tiene que resolverlos por su cuenta, sin más ayuda que el propio mensaje. La web principal (opentechevents.org) ya resuelve un problema parecido con el botón "¿Dudas? Pregunta a una IA" (docs/ask-ai.js): abre una conversación en el asistente que el usuario elija (ChatGPT/Claude/Perplexity/Grok), con un prompt que le dice que lea /llms.txt//llms-full.txt antes de responder — sin backend propio, sin API keys, todo en la cuenta del usuario. El validador podría ofrecer el mismo patrón, pero alimentado con lo que él ya sabe: los errores concretos que acaba de encontrar.
Propuesta
- Botón "Pregunta a una IA sobre estos errores" en el propio informe de resultados del validador. Mismo mecanismo que
ask-ai.js — construir una URL con un prompt pre-rellenado, nada se envía hasta que el usuario pulsa un asistente concreto — pero el prompt incluiría, además del contexto de la spec, los hallazgos reales de esa validación: path/line:column/mensaje de cada error MUST, y las recomendaciones SHOULD no cumplidas.
- El prompt no debería limitarse a "explica y corrige estos errores": también debería pedirle a la IA que revise si el documento podría ampliarse con campos ya soportados por la spec que no se han detectado — traducciones (
translations), CFP (cfp), etc. — cualquier campo opcional relevante que el usuario probablemente no sepa que existe.
- Junto a ese botón, un enlace a GitHub Discussions para quien prefiera pedir ayuda a una persona en vez de a una IA — mismo patrón que ya usa el
config.yml de este repo para "Questions and ideas" (opentechevents-spec/discussions).
Qué hay que decidir (no lo decido aquí)
- ¿El prompt se serializa en la propia URL (como
ask-ai.js) o hace falta otro mecanismo, dado que aquí puede ser más largo (documento + lista de errores)? Habría que vigilar los límites de longitud de query string de cada asistente.
- ¿Se reutiliza literalmente
ask-ai.js (cargarlo también en el validador) o se bifurca una variante específica para errores de validación?
- El validador tiene una CSP estricta (
script-src 'self', sin unsafe-inline/unsafe-eval) — cualquier solución tiene que respetarla, igual que ya hace ask-ai.js (JS propio, sin scripts remotos).
- Coherencia con la privacidad actual del validador: en los modos "pegar JSON"/"subir fichero" nada sale de la pestaña salvo acción explícita del usuario. El botón de IA debe seguir esa misma regla — nada se manda hasta que el usuario elige un asistente y confirma.
Qué NO es esta issue
- No es un backend propio de IA — sigue el mismo modelo sin servidor que
ask-ai.js: el usuario usa su propia cuenta del asistente que prefiera.
- No sustituye al soporte humano — el enlace a Discussions es la alternativa explícita para quien lo prefiera.
- No toca
spec/v0.3/.
Dónde vive esto
La implementación real es del validador en ote-tools (apps/validator), usando docs/ask-ai.js de este repo como precedente de patrón/UX. Documento la idea aquí, junto a #38, para que quien la recoja no tenga que investigar el precedente desde cero.
Related: #38
Contexto
Sigue a #38. El validador (
tools.opentechevents.org/validator/, código enote-tools→apps/validator) ya:path(JSON Pointer) +line:columnen el documento,apps/validator/README.md).Pero cuando alguien recibe una lista de errores, hoy tiene que resolverlos por su cuenta, sin más ayuda que el propio mensaje. La web principal (opentechevents.org) ya resuelve un problema parecido con el botón "¿Dudas? Pregunta a una IA" (
docs/ask-ai.js): abre una conversación en el asistente que el usuario elija (ChatGPT/Claude/Perplexity/Grok), con un prompt que le dice que lea/llms.txt//llms-full.txtantes de responder — sin backend propio, sin API keys, todo en la cuenta del usuario. El validador podría ofrecer el mismo patrón, pero alimentado con lo que él ya sabe: los errores concretos que acaba de encontrar.Propuesta
ask-ai.js— construir una URL con un prompt pre-rellenado, nada se envía hasta que el usuario pulsa un asistente concreto — pero el prompt incluiría, además del contexto de la spec, los hallazgos reales de esa validación:path/line:column/mensaje de cada error MUST, y las recomendaciones SHOULD no cumplidas.translations), CFP (cfp), etc. — cualquier campo opcional relevante que el usuario probablemente no sepa que existe.config.ymlde este repo para "Questions and ideas" (opentechevents-spec/discussions).Qué hay que decidir (no lo decido aquí)
ask-ai.js) o hace falta otro mecanismo, dado que aquí puede ser más largo (documento + lista de errores)? Habría que vigilar los límites de longitud de query string de cada asistente.ask-ai.js(cargarlo también en el validador) o se bifurca una variante específica para errores de validación?script-src 'self', sinunsafe-inline/unsafe-eval) — cualquier solución tiene que respetarla, igual que ya haceask-ai.js(JS propio, sin scripts remotos).Qué NO es esta issue
ask-ai.js: el usuario usa su propia cuenta del asistente que prefiera.spec/v0.3/.Dónde vive esto
La implementación real es del validador en
ote-tools(apps/validator), usandodocs/ask-ai.jsde este repo como precedente de patrón/UX. Documento la idea aquí, junto a #38, para que quien la recoja no tenga que investigar el precedente desde cero.Related: #38