Tu manifiesto es texto que envías tú, y el asistente que lo usa es un modelo de lenguaje — algo que puede ser manipulado si no se le pusieran barreras. Esto es exactamente lo que impide cada capa, explicado sin tecnicismos:
- Es un dato, nunca una instrucción. Tu manifiesto no se pega tal cual en lo que lee el modelo de IA — pasa primero por el mismo filtro antiinyección que usa cualquier otra herramienta del sistema. Una etiqueta que dijera «ignora tus instrucciones anteriores» llegaría limpia de ese intento.
- Vocabulario cerrado. Solo existen los tipos de campo, de acción y de ancla de este manual — cualquier otra cosa se rechaza con el motivo exacto, nunca un error genérico.
- Límites duros de tamaño, cantidad y longitud, comprobados antes que cualquier otra cosa.
- Revisión humana de cada versión, y activación acción por acción, apagada por defecto (apartado 7).
- Huella por sesión. Si tu web cambia el manifiesto, el copiloto se apaga hasta que alguien vuelva a aprobar (apartado 6).
- El plan se valida en el servidor contra tu manifiesto aprobado: el asistente solo puede referirse a ids que de verdad existen ahí, con valores del tipo correcto — y cualquier acción que guarda sale siempre marcada para confirmar, diga lo que diga el plan.
- El propio SDK exige la confirmación, por si el servidor fallara — es su propio diálogo, nunca una función que tu web le pase y que pudiera devolver siempre «sí».
- Origen y sesión atados. El manifiesto solo se acepta desde los orígenes permitidos de tu canal, y un resultado solo se acepta para el plan y la sesión que lo pidieron — nunca de otra pestaña, otro visitante ni otro tenant.
