Files
marcopan 292048f777 feat(harness): language workspace param + skill riscritta in inglese (semantica completa)
Due cambiamenti interconnessi da user review:

1. language come parametro workspace (spec decisione 9):
   - Config.language (default 'en') + workspaces PSD con 'language: it'
   - Generalizza Thoth oltre l'italiano: descrizioni tabelle/colonne ed evidence
     sono nel workspace language; le istruzioni della skill restano in inglese
     (piu' affidabili per modelli piccoli, meno ambigue)

2. Skill riscritta in INGLESE preservando la semantica COMPLETA dell'originale
   (autocritica: la mia riscrittura precedente aveva perso ~10 vincoli precisi):
   - 'promuovere' ambiguo (3 accezioni: phase advance / recommend / memory promote)
     -> 'never advance a phase or record a decision without confirmation'
   - recuperati vincoli persi: choice-is-confirmation (no reviewer_confirm dopo
     reviewer_decide), reviewer_select SOLO per iterazione no-decision, messaggi
     auto-contenuti obbligatori, artefatto = superficie di decisione (gate rilegge
     da disco per CTE/SQL), candidati con provenienza+score non verita', opzione
     'leave ambiguity open', F1 passa lista completa non solo ultima
   - language contract esplicito (istruzioni EN, output nel workspace language)

Sottomoduli cte/memoria/rewriting/sql-generation in inglese, semantica tecnica
intatta (regole AV-SQL, dim_time trick, max 5 memorie solo 3 tipi riusabili).

Verifica: 0 residui nsp/chirone, tutti i tht <cmd> citati registrati, 165 passed.
2026-06-27 14:50:30 +02:00

69 lines
1.9 KiB
YAML

# Workspace ThothII — test (DWH remoto) per i test L2.
# Struttura allineata a workspaces/tht.example.yaml e tht/config.py.
# I segreti vivono SOLO in .env (${THT_*}).
language: it # descrizioni tabelle/colonne ed evidence sono in italiano (PSD)
database:
host: ${THT_DB_HOST}
port: ${THT_DB_PORT}
database: ${THT_DB_NAME}
schema: datawarehouse
user: ${THT_DB_USER}
password: ${THT_DB_PASSWORD}
transport: rest
rest:
base_url: ${THT_DWH_REST_URL}
api_key: ${THT_DWH_API_KEY}
ssl_ca: ${THT_SSL_CA}
paths:
artifacts: artifacts
indexes: indexes
sessions: sessions
embeddings:
base_url: ${THT_OLLAMA_URL}
model: nomic-embed-text-v2-moe
dim: 768
batch_size: 64
# LOADING diretto del pgvector (server-only). Su workstation la lettura passa da
# vector_rest; i campi direct-transport non sono usati ma il modello DatabaseConfig
# li richiede, per cui si appoggiano alle stesse variabili del server (popolate nel
# .env del server; sul workstation restano dummy/inediti finche' transport=rest).
vector_db:
host: ${THT_VEC_HOST}
port: ${THT_VEC_PORT}
database: postgres
schema: vectors
user: ${THT_VEC_USER}
password: ${THT_VEC_PASSWORD}
# LETTURA del pgvector via REST remota (rpc search_similar), ruolo vector_reader.
vector_rest:
base_url: ${THT_VEC_REST_URL}
api_key: ${THT_VEC_API_KEY}
ssl_ca: ${THT_SSL_CA}
# SCRITTURA controllata del pgvector via REST remota (upsert/hash via RPC allowlist),
# ruolo vector_writer. Path DEDICATO /vector/write/v1/ (diverso dal reader): la chiave
# writer vale solo qui, la reader solo su /vector/v1/. Key SEPARATA dalla lettura.
vector_write_rest:
base_url: ${THT_VEC_WRITE_REST_URL}
api_key: ${THT_VEC_WRITE_API_KEY}
ssl_ca: ${THT_SSL_CA}
vector:
max_chunk_chars: 4000
search:
rrf_k: 60
execution:
allow: [cte_test, explain, preview, aggregate, export]
max_preview_rows: 10
statement_timeout_ms: 5000
forbidden_functions: [set_config, dblink, dblink_exec, lo_import]