Un invio è in attesa quando la directory lo ha ricevuto e non ha ancora deciso. È online quando uno sconosciuto può aprire la scheda e nulla su di essa dice “in attesa”. Programmato significa che la piattaforma ha confermato una data di lancio. Inviato, da solo, significa soltanto che hai premuto il pulsante. Queste quattro parole descrivono quattro momenti diversi, e un tracker che le salva tutte in un’unica colonna “fatto” riporterà un totale che nessuno può difendere. Questo articolo spiega ogni stato, cosa conta come prova e come riportare un lancio sulle directory con numeri che reggono. Per la definizione breve del termine generale, vedi la voce Listing status; per la routine quotidiana, la guida Tracciare gli invii alle directory senza contarli due volte.
Una colonna, cinque domande
Quando invii un prodotto a una directory, chi ha a cuore il risultato vuole sapere cose diverse:
- Il lavoro dalla mia parte è finito? Ho compilato tutto e premuto il pulsante?
- La piattaforma lo ha ricevuto? Una pagina di ringraziamento, un’email, una voce nell’account.
- Sta aspettando qualcosa? Moderazione, un posto in coda, un’approvazione, una data.
- Il pubblico può vederlo? Un URL che si apre per chi non ha effettuato l’accesso e non porta un’etichetta “in attesa”.
- Devo fare qualcosa io? Un CAPTCHA, una richiesta di verifica in due passaggi, un badge sul mio sito, una decisione su un percorso a pagamento.
“Fatto” risponde alla prima domanda e rivendica in silenzio la quarta. È così che un foglio di calcolo che dice 40 finisce per significare 6. La differenza tra le prime due domande ha una voce tutta sua: Bozza vs. inviato.
In attesa vs online, programmato vs inviato
Sono le coppie che si confondono più spesso. Ogni riga è la domanda da porsi prima di cambiare uno stato.
| Coppia | La differenza | La prova che la fa avanzare |
|---|---|---|
| Inviato vs in attesa di revisione | Inviato è una tua azione; in attesa di revisione è la conferma della piattaforma che la moderazione è aperta | Una ricevuta della piattaforma: pagina di conferma, email o voce nella dashboard |
| In attesa di revisione vs online | In attesa aspetta una decisione; online è pubblicato e senza etichette | L’URL pubblico si apre senza accesso, senza etichetta “in attesa” |
| Programmato vs online | Programmato ha una data confermata; online ha una pagina pubblica | Aprire la pagina nella data prevista o dopo |
| In coda vs programmato | In coda ha un posto nella fila; programmato ha una data | La piattaforma indica la data |
| Online vs già presente | Online viene da questo invio; già presente esisteva prima che iniziassi | Controllare prima se esiste già una scheda |
L’ultima riga conta più di quanto sembri. Se una directory elenca già il tuo prodotto, inviarlo di nuovo crea un duplicato che la piattaforma può rifiutare o rimuovere. Per questo il tracker ha uno stato separato per questo caso.
Undici stati, raggruppati per la domanda a cui rispondono
Il tracker di LaunchRepo (record.py, che scrive submissions.json, e le stesse regole nella dashboard locale) usa undici stati. Ognuno richiede un’osservazione minima prima di poter essere registrato. La dashboard ordina ogni piattaforma in esattamente un gruppo, quindi i gruppi sommati danno sempre il numero di piattaforme tentate.
| Domanda | Stato | Gruppo nella dashboard | Prossima azione |
|---|---|---|---|
| Lavoro dalla tua parte | draft |
draft |
Completa e invia, oppure scarta |
| Lavoro dalla tua parte | prepared_needs_human |
needs_you |
Esegui il passo indicato: CAPTCHA, 2FA, badge, decisione |
| Ricevuto | submitted_pending_review |
pending |
Ricontrolla dopo la finestra di revisione dichiarata |
| Ricevuto | queued |
queued |
Aspetta la coda; ricontrolla, non reinviare mai |
| Ricevuto | scheduled |
scheduled |
Apri la scheda nella data confermata |
| Pubblico | live |
live |
Niente; conserva l’URL |
| Pubblico | already_listed |
already_listed |
Niente; non inviare di nuovo |
| Fermo | blocked |
problem |
Risolvi il requisito o il limite dell’account, oppure lascia perdere |
| Fermo | unavailable |
problem |
Riprova quando il percorso funziona |
| Fermo | deferred_paid |
parked |
Decidi tu: paga fuori dalla run o salta |
| Fermo | not_a_fit |
parked |
Nessuna |
Undici sembrano tanti. In pratica ognuno esiste perché fonderlo con quello accanto ha prodotto almeno una volta un report sbagliato. La guida Registrare gli esiti: stati, prove e record.py mostra i comandi esatti per ogni stato.
Esempio 1: SaaSHub, pubblico ma in attesa
L’invio a SaaSHub, documentato nella guida sul campo di SaaSHub pubblica, ha prodotto una pagina prodotto che chiunque avesse il link poteva aprire. Portava però anche un’etichetta visibile: Pending approval (in attesa di approvazione).
Un tracker a colonna unica lo registra come fatto, o addirittura come online, perché la pagina si apre. La regola di LaunchRepo è l’opposto: la sola accessibilità pubblica non prova l’accettazione. La scheda resta submitted_pending_review finché la pagina dice in attesa. Passa a live solo dopo che qualcuno la riapre, non vede più l’etichetta di attesa e registra l’URL con un flag di conferma esplicito. Il giorno dell’invio il conteggio delle schede online non è salito; la riga ha ricevuto invece una data per ricontrollare.
Esempio 2: TinyLaunch, programmata con l’approvazione in sospeso
TinyLaunch, documentata nella guida sul campo di TinyLaunch, ha offerto uno slot di lancio settimanale futuro sul suo percorso Standard gratuito. Dopo la conferma della data, la dashboard lo mostrava accanto a Waiting for approval (in attesa di approvazione).
Ci sono due modi sbagliati di registrarlo: live, perché c’è una data su un calendario, oppure submitted_pending_review, perché l’approvazione è in sospeso. Il tracker registra scheduled con la data confermata e tiene l’approvazione in sospeso nella nota. Entrambi i fatti restano: una data esiste, e potrebbe non reggere. Il tracker rifiuta anche una data scheduled precedente alla data minima di lancio del prodotto, così uno slot gratuito lunedì prossimo non può partire prima che la tua pagina di lancio sia pronta. La voce Scheduled listing descrive lo stato in un paragrafo.
Cosa rifiuta il tracker
Le regole scritte su una pagina si saltano facilmente. Queste le fa rispettare lo script. Qui sotto c’è un’esecuzione reale del 30 settembre 2026 in uno spazio di lavoro nuovo con un prodotto di esempio: sei esiti che rispecchiano le guide sul campo pubbliche, poi un tentativo di promuovere SaaSHub a online. buckets.py è un helper di quattro righe scritto per questo articolo; stampa ciò che restituisce la funzione dei gruppi della dashboard stessa.
$ 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}
Qui succedono tre cose. “La pagina si apre” non basta per live: il tracker vuole un URL pubblico verificato e il flag di conferma. Una riga esistente non viene mai sovrascritta in silenzio: per cambiarla serve un --replace voluto. E promuovere SaaSHub sposta una piattaforma da in attesa a online, mentre inviate resta a 4, perché un cambio di stato non è un nuovo invio. Una volta registrata una Live listing, la riga contiene l’URL che chiunque può controllare.
Tre conteggi invece di un totale
Un buon report non dà mai un solo numero. Ne dà tre, e ognuno risponde a una domanda diversa:
- Inviate: quante piattaforme hanno ricevuto il prodotto. Nella dashboard è
pending+queued+scheduled+live. - Online: quante schede pubbliche puoi linkare oggi.
- Serve il tuo intervento: quante righe aspettano una persona.
Le stesse regole decidono cosa conta per l’obiettivo di una run. Il runbook del toolkit conta una piattaforma una volta, quando raggiunge per la prima volta submitted_pending_review, queued, scheduled o live. Bozze, passaggi di consegna, percorsi a pagamento, candidate scartate e already_listed non fanno mai avanzare l’obiettivo, e gli aggiornamenti successivi della stessa piattaforma non contano di nuovo. Un invio reale che la moderazione rifiuta in seguito resta contato come inviato; solo una ricevuta registrata per errore viene corretta, con --invalidate-run-confirmation.
Il nostro pilota mostra perché la separazione conta. Il log di SeoMap del 14 settembre 2026, pubblicato sulla pagina del founder, contava 211 tentativi di invio: 20 online, 97 in attesa di revisione e 24 programmati. Gli altri 70 tentativi non avevano raggiunto nessuno di questi tre stati. “211 fatti” sarebbe stato vero in un senso e sbagliato in tutti quelli utili.
Perché a un agente serve più che a te
Se invii a cinque directory a mano, ricordi quale è in attesa e quale ha mostrato un calendario. Un agente AI che esegue una sessione, la chiude e riparte domani, magari come un altro agente su un’altra macchina, non lo ricorda. Legge prima il tracker e decide in base allo stato:
- Le righe
prepared_needs_humane i lancischeduledda verificare vengono per primi. - Le righe
submitted_pending_reviewla cui finestra di revisione dichiarata è passata vengono ricontrollate: il record esistente, mai un nuovo invio per saltare la coda. - Le righe
liverestano come sono.
Ognuna di queste decisioni è sbagliata se lo stato è sbagliato. Registrare SaaSHub come online il primo giorno avrebbe significato che nessuno controllava se fosse stata approvata. Registrare TinyLaunch come semplicemente inviata avrebbe significato che nessuno verificava la pagina nel giorno del lancio. Gli stati sono la memoria dell’agente, e la dashboard locale è dove li leggi.
Se stai preparando la tua run, come funziona LaunchRepo mostra dove si colloca il tracker nel flusso di lavoro, e la pagina per i founder SaaS tratta un prodotto con un vero calendario di lancio. Il tracker, la dashboard e 299 playbook attivi (al 24 settembre 2026) sono inclusi nella licenza una tantum.
Domande frequenti
Qual è la differenza tra in attesa e online?
In attesa significa che la directory ha ricevuto il tuo invio e non ha finito la revisione. Online significa che la scheda è pubblica e non porta alcuna etichetta di attesa. Anche una pagina che riesci ad aprire può essere ancora in attesa, quindi controlla l’etichetta, non solo l’URL.
Una scheda programmata è già online?
No. Programmata significa che la piattaforma ha confermato una data di lancio; la scheda diventa pubblica in quella data, e l’approvazione può essere ancora aperta. Apri la pagina nella data prevista o dopo, prima di registrarla come online.
Una pagina di ringraziamento significa che il mio invio è stato accettato?
No. Una pagina di ringraziamento mostra che il modulo è stato inviato. Al massimo prova la ricezione, quindi lo stato è in attesa di revisione finché la piattaforma non pubblica la scheda.
Quanto restano in attesa gli invii?
Quanto dura la revisione della piattaforma. I percorsi gratuiti sono spesso lenti; una guida sul campo di questo sito riporta una stima di oltre 30 giorni. Usa la finestra dichiarata dalla piattaforma, oppure fissa una data di follow-up se non ne dichiara nessuna.
Devo reinviare se una scheda resta in attesa?
No. Ricontrolla l’invio esistente dopo la finestra di revisione e contatta la piattaforma se le sue regole lo permettono. Reinviare può creare duplicati e non ti fa avanzare in coda.
Fonti: RUNBOOK.md (tabella degli stati, regole di conteggio e di correzione), scripts/record.py e scripts/dashboard_status.py nel toolkit di LaunchRepo 1.9.0; un’esecuzione reale del tracker del 30 settembre 2026; le guide sul campo pubbliche di SaaSHub e TinyLaunch (osservate il 13 settembre 2026); il log di SeoMap del 14 settembre 2026 sulla pagina del founder.