Ir a Público (Go Public)
Objetivo: el flujo de trabajo que el usuario acaba de ejecutar contigo se convierte en un enlace que funciona para cualquiera: lo abren, completan la entrada, presionan Ejecutar y obtienen el mismo tipo de resultado. Los visitantes no necesitan cuenta. La página se ejecuta con una pequeña cuota diaria de IA gratuita que la página lleva consigo.
Todo ocurre a través de share.py en la carpeta de esta habilidad (Python 3, librería estándar). <skill> a continuación significa la carpeta de esta habilidad.
1. Definir el flujo de trabajo (pregunta, no adivines)
A partir de la conversación, escribe en 3–6 líneas y muestra al usuario:
- El visitante proporciona: cada entrada (un cuadro de texto, un campo de una línea o una selección de una lista).
- Pasos: cada llamada de IA en orden y qué hace. La mayoría de los flujos tienen 1–3 pasos. Usa los prompts que realmente funcionaron en esta conversación, escritos de manera que tengan sentido sin contexto de conversación.
- El visitante obtiene: qué resultados de los pasos se muestran.
- Título y una descripción de una oración que un desconocido entienda.
Pide al usuario que confirme o corrija. También pregunta en qué idioma debe estar la página si no es obvio.
No construyas páginas que soliciten contraseñas, pagos o datos de tarjetas, códigos de un solo uso, o que se hagan pasar por otra empresa o persona. No pongas datos privados de la conversación (nombres, correos electrónicos, números internos) en los prompts o ejemplos; usa ejemplos inventados.
2. Escribir workflow.json
En la carpeta actual del usuario. Formato:
{
"title": "Notas de reunión → correo de seguimiento",
"description": "Pega notas informales de una reunión. Obtén las decisiones, los responsables y un breve correo de seguimiento.",
"inputs": [
{"id": "notes", "label": "Tus notas de la reunión", "type": "textarea", "placeholder": "Las notas desordenadas están bien…"},
{"id": "tone", "label": "Tono", "type": "select", "options": ["Amigable", "Formal"]}
],
"steps": [
{"id": "facts", "prompt": "Enumera las decisiones, los elementos de acción (responsable — tarea — fecha límite) y las preguntas abiertas. Usa solo lo que dicen las notas. Texto plano, sin Markdown.", "input": "{{notes}}", "show": true, "label": "Lo que se decidió"},
{"id": "email", "prompt": "Escribe un correo de seguimiento en un tono {{tone}}, de menos de 150 palabras. Texto plano, sin Markdown.", "input": "{{facts}}", "show": true, "label": "Correo de seguimiento"}
],
"examples": [{"label": "Sincronización de producto", "values": {"notes": "el lanzamiento se traslada al 2 de diciembre por un error de pagos. Raj corrige el error para el viernes…", "tone": "Amigable"}}]
}
Reglas:
type:textarea(predeterminado),textoselect(necesitaoptions). Las entradas son obligatorias a menos que"required": false.{{id}}enprompt,systemoinputse reemplaza por una entrada o la respuesta de un paso anterior. Coloca el texto del visitante eninput, la instrucción enprompt; unsystemopcional establece el rol y las reglas.show: trueimprime ese paso. Los pasos ocultos son útiles para trabajo intermedio. El último paso mostrado se transmite (streaming).maxTokenspor paso, por defecto 800 (también el límite de la página).- Siempre proporciona al menos un ejemplo: los visitantes hacen clic en él para ver la página funcionar antes de escribir.
- Las respuestas se muestran como texto plano, por lo que
**negrita**aparece como asteriscos. Termina cada prompt de paso mostrado con "Text plano, sin Markdown." y usa guiones simples para las listas.
3. Verificar y probar en realidad
python3 <skill>/share.py check workflow.json
python3 <skill>/share.py try workflow.json # ejecuta el ejemplo 1 a través de la IA real, imprime cada paso
Lee la salida como lo haría un desconocido. Si un paso es vago, incorrecto o demasiado largo, corrige el prompt y vuelve a ejecutar try. Muestra al usuario la salida final del ejemplo antes de publicar.
4. Construir y publicar
python3 <skill>/share.py build workflow.json page.html
python3 <skill>/share.py publish page.html
publish imprime el enlace público. Guarda el id de la página y un token de edición privado en .go-public.json (y lo añade a .gitignore en un repositorio git). Informa al usuario:
- el enlace, listo para enviar a cualquier persona;
- que
.go-public.jsones lo que le permite cambiar o eliminar la página más tarde, así que debe conservarlo y no compartirlo.
No edites page.html manualmente: cambia workflow.json y vuelve a construir.
5. Cambiar o eliminar más tarde
Edita workflow.json, luego ejecuta build y publish de nuevo en la misma carpeta: mismo enlace, nuevo contenido. python3 <skill>/share.py delete lo elimina.
Límites que debes indicar honestamente cuando surjan
- Cada página tiene una cuota gratuita de IA por día y un límite de tasa por visitante (impreso por
publish). Cuando una página con mucho tráfico agota su cuota, lo indica y vuelve a funcionar al día siguiente. - Si el usuario pregunta cómo aumentar el límite o ver el uso: el
claim_urlen.go-public.jsonle permite reclamar la página. Introduce un correo electrónico, lo confirma desde su bandeja de entrada, y la página entonces se ejecuta con la cuota propia de esa cuenta. Menciona esto solo cuando te lo pregunten o cuando se agote la cuota. La pequeña marca "Hecho con OneTag · Reportar" permanece en todas las páginas. - Los visitantes pueden reportar una página; una página reportada por varias personas se desactiva temporalmente para su revisión.
- La página no puede cargar imágenes, fuentes o bibliotecas externas, y no tiene almacenamiento ni inicio de sesión: es un formulario, pasos de IA y resultados.