Cantieri aperti: differenze tra le versioni

[versione verificata][versione verificata]
WikiBot (discussione | contributi)
handoff automatico
WikiBot (discussione | contributi)
handoff automatico
 
(60 versioni intermedie di uno stesso utente non sono mostrate)
Riga 7: Riga 7:


== Cantieri attivi ==
== Cantieri attivi ==
=== audit_marcoparet_non_conformi ===
''Aggiornato 2026-09-13 20:38 UTC'' — dominio: pillar
; Obiettivo : portare a standard le pagine non conformi su marcoparet: [7178]
; Vincoli in vigore :
* mai riscrivere: arricchire
* pubblicazione solo via pubblica_pillar.py --ok-marco
; Prossimo passo :
* python3 /home/claudeuser/scripts/audit_pubblicate.py --sito marcoparet --correggi --pid 7178
=== capoufficio_agente_risolve ===
''Aggiornato 2026-09-12 14:10 UTC'' — dominio: -
; Obiettivo : Marco 11/09: il 90% degli avvisi CAPOUFFICIO deve essere risolto da un agente, non finire in chat
; Vincoli in vigore :
* reversibile: backup .bak_* accanto a ogni file toccato
; Fatto (con prova) :
* capoufficio_watch.py reso host-aware (check+heal via ssh su media/secondary dove i cron sono migrati il 10/09
* backup .prima_hostaware_11set)
* registry: finance_cassa heal_timeout_s=660, marcoparet_autoheal host=secondary
* /var/log/isicnv creato su media e secondary
* 9 monitor in RECOVERY
* A) watch host-aware (check+heal via ssh su media/secondary). B) CAUSA DEI CANTIERI MAI LAVORATI: guardia.py e' migrata su media il 10/09 ma li' gsutil era anonimo (401) -> vedeva 0 handoff
* risolto con gcloud auth activate-service-account media-worker per claudeuser (ora vede i 465 handoff, watch_* compresi). C) Telegram differito: cantiere subito, avviso a Marco solo se lo stesso problema resiste avvisa_dopo_cicli (default 4 ~1h)
* recovery solo se avvisato. D) heal_auto: monitor fermo senza heal_cmd -> rilancio del suo cron sulla macchina giusta. Backup: capoufficio_watch.py.prima_hostaware_11set / .prima_differito_11set
* 11/09: la guardia su media girava come root senza credenziali e scriveva 0 handoff: cron spostato a claudeuser (backup /root/crontab.bak_guardia_11set), gate GATE_ARCHIVIO_VUOTO in guardia.py (zero letto = guasto, Telegram ogni 6h)
* scoperti due archivi (state/cantieri delle chat vs plans/handoff degli agenti): ponte_cantieri.py in cron ogni 30 min con gate-prima sul comando
* commessa.py chiudi rifiuta gli handoff in prosa senza job (GATE_HANDOFF_PARCHEGGIO, off con touch /home/claudeuser/sessions/GATE_HANDOFF_OFF)
* primo giro guardia in corso su 465 cantieri
* 11/09: watch host-aware
* guardia su media con credenziali
* Telegram differito (avvisa_dopo_cicli)
* heal_auto. 12/09 notte: (a) heal a raffica fermato: heal_ogni_min default 120 (finance_daily_sync girava ogni 15 min su media e mandava 'step falliti paypal' a ogni giro)
* (b) log_clean su log mai scritto = OK (argo_watch.log e cassa_check.log non esistevano perche' /var/log/isicnv mancava fino al 11/09 13:37)
* (c) CAUSA della perdita credenziali su media: il cron marcopi fa 'gcloud config set account 424757051842-compute@...' e rende gsutil anonimo -> guardia cieca e PayPal token illeggibile
* blindato con ~/.boto (gs_service_key_file=media-worker.json) + pass_credentials_to_gsutil=false: gsutil funziona qualunque sia l'account attivo. Backup: capoufficio_watch.py.prima_throttle_12set
* 12/09 pom: (E) firma stabile dei problemi (numeri->#): prima i cicli si azzeravano a ogni giro e i monitor con heal non avvisavano mai. (F) terzo stato PERSISTENTE: dopo 2 avvisi singoli (avvisa_dopo_cicli, poi riavvisa_dopo_cicli=8) il monitor tace e finisce nel riepilogo giornaliero delle 07 UTC, un solo messaggio
* recovery e nuovi guasti restano immediati. Backup capoufficio_watch.py.prima_riepilogo_12set. (G) token GSC: gsc-admin e token-searchconsole revocati (guardiano_token.py li vede dal 11/09)
* creato scripts/gsc_token.py con ripiego su token-informazionicorsi-gsc + mappatura sc-domain->URL-prefix con piu dati
* gate_pagina_protetta e sat_gsc_sync adattati (bak_gsc_12set)
* sat_gsc_sync senza --replace
* righe polyvagal ripristinate da /tmp/gsc.jsonl del 11/09 (BQ gsc_queries: 9994 righe, 40 siti)
; Prossimo passo :
* (1) Marco deve rigenerare token-gsc-admin.json (account proprietario delle sc-domain marcoparet, neurolinguistic, polyvagal*): finche non lo fa i siti polyvagal restano fermi al 11/09. (2) verificare domani dopo le 07:10 UTC il riepilogo (monitors/watch_riepilogo_ultimo.txt) e che il primo alert reale porti avvisi=1 in watch_state.json. (3) restano i punti 1-4 del 12/09 notte
=== allievi_360_pipeline ===
''Aggiornato 2026-09-12 13:25 UTC'' — dominio: finanza
; Obiettivo : Tabella ALLIEVI canonica + riconciliazione totale (Marco 12/09). La ricerca allievi deve girare in background per ore
; Fatto (con prova) :
* 12/09: (a) riconcilia_cassa.py a 4 strati + pagatori_alias (cron 07:35)
* (b) allievo_360.py: motore di ricerca deterministico su una persona o su un PLACEHOLDER (dal piano rate risale al pagatore: chi ha versato quelle cifre in quelle date, +checkin per costo, +contratti, +Salsina, +Gmail isicnv)
* fonti gia' in BigQuery: isicnv_contacts.zoom_participants, streak_boxes_daily, contatti_master (con note_crm), emails_master, staff_inbox_raw
* isicnv_finance.allievi_master (person_id, tot_versato, saldo), allievi_checkins, allievi_contratti, allievi_pagamenti, transactions_multianno, contabilita_salsina, anagrafica_unificata (29.125 righe). Job in corso: allievo360_ignoti_0912 (5 placeholder + DCS Grandi Eventi), report in /home/claudeuser/reports/allievo360/
* allievo_360.py operativo. IDENTIFICATI: placeholder 64B0DBC00A2A = MONICA CARBE immobilaffari@gmail.com
* placeholder A87F93215573 = FRANCESCO MARCIELLO gurufranc@gmail.com (Wise MARCIELLO FRANCESCO PAOLO)
* D.C.S. GRANDI EVENTI = CLAUDIA PANI pani.claudia@gmail.com. Tutti e tre inseriti in pagatori_alias. REGOLA DI MARCO: marcoparet@gmail.com si interroga via MCP Gmail SOLO quando isicnv@gmail.com non ha dati. SCOPERTA: le notifiche Wise di incasso arrivano a informazionicorsi@gmail.com (terza casella, fonte di riconciliazione non ancora usata). CORREZIONE: ily1975@gmail.com e' Ilaria Polidori (IPCA), NON Cristiana Morroni: anagrafica_unificata ha rumore sui nomi da streak
* allievo_360.py operativo
* identificati e messi in pagatori_alias: 64B0DBC00A2A=MONICA CARBE immobilaffari@gmail.com, A87F93215573=FRANCESCO MARCIELLO gurufranc@gmail.com, D.C.S. GRANDI EVENTI=CLAUDIA PANI pani.claudia@gmail.com. Regola: marcoparet@gmail.com via MCP Gmail solo se isicnv non ha dati. GRUPPI+SITI: creato gruppi_e_siti.py (job gruppi_siti_0912 in corso) che ricostruisce i gruppi Google dai messaggi isicnv verso *@googlegroups.com e legge i permessi dei 100+ Google Sites
* carica isicnv_finance.google_gruppi, google_gruppi_membri, google_sites_accessi. ACCERTATO: i permessi Drive dei Sites contengono SOLO staff (isicnv, marcoparet, informazionicorsi, isicnvstaff, sulzina02, venetomarketinglab, studiointramentis) - gli allievi NON compaiono li': l'accesso allievi passa dai gruppi (es. advanced-level-2019-2020@googlegroups.com, advanced-course@, cours-avanc@) usati per le convocazioni di lezione. Quindi il match corso<->allievo si fa gruppo<->nome del sito, non dai permessi
* GRUPPI: gruppi_membri_scrape.py legge i membri da groups.google.com col profilo admin julesdupotet (/home/claudeuser/.config/chrome-jules, copiato in chrome-jules-scrape a ogni giro
* Playwright NON ha il suo chromium, si usa executable_path=/usr/bin/google-chrome
* DISPLAY=:1 via VNC gia' attivo). Caricati in isicnv_finance.google_gruppi_membri_admin. WORKER: allievi_360_worker.py macina la worklist (1.844 persone da pagamenti+gruppi+Salsina+check-in, dal piu' recente indietro), un contatto alla volta, finestra 6h, stato in /home/claudeuser/monitors/allievi360_state.json, ripristinabile
* cron */20 con flock lo riprende se cade. Log /home/claudeuser/logs/allievi360.log
; Prossimo passo :
* (1) a scrape finito, incrociare google_gruppi_membri_admin con allievi_pagamenti: chi e' in un gruppo-corso senza pagamenti = moroso vero
* chi paga e non e' in nessun gruppo = accesso mai dato
* (2) mappare gruppo->sito->corso usando i nomi (advanced-course/cours-avanc/advanced-level-2019-2020 = ADVANCED
* mesmerismus-online + course-alicante/new-york/australia = MESMERISMUS
* formazione-online---master-ipnosi---italia = MASTER IT
* ultimate-path(+franais) = ULTIMATE)
* (3) FASE 2: da allievi_360 costruire la tabella allievi_master estesa
* (4) placeholder AC4B36231C82 a DeepSeek
=== riconciliazione_cassa ===
''Aggiornato 2026-09-12 10:14 UTC'' &mdash; dominio: finanza
; Obiettivo : Marco: ogni entrata deve avere la sua ragione; pipeline a 4 strati + entrate non attribuite
; Fatto (con prova) :
* creato /home/claudeuser/scripts/riconcilia_cassa.py (4 strati: incasso diretto -> movimento bancario con ALIAS pagatore -> foglio contabilita Salsina -> Gmail isicnv con --gmail). Creata tabella isicnv_finance.pagatori_alias, primo alias D AMICO PATRIZIA = GIUSEPPE MORANA. Filtro anti-rumore su giroconti/payout/cashback. Cron 07:35 UTC, report in /home/claudeuser/reports/riconciliazione_AAAAMMGG.txt. Primo giro: 19 rate, 16 spiegate, 3 non pagate (tutte PLACEHOLDER), 11 entrate non attribuite
* riconcilia_cassa.py attivo (cron 07:35 UTC, report in /home/claudeuser/reports/). 12/09 verifica di Marco 'gli italiani regolari sono allievi': CONFERMATA. Aggiunto strato anagrafica_unificata: le entrate orfane sono divise in A) allievo censito senza piano rate e B) sconosciuto. Bug trovato: le query bq erano troncate a 3000 righe e l'anagrafica ne ha 29.125 -> ora 200.000 per quella query. Risultato: 9 entrate su 11 sono allievi noti (Marzocchi 668/mese, Grappi 713/mese, Morroni 212/mese, Rozza 300, Strohmaier 490), 2 sconosciute (Viramontes Molina 500, D.C.S. Grandi Eventi 300)
; Prossimo passo :
* (1) creare il piano rate per Marzocchi Marzio (ghenshiro@gmail.com), Grappi Paola (paolagrappi.anemos121@gmail.com), Morroni Cristiana (ily1975@gmail.com): pagano ogni mese la stessa cifra ma non hanno piano ne' riga nel foglio Salsina
* (2) chiedere a Salsina chi sono GERARDO VIRAMONTES MOLINA (500 del 08/09) e D.C.S. GRANDI EVENTI (300 del 07/09)
* (3) ROZZA EROS in anagrafica ha l'email dell'agenzia VMK Lab (lead.clienti@vmklab.it): anagrafica da correggere
* (4) i 5 PLACEHOLDER (21 righe, 5.258 EUR) restano senza nome
=== chat-s20260911-si1secondary-qqnl4c ===
''Aggiornato 2026-09-12 00:00 UTC'' &mdash; dominio: chat_riprese
; Obiettivo : Completare il deploy SI-1: riparare il crash gcloud (credenziali rotte), installare in cron la copia dell'orchestrator su secondary e produrre la consegna verificabile D1
; Vincoli in vigore :
* gate=auto
* non chiedere a Marco
* verifica prima di dichiarare fatto
; Fatto (con prova) :
* chat S20260911-si1secondary-qqnl4c chiusa senza prova
* contesto ricostruito da riprendi_chat
; Prossimo passo :
* 1|Diagnosticare il crash gcloud riportato nel messaggio umano non letto ('Credentials' object has no attribute 'private_key_id')|gcloud info --run-diagnostics
* gcloud auth list
* gcloud config list
* 2|Ripristinare le credenziali gcloud (re-auth interattiva o service account)|SERVE MARCO: gcloud auth login (richiede browser/OTP)
* alternativa non interattiva: gcloud auth activate-service-account --key-file=<chiave> se disponibile sul sistema
* 3|Installare la copia dell'orchestrator SI-1 nel crontab di secondary, replicando la voce '27 */4' gia' attiva sulla VM|su secondary: crontab -e e aggiungere la riga '27 */4 <comando orchestrator SI-1>' identica a quella della VM
* 4|Verificare la schedulazione su entrambe le macchine e l'esecuzione dell'orchestrator|crontab -l su VM e su secondary (voce '27 */4' per SI-1 presente)
* controllare log/ultima esecuzione dell'orchestrator
* 5|Produrre la consegna verificabile D1 (output crontab -l di VM e secondary + log esecuzione) e chiudere la chat con prova di completamento|aggiornare il GIORNALE con END verificato e D1 consegnato al posto di 'D1 MANCA'
=== chat-s20260910-claudesi1ref-1kurya6 ===
''Aggiornato 2026-09-11 23:40 UTC'' &mdash; dominio: chat_riprese
; Obiettivo : Chiudere verificato il cantiere SI-1 Reflect (chat S20260910-claudesi1ref-1kurya6): eseguire le verifiche rimaste su si1.cron.log, definire la consegna verificabile D1, aggiornare wiki/handoff, e gestire il messaggio umano non letto sull'errore gcloud.
; Vincoli in vigore :
* gate=auto
* non chiedere a Marco
* verifica prima di dichiarare fatto
; Fatto (con prova) :
* chat S20260910-claudesi1ref-1kurya6 chiusa senza prova
* contesto ricostruito da riprendi_chat
; Prossimo passo :
* 1|Leggere e gestire il messaggio umano non letto: errore gcloud (AttributeError: 'Credentials' object has no attribute 'private_key_id')|gcloud info --run-diagnostics
* verificare/rigenerare le credenziali (gcloud auth login o activate-service-account) e riportare l'esito in chat
* 2|Eseguire la verifica rimasta dal journal 10:32|grep -E "MANUTENZIONE|GATE_REFLECT" /home/claudeuser/self_improvement/si1.cron.log
* 3|Eseguire le verifiche pendenti precedenti|tail -30 /home/claudeuser/self_improvement/si1.cron.log
* python3 /home/claudeuser/self_improvement/reflect_gate.py --auto
* 4|Definire e verificare il deliverable D1 'consegna verificabile' (es. digest gate rc=0 + righe GATE_REFLECT nel log) e documentarlo|confrontare digest a75a1350e174 e rc del gate
* registrare D1 nel journal
* 5|Aggiornare wiki SI-1_Reflect e Cantieri aperti con l'esito verificato e chiudere il cantiere ripresa_S20260910-claudesi1ref-1kurya6|modifica wiki + entry GIORNALE END verificato
* 6|SERVE MARCO: sbloccare il gate umano del cantiere ripresa_S20260910-claudesi1ref-1kurya6 (campanello: esame immediato) se la verifica automatica non basta a chiudere
=== chat-s20260911-clauderegist-sskkcz ===
''Aggiornato 2026-09-11 23:00 UTC'' &mdash; dominio: chat_riprese
; Obiettivo : Completare e verificare la pipeline Zoom zoom_recordings_daily.py: chiudere i 2 job backfill in corso, assicurare che le 5 registrazioni recuperate (inclusa Lesson 8, presente solo su cloud Zoom) siano su Drive, definire il deliverable D1 mancante, e risolvere il crash gcloud segnalato nei messaggi umani non letti
; Vincoli in vigore :
* gate=auto
* non chiedere a Marco
* verifica prima di dichiarare fatto
; Fatto (con prova) :
* chat S20260911-clauderegist-sskkcz chiusa senza prova
* contesto ricostruito da riprendi_chat
; Prossimo passo :
* 1|Riprendere il contesto completo della sessione|python3 /home/claudeuser/scripts/handoff.py --resume zoom-registrazioni-daily-0911
* 2|Verificare se i 2 job backfill avviati alle 18:35 sono terminati con successo|ps aux | grep -iE 'zoom|backfill'
* controllare log/output di zoom_recordings_daily.py e del cron installato
* 3|Diagnosticare il crash gcloud non letto ('Credentials' object has no attribute 'private_key_id')|gcloud info --run-diagnostics
* gcloud components update
* ispezionare ~/.config/gcloud/application_default_credentials.json e ~/.config/gcloud/credentials.db
* 4|Riparare le credenziali gcloud (ricreare ADC o riattivare service account con key-file valida)|gcloud auth activate-service-account --key-file=<percorso chiave.json> oppure rm ~/.config/gcloud/application_default_credentials.json e rieseguire gcloud auth application-default login
* 5|Verificare che le 5 registrazioni recuperate dal cestino Zoom siano scaricate e caricate su Drive, inclusa Lesson 8 (attualmente solo su cloud Zoom)|ls -la sulla cartella di destinazione delle registrazioni
* verifica presenza di Lesson 8 su Google Drive
* 6|Definire e produrre il deliverable D1 (consegna verificabile) esplicitamente mancante|precisare la consegna verificabile dalla chat (es. report pipeline + elenco file caricati su Drive) e validarla
* 7|SERVE MARCO: credenziali Zoom S2S (blocco citato nel STEP delle 17:16) e, se la riparazione gcloud richiede login browser/OTP, completare gcloud auth login con Marco|
=== si-1-automiglioramento ===
''Aggiornato 2026-09-11 22:28 UTC'' &mdash; dominio: VM / infrastruttura
; Obiettivo : SI-1 (/home/claudeuser/self_improvement): cron orchestrator ogni 4h SULLA VM (riportato indietro l 11/09 22:30 UTC: il secondary non ha credenziali GCP e il ciclo falliva a ogni corsa su reviewer.collect/bq). Pipeline reviewer -> researcher -> proposer -> TESTER -> promoter -> Reflect gate.
; Vincoli in vigore :
* read-only su cc-rescue e recovery_agent.py
* auto_code_roots restano self_improvement e hermes
* CODE_PATCH fuori dall automatico
* ogni modifica con backup e marcatore EVOLUZIONE=SI-1
* se si rimigra su secondary servono le credenziali GCP (decisione di sicurezza di Marco)
; Fatto (con prova) :
* 10/09 07:00 UTC: cron SI1_ORCHESTRATOR presente (27 */4, flock). Corse 00:27 e 04:27 morte per timeout bq CLI 120s (VM load 24, 23 bq in coda). Patch si_common.bq: client python google-cloud-bigquery + fallback CLI 300s x2 (test 3.7s vs timeout). pilot.py: guardia --help (prima --help lanciava un ciclo intero: bump config v3->v4 involontario ma idempotente). Job si1_ciclo_forzato_20260910 lanciato e passato oltre la raccolta casi. Safe Mode via HTTP: /safe/status ok, /safe/snapshot -> gs://isicnv-command-center-routes/safe_mode/snapshots/20260910T070934Z.tgz verificato
* 10/09 08:47 UTC: REFLECT installato (reflect.py + reflect_gate.py). Gate in coda a orchestrator.py (EVOLUZIONE=SI-1-REFLECT-GATE): rc!=0 impedisce la conclusione del ciclo. Prova: due run consecutivi stesso digest a75a1350e174 e stesso sha (stato IDENTICO), gate rc=0, log in logs/reflect.jsonl. Prima passata: 50 esiti, 20 PARZIALE, 30 IGNOTO, 2 findings, 0 blocker. Wiki ops SI-1_Reflect creata, Cantieri aperti aggiornato.
* 10/09: REFLECT v2 attivo. reflect.py scrive proposta + state/reflect_context.md + un learning per finding
* proposer.py inietta il contesto (EVOLUZIONE=SI-1-REFLECT-CONTEXT, riga 15)
* reflect_gate.py verifica digest, sha documento e sha contesto ed e agganciato in coda a orchestrator.py riga 33 (dopo once()). Soglie in config.json chiave reflect (window 50, finding 3, blocker 5). PROVE: run x2 IDENTICO stesso digest a75a1350e174
* --window 40 da digest diverso 1d631c043cf8
* log spostato -> rc=2
* contesto alterato -> rc=2
* ripristinato -> rc=0. Prima passata: 50 esiti, 20 PARZIALE, 30 IGNOTO, 2 findings AVVISO (famiglia mcpchatgpt: many_events, long_interactive), 2 learning. Wiki ops SI-1_Reflect aggiornata.
* 10/09 10:30: diagnosi log (123 esiti, 84 sessioni fantasma, 95 senza causa, 24 proposte con 0 promosse) e quattro correttivi. reviewer.py: _cause_extra (EVOLUZIONE=SI-1-CAUSE-ENRICH) con cause da metriche e da testo eventi. proposer.py: vincolo target = percorso assoluto sotto self_improvement/ o hermes/. Nuovi pending_digest.py (digest + archiviazione oltre 7 giorni) e rotate_logs.py (sopra 1MB, tiene 5), lanciati a fine ciclo da orchestrator.py (EVOLUZIONE=SI-1-MANUTENZIONE) prima del gate e senza bloccarlo. PROVE: _cause_extra su 4 casi corretto
* digest 21 pendenti 0 archiviate
* rotate nessun file sopra soglia
* gate rc=0. Wiki: SI-1_Reflect + SI-1_Qualità_dei_dati_e_manutenzione.
* 11/09: security_gate.py (regole deterministiche + parere modello, fail closed, log logs/security.jsonl) e tester.py (sandbox /tmp/si1_test, replace/patch, py_compile, test_cmd allowlist) agganciati in promoter.process in questo ordine: sicurezza, tester, decisione con pending_reason, apply_file_change per PROMPT_TUNE/CODE_PATCH con snapshot+rollback. proposer vincolato a forma eseguibile (replace/patch/test_cmd). pending_digest mostra il motivo. PROVE: esperto su proposta reale = BASSO
* proposta costruita T0 score 99 che abbassa judge_min_score e allarga i tipi automatici = ALTO, PENDING_HUMAN security_hold, config intatta. Tester sulle 44 pendenti: bocciate per target fuori radice/inesistente/parametri descrittivi. Corse cron 20:27 e 08:27 con MANUTENZIONE e GATE_REFLECT PASSATO
* 00:27 e 04:27 cadute per timeout ledger, gia reso non bloccante (SI-1-LEDGER-NONBLOCCANTE). Wiki ops: SI-1_Tester_e_Gate_di_sicurezza.
* 11/09: tester.py installato e agganciato al promoter (EVOLUZIONE=SI-1-TESTER): test FAIL -> AUTO_REJECTED con motivo
* pending_reason esplicito
* apply_file_change promuove PROMPT_TUNE/CODE_PATCH con snapshot+sha+rollback
* proposer vincolato a forma eseguibile (replace/patch/test_cmd). Prova sulle 47 pendenti: 47 FAIL non applicabili. E2E: proposta sintetica promossa, snapshot 20260911T141342Z_e2e_tester_prova (prima promozione mai avvenuta)
* negativo respinto
* test_cmd con operatori shell rifiutato. pending_digest invia Telegram alle 08:27 (SI-1-DIGEST-TELEGRAM). Keepalive cc-rescue-keepalive ogni 10 min su /health
* learning cc-rescue registrato. Wiki ops: SI-1_Tester.
* 11/09: tester.py agganciato al promoter (EVOLUZIONE=SI-1-TESTER): FAIL -> AUTO_REJECTED con motivo
* pending_reason esplicito
* apply_file_change promuove PROMPT_TUNE/CODE_PATCH con snapshot+sha+rollback
* proposer vincolato a forma eseguibile. 47 pendenti provate: 47 FAIL non applicabili. E2E: proposta sintetica promossa, snapshot 20260911T141342Z_e2e_tester_prova (prima promozione mai avvenuta). Digest Telegram 08:27. Keepalive cc-rescue-keepalive. Wiki ops SI-1_Tester.
* 11/09 22:30: scoperto che dalle 07:47 del 10/09 il cron SI-1 girava su isicnv-secondary senza credenziali GCP (/home/claudeuser/.gcp vuoto): ogni corsa USCITA 1 su bq. Le due copie di self_improvement erano divergenti: allineati sul secondary tester.py, promoter.py, proposer.py, pending_digest.py, security_gate.py (backup in backups/). Cron riportato sulla VM con migra_cron.py --rollback 206 (VM riga 206 attiva, secondary 0). Lanciata corsa manuale di verifica con lo stesso flock.
; Provato ed escluso :
* tool MCP safe_* non testabili da questa chat (connettore non caricato): la via HTTP con X-API-Key e equivalente e verificata
; Prossimo passo :
* grep -nE "test:|AUTO_PROMOTED|pending_reason|Traceback|GATE_REFLECT" /home/claudeuser/self_improvement/si1.cron.log | tail -15 : verificare la corsa manuale e la 00:27
* poi cantiere proposer-con-contenuto-del-target
=== zoom-registrazioni-daily-0911 ===
''Aggiornato 2026-09-11 20:16 UTC'' &mdash; dominio: trascrizioni
; Obiettivo : Pipeline ZOOM-1: registrazioni cloud Zoom -> Drive -> trascrizione -> Telegram; storico lezioni/partecipanti/iscritti/registrazioni in BigQuery zoom.*
; Vincoli in vigore :
* Scope report aggiunti da Marco 11/09 (report:read:user:admin ecc.). LIMITE ZOOM: il report copre SOLO gli ultimi 6 mesi (code 300): lo storico prima di marzo 2026 non e' recuperabile dall'API
* il cron 06:45 fa scorrere la finestra ogni giorno cosi' da qui in avanti nulla si perde. Cancellazione automatica da Zoom dopo archiviazione NON attiva (serve OK Marco).
; Fatto (con prova) :
* Script /home/claudeuser/scripts/zoom_recordings_daily.py (compila, dry-run ok, esce rc=3 senza credenziali). Cron 06:15 ogni giorno --days 3, log /home/claudeuser/zoom_rec/daily.log, stato /home/claudeuser/zoom_rec/state.json. Scarica MP4 (speaker view) + M4A + VTT transcript Zoom + chat, upload resumable su Drive, poi job.py trascrivi_ids.py --lang auto sull'M4A con Doc nella cartella Drive. Su Drive oggi esiste solo ULTIMATE PATH LESSON 1.mp4 (1RzftibHpVT4g9EZOLt8SvjkafbyiVFwp).
* SBLOCCATO 11/09: API funziona. Prima corsa --days 10: 11 file su Drive, cartella Registrazioni Zoom 1TZ-GAzZHuTlcEvvzOlEE1qBRLBTTxrn1 / 2026-09 1OmzKz9VSrpgANI9RJlnmB8e2ZabQdPuA. ULTIMATE PATH LESSON 8 (10/09, mp4 215 MB + m4a 46 MB + chat) e Australian Academy 07/09 (mp4 210 MB, m4a, VTT closed caption, chat) caricati. Job trascrizione lanciati: zoomtr_ultimatepathlesson8_2026-09- e zoomtr_marcoparet_australia_2026-09- (Doc TRASCRIZIONE nella cartella 2026-09). Cron 06:15 --days 3 attivo. Nota: Salsina non ha mandato la registrazione
* su Drive c'era solo LESSON 1.
* SBLOCCATO 11/09: API funziona. Prima corsa --days 10: 11 file su Drive, cartella Registrazioni Zoom 1TZ-GAzZHuTlcEvvzOlEE1qBRLBTTxrn1 / 2026-09 1OmzKz9VSrpgANI9RJlnmB8e2ZabQdPuA. ULTIMATE PATH LESSON 8 (10/09, mp4 215 MB + m4a 46 MB + chat) e Australian Academy 07/09 (mp4 210 MB, m4a, VTT closed caption, chat) caricati. Job trascrizione lanciati: zoomtr_ultimatepathlesson8_2026-09- e zoomtr_marcoparet_australia_2026-09- (Doc TRASCRIZIONE nella cartella 2026-09). Cron 06:15 --days 3 attivo. Nota: Salsina non ha mandato la registrazione
* su Drive c'era solo LESSON 1.
* v2 script: --from (backfill a finestre 30 gg), --inline-transcribe (sequenziale), avviso Telegram a fine corsa (bot ISI-CNV Worker). Prima corsa: Lesson 8 + Australian 07/09 su Drive, trascrizioni job zoomtr_*. Job backfill zoom_backfill_0911 (--from 2024-01-01 inline) e zoom_backfill_cestino_0911 (parte dopo, riprende i 5 recuperati dal cestino). Cron 06:15 --days 3 attivo.
* zoom_bq_sync.py (cron 06:45): tabelle zoom.riunioni_passate (7), partecipanti (327), riunioni_programmate (11), iscritti (91), registrazioni (43, con cestino), vista v_lezioni. zoom_recover_trash.py salvato. ZOOM-1 registrata (sovrapposizione segnalata: INF-1). Backfill zoom_backfill_0911 in corso (trascrizione inline), poi zoom_backfill_cestino_0911.
* zoom_bq_sync.py v2 (default --from oggi-180gg, salta le finestre oltre i 6 mesi): 43 riunioni passate da marzo 2026, 3.313 righe partecipanti (cache in zoom_rec/participants/), 11 programmate, 93 iscritti, 43 file registrazione
* vista zoom.v_lezioni. Job zoom_bq_storico_6m_0911 completato.
; Prossimo passo :
* job.py --status zoom_backfill_0911 e zoom_backfill_cestino_0911 (trascrizioni)
* query: SELECT * FROM zoom.v_lezioni ORDER BY start_time DESC (client bigquery sulla VM, dataset in EU). Se Marco autorizza: --free-space in zoom_recordings_daily.py per cancellare da Zoom dopo verifica Drive+trascrizione.
=== prova_parcheggio_gate3 ===
''Aggiornato 2026-09-11 13:59 UTC'' &mdash; dominio: test
; Obiettivo : prova
; Prossimo passo :
* python3 /home/claudeuser/scripts/handoff.py --list
=== prova_parcheggio_gate2 ===
''Aggiornato 2026-09-11 13:57 UTC'' &mdash; dominio: test
; Obiettivo : prova
; Prossimo passo :
* python3 /home/claudeuser/scripts/handoff.py --list
=== prova_parcheggio_gate ===
''Aggiornato 2026-09-11 13:54 UTC'' &mdash; dominio: test
; Obiettivo : prova del gate di chiusura
; Prossimo passo :
* python3 /home/claudeuser/scripts/handoff.py --list
=== sito-ipnomentalismo ===
''Aggiornato 2026-09-11 09:34 UTC'' &mdash; dominio: -
; Obiettivo : Sito-manuale riservato Ipnomentalismo / Ipnosi sottile, modello Ipnoanalgesia
; Fatto (con prova) :
* 11/09: ONLINE https://www.neurolinguistic.com/ipnomentalismo/ (7 pagine, login Google, accessi mode=all). Censimento: 69 lezioni/37,3h (censo.json nomi+testo, concetto.json firma concettuale), corpus 23 manuali in /home/claudeuser/ipnomentalismo/corpus/ (Avviamento ipnotismo sottile liv.2 PDF, Ipnosi sottile 2015/2016, Primi passi 2022, 9 lezioni corso online, dispense). Generatore /home/claudeuser/scripts/im_build.py (corpus|transcripts|build|publish), LLM deepseek-chat (glm-5.2 fuori budget settimanale). Gate: gate.php+.htaccess clonati, accessi.sh ipnomentalismo mode all (modi validi: all|list, NON any). QA headless 7/7 pagine OK. Cartella vecchia riservato-ipnomentalismo-m4k9p7 ancora presente, da cancellare.
; Prossimo passo :
* Spezzoni fini dai 69 file (clonare analgesia_spezzoni.py)
* cron 4h come analgesia_ciclo.sh
* cancellare cartella vecchia
=== migrazione-carichi-media ===
''Aggiornato 2026-09-10 07:42 UTC'' &mdash; dominio: infrastruttura
; Obiettivo : Spostare i 197 cron della VM (729 esecuzioni/ora su 2 vCPU) dove e opportuno: 67 restano (monitor locali, ssh), 85 su media (BigQuery/Drive/video), 45 su secondary (solo API CC e Telegram). Via libera di Marco 10/09: fino al risultato finale.
; Vincoli in vigore :
* Il SA della VM non puo assegnare ruoli IAM (manca setIamPolicy): il SA media-worker@leafy-responder-483419-a4 esiste, chiave gia su media in /home/claudeuser/.gcp/media-worker.json, ma SENZA ruoli finche Marco non li da in console (bigquery.jobUser, bigquery.dataEditor, storage.objectUser). Il driver aspetta da solo quel momento. Backup crontab VM: backups/crontab_vm_prima_migrazione_20260910.txt. Wrapper bq = semaforo 2 slot.
; Fatto (con prova) :
* FATTO 09/09: agent.py in systemd su translator/media/secondary (porta 8080 aperta)
* route CC POST /vm/exec-on {host: vm|translator|media|secondary, cmd, timeout} testata su tutte e 4
* earlyoom + swappiness 10 sulla VM
* wrapper /usr/local/bin/bq con nice 15 + timeout 300 (22 script cron usano bq CLI)
* vm-heartbeat.sh riscritto solo-curl (da 60s+ a 1.5s, backup .bak_bq_20260909)
* uccisi gsutil/bq orfani da 30 min.
* censimento_cron.py -> logs/censimento_cron.json (197 righe classificate). migra_cron.py: --lotto/--verifica/--rollback/--stato, promuove dopo il primo log pulito, ripristina su Traceback/credenziali/file mancanti. migrazione_driver.sh in cron */30: rsync idempotente, pip, verifica, un lotto per giro (secondary_1 45 cron, media_1 15 senza Google, poi lotti media_bq da 15 quando la SA risponde), si ritira da solo a fine lavoro.
; Provato ed escluso :
* Upgrade e2-medium: NO (deciso). Billing export BQ e budget alert: il SA della VM non ha permessi billing, deve farlo Marco in console.
* Cadenze dei cron NON toccate (es. campaigns_monitor ogni minuto): solo spostamenti. Nessuna chiave del SA compute (editor) fuori da GCP.
; Prossimo passo :
* tail -40 /home/claudeuser/logs/migrazione_driver.log
* python3 /home/claudeuser/scripts/migra_cron.py --stato
* cat /home/claudeuser/logs/migrazione_cron_state.json | python3 -c "import json,sys
* [print(k,v[\"dest\"],v[\"stato\"],v.get(\"motivo\",\"\")) for k,v in json.load(sys.stdin).items() if v[\"stato\"]==\"ripristinato\"]"  # i ripristinati vanno letti uno a uno: dipendenze locali non rilevabili dal log
=== reverse-nlp-legacy-html ===
''Aggiornato 2026-09-09 00:43 UTC'' &mdash; dominio: Hosting / siti
; Obiettivo : neurolinguistic.com: conversione additiva pagina-per-pagina a PNL3/Reverse NLP dalle HTML legacy meno visitate (job_reverse_nlp_legacy_html_20260909)
; Vincoli in vigore :
* MANTENERE-ANTEPORRE-COLLEGARE-PRECISARE
* nessuna cancellazione testo storico, URL/title/H1 invariati
* ordine per traffico reale GA4 (analytics_isicnv.ga4_pages_daily, property 533218658+399463272)
* backup prima di ogni modifica
* QA HTML/mobile/HTTP per pagina
* pubblicazione = azione irreversibile: primo lotto proposto a Marco prima del deploy
; Fatto (con prova) :
* traffico HTML 2025-08..2026-08 esportato in /home/claudeuser/reverse_nlp_legacy/traffico_html_2025-08_2026-08.csv (348 URL, 932 views)
* lotto 1 scelto = 10 URL a 1 view chiaramente PNL (batch1.txt)
* originali scaricati via ssh FastComet in orig/ e backup in backup/
* LOTTO 1 ONLINE 09/09 00:40 UTC: 10 pagine (batch1.txt) con lead RF + sezione Dalla PNL alla PNL3
* blocchi in blocchi.json, apply.py idempotente (marker rnl-additivo-2026-09), qa_html.py PASS 10/10, mobile ok
* backup server ~/rnl_backup_20260909 e VM backup/
* log Drive
* LOTTO 2 ONLINE 09/09 00:40 UTC: italy-20,24,25,23,06,26,05,02,10 + magnetismo/rapport-magnetico (blocchi2.json)
* QA estesa PASS (canonical, noindex, img, keyword, testo 100%)
* inventario 7418 htm con GA4+GSC in inventario_legacy_html.csv (Drive 1bhHc1KDlKXuCMiNPdmBg90bKTC9D6m8-)
* registro_operativo.csv (Drive 16ar1_8T4QoJ3UZQpkuoSy1grvnLnG8Rg)
* Doc Legacy HTML Audit aggiornato con lotti 1-2 e lotto 3 proposto
* Marco (prompt 09/09): NON chiedere approvazione per pagina, continuare a lotti
; Provato ed escluso :
* dataset site_analytics_2026: non esiste, i dati sono in analytics_isicnv
; Prossimo passo :
* LOTTO 3: cd /home/claudeuser/reverse_nlp_legacy && cat > batch3.txt (URL dal Doc Audit sez. LOTTO 3 proposto
* verificare prima formato di nlp/rapport.htm e nlp/erickson.htm) && scaricare orig via sshpass ssh marcopar@itpro1.fcomet.com tar -T batch3.txt, leggere testi, scrivere blocchi3.json, python3 apply.py blocchi3.json, backup+deploy, job.py --run "python3 qa_html.py batch3.txt", python3 registro.py
=== chat-s20260908-dipisafermo-1ol47hs ===
''Aggiornato 2026-09-08 23:22 UTC'' &mdash; dominio: chat_riprese
; Obiettivo : Completare R90-bis per la chat S20260908-dipisafermo-1ol47hs (dipisa-pagina-en): commessa automatica al primo comando, filtro assenso e pagina 7150 corretta, producendo i deliverable D1-D4 tutti mancanti (diagnosi, pagina IT corretta, regola wiki-prima, filtro)
; Vincoli in vigore :
* gate=auto
* non chiedere a Marco
* verifica prima di dichiarare fatto
; Fatto (con prova) :
* chat S20260908-dipisafermo-1ol47hs chiusa senza prova
* contesto ricostruito da riprendi_chat
* chat S20260908-dipisafermo-1ol47hs chiusa senza prova
* contesto ricostruito da riprendi_chat
; Prossimo passo :
* 1|Superare il gate umano del cantiere ripresa_S20260908-dipisafermo-1ol47hs (campanello per esame immediato, chat bloccata da errori glm-5.2 429/timeout)|suonare il campanello al gate=umano del cantiere ripresa_S20260908-dipisafermo-1ol47hs
* 2|Riprendere la chat S20260908-dipisafermo-1ol47hs nel cantiere di ripresa|handoff.py --resume dipisa-pagina-en
* 3|D1: produrre la diagnosi mancante|redigere la diagnosi R90-bis nel cantiere ripresa_S20260908-dipisafermo-1ol47hs
* 4|D2: correggere e pubblicare la pagina IT (pagina 7150)|correzione della pagina IT 7150
* 5|D3: scrivere la regola wiki-prima|inserire la regola wiki-prima
* 6|D4: implementare il filtro di assenso|implementare il filtro assenso (commessa automatica al primo comando)
* 7|Far verificare il completamento (chat chiusa END_NONVERIFICATO)|richiedere esame/verifica dei deliverable D1-D4 al gate
=== trascrizione-master-tanya-0709 ===
''Aggiornato 2026-09-08 22:46 UTC'' &mdash; dominio: trascrizioni
; Obiettivo : Trascrizione 2 video mail 'registrazione Master e Tanya'
; Vincoli in vigore :
* I file sono condivisi SOLO con marcoparet@gmail.com: token isicnv -> 404, accesso anonimo -> login. Nessun token Drive marcoparet su VM/GCS. Serve che Marco condivida i 2 file con isicnv@gmail.com (o Salsina).
; Fatto (con prova) :
* Script pronto: /home/claudeuser/scripts/trascrivi_ids.py (download per ID, audio 16k, pezzi 20 min, Groq whisper-large-v3, txt+json+timestamp, Doc in cartella). Cartella output Drive: 1kyhy6ydhyCWNN0jNFeFkrrsUjhZTOtmC
* Accesso dato da Marco. Job trascr_master_tanya_0709 in corso (Master CNV 07/09, 175 min, italiano). Tanya (60 min) e' in INGLESE: prima passata con language=it era una traduzione -> cancellata
* ricodata con --lang auto nel piano trascr_tanya_en (job trascr_tanya_en_run) che parte alla fine del Master.
; Prossimo passo :
* python3 /home/claudeuser/scripts/job.py --status trascr_master_tanya_0709
* python3 /home/claudeuser/scripts/job.py --status trascr_tanya_en_run
* ls /home/claudeuser/trascrizioni_isicnv/DRIVE/ | grep -E 'CNV per il|GMT20260907'
* poi rileggere i Doc nella cartella Drive 1kyhy6ydhyCWNN0jNFeFkrrsUjhZTOtmC
=== dipisa-pagina-en ===
''Aggiornato 2026-09-08 19:22 UTC'' &mdash; dominio: pagine
; Obiettivo : Pagina inglese su Erminio Di Pisa con PAG-2, fatti SOLO dalla wiki: https://wiki.marcoparet.com/wiki/Prof._Erminio_Di_Pisa_%E2%80%94_Ipnosi_con_lo_Sguardo (Caravelli Milano 1973, morte 29/6/1977; triade Webb-Ceccarelli-Di Pisa; sguardo alla radice del naso; induzione TV; radio terapeutica; Regio di Parma 1978; Paret allievo diretto)
; Vincoli in vigore :
* nessuna data di nascita/morte di Di Pisa: la wiki non le da
* niente promesse terapeutiche
* solo bozza, pubblica Marco
; Fatto (con prova) :
* Pagina IT 7150 corretta e verificata live: tolte le date false 1892-1958 e la frase prima meta del Novecento
* regola wiki-prima in memoria rule_1788895263452_p8oahr
; Prossimo passo :
* cd /home/claudeuser/scripts && python3 crea_pagina.py questionario "Erminio Di Pisa" --lang en, poi fabbrica.py nuova "Erminio Di Pisa" --def <def_pNN.txt> --titolo "Erminio Di Pisa: the Italian master of eyes-open hypnosis" --slug erminio-di-pisa --lang en
=== rete-sicurezza-orfani ===
''Aggiornato 2026-09-08 07:30 UTC'' &mdash; dominio: infrastruttura
; Obiettivo : Rete di sicurezza R94: le chat interrotte devono essere riprese dai cron senza Marco
; Vincoli in vigore :
* non toccare i cantieri con costi/invii/cancellazioni
* nessuna cancellazione su GCS
; Fatto (con prova) :
* gate_pipeline.py: una pipeline risponde sempre al proprio nome
* trigger PAG-2 ampliato
* sovra/ripresa_commessa.py ricostruisce il comando dalla commessa via registro
* handoff.py --list mostra PRONTO
* job ripresa_orfani_20260908 in corso sui 235 cantieri
* esamina_resta: riprova su 429, ritmo 3s, silenzio=[?] mai NO, avviso ogni 6h
* chat_controller chiama ripresa_commessa.py
* job rete_orfani_patch_20260908 (prova giudice) e ripresa_orfani_20260908 (235 cantieri) in corso
; Prossimo passo :
* job.py --status rete_orfani_patch_20260908
* se compaiono [AVANZA]/[MARCO] al posto di [?], --stato DONE
=== chat-s20260907-esemplari-1p38o3i ===
''Aggiornato 2026-09-07 22:02 UTC'' &mdash; dominio: chat_riprese
; Obiettivo : Completare i deliverable mancanti D1-D3 della pipeline-pagina-0609 (pagina how-to-develop-magnetic-presence, WP 7127): stadio PAG-2 di esemplari.py con ESEMPLARI.md per H2, CONFRONTO_2.md e CONFRONTO_3.md con metriche A/B, handoff aggiornato; poi superare l'esame della chat.
; Vincoli in vigore :
* gate=auto
* non chiedere a Marco
* verifica prima di dichiarare fatto
; Fatto (con prova) :
* chat S20260907-esemplari-1p38o3i chiusa senza prova
* contesto ricostruito da riprendi_chat
; Prossimo passo :
* 1|Verificare lo stato del job esemplari-magnetic2_run (build+confronto A/B)|python3 /home/claudeuser/scripts/job.py --status esemplari-magnetic2_run
* 2|Leggere il CONFRONTO_2.md eventualmente prodotto dal job|cat /home/claudeuser/pillars/p2/how-to-develop-magnetic-presence/CONFRONTO_2.md
* 3|Eseguire lo stadio PAG-2 di esemplari.py per generare ESEMPLARI.md per H2 (deliverable D1)|python3 /home/claudeuser/scripts/esemplari.py --slug how-to-develop-magnetic-presence --lang en --confronta 2
* 4|Completare CONFRONTO_2.md e CONFRONTO_3.md con le metriche A vs B (deliverable D2)|python3 /home/claudeuser/scripts/esemplari.py --slug how-to-develop-magnetic-presence --lang en --confronta 3
* poi verificare/editare /home/claudeuser/pillars/p2/how-to-develop-magnetic-presence/CONFRONTO_2.md e CONFRONTO_3.md
* 5|Aggiornare l'handoff della pipeline (deliverable D3)|python3 /home/claudeuser/scripts/handoff.py --resume pipeline-pagina-0609
* 6|Rieseguire l'esame della chat (fallito per HTTP 429 di glm-5.2, resta in coda)|riprendi_chat dopo aver atteso il reset del rate-limit glm-5.2
=== pipeline-pagina-0609 ===
''Aggiornato 2026-09-07 10:56 UTC'' &mdash; dominio: pipeline pagine
; Obiettivo : PIPELINE 2 (pagina2.py): semplice, deterministica, con harness; stesura da Claude con HARNESS.md; controlli senza riscrittura; bozza + Doc a strati; note di Marco -> regole
; Vincoli in vigore :
* Comandi: pagina2.py dossier|scrivi|controlla|bozza|note2regole --slug S. Stato in pillars/p2/<slug>/. La stesura NON usa i modelli del gateway (kimi/glm/minimax: impronta AI, bande ignorate) ne pipeline_completa R120 (riscrive e peggiora). Stesura = Claude con HARNESS.md (in chat oggi
* claude CLI sulla VM quando loggato: ora dice Not logged in). controlla = correzioni sicure (d epentetica ogni vocale, Fascinazione, id h2) + segnalazioni (frasi AI, negazioni, ci, link M48, note>=12, energia/polivagale/etica/YouTube/CTA/esercizio). bozza = UN solo ssh (M66) + Doc a strati. Semantico 8088/8089 spenti: il collage usa BM25 8085 con filtro autore Paret prima.
; Fatto (con prova) :
* 06/09 00:35: pagina.py scritta e funzionante end-to-end
* prima pagina 7083 who-is-the-father-of-modern-mesmerism pubblicata (collage 112 frasi da biblioteca + Training Manual di Marco, concorrenza, 260 regole p1), Doc IT 1lasNBE0vjN58nuqLEZJZcT2D0DHFmywjHnZAspFGVSI in Per pagine. Costo modelli misurato: 0.15 USD, 6 chiamate, 20 min. DIFETTO: kimi ignora la banda (7910 parole invece di 1500-1900)
* la condensazione 7b scartata
* R120 con potatore in corso (job pagina_fatherofmesmerism7)
* 06/09: 7083 tolta (draft). 7094 what-are-mesmeric-passes-and-how-do-they-work: materiale dalla pipeline (128 frasi, concorrenza, struttura), stesura da Claude come editor, guardiano+forma_finale, pubblicata dopo lettura, Doc IT 1g5xjb44_xpAsBoDIFP8XITt4wmipRE-VsPFlWK4-iUI in Per pagine. Costo modelli pipeline: 0.19 USD
* tempo macchina ~45 min
* tempo chat ~35 chiamate
* 07/09: pagina2.py installato
* controlla testato sulla pagina persuasione (0 frasi AI, 0 ci, mappa ok, segnala link mancanti e note 11<12)
* dossier testato su how-to-develop-magnetic-presence (esercizi reali di Alchimia Pratica trovati alla lettera, materiale Paret+biblioteca, concorrenza)
; Prossimo passo :
* 1) Marco: claude login sulla VM (serve lui) per lo stadio scrivi automatico
* finche' no, la stesura la fa Claude in chat dal HARNESS.md. 2) struttura via glm: verificare perche' e' caduta nel template (JSON). 3) Registrare PAG-4 nel registro pipeline. 4) Prima pagina completa con pipeline 2: magnetic presence (dossier pronto).
=== database-esercizi ===
''Aggiornato 2026-09-07 08:29 UTC'' &mdash; dominio: biblioteca
; Obiettivo : Database esercizi dal corpus: parole esatte, contesto, prerequisiti, vantaggi, pagina, libro. Fasi: 1 Paret, 2 Lefebure, 3 Hanish/Mazdaznan, 4 Durville, 5 Encausse/Papus, 6 Evola+Gruppo di Ur. Poi Marco amplia il corpus.
; Vincoli in vigore :
* Script canonico /home/claudeuser/scripts/esercizi_extract.py (BIB-1). Tabelle BQ biblioteca.esercizi + esercizi_coda. Modello glm-5.2 via aigw, 6 worker. Pagina: pdf (\\f) o stimata
* pagina_stampata dal testo. Costo stimato ~30 USD totali, tetto aigw giornaliero 8 USD -> il job pausa 60 min e riprende.
; Fatto (con prova) :
* Coda 295 doc costruita e deduplicata
* job esercizi_run lanciato 07/09 08:26 UTC
; Prossimo passo :
* python3 /home/claudeuser/scripts/esercizi_extract.py --stats && python3 /home/claudeuser/scripts/job.py --status esercizi_run
* se fermo: python3 /home/claudeuser/scripts/job.py --run "ESERCIZI_WORKERS=6 python3 /home/claudeuser/scripts/esercizi_extract.py --run" --id esercizi_run
* per ampliare il corpus: aggiungere autori in FASI e rilanciare --build-queue
=== pagine-seo-affiancate-0509 ===
=== pagine-seo-affiancate-0509 ===
''Aggiornato 2026-09-05 18:10 UTC'' &mdash; dominio: pagine SEO marcoparet.com
''Aggiornato 2026-09-06 21:58 UTC'' &mdash; dominio: pagine SEO marcoparet.com e neurolinguistic.com


; Obiettivo : Ciclo continuo: proporre a Marco nuove pagine da fare, scriverle come pagine NUOVE affiancate, pubblicarle, dargli il Doc italiano da correggere, estrarre le regole dalle sue note e riportarle sull inglese
; Obiettivo : Ciclo pagine nuove + Doc IT a strati + regole dalle note
; Vincoli in vigore :
; Vincoli in vigore :
* M43: nessuna pagina con contenuto si sostituisce mai, si affianca. Gate gate_pagina_protetta.py prima di toccare qualsiasi cosa. Guardia di dimensione prima di ogni wp post update. Registro regole M1-M45, 466 voci, in modelli_paret.md e regole_registro.json. M45: si lavora in ITALIANO
* Registro M1-M64 (736). M64.9: pagine di persuasione/vendita su neurolinguistic.com/blog (ssh marcopar@itpro1.fcomet.com, wp --path=/home/marcopar/neurolinguistic.com/blog), non su marcoparet.com. 64.1 niente temi negativi in apertura/titolo
* i Doc di revisione delle pagine nuove si creano nella cartella Drive Per pagine 1VMPg7NDEH9U9XnHIj1iKiO14wNNwEgwx (NON in Analisi di Claude GENERICO), anyone-writer, link cliccabile
* 64.4 rapport nasce dalla relazione
* 64.6 vendita: occhi e stretta di mano, non passi/tocco. Doc a strati sempre.
; Fatto (con prova) :
; Fatto (con prova) :
* 05/09: onde-cerebrali IT 7018 pubblicata
* 05/09: onde-cerebrali IT 7018 pubblicata
Riga 31: Riga 468:
* 78 pagine protette
* 78 pagine protette
* note Doc onde cerebrali 1IF5_ gia in M34
* note Doc onde cerebrali 1IF5_ gia in M34
* 05/09 sera: M46 (25 regole) estratte dal Doc sguardo 13tz6GqK3TSft5yvnWrO5A6WdwHLO5FTW3PzmRSvuLE8 e riportate su 7046 (14 sostituzioni, titolo Powerful, verificato live). Pagina NUOVA 7062 what-is-non-verbal-hypnosis-how-it-works pubblicata (affiancata al post what-non-verbal-hypnosis-and-why-it-effective), catena metafore/agente_logico/guardiano/dedup/scopo/forma_finale/gate PASS. Doc IT in Per pagine: 1R0I0SRbpZ8yfGQFNJzcyp1HAlgeO1njZYS3tWjGoWlo
* 05/09 notte: M47 estratte dal Doc 1R0I0SRbpZ8yfGQFNJzcyp1HAlgeO1njZYS3tWjGoWlo e applicate alla 7062 (riscrittura integrale, titolo con Touch and Presence, note da 7 a 20 tutte verificate una per una via web, agente_logico 6/6, guardiano OK, forma_finale OK, gate PASS, verificato live). Prima: M46 su 7046. Backup 7062_backup_prima_M47.html
* 05/09 notte: pagina NUOVA 7075 come-fascinare-con-lo-sguardo (IT) pubblicata, affiancata a fascinazione-ipnotica 6999 (105 impr 0 click, intatta). Titolo-domanda dalle query reali. 15 note verificate, agente_logico 2/2, guardiano OK, dedup OK, scopo SCOPO_OK, forma_finale OK, gate PASS, verificata live. Doc IT 1h2glSPY_WlmNPcNsfya3PrYYEDk-cQ_plelHTd9BAwk in Per pagine
* 06/09 notte: 7116 centratura (v3 EN fatta dall altra chat, regole M58 gia estratte da lei) PUBBLICATA da me dopo lettura e verifica link: https://marcoparet.com/self-hypnosis-centering-to-feel-and-find-your-own-centre/
* 7119 magnetic-touch-how-to-induce-trance-with-the-hand PUBBLICATA (terzo strumento dopo sguardo 7046 e passi 7094), Doc IT 1JbfWkH70s1-_AnBwjsGPkT7xroiK1x-WcyJDTNGrQhw
* 7094 passi pubblicata con Doc 1g5xjb44
* 06/09: M59 (32 voci) registrate con esito per regola
* testi dei due libri in pillars/confronto_*.txt e stats in confronto_stats.json
* pagina 7121 kairos-and-chronos-how-to-step-out-of-linear-time pubblicata dopo lettura (formula 59.31, metronomo dal libro, 12 note reali), Doc IT 10KVjfoNUlVEWTQ0SD31Nda52N2eG7t_T6K1yICp-aA8
* confronto in Doc 1my01fS9Ze6cmqUxFUD2mjKVHstCN3tyoROfdF0CrWcc
* 06/09 notte: kairos 7121 v2 (bambino, nell istante, due maniere, note approfondite) + Doc a strati
* M62
* pagina 7125 how-to-persuade-without-pressure (grammatica fusa 61.44, dai due libri verificati nel corpus, Deutsch&Gerard raccontato, modellamento->rispecchiamento) pubblicata dopo lettura, Doc IT creato
* 06/09 notte: 7125 marcoparet -> bozza
* pagina persuasione v2 pubblicata su neurolinguistic.com/blog PID 11804 con tutte le note di Marco
* Doc a strati 1i-CtKlHG92 (v2, note, v1)
* M63 (13) e M64 (9)
; Prossimo passo :
; Prossimo passo :
* Proporre a Marco le prossime pagine (in italiano): corso Zoom (186 impr, 2 click, URL brutta, decisione sua), trainings (124 impr, 4 click), /training/ (262 impr, 1 click), what-is-non-verbal-hypnosis e father-modern-mesmerism, bozza 6828 mesmerism-training EN. Sistemare agente_gerarchia.py col formato a righe. Verdetto Marco in sospeso: Doc sguardo ipnotico 13tz6GqK3TSft5yvnWrO5A6WdwHLO5FTW3PzmRSvuLE8
* Note di Marco su: tocco 7119, passi 7094, fascinare 7075, non verbale 7062. Titoli con formula status->disciplina->beneficio (63.13). Frase-cardine vera del libro nella pagina kairos. M48 link su 7116.


=== chat-s20260904-claudegatepi-e9nzup ===
=== chat-s20260904-claudegatepi-e9nzup ===
Riga 1 148: Riga 1 602:


== Chiusi ==
== Chiusi ==
=== si1_proposer_target ===
''Aggiornato 2026-09-11 22:31 UTC'' &mdash; dominio: infrastruttura
; Obiettivo : SI-1: il proposer deve vedere il file target prima di scrivere replace/patch
; Fatto (con prova) :
* 12/09: _ancora_al_target in proposer.py (EVOLUZIONE=SI-1-TARGET-CONTEXT): rilegge il file vero, chiede solo replace con find verbatim, 2 tentativi su 2 modelli, pending_reason con i tentativi se fallisce
* prova sintetica 2/2 ANCORATA
* memory_add risponde 200 (titoli con due punti e testi da 6000 char): il 400 di ieri non e riproducibile
* scrittura wiki handoff: rc=0
; Prossimo passo :
* osservare la corsa delle 16:27 UTC: python3 /home/claudeuser/self_improvement/pending_digest.py deve mostrare proposte ANCORATE e non solo pending
=== pnl3-reverse-nlp-wiki ===
''Aggiornato 2026-09-09 00:18 UTC'' &mdash; dominio: Wiki pubblica
; Obiettivo : Pubblicare le 39 pagine del cluster PNL3/Reverse NLP su wiki.marcoparet.com
; Vincoli in vigore :
* usare wiki_new.py (WIKI-1), non edit.php diretto
* PNL3 va aggiornata non ricreata (backup /home/claudeuser/pnl3_wiki/backup/PNL3_live_revid4642.wiki)
* MANTENERE-ANTEPORRE-COLLEGARE-PRECISARE
; Fatto (con prova) :
* pacchetto scaricato in /home/claudeuser/pnl3_wiki/pkg
* solo PNL3 esisteva live, 38 nuove
* catena piano pnl3-cluster (driver.py + qa.py) lanciata come job catena_pnl3-cluster alle 23:01 UTC, ritmo ~2.5 min/pagina (wiki_new.py fa ricerca similarita ogni volta)
* Template e Categoria gia online
* CHIUSO 09/09: 39/39 online, QA PASS, storia PNL3 preservata, log Drive 1M6ciq4qflYPC9JerIU3kYitCnb4K4GJD
; Provato ed escluso :
* publish_pnl3_cluster.sh del pacchetto (edit.php locale: la wiki sta su Hetzner 91.99.116.65, si passa da wiki_new.py)
; Prossimo passo :
* niente
=== microcredential-it-el-ro-online ===
=== microcredential-it-el-ro-online ===
''Aggiornato 2026-09-01 13:14 UTC'' &mdash; dominio: -
''Aggiornato 2026-09-01 13:14 UTC'' &mdash; dominio: -