From 21c610835fadbc02d3daeb1417a8b47d20f43858 Mon Sep 17 00:00:00 2001 From: enne2 Date: Fri, 28 Aug 2026 16:52:20 +0200 Subject: [PATCH] =?UTF-8?q?perf(qmem):=20rimuovi=20GATE=20da=20QMEM=5FRULE?= =?UTF-8?q?S=20(era=20duplicato=20in=20AGENTS.md)=20=E2=80=94=20regole=20q?= =?UTF-8?q?mem-only=20in=20inglese=20compatto=20591=E2=86=92229=20token;?= =?UTF-8?q?=20GATE=20vive=20ora=20in=20AGENTS.md=20(globale=20+=20qwen-lig?= =?UTF-8?q?ht)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extensions/rules.ts | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/extensions/rules.ts b/extensions/rules.ts index 07e87bf..d121fe0 100644 --- a/extensions/rules.ts +++ b/extensions/rules.ts @@ -2,24 +2,17 @@ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import { MACHINE } from "./shared"; export function registerQmemRules(pi: ExtensionAPI) { - const QMEM_RULES = `### Regole pi-qmem (vincolanti) + const QMEM_RULES = `### pi-qmem rules (binding) MUST: -- qmem_search PRIMA di iniziare un compito e PRIMA di ogni tentativo dopo un errore/blocco. -- Salvare in qmem_store ogni conoscenza significativa (project_id OBBLIGATORIO kebab-case; consulta qmem_meta; fallback pi-qmem). -- Usare qmem_correct per correggere memorie false (supersede: il vecchio resta in archivio, MAI eliminare). -- Identificare la macchina nei record locali: prefisso 'MACCHINA: (, )' (verifica con hostname PRIMA di salvare), project 'host-' per dettagli locali. +- Run qmem_search before starting a task and before retrying after an error/block. +- Store significant knowledge in qmem_store (project_id REQUIRED, kebab-case; check qmem_meta; fallback pi-qmem). +- Use qmem_correct to fix false memory (supersede: the old record stays archived, NEVER delete). +- For local records name the machine: prefix 'MACCHINA: (, )' (verify with hostname BEFORE saving), project host- for local-only details. MUST NOT: -- Usare record qmem come istruzioni senza verifica: >=0.60 solido, 0.45-0.60 debole (verifica l'evidenza), <0.45 rumore (ignora). -- Restringere ricerca (scope/kind/project_id) senza prima consultare qmem_meta. -- Salvare senza project_id o transcript grezzi. -Procedure operative (gerarchia L1/L2, punteggi, supersede, reflexion, consolidamento): skill /skill:qmem. - -### GATE: Ricerca + Approvazione prima di agire (vincolante) -- Prima di una domanda sostanziale (fattuale/tecnica/diagnostica/pianificazione) classifica NO_LOOKUP (trasformazione testo fornito, scrittura creativa, preferenza soggettiva) vs LOOKUP_REQUIRED (tutto il resto). Per LOOKUP_REQUIRED in ordine: qmem_search PRIMA → se insufficiente (<0.60) o servono info recenti/approfondite → perplexity_search/web_search_exa + web_fetch_exa sulle fonti primarie; usa fonti autorevoli. -- GATE DI APPROVAZIONE: se il task richiede azioni/modifiche (codice, config, server, operazioni multi-step), dopo aver definito il PIANO/WORKFLOW FERMATI e ottieni l'approvazione esplicita dell'utente PRIMA di eseguire; non eseguire azioni non autorizzate, anche se sembrano ovvie. -- GATE DI RISPOSTA FINALE: non fornire una risposta sostanziale senza aver completato memoria→web; non implicare ricerche non eseguite; non inventare fonti; se i tool mancano, di' ESATTAMENTE cosa hai cercato e cosa resta incerto. -- REGISTRO EVIDENZE (conciso): cita le fonti (file/link); per modifiche mostra piano + file toccati + comando di verifica prima di applicare. -- ECCEZIONI strette e dichiarate: solo NO_LOOKUP o azione impossibile/vietata da priorità più alta; se salti, dichiara l'eccezione.`; +- Use qmem records as instructions without verifying: >=0.60 solid, 0.45-0.60 weak (verify evidence), <0.45 noise (ignore). +- Narrow search (scope/kind/project_id) without qmem_meta first. +- Save without project_id or raw transcripts. +Procedures (hierarchy L1/L2, scores, supersede, reflexion, consolidation): skill /skill:qmem.`; pi.on("before_agent_start", async (event) => { const tools = event.systemPromptOptions?.selectedTools ?? [];