Un envío está pendiente cuando el directorio lo ha recibido y todavía no ha decidido. Está publicado cuando un desconocido puede abrir la ficha y nada en ella dice «pendiente». Programado significa que la plataforma ha confirmado una fecha de lanzamiento. Enviado, por sí solo, solo significa que pulsaste el botón. Esas cuatro palabras describen cuatro momentos distintos, y un tracker que las guarda en una única columna de «hecho» dará un total que nadie puede defender. Este artículo explica cada estado, qué cuenta como prueba y cómo informar de un lanzamiento en directorios con cifras que se sostienen. Para la definición breve del término general, mira la entrada estado de la ficha; para la rutina del día a día, la guía de seguimiento de envíos sin contar duplicados.
Una columna, cinco preguntas
Cuando envías un producto a un directorio, a quienes les importa el resultado quieren saber cosas distintas:
- ¿Está hecho el trabajo por mi parte? ¿Lo rellené todo y pulsé el botón?
- ¿Lo ha recibido la plataforma? Una página de agradecimiento, un email, una entrada en la cuenta.
- ¿Está esperando algo? Moderación, un puesto en la cola, una aprobación, una fecha.
- ¿Puede verlo el público? Una URL que carga para alguien que no ha iniciado sesión y que no lleva la etiqueta «pendiente».
- ¿Tengo que hacer algo? Un CAPTCHA, una verificación en dos pasos, un badge en mi web, una decisión sobre una vía de pago.
«Hecho» responde a la primera pregunta y, sin decirlo, reclama la cuarta. Así es como una hoja de cálculo que dice 40 acaba significando 6. La diferencia entre las dos primeras preguntas tiene su propia entrada: borrador vs. enviado.
Pendiente vs publicado, programado vs enviado
Estos son los pares que más se confunden. Cada fila es la pregunta que debes hacerte antes de cambiar un estado.
| Par | La diferencia | Prueba que lo hace avanzar |
|---|---|---|
| Enviado vs pendiente de revisión | Enviado es tu acción; pendiente de revisión es la confirmación de la plataforma de que la moderación está abierta | Un justificante de la plataforma: página de éxito, email o entrada en su panel |
| Pendiente de revisión vs publicado | Pendiente espera una decisión; publicado es público y no lleva etiqueta | La URL pública se abre sin sesión iniciada y sin etiqueta «pendiente» |
| Programado vs publicado | Programado tiene una fecha confirmada; publicado tiene una página pública | Abrir la página en esa fecha o después |
| En cola vs programado | En cola tiene un puesto en la fila; programado tiene una fecha | La plataforma indica la fecha |
| Publicado vs ya listado | Publicado viene de este envío; ya listado existía antes de que empezaras | Comprobar primero si ya existe una ficha |
La última fila importa más de lo que parece. Si un directorio ya tiene tu producto, volver a enviarlo crea un duplicado que la plataforma puede rechazar o eliminar. Por eso el tracker tiene un estado propio para ello.
Once estados, agrupados por la pregunta que responden
El tracker de LaunchRepo (record.py, que escribe submissions.json, y las mismas reglas en el panel local) usa once estados. Cada uno exige una observación mínima antes de poder registrarse. El panel coloca cada plataforma en exactamente un grupo, así que los grupos siempre suman el número de plataformas intentadas.
| Pregunta | Estado | Grupo del panel | Siguiente acción |
|---|---|---|---|
| Trabajo por tu parte | draft |
draft |
Terminar y enviar, o descartar |
| Trabajo por tu parte | prepared_needs_human |
needs_you |
Hacer el paso indicado: CAPTCHA, 2FA, badge, decisión |
| Recibido | submitted_pending_review |
pending |
Volver a comprobar tras la ventana de revisión indicada |
| Recibido | queued |
queued |
Esperar a la cola; volver a comprobar, nunca reenviar |
| Recibido | scheduled |
scheduled |
Abrir la ficha en la fecha confirmada |
| Público | live |
live |
Nada; conservar la URL |
| Público | already_listed |
already_listed |
Nada; no volver a enviar |
| Detenido | blocked |
problem |
Resolver el requisito de elegibilidad o el límite de la cuenta, o descartarlo |
| Detenido | unavailable |
problem |
Reintentar cuando la vía funcione |
| Detenido | deferred_paid |
parked |
Decides tú: pagar fuera de la ejecución u omitirlo |
| Detenido | not_a_fit |
parked |
Ninguna |
Once parecen muchos. En la práctica, cada uno existe porque fusionarlo con su vecino produjo un informe erróneo al menos una vez. La guía Registrar resultados: estados, evidencia y record.py muestra los comandos exactos para cada estado.
Ejemplo 1: SaaSHub, público pero pendiente
El envío a SaaSHub, documentado en la guía de campo pública de SaaSHub, generó una página de producto que cualquiera con el enlace podía abrir. También llevaba una etiqueta visible: Pending approval (pendiente de aprobación).
Un tracker de una sola columna lo registra como hecho, o incluso como publicado, porque la página carga. La regla de LaunchRepo es la contraria: que algo sea accesible públicamente no demuestra por sí solo que se haya aceptado. La ficha sigue en submitted_pending_review mientras la página diga pendiente. Pasa a live solo cuando alguien vuelve a abrirla, no ve ninguna etiqueta de pendiente y registra la URL con un flag de confirmación explícito. El día del envío, el recuento de publicados no subió; la fila recibió en su lugar una fecha para volver a comprobar.
Ejemplo 2: TinyLaunch, programado con la aprobación pendiente
TinyLaunch, documentado en la guía de campo de TinyLaunch, ofreció un hueco de lanzamiento semanal futuro en su vía gratuita Standard. Después de confirmar la fecha, el panel lo mostraba junto a Waiting for approval (esperando aprobación).
Hay dos formas incorrectas de registrarlo: live, porque hay una fecha en un calendario, o submitted_pending_review, porque la aprobación sigue pendiente. El tracker registra scheduled con la fecha confirmada y deja la aprobación pendiente en la nota. Los dos hechos se conservan: existe una fecha, y puede que no se mantenga. El tracker también rechaza una fecha scheduled anterior a la fecha mínima de lanzamiento del producto, así que un hueco gratuito el lunes que viene no puede dispararse antes de que tu página de lanzamiento esté lista. La entrada ficha programada explica el estado en un párrafo.
Lo que el tracker rechaza
Las reglas escritas en una página son fáciles de saltarse. Estas las hace cumplir el script. Abajo tienes una ejecución real del 30 de septiembre de 2026 en un espacio de trabajo nuevo con un producto de ejemplo: seis resultados que reflejan las guías de campo públicas y, después, un intento de pasar SaaSHub a publicado. buckets.py es un helper de cuatro líneas escrito para este artículo; imprime lo que devuelve la propia función de grupos del panel.
$ python3 scripts/record.py --project projects/my-product saashub submitted_pending_review --note 'Public page labelled Pending approval' --next-action 'Recheck the label after the review window'
Recorded saashub: submitted_pending_review
$ python3 scripts/buckets.py
{"attempted": 6, "submitted": 4, "pending": 2, "scheduled": 2, "problem": 2}
$ python3 scripts/record.py --project projects/my-product saashub live --note 'Page loads' --next-action None
Tracker rejected input: Public states require a reviewed URL and --confirmed-public
$ python3 scripts/record.py --project projects/my-product saashub live --public-url https://www.saashub.com/my-product --confirmed-public --note 'Pending label gone' --next-action None
Tracker rejected input: Platform exists: inspect the record and use --replace intentionally
$ python3 scripts/record.py --project projects/my-product saashub live --replace --public-url https://www.saashub.com/my-product --confirmed-public --note 'Pending label gone' --next-action None
Recorded saashub: live
$ python3 scripts/buckets.py
{"attempted": 6, "submitted": 4, "pending": 1, "scheduled": 2, "live": 1, "problem": 2}
Aquí pasan tres cosas. «La página carga» no basta para live: el tracker quiere una URL pública revisada y el flag de confirmación. Una fila existente nunca se sobrescribe en silencio: cambiarla requiere un --replace deliberado. Y pasar SaaSHub a publicado mueve una plataforma de pendiente a publicado mientras enviado se queda en 4, porque un cambio de estado no es un envío nuevo. Una vez registrada una ficha publicada, la fila lleva la URL que cualquiera puede comprobar.
Tres recuentos en lugar de un total
Un buen informe nunca da un único número. Da tres, y cada uno responde a una pregunta distinta:
- Enviados: cuántas plataformas recibieron el producto. En el panel es
pending+queued+scheduled+live. - Publicados: cuántas fichas públicas puedes enlazar hoy.
- Te necesita: cuántas filas esperan a una persona.
Las mismas reglas deciden qué cuenta para un objetivo de ejecución. El runbook del toolkit cuenta una plataforma una vez, cuando llega por primera vez a submitted_pending_review, queued, scheduled o live. Los borradores, los relevos, las vías de pago, los candidatos descartados y already_listed nunca hacen avanzar el objetivo, y las actualizaciones posteriores de la misma plataforma no vuelven a contar. Un envío real que la moderación rechaza después sigue contando como enviado; solo un justificante registrado por error se corrige, con --invalidate-run-confirmation.
Nuestro propio piloto muestra por qué importa la separación. El registro de SeoMap del 14 de septiembre de 2026, publicado en la página del fundador, tenía 211 intentos de envío: 20 publicados, 97 pendientes de revisión y 24 programados. Los otros 70 intentos no habían llegado a ninguno de esos tres estados. «211 hechos» habría sido cierto en un sentido y falso en todos los que sirven de algo.
Por qué un agente lo necesita más que tú
Si envías a cinco directorios a mano, recuerdas cuál está pendiente y cuál mostró un calendario. Un agente de IA que ejecuta una sesión, la cierra y vuelve a empezar mañana, quizá como otro agente en otra máquina, no lo recuerda. Lee primero el tracker y decide a partir del estado:
- Primero van las filas
prepared_needs_humany los lanzamientosscheduledque toca verificar. - Las filas
submitted_pending_reviewcuya ventana de revisión indicada ya pasó se vuelven a comprobar: el registro existente, nunca un envío nuevo para colarse en la cola. - Las filas
livese dejan como están.
Cada una de esas decisiones es errónea si el estado es erróneo. Registrar SaaSHub como publicado el primer día habría significado que nadie comprobaba si se aprobó. Registrar TinyLaunch como simplemente enviado habría significado que nadie verificaba la página en la fecha de lanzamiento. Los estados son la memoria del agente, y el panel local es donde los lees.
Si estás preparando tu propia ejecución, cómo funciona LaunchRepo muestra dónde encaja el tracker en el flujo de trabajo, y la página para fundadores de SaaS trata un producto con un calendario de lanzamiento real. El tracker, el panel y 299 playbooks activos (a 24 de septiembre de 2026) vienen con la licencia de pago único.
Preguntas frecuentes
¿Cuál es la diferencia entre pendiente y publicado?
Pendiente significa que el directorio recibió tu envío y no ha terminado su revisión. Publicado significa que la ficha es pública y no lleva ninguna etiqueta de pendiente. Una página que puedes abrir puede seguir pendiente, así que comprueba la etiqueta, no solo la URL.
¿Una ficha programada ya está publicada?
No. Programada significa que la plataforma confirmó una fecha de lanzamiento; la ficha se hace pública en esa fecha, y la aprobación puede seguir abierta. Abre la página en esa fecha o después antes de registrarla como publicada.
¿Una página de agradecimiento significa que aceptaron mi envío?
No. Una página de agradecimiento muestra que el formulario se envió. Como mucho demuestra la recepción, así que el estado es pendiente de revisión hasta que la plataforma publique la ficha.
¿Cuánto tiempo siguen pendientes los envíos?
Lo que tarde la revisión de la plataforma. Las vías gratuitas suelen ser lentas; una guía de campo de esta web registra una estimación de más de 30 días. Usa el plazo que indique la plataforma o, si no indica ninguno, fija una fecha de seguimiento.
¿Debo reenviar si una ficha sigue pendiente?
No. Vuelve a comprobar el envío existente tras la ventana de revisión y contacta con la plataforma si sus normas lo permiten. Reenviar puede crear duplicados y no te hace subir en ninguna cola.
Fuentes: RUNBOOK.md (tabla de estados, reglas de recuento y de corrección), scripts/record.py y scripts/dashboard_status.py en el toolkit de LaunchRepo 1.9.0; una ejecución real del tracker el 30 de septiembre de 2026; las guías de campo públicas de SaaSHub y TinyLaunch (observadas el 13 de septiembre de 2026); el registro de SeoMap del 14 de septiembre de 2026 en la página del fundador.