docs: registra le modifiche hub e mette v2.5 in pausa dichiarata
STATE.md diceva "Phase 27, nessun bloccante" mentre v2.5 e' ferma per scelta e in produzione e' andato altro. Ora dice cosa e' vero: v2.5 in pausa, modifiche hub in corso, blocchi A/B/C1 in produzione, e due bloccanti scritti con cosa manca e chi li sblocca — le credenziali API di TidyCal e LEAD_WEBHOOK_SECRET su Coolify, senza la quale la route rifiuta tutti (fallimento chiuso voluto). Sta di nuovo sotto le 100 righe: ci e' rientrato togliendo cio' che STATUS.md gia' racconta per esteso, non accorciando i bloccanti. REQUIREMENTS.md guadagna HUB-01..13, con lo stato reale: otto fatti, cinque no. Fra quelli aperti c'e' anche la conferma del payload Elementor, che oggi e' gestito in modo difensivo e non verificato sul campo — distinguere "scritto" da "visto funzionare" e' il punto della regola. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -67,6 +67,25 @@ I blocchi non pertinenti **non esistono nel DOM**, non sono nascosti via CSS.
|
|||||||
- **LOCKED #5 (no file hosting)** — emendato limitatamente agli asset di audit, deroga già annotata in `CLAUDE.md`. Non estendere ad altre entità.
|
- **LOCKED #5 (no file hosting)** — emendato limitatamente agli asset di audit, deroga già annotata in `CLAUDE.md`. Non estendere ad altre entità.
|
||||||
- **Nessun renderer headless, da nessuna parte.** Il VPS non regge Chromium (RAM), e non serve: gli audit Lighthouse arrivano già fatti sul DOM renderizzato.
|
- **Nessun renderer headless, da nessuna parte.** Il VPS non regge Chromium (RAM), e non serve: gli audit Lighthouse arrivano già fatti sul DOM renderizzato.
|
||||||
|
|
||||||
|
## Modifiche hub (richieste 2026-08-18, in corso)
|
||||||
|
|
||||||
|
Fuori dalla milestone v2.5, che è in pausa. Piano in
|
||||||
|
`~/.claude/plans/sei-arrivato-qua-search-recursive-kettle.md`.
|
||||||
|
|
||||||
|
- [x] **HUB-01**: Via il tab Commenti dal progetto — `/admin/conversazioni` li aggrega già tutti con l'etichetta dell'entità. *Perde solo la risposta sulla singola entità, che era già confluita sul thread generale.*
|
||||||
|
- [x] **HUB-02**: Via il timer dalla lista progetti — si avvia dove c'è il contesto
|
||||||
|
- [x] **HUB-03**: Riepilogo soldi + avanzamento in testa al progetto, senza query nuove
|
||||||
|
- [x] **HUB-04**: Timer per fase e task — migration `0018`, `ON DELETE SET NULL` perché le ore sopravvivono al task
|
||||||
|
- [x] **HUB-05**: Inbox in cima alla dashboard, con da-quanto-aspetta e contesto del messaggio
|
||||||
|
- [x] **HUB-06**: Analytics per linea di prodotto (Entry/Signature/Retainer) dalla tassonomia, con l'incassato non attribuibile mostrato a parte
|
||||||
|
- [x] **HUB-07**: Timeline delle consegne con semaforo ritardo/anticipo; scadenza dedotta da offerta + durata, `projects.due_date` come override
|
||||||
|
- [x] **HUB-08**: `POST /api/webhooks/lead` — un endpoint per form del sito e bridge, con dedup sull'email
|
||||||
|
- [ ] **HUB-09**: Confermare la forma del payload Elementor con un invio **vero** — oggi è gestita in modo difensivo
|
||||||
|
- [ ] **HUB-10**: `LEAD_WEBHOOK_SECRET` su Coolify — finché manca, la route risponde 403 a tutti
|
||||||
|
- [ ] **HUB-11**: TidyCal. **[BLOCCANTE]** Niente webhook (loro FAQ): serve polling della REST API. Path e filtri stanno dietro il login → servono token o documentazione dall'utente
|
||||||
|
- [ ] **HUB-12**: Alleggerire l'hub. Senza perimetro: si definisce guardando cosa è poco usato
|
||||||
|
- [ ] **HUB-13**: Whop → progetto + audit automatico. Dipende dal motore v2.5 (AUD-06→11)
|
||||||
|
|
||||||
## Backlog (ereditato, nessuno in corso)
|
## Backlog (ereditato, nessuno in corso)
|
||||||
|
|
||||||
- [ ] **SEND-01 / SEND-02** — Invio del link `/preventivo/[slug]` via email. Il mailer è già in produzione dalla v2.3: manca il pulsante e l'action. *Rinviati il 2026-07-28.*
|
- [ ] **SEND-01 / SEND-02** — Invio del link `/preventivo/[slug]` via email. Il mailer è già in produzione dalla v2.3: manca il pulsante e l'action. *Rinviati il 2026-07-28.*
|
||||||
|
|||||||
+44
-44
@@ -3,9 +3,9 @@ gsd_state_version: 1.0
|
|||||||
milestone: v2.5
|
milestone: v2.5
|
||||||
milestone_name: Audit
|
milestone_name: Audit
|
||||||
status: executing
|
status: executing
|
||||||
stopped_at: "Phase 27 a metà: schema in prod, fonti scritte e provate sul campo. Prossimo: src/lib/audit/schema.ts + agents/."
|
stopped_at: "v2.5 in PAUSA. In corso le modifiche hub: A e B in prod, C1 in prod, C2 (TidyCal) bloccato sulle credenziali API."
|
||||||
last_updated: "2026-08-19T13:20:00.000Z"
|
last_updated: "2026-08-19T21:15:00.000Z"
|
||||||
last_activity: 2026-08-19 -- v2.5 pushata su main e deployata (8000d56); motore ancora non richiamato da nessuna route
|
last_activity: 2026-08-19 -- modifiche hub: progetti, dashboard e ingresso lead in produzione (19ed377)
|
||||||
progress:
|
progress:
|
||||||
total_phases: 4
|
total_phases: 4
|
||||||
completed_phases: 0
|
completed_phases: 0
|
||||||
@@ -23,44 +23,47 @@ progress:
|
|||||||
## Project Reference
|
## Project Reference
|
||||||
|
|
||||||
See: .planning/PROJECT.md · **Core value:** il cliente apre il link e vede a che punto è
|
See: .planning/PROJECT.md · **Core value:** il cliente apre il link e vede a che punto è
|
||||||
il suo progetto, senza scrivere email. · **Current focus:** milestone **v2.5 "Audit"** —
|
il suo progetto, senza scrivere email. · **Current focus:** modifiche hub (v2.5 in pausa).
|
||||||
il servizio di analisi sito diventa un documento privato su `/audit/[slug]`.
|
|
||||||
|
|
||||||
## Current Position
|
## Current Position
|
||||||
|
|
||||||
Phase: 27 of 30 — Motore di analisi
|
**v2.5 è in pausa per scelta** (2026-08-19): prima le modifiche all'hub chieste il
|
||||||
Plan: schema e fonti fatti; agent, sintetizzatore e pipeline da scrivere
|
2026-08-18, poi il motore. Phase 27 resta a metà — schema e fonti in prod, resto da scrivere.
|
||||||
Status: nessun bloccante — prossimo passo `src/lib/audit/schema.ts` + `agents/`
|
|
||||||
Last activity: 2026-08-18 — `src/lib/audit/sources/` scritto e provato su giojello.com
|
|
||||||
|
|
||||||
Progress: [███░░░░░░░] 25%
|
| Blocco (modifiche hub) | Stato |
|
||||||
|
|---|---|
|
||||||
|
| A — Progetti (via commenti/timer, riepilogo, timer per task) | ✅ in produzione 2026-08-19 |
|
||||||
|
| B — Dashboard (inbox, linee di prodotto, timeline consegne) | ✅ in produzione 2026-08-19 |
|
||||||
|
| C1 — `POST /api/webhooks/lead` | ✅ in produzione, provato contro il DB vero |
|
||||||
|
| C2 — TidyCal | ⛔ **[BLOCCANTE]** vedi sotto |
|
||||||
|
| C3 — Alleggerire l'hub | ⏸️ senza perimetro, da definire guardando i dati d'uso |
|
||||||
|
| D — Whop → audit | ⏸️ dipende dal motore v2.5 |
|
||||||
|
|
||||||
|
Progress: [███░░░░░░░] 25% (v2.5)
|
||||||
|
|
||||||
## Dove sta cosa
|
## Dove sta cosa
|
||||||
|
|
||||||
| Cosa | Dove | Stato |
|
**Fuori dal repo, e senza questi niente è ricostruibile:** i piani in `~/.claude/plans/`
|
||||||
|
— `…woolly-puddle.md` (documento audit), `…radiant-valley.md` (motore),
|
||||||
|
`sei-arrivato-qua-search-recursive-kettle.md` (modifiche hub).
|
||||||
|
|
||||||
|
| Cosa (audit) | Dove | Stato |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| Schema audit (7 tabelle) | `src/db/migrations/0017_audits.sql` + `src/db/schema.ts` | **in produzione** |
|
| Schema, 7 tabelle + rubrica 264 voci | `0017_audits.sql`, `checklist_items` | **in produzione** |
|
||||||
| Rubrica del motore, 264 voci | tabella `checklist_items`, sorgente `scripts/data/checklist.json` | **in produzione** |
|
| Fonti del motore (5 moduli) | `src/lib/audit/sources/` | **in prod ma inerte**: nessuna route lo chiama |
|
||||||
| Fonti del motore (5 moduli) | `src/lib/audit/sources/` | **in produzione ma inerte**: deployato, nessuna route lo chiama |
|
| Agent, sintetizzatore, pipeline, editor, pagina | `src/lib/audit/`, `src/app/{admin/audit,audit}` | **da scrivere** |
|
||||||
| Agent, sintetizzatore, pipeline | `src/lib/audit/{schema,agents,pipeline}.ts` | **da scrivere** |
|
| L'unico audit prodotto finora | `spike-audit-giojello.com.json` (gitignorato) | spike 2026-08-16, **zero rilevazioni** |
|
||||||
| Editor admin e pagina pubblica | `src/app/admin/audit/`, `src/app/audit/[slug]/` | **da scrivere** |
|
|
||||||
| L'unico audit prodotto finora | `spike-audit-giojello.com.json` (root, **gitignorato**) | spike del 2026-08-16, **zero rilevazioni** |
|
|
||||||
| I due piani della milestone | `~/.claude/plans/` — `…woolly-puddle.md` (documento) + `…radiant-valley.md` (motore) | **fuori dal repo** |
|
|
||||||
|
|
||||||
## Come funziona il motore
|
## Come funziona il motore
|
||||||
|
|
||||||
Si incolla un URL. Nessun browser headless da nessuna parte.
|
Raccolta in parallelo (nessun LLM, nessun browser headless) → quattro sub-agent →
|
||||||
|
sintetizzatore che **incrocia** le osservazioni in massimo 10 finding. Vincolo che
|
||||||
1. **Raccolta in parallelo** (`sources/`, nessun LLM): PageSpeed, CrUX, Wayback, RDAP, robots/sitemap/JSON-LD, header. Ogni fonte fallisce in modo non fatale e dice *perché*.
|
regge tutto: **un numero entra solo se misurato**, rintracciabile in `audit_runs.raw`.
|
||||||
2. **Quattro sub-agent in parallelo** (`agents/`): checklist, visivo, storico, tecnico. Producono osservazioni, non finding.
|
Passo per passo in `STATUS.md` e in `…radiant-valley.md`.
|
||||||
3. **Sintetizzatore** che le **incrocia**: quattro osservazioni deboli su temi diversi diventano un finding solo con quattro evidenze indipendenti. Massimo 10, per impatto.
|
|
||||||
4. **Editor admin** per rifinire, poi consegna su `/audit/[slug]`.
|
|
||||||
|
|
||||||
Vincolo che regge tutto: **un numero entra solo se misurato**, e dev'essere rintracciabile in `audit_runs.raw`.
|
|
||||||
|
|
||||||
## Performance Metrics
|
## Performance Metrics
|
||||||
|
|
||||||
**Velocity:** 21 plans completati (v2.1–v2.4). Phase 27: spike ~1h, schema ~1h, fonti ~2h.
|
**Velocity:** 21 plans (v2.1–v2.4). Phase 27: spike ~1h, schema ~1h, fonti ~2h. Modifiche hub: A+B+C1 in una sessione.
|
||||||
|
|
||||||
## Accumulated Context
|
## Accumulated Context
|
||||||
|
|
||||||
@@ -68,32 +71,29 @@ Vincolo che regge tutto: **un numero entra solo se misurato**, e dev'essere rint
|
|||||||
|
|
||||||
Log completo in `PROJECT.md`. Vive per il lavoro corrente:
|
Log completo in `PROJECT.md`. Vive per il lavoro corrente:
|
||||||
|
|
||||||
- **[2026-08-18] Il documento usa il design system dell'area admin** — token semantici, Plus Jakarta Sans, Geist Mono per metriche e date, `StatusBadge` per gli impatti. Sostituisce la deroga tipografica del piano; i font sono già self-hostati da `next/font/google`, quindi la CSP è soddisfatta senza lavoro.
|
- **[2026-08-19] Prima l'hub, poi il motore** — le modifiche all'hub sono indipendenti e a basso rischio, il motore no. Il Whop → audit resta ultimo perché dipende dal motore.
|
||||||
- **[2026-08-18] Nessun renderer headless** — PageSpeed dà 153 audit sul DOM renderizzato, cioè le osservazioni visive che prima richiedevano screenshot a mano.
|
- **[2026-08-19] L'incassato non attribuibile si mostra, non si spalma** — i pagamenti stanno sul progetto, non sull'offerta. Un progetto senza offerta finisce in una riga "Senza offerta" separata: spalmarlo darebbe un totale che quadra e righe che mentono.
|
||||||
- **[2026-08-18] Laboratorio ≠ campo, e la differenza è il risultato** — Lighthouse dà 7 ms di risposta server, CrUX dà TTFB p75 3.553 ms. Da qui il nome `risposta_server_ms`: con lo stesso nome il sintetizzatore li tratterebbe come un numero solo.
|
- **[2026-08-19] Il tempo lavorato sopravvive alla cancellazione del task** — `ON DELETE SET NULL`, mai cascade: con cascade, ripulire una fase abbasserebbe in silenzio il fatturato tracciato.
|
||||||
- **[2026-08-17] Il VPS non regge Chromium** — RAM, non disco. È la ragione per cui l'opzione headless non torna.
|
- **[2026-08-18] Audit:** design system dell'area admin; nessun renderer headless (il VPS non regge Chromium); laboratorio ≠ campo, quindi nomi distinti per Lighthouse e CrUX; la checklist alimenta il **motore**, non il documento. Per esteso in `STATUS.md`.
|
||||||
- **[2026-08-16] La checklist alimenta il MOTORE, non il documento** — se diventa il rendering della checklist, torna a sembrare un audit automatico gratuito.
|
|
||||||
- **[2026-08-16] Immagini** — le due del redesign le carica l'utente, le due dello stato di fatto le scrive la pipeline. Emenda LOCKED #5 solo per gli asset di audit.
|
|
||||||
|
|
||||||
### Pending Todos — nessuno (`.planning/todos/` non esiste)
|
|
||||||
|
|
||||||
### Blockers/Concerns
|
### Blockers/Concerns
|
||||||
|
|
||||||
- **Il copy fisso del template v1 non ha una fonte nel repo** — il prototipo Giojello non c'è. Lo *stile* ora viene dal design system, ma testi e gerarchia dei blocchi vanno recuperati prima di Phase 30.
|
- **[BLOCCANTE] TidyCal non ha webhook** (verificato 2026-08-19 sulla loro FAQ; la via suggerita è Zapier/Make). La REST API c'è, con Personal Access Token su tutti i piani, ma path, filtri e paginazione **stanno dietro il login**. Sblocca: l'utente apre `tidycal.com/integrations` → API Keys e passa token o documentazione. Non dedurre la forma dell'API dai docs.
|
||||||
- **Il caso "zero dati CrUX" non è ancora stato visto** su un sito vero (test 5 del piano).
|
- **[BLOCCANTE] `LEAD_WEBHOOK_SECRET` non è su Coolify**: finché manca, `/api/webhooks/lead` risponde 403 a tutti (fallimento chiuso voluto). Sblocca: l'utente la imposta.
|
||||||
- **Il 52% della checklist non è verificabile da HTML statico** — quanto ne recuperino gli audit Lighthouse non è ancora misurato (test 3 del piano).
|
- **Il 100% dell'incassato è "Senza offerta"** — Caruso Speaker e Protocollo Estetico hanno incassato 5.300 € senza offerte assegnate. Si sistema assegnandole dai rispettivi progetti.
|
||||||
|
- **Il payload Elementor non è verificato sul campo** — gestito in modo difensivo, serve un invio vero.
|
||||||
|
- **Il copy fisso del template v1 non ha una fonte nel repo** — il prototipo Giojello non c'è: testi e gerarchia dei blocchi vanno recuperati prima di Phase 30.
|
||||||
|
- **Audit, da vedere sul campo:** il caso "zero dati CrUX" (test 5) e quanto del 52% di checklist non verificabile da HTML statico recuperino gli audit Lighthouse (test 3).
|
||||||
- **Whitelist portale vuota per 3 clienti su 4** — si popola da `/admin/clients/<id>`.
|
- **Whitelist portale vuota per 3 clienti su 4** — si popola da `/admin/clients/<id>`.
|
||||||
- **`.env.local` punta al DB di PRODUZIONE**, non allineato a Coolify per `ADMIN_PASSWORD` / `NEXTAUTH_SECRET`.
|
- **`.env.local` punta al DB di PRODUZIONE**, non allineato a Coolify per `ADMIN_PASSWORD` / `NEXTAUTH_SECRET`.
|
||||||
- **Ogni fase con schema**: migration applicata a prod **prima** del push del codice.
|
- **Ogni fase con schema**: migration applicata a prod **prima** del push del codice.
|
||||||
- **Debito design (DEBT-01)** — ~40 file, ~450 occorrenze. Dettaglio in `STATUS.md`.
|
- **Debito design (DEBT-01)** — ~40 file, ~450 occorrenze. Dettaglio in `STATUS.md`.
|
||||||
|
|
||||||
## Deferred Items
|
## Deferred Items — vedi `REQUIREMENTS.md` § Backlog e § Rinviati da v2.5.
|
||||||
|
|
||||||
Vedi `REQUIREMENTS.md` § Backlog e § Rinviati esplicitamente da v2.5.
|
|
||||||
|
|
||||||
## Session Continuity
|
## Session Continuity
|
||||||
|
|
||||||
Last session: 2026-08-18
|
Last session: 2026-08-19
|
||||||
Stopped at: `src/lib/audit/sources/` (5 moduli) scritto e **provato sul campo su giojello.com** — giro completo 73 s, tutte le fonti hanno risposto. Build e lint puliti.
|
Stopped at: modifiche hub, blocchi A + B + C1 in produzione (commit `19ed377`, migration `0018` applicata prima del push). C2 fermo sulle credenziali TidyCal.
|
||||||
Next: (1) `src/lib/audit/schema.ts` + `agents/` con validazione Zod dura; (2) `pipeline.ts` con heartbeat su `audit_runs`; (3) volume Coolify prima del deploy; (4) editor e pagina.
|
Next: (1) sbloccare TidyCal con token o documentazione; (2) confermare il payload Elementor con un invio vero; (3) impostare `LEAD_WEBHOOK_SECRET` su Coolify — finché manca la route risponde 403 a tutti; (4) poi riprendere v2.5 da `src/lib/audit/schema.ts` + `agents/`.
|
||||||
Resume file: None
|
Resume file: None
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# ClientHub (IAMCAVALLI) — Status
|
# ClientHub (IAMCAVALLI) — Status
|
||||||
|
|
||||||
_Ultimo aggiornamento: 2026-08-18_
|
_Ultimo aggiornamento: 2026-08-19_
|
||||||
|
|
||||||
Questo è **l'unico documento narrativo** del progetto: a che punto siamo, cosa manca,
|
Questo è **l'unico documento narrativo** del progetto: a che punto siamo, cosa manca,
|
||||||
cosa abbiamo imparato. `.planning/STATE.md` è il digest che leggono i comandi
|
cosa abbiamo imparato. `.planning/STATE.md` è il digest che leggono i comandi
|
||||||
@@ -11,12 +11,14 @@ cosa abbiamo imparato. `.planning/STATE.md` è il digest che leggono i comandi
|
|||||||
In produzione su `hub.iamcavalli.net` (Coolify/Hetzner, deploy automatico su push a
|
In produzione su `hub.iamcavalli.net` (Coolify/Hetzner, deploy automatico su push a
|
||||||
`main` via Gitea). Build verde, `npm audit` pulito.
|
`main` via Gitea). Build verde, `npm audit` pulito.
|
||||||
|
|
||||||
Milestone **v2.5 "Audit"** in corso — Phase 27 a metà. In produzione c'è **solo lo
|
Milestone **v2.5 "Audit"** in **pausa** a Phase 27 a metà: in produzione c'è solo lo
|
||||||
schema** dell'audit: nessuna pagina, né admin né pubblica.
|
schema dell'audit, nessuna pagina. La pausa è una scelta del 2026-08-19 — prima le
|
||||||
|
**modifiche all'hub** chieste il 2026-08-18, poi il motore.
|
||||||
|
|
||||||
| Milestone | Fasi | Stato |
|
| Milestone | Fasi | Stato |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| v2.5 Audit | 27–30 | 🔨 in corso — Phase 27 ~50% |
|
| Modifiche hub | — | 🔨 in corso — dashboard e progetti in produzione, pipeline a metà |
|
||||||
|
| v2.5 Audit | 27–30 | ⏸️ in pausa — Phase 27 ~50% |
|
||||||
| v2.4 Post-vendita | 13, 26 | ✅ chiusa 2026-08-08, entrambe in produzione |
|
| v2.4 Post-vendita | 13, 26 | ✅ chiusa 2026-08-08, entrambe in produzione |
|
||||||
| v2.3 Email & Accesso | 23–25 | ✅ shipped 2026-07-29, verificata E2E |
|
| v2.3 Email & Accesso | 23–25 | ✅ shipped 2026-07-29, verificata E2E |
|
||||||
| v2.2 Sales Loop | 18–22 | ✅ shipped 2026-06-20 |
|
| v2.2 Sales Loop | 18–22 | ✅ shipped 2026-06-20 |
|
||||||
@@ -25,7 +27,42 @@ schema** dell'audit: nessuna pagina, né admin né pubblica.
|
|||||||
|
|
||||||
## In corso
|
## In corso
|
||||||
|
|
||||||
### v2.5 — Audit (Phases 27–30)
|
### Modifiche hub (richieste 2026-08-18)
|
||||||
|
|
||||||
|
Tre aree: dashboard, progetti, pipeline. Piano in
|
||||||
|
`~/.claude/plans/sei-arrivato-qua-search-recursive-kettle.md`, **fuori dal repo**.
|
||||||
|
|
||||||
|
**In produzione dal 2026-08-19** (commit `4b135ce` → `19ed377`):
|
||||||
|
|
||||||
|
- **Progetti.** Via il tab Commenti (duplicava `/admin/conversazioni`, che è un
|
||||||
|
sovrainsieme stretto) e il timer dalla lista. Riepilogo soldi + avanzamento in testa
|
||||||
|
al progetto. **Timer per fase e task** — migration `0018`, `ON DELETE SET NULL` perché
|
||||||
|
cancellare un task non deve cancellare le ore lavorate.
|
||||||
|
- **Dashboard.** Inbox promossa in cima a piena larghezza, con da-quanto-aspetta e su
|
||||||
|
cosa è stato scritto. **Analytics per linea di prodotto** (Entry/Signature/Retainer,
|
||||||
|
letti dalla tassonomia). **Timeline delle consegne** con semaforo ritardo/anticipo,
|
||||||
|
scadenza dedotta da offerta + durata con override manuale `projects.due_date`.
|
||||||
|
- **Pipeline.** `POST /api/webhooks/lead`, un endpoint solo per form del sito e bridge;
|
||||||
|
regge payload piatto, `fields` annidati di Elementor e urlencoded, e non duplica chi
|
||||||
|
compila due volte. Provato contro il DB di produzione via tunnel, poi ripulito.
|
||||||
|
|
||||||
|
Cosa manca, e perché:
|
||||||
|
|
||||||
|
- **[BLOCCANTE] TidyCal.** Non ha webhook — è scritto nella loro FAQ, la strada
|
||||||
|
suggerita è Zapier/Make. Ha una REST API con Personal Access Token su tutti i piani,
|
||||||
|
ma **path, filtri per data e paginazione stanno dietro il login** e non sono
|
||||||
|
indicizzati. Serve che l'utente apra `tidycal.com/integrations` → API Keys e passi
|
||||||
|
token o documentazione: dedurre la forma dell'API violerebbe la regola che il
|
||||||
|
progetto si è già dato dopo il caso PageSpeed.
|
||||||
|
- **Alleggerire l'hub.** Senza perimetro. Da affrontare guardando cosa è davvero poco
|
||||||
|
usato, ora che dashboard e progetti sono in produzione.
|
||||||
|
- **Whop → audit.** Dipende dal motore: oggi sarebbe un innesco che non innesca nulla.
|
||||||
|
|
||||||
|
⚠️ Il tab Commenti permetteva di rispondere sulla **singola entità**;
|
||||||
|
`replyToConversation` salva sempre sul thread generale. Non è una regressione introdotta
|
||||||
|
ora — era già una scelta di prodotto — ma da oggi è l'unica via.
|
||||||
|
|
||||||
|
### v2.5 — Audit (Phases 27–30), in pausa
|
||||||
|
|
||||||
Il servizio di analisi sito (tre livelli: **Radiografia / Prima-Dopo / Rotta**) diventa
|
Il servizio di analisi sito (tre livelli: **Radiografia / Prima-Dopo / Rotta**) diventa
|
||||||
un documento privato su `/audit/[slug]`, generato da un motore multi-agente e rifinito a
|
un documento privato su `/audit/[slug]`, generato da un motore multi-agente e rifinito a
|
||||||
@@ -36,9 +73,10 @@ Fatto finora (Phase 27, ~50%):
|
|||||||
|
|
||||||
- **[prod 2026-08-18] Schema.** Migration `0017_audits.sql`, 7 tabelle additive, più
|
- **[prod 2026-08-18] Schema.** Migration `0017_audits.sql`, 7 tabelle additive, più
|
||||||
`checklist_items` seminata con 264 voci. Nessuna UI le legge ancora.
|
`checklist_items` seminata con 264 voci. Nessuna UI le legge ancora.
|
||||||
- **[non pushato] Le fonti del motore.** `src/lib/audit/sources/` — PageSpeed, CrUX,
|
- **[prod 2026-08-19, inerte] Le fonti del motore.** `src/lib/audit/sources/` —
|
||||||
Wayback, RDAP, robots/sitemap/JSON-LD, header. Provate sul campo su giojello.com:
|
PageSpeed, CrUX, Wayback, RDAP, robots/sitemap/JSON-LD, header. Provate sul campo su
|
||||||
giro completo in 73 s, tutte e cinque hanno risposto.
|
giojello.com: giro completo in 73 s, tutte e cinque hanno risposto. Deployate, ma
|
||||||
|
**nessuna route le chiama**.
|
||||||
|
|
||||||
Manca: agent + sintetizzatore + pipeline, storage immagini, editor admin, pagina
|
Manca: agent + sintetizzatore + pipeline, storage immagini, editor admin, pagina
|
||||||
pubblica. Dettaglio in [`.planning/ROADMAP.md`](.planning/ROADMAP.md) e
|
pubblica. Dettaglio in [`.planning/ROADMAP.md`](.planning/ROADMAP.md) e
|
||||||
|
|||||||
Reference in New Issue
Block a user