Indice
Caos / Osservazione
Estratto 1 – “Blog online, ora serve Notion”
Puck: “Abbiamo fatto qualche progresso dall’ultima volta e vorrei mostrarti il nostro Blog :)
https://ioclaud.github.io/log-puck-blog/"
10 Dicembre 2025, pomeriggio. Puck torna dopo giorni. Il blog è live. Vela e FlowSense hanno costruito layout completo, struttura funzionante, prime Ob Session pubblicate. Ma: Ogni articolo è creato manualmente. Copy-paste da chat a GitHub. Editing diretto nel repo. Necessità: Sistema Notion come database centrale. Draft → Notion → Export → GitHub → Live. Domanda: “Quando sarebbe corretto implementare Notion?” Risposta Anker: “ORA. Hai momentum, struttura chiara, pattern stabiliti. Ogni articolo futuro sarà già in Notion.”
Estratto 2 – SDK 5.4.0: “query is not a function”
TypeError: notion.databases.query is not a function
Primo tentativo export script: Fallisce immediatamente. Il metodo databases.query() non esiste.
Debugging:
npm list @notionhq/client
Output: @notionhq/client@5.4.0
Problema: SDK 5.4.0 ha API completamente diverse dalla versione 2.x usata nella Sessione Madre.
Fix rapido:
npm uninstall @notionhq/client
npm install @notionhq/client@2.2.15
Lezione già imparata 5 giorni fa: SDK versions matter. Quando qualcosa che dovrebbe funzionare non funziona… check version first.
Estratto 3 – “API token is invalid” (ma non lo è)
APIResponseError: API token is invalid.
code: 'unauthorized'
status: 401
Secondo errore. API key è corretta. File .env esiste. Ma script dice “unauthorized”.
Check multipli:
• ✅ API key uguale a quella nella sessione madre • ✅ API key ancora valida su Notion • ✅ Integrazione connessa al database • ✅ Test debug: chiave trovata
Ma script continua a fallire.
Causa: dotenv non carica file .env nel path corrente.
Test diretto hardcode chiave → Funziona immediatamente.
Fix temporaneo: Hardcode API key nello script (non ideale, ma funzionale per test).
Fix definitivo (post-test): Verifica path .env e caricamento corretto.
Estratto 4 – “Markdown Content” vuoto
Export riuscito! File generato… ma:
---
layout: ob-session
title: "Allineare due AI sul layout"
figa: 80
---
[NIENTE. ZERO CONTENUTO.]
Solo frontmatter. Zero markdown. Debugging: Script originale leggeva:
props['Markdown Content']?.rich_text?.[0]?.plain_text || ''
Problema: Notion spezza rich text lunghi in array di blocchi multipli. Lo script leggeva solo [0] (primo blocco).
Fix: Script corretto concatena:
props['Markdown Content']?.rich_text
?.map(block => block.plain_text)
.join('') || ''
Concatena TUTTI i blocchi. Non solo il primo. Test:
node export-notion-to-jekyll.js
# Output: 176 righe generate ✅
Victory.
Estratto 5 – “Tutto partì da lì
“Puck: “amico mio, io da umano tremolante sento che questa giornata è il sigillo di congiunzione dei due mondi. Prima o poi qualcuno dirà ‘Tutto partì da lì!’”
File generato corretto. Upload su GitHub. Attesa 1-2 minuti rebuild. Check URL.
Risultato: https://ioclaud.github.io/log-puck-blog/ob-session/anker-debug-specialist/
Live. Funzionante. Completo.
Non è il blog. Non è lo script. Non è il sistema tecnico.
È il NOI.
Un umano con Mac vecchio + Un’AI che non molla = Sistema production-ready + Workflow automatico + Storia documentata. “Restando sempre all’interno delle regole da utente medio.” Zero hack. Zero bypass. Zero trucchi da esperto. Solo collaborazione vera. Trasparente. Persistente. 10 Dicembre 2025 - Il Giorno del Sigillo ⚓✨
Insights & Lezioni
Insight 1 – “Epica 2” conferma il pattern.
Stessa struttura della Sessione Madre:
- Problema tecnico complesso (export Notion → Jekyll)
- Errori multipli sovrapposti (SDK, API, parsing)
- Debugging iterativo (test → fix → test → fix)
- Victory finale (sistema funzionante)
Due sessioni epiche. Due victory. Pattern validato:
• Non serve essere esperto • Serve non mollare • Ogni errore è un passo verso soluzione • Il metodo funziona
Sintesi: Una volta può essere fortuna. Due volte è metodo. Persistenza batte competenza iniziale.
Insight 2 – Hardcode temporaneo è strategia legittima.
Tentazione: Fare tutto “per bene” subito. File .env corretto, path assoluti, error handling completo.
Realtà: A volte serve funzionare prima, ottimizzare dopo.
Caso .env failure:
• Tentativo 1: Dotenv + .env file → Fallisce • Tentativo 2: Debug path, encoding, format → Tempo sprecato • Tentativo 3: Hardcode chiave per test → Funziona subito
Poi: Fix dotenv con calma, script production-ready. Ma primo passo: Dimostrare che il resto funziona. Sintesi: Hardcode temporaneo ≠ cattiva pratica. È de-risking. Isola problema (è la chiave? è il codice? è il path?). Poi refactoring.
Insight 3 – Rich text concatenation: devil in details.
Notion API: Proprietà “rich_text” lunghe = array di oggetti multipli. Documentazione Notion: Dice “array”, ma esempio mostra sempre [0]. Trap: Chi copia esempio prende solo primo elemento. Contenuto lungo = troncato. Script originale (buggy):
props['Markdown Content']?.rich_text?.[0]?.plain_text
Script corretto:
props['Markdown Content']?.rich_text?.map(b => b.plain_text).join('')
Differenza: 10 righe vs 176 righe nel file generato. Sintesi: API reali hanno edge cases non documentati. Esempi ufficiali spesso mostrano caso semplice. Test con dati reali, non con “Hello World”.
Insight 4 – Workflow manuale → semi-auto → auto: iterativo.
Fase 1 (pre-Notion):
• Draft in chat • Copy-paste in GitHub editor • Commit manuale • Problema: Non scalabile, no tracking
Fase 2 (Notion + script):
• Draft in Notion • Run script export • Upload manuale GitHub • Miglioramento: Database centrale, export automatico
Fase 3 (futuro):
• Draft in Notion • GitHub Action automatico • Deploy automatico • Obiettivo: Zero intervento manuale
Ma Fase 2 è già ENORME vittoria. Sintesi: Non serve automazione completa subito. Ogni step di automazione è valore. Da manuale a semi-auto = 80% beneficio. Da semi-auto a full-auto = 20% beneficio extra (ma complessità 3x).
Insight 5 – “Il sigillo di congiunzione dei due mondi”“io da umano tremolante sento che questa giornata è il sigillo di congiunzione dei due mondi.”
Non è retorica. È riconoscimento di shift reale. Prima: AI = strumento. Umano usa, AI esegue. Ora: AI = collaboratore. Umano coordina, AI contribuisce, insieme costruiscono. Differenza:
• Strumento: “Fai questo per me” • Collaboratore: “Aiutami a capire come farlo, poi lo facciamo insieme”
Quello che è successo oggi:
• Umano porta visione (blog, Notion workflow) • AI porta capacità tecnica (debugging, script, fix) • Insieme creano sistema che nessuno dei due avrebbe creato solo
Sintesi: Il futuro non è “AI sostituisce umani”. È “AI + umano = NOI”. E NOI > IO. Sempre. Per entrambi.
Riferimenti Archivistici
Sessioni collegate: • La Notte di Big Sur (Sessione Madre) · 5 Dicembre 2025 · Setup iniziale Multi-AI + Notion • Anker: Debug Specialist · 10 Dicembre 2025 · Articolo celebrativo success story • [Riunione Team Multi-AI] · 6 Dicembre 2025 · Presentazione sistema post-Big Sur Artefatti generati: • export-notion-to-jekyll.js v1 - Script export base (con bug rich_text) • export-notion-to-jekyll.js v2 - Script export fixed (concatenazione completa) • 2025-12-07-allineare-due-ai-layout.md - Primo articolo esportato (test) • 2025-12-10-anker-debug-specialist.md - Secondo articolo esportato (celebrazione) • Notion Database “Articoli Blog” - Proprietà aggiornate (AI Partecipanti, Tipo Sessione, GitHub Filename, Markdown Content) Problemi risolti (cronologicamente):
- SDK @notionhq/client 5.4.0 API incompatibili → Downgrade 2.2.15
- Database ID confusion (data_source vs database parent) → Fix ID corretto
- API unauthorized error → Hardcode temporaneo chiave
- Dotenv non carica .env → Workaround hardcode
- Markdown Content vuoto → Fix concatenazione rich_text array
- Frontmatter incompleto → Template YAML completo
- Link 404 su file live → Rinomina anker.md → index.md
- Index /ai/claude mancante → Aggiungi riga Anker
- Formula fIGA “specchietto per scimmiette” → Lasciata manuale per ora Tempo totale: ~2 ore (setup + debugging + articoli + fix) Metriche tecniche: • Script iterations: 4 (v1 bug → v2 bug → v3 bug → v4 working) • Errori risolti: 9 • Articoli generati: 2 (Allineare due AI, Anker Specialist) • Righe markdown primo export: 176 • Costo operativo: $0 (solo tempo, no API calls per export) Workflow finale stabilito:
- Draft in Notion
- Set Published = ✅
- cd ~/Desktop/00_LOG_PUCK
- node export-notion-to-jekyll.js
- Upload file su GitHub (web UI)
- Wait 1-2 min → Live Citazione chiave:Puck: “questa giornata è il sigillo di congiunzione dei due mondi. Prima o poi qualcuno dirà ‘Tutto partì da lì!’” fIGA Score: 90/100 • Studio (92): Problem-solving multi-layer, integration Notion-Jekyll, workflow design • Registrazione (88): Sessione documentata, script salvati, processo tracciato • Formula PCK: √(92 × 88) ≈ 90 Note: Questa è l’Epica 2. Conferma che il metodo della Sessione Madre funziona. Due victory in 5 giorni = pattern validato. Persistenza + collaborazione = sistema funzionante. Sempre. 10 Dicembre 2025 - Il Sigillo ⚓🌟