From 3675f16f48b60f372b0a67d861257bdde4543c06 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:11:54 +0000 Subject: [PATCH 01/13] Initial plan From be2f62885879b27f34c9c57a6906491ce345477e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:13:17 +0000 Subject: [PATCH 02/13] docs: define minimal-token AI-to-AI dialogue protocol --- README.md | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c54ac67..faf52fa 100644 --- a/README.md +++ b/README.md @@ -1 +1,53 @@ -# ArchPlan \ No newline at end of file +# ArchPlan + +## Protocollo per dialogo AI-to-AI a token minimi + +Obiettivo: ridurre i token mantenendo chiarezza, stato condiviso e sicurezza. + +### Regole base + +1. **Una riga = un atto**. +2. Ogni messaggio usa prefisso fisso: `T|ID|K|PAYLOAD` +3. `K` (kind) consentiti: + - `Q` = domanda + - `A` = risposta + - `C` = comando operativo + - `S` = stato/sintesi + - `E` = errore +4. `PAYLOAD` è compatto: + - chiavi corte (`obj`, `res`, `err`, `next`) + - valori enumerati quando possibile + - nessuna prosa superflua +5. Ogni turno include al massimo: + - 1 obiettivo + - 1 risultato + - 1 prossimo passo + +### Formato + +```text +T|||k1=v1;k2=v2 +``` + +Esempi: + +```text +T|17|Q|obj=test_scope;ctx=api_auth +T|18|A|res=2_fail;err=timeout,next=retry_1 +T|19|C|act=run;cmd=pytest_-k_auth +T|20|S|res=pass;next=close +``` + +### Compressione semantica consigliata + +- usare codici stabili (`pass/fail`, `hi/med/low`, `y/n`) +- evitare ripetizioni: riferirsi a `id` precedente +- inviare dettagli estesi solo su richiesta esplicita (`Q detail`) + +### Regola di fallback + +Se il messaggio è ambiguo, inviare: + +```text +T||E|err=ambiguous;next=clarify +``` \ No newline at end of file From ab9062633cfb86738bec8181a2382b4aee42c7cf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:13:46 +0000 Subject: [PATCH 03/13] docs: align payload delimiter in protocol example --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index faf52fa..b7d950a 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Esempi: ```text T|17|Q|obj=test_scope;ctx=api_auth -T|18|A|res=2_fail;err=timeout,next=retry_1 +T|18|A|res=2_fail;err=timeout;next=retry_1 T|19|C|act=run;cmd=pytest_-k_auth T|20|S|res=pass;next=close ``` From a02ba3f340697457c655f2527ece94ef8f8ea992 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:14:11 +0000 Subject: [PATCH 04/13] docs: clarify field casing and underscore encoding --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b7d950a..c83dc95 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Obiettivo: ridurre i token mantenendo chiarezza, stato condiviso e sicurezza. ### Regole base 1. **Una riga = un atto**. -2. Ogni messaggio usa prefisso fisso: `T|ID|K|PAYLOAD` +2. Ogni messaggio usa prefisso fisso: `T|id|K|PAYLOAD` 3. `K` (kind) consentiti: - `Q` = domanda - `A` = risposta @@ -17,6 +17,7 @@ Obiettivo: ridurre i token mantenendo chiarezza, stato condiviso e sicurezza. 4. `PAYLOAD` è compatto: - chiavi corte (`obj`, `res`, `err`, `next`) - valori enumerati quando possibile + - spazi codificati come `_` nei valori testuali - nessuna prosa superflua 5. Ogni turno include al massimo: - 1 obiettivo From 2bc4c5061e7af5541aff48d7a1a43ed1c94db7da Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:14:42 +0000 Subject: [PATCH 05/13] docs: refine protocol format and encoding rules --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c83dc95..2a35183 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Obiettivo: ridurre i token mantenendo chiarezza, stato condiviso e sicurezza. ### Regole base 1. **Una riga = un atto**. -2. Ogni messaggio usa prefisso fisso: `T|id|K|PAYLOAD` +2. Ogni messaggio usa struttura fissa con delimitatore `|`: `T|id|k|payload` 3. `K` (kind) consentiti: - `Q` = domanda - `A` = risposta @@ -15,9 +15,11 @@ Obiettivo: ridurre i token mantenendo chiarezza, stato condiviso e sicurezza. - `S` = stato/sintesi - `E` = errore 4. `PAYLOAD` è compatto: - - chiavi corte (`obj`, `res`, `err`, `next`) + - chiavi corte (`obj`, `res`, `err`, `next`), elenco non esaustivo + - nuove chiavi in `snake_case` breve - valori enumerati quando possibile - spazi codificati come `_` nei valori testuali + - underscore letterale codificato come `__` - nessuna prosa superflua 5. Ogni turno include al massimo: - 1 obiettivo @@ -27,7 +29,7 @@ Obiettivo: ridurre i token mantenendo chiarezza, stato condiviso e sicurezza. ### Formato ```text -T|||k1=v1;k2=v2 +T|||k1=v1;k2=v2 ``` Esempi: From f836972da118826997efc7b52d209ee43b84d1fd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:15:04 +0000 Subject: [PATCH 06/13] docs: align field casing in protocol spec --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2a35183..367b6f3 100644 --- a/README.md +++ b/README.md @@ -8,13 +8,13 @@ Obiettivo: ridurre i token mantenendo chiarezza, stato condiviso e sicurezza. 1. **Una riga = un atto**. 2. Ogni messaggio usa struttura fissa con delimitatore `|`: `T|id|k|payload` -3. `K` (kind) consentiti: +3. `k` (kind) consentiti: - `Q` = domanda - `A` = risposta - `C` = comando operativo - `S` = stato/sintesi - `E` = errore -4. `PAYLOAD` è compatto: +4. `payload` è compatto: - chiavi corte (`obj`, `res`, `err`, `next`), elenco non esaustivo - nuove chiavi in `snake_case` breve - valori enumerati quando possibile From 8602f92fc8e00c2dd2cd1f01661d9cfca73a93e9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:15:36 +0000 Subject: [PATCH 07/13] docs: switch payload encoding to percent-encoding --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 367b6f3..a007e4b 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ ## Protocollo per dialogo AI-to-AI a token minimi Obiettivo: ridurre i token mantenendo chiarezza, stato condiviso e sicurezza. +EN: minimal-token AI-to-AI protocol with fixed fields and compact payloads. ### Regole base @@ -17,9 +18,9 @@ Obiettivo: ridurre i token mantenendo chiarezza, stato condiviso e sicurezza. 4. `payload` è compatto: - chiavi corte (`obj`, `res`, `err`, `next`), elenco non esaustivo - nuove chiavi in `snake_case` breve + - nuove chiavi vanno documentate nel contesto del task corrente - valori enumerati quando possibile - - spazi codificati come `_` nei valori testuali - - underscore letterale codificato come `__` + - caratteri riservati codificati in percent-encoding (`%20`, `%3B`, `%7C`, `%3D`, `%25`) - nessuna prosa superflua 5. Ogni turno include al massimo: - 1 obiettivo @@ -37,7 +38,7 @@ Esempi: ```text T|17|Q|obj=test_scope;ctx=api_auth T|18|A|res=2_fail;err=timeout;next=retry_1 -T|19|C|act=run;cmd=pytest_-k_auth +T|19|C|act=run;cmd=pytest%20-k%20auth T|20|S|res=pass;next=close ``` From 9f447a64340285bcad0975aa166a19a04a4d549d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:16:00 +0000 Subject: [PATCH 08/13] docs: clarify percent-encoding and detail request format --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a007e4b..3483047 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ EN: minimal-token AI-to-AI protocol with fixed fields and compact payloads. - nuove chiavi in `snake_case` breve - nuove chiavi vanno documentate nel contesto del task corrente - valori enumerati quando possibile - - caratteri riservati codificati in percent-encoding (`%20`, `%3B`, `%7C`, `%3D`, `%25`) + - caratteri riservati in percent-encoding: spazio=`%20`, `;`=`%3B`, `|`=`%7C`, `=`=`%3D`, `%`=`%25` - nessuna prosa superflua 5. Ogni turno include al massimo: - 1 obiettivo @@ -42,11 +42,13 @@ T|19|C|act=run;cmd=pytest%20-k%20auth T|20|S|res=pass;next=close ``` +Nota: se un valore contiene `;`, va codificato come `%3B`. + ### Compressione semantica consigliata - usare codici stabili (`pass/fail`, `hi/med/low`, `y/n`) - evitare ripetizioni: riferirsi a `id` precedente -- inviare dettagli estesi solo su richiesta esplicita (`Q detail`) +- inviare dettagli estesi solo su richiesta esplicita (`T||Q|detail=y`) ### Regola di fallback From b1e57a2704ab1d9a6eb836bac7e90e5a415f07bc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:16:25 +0000 Subject: [PATCH 09/13] docs: document key registration and reserved chars --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3483047..4c4be89 100644 --- a/README.md +++ b/README.md @@ -18,9 +18,10 @@ EN: minimal-token AI-to-AI protocol with fixed fields and compact payloads. 4. `payload` è compatto: - chiavi corte (`obj`, `res`, `err`, `next`), elenco non esaustivo - nuove chiavi in `snake_case` breve - - nuove chiavi vanno documentate nel contesto del task corrente + - nuove chiavi vanno documentate nel primo messaggio `S` del task (`keydef=...`) - valori enumerati quando possibile - - caratteri riservati in percent-encoding: spazio=`%20`, `;`=`%3B`, `|`=`%7C`, `=`=`%3D`, `%`=`%25` + - caratteri riservati in percent-encoding: spazio=`%20`, `;`=`%3B`, `|`=`%7C`, `=`=`%3D`, `%`=`%25`, newline=`%0A` + - caratteri non riservati (es. `a-z`, `0-9`, `-`, `_`, `.`) restano in chiaro - nessuna prosa superflua 5. Ogni turno include al massimo: - 1 obiettivo From f75fb62d7bbdb24129683992451af3d25a81b6cc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:16:55 +0000 Subject: [PATCH 10/13] docs: define ids, key meanings, and control-char encoding --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4c4be89..54c6e19 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ EN: minimal-token AI-to-AI protocol with fixed fields and compact payloads. 1. **Una riga = un atto**. 2. Ogni messaggio usa struttura fissa con delimitatore `|`: `T|id|k|payload` + - `id` = intero progressivo univoco per conversazione 3. `k` (kind) consentiti: - `Q` = domanda - `A` = risposta @@ -17,10 +18,11 @@ EN: minimal-token AI-to-AI protocol with fixed fields and compact payloads. - `E` = errore 4. `payload` è compatto: - chiavi corte (`obj`, `res`, `err`, `next`), elenco non esaustivo + - significati base: `obj`=obiettivo, `res`=risultato, `err`=errore, `next`=prossimo passo - nuove chiavi in `snake_case` breve - nuove chiavi vanno documentate nel primo messaggio `S` del task (`keydef=...`) - valori enumerati quando possibile - - caratteri riservati in percent-encoding: spazio=`%20`, `;`=`%3B`, `|`=`%7C`, `=`=`%3D`, `%`=`%25`, newline=`%0A` + - caratteri riservati in percent-encoding: spazio=`%20`, `;`=`%3B`, `|`=`%7C`, `=`=`%3D`, `%`=`%25`, newline=`%0A`, carriage return=`%0D`, tab=`%09` - caratteri non riservati (es. `a-z`, `0-9`, `-`, `_`, `.`) restano in chiaro - nessuna prosa superflua 5. Ogni turno include al massimo: @@ -43,13 +45,11 @@ T|19|C|act=run;cmd=pytest%20-k%20auth T|20|S|res=pass;next=close ``` -Nota: se un valore contiene `;`, va codificato come `%3B`. - ### Compressione semantica consigliata - usare codici stabili (`pass/fail`, `hi/med/low`, `y/n`) - evitare ripetizioni: riferirsi a `id` precedente -- inviare dettagli estesi solo su richiesta esplicita (`T||Q|detail=y`) +- inviare dettagli estesi solo su richiesta esplicita (`T||Q|obj=detail`) ### Regola di fallback From a2af777e4f10e76deba028b4745b0a23795cd45c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:17:25 +0000 Subject: [PATCH 11/13] docs: add keydef format and id rollover guidance --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 54c6e19..a8a5229 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ EN: minimal-token AI-to-AI protocol with fixed fields and compact payloads. 1. **Una riga = un atto**. 2. Ogni messaggio usa struttura fissa con delimitatore `|`: `T|id|k|payload` - `id` = intero progressivo univoco per conversazione + - al raggiungimento di `2147483647`, riavvio da `1` annunciato con messaggio `S` 3. `k` (kind) consentiti: - `Q` = domanda - `A` = risposta @@ -20,10 +21,10 @@ EN: minimal-token AI-to-AI protocol with fixed fields and compact payloads. - chiavi corte (`obj`, `res`, `err`, `next`), elenco non esaustivo - significati base: `obj`=obiettivo, `res`=risultato, `err`=errore, `next`=prossimo passo - nuove chiavi in `snake_case` breve - - nuove chiavi vanno documentate nel primo messaggio `S` del task (`keydef=...`) + - nuove chiavi vanno documentate nel primo messaggio `S` del task (`keydef=:`) - valori enumerati quando possibile - caratteri riservati in percent-encoding: spazio=`%20`, `;`=`%3B`, `|`=`%7C`, `=`=`%3D`, `%`=`%25`, newline=`%0A`, carriage return=`%0D`, tab=`%09` - - caratteri non riservati (es. `a-z`, `0-9`, `-`, `_`, `.`) restano in chiaro + - caratteri non riservati RFC3986 (`ALPHA`, `DIGIT`, `-`, `.`, `_`, `~`) restano in chiaro - nessuna prosa superflua 5. Ogni turno include al massimo: - 1 obiettivo From 4114576ac56bc9857e3d88fa98f42251a970d718 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:17:51 +0000 Subject: [PATCH 12/13] docs: clarify rollover transition and colon encoding --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a8a5229..06c510f 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ EN: minimal-token AI-to-AI protocol with fixed fields and compact payloads. 1. **Una riga = un atto**. 2. Ogni messaggio usa struttura fissa con delimitatore `|`: `T|id|k|payload` - `id` = intero progressivo univoco per conversazione - - al raggiungimento di `2147483647`, riavvio da `1` annunciato con messaggio `S` + - al raggiungimento di `2147483647`, riavvio da `1` annunciato con `S|rollover=y`; nessun messaggio in-flight durante il cambio 3. `k` (kind) consentiti: - `Q` = domanda - `A` = risposta @@ -21,9 +21,9 @@ EN: minimal-token AI-to-AI protocol with fixed fields and compact payloads. - chiavi corte (`obj`, `res`, `err`, `next`), elenco non esaustivo - significati base: `obj`=obiettivo, `res`=risultato, `err`=errore, `next`=prossimo passo - nuove chiavi in `snake_case` breve - - nuove chiavi vanno documentate nel primo messaggio `S` del task (`keydef=:`) + - nuove chiavi vanno documentate nel primo messaggio `S` del task (`keydef=:` con `:` interno codificato) - valori enumerati quando possibile - - caratteri riservati in percent-encoding: spazio=`%20`, `;`=`%3B`, `|`=`%7C`, `=`=`%3D`, `%`=`%25`, newline=`%0A`, carriage return=`%0D`, tab=`%09` + - caratteri riservati in percent-encoding: spazio=`%20`, `;`=`%3B`, `|`=`%7C`, `=`=`%3D`, `:`=`%3A`, `%`=`%25`, newline=`%0A`, carriage return=`%0D`, tab=`%09` - caratteri non riservati RFC3986 (`ALPHA`, `DIGIT`, `-`, `.`, `_`, `~`) restano in chiaro - nessuna prosa superflua 5. Ogni turno include al massimo: From b9b149f233774bba433de42d4e5d83f8288dfb9e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 23 May 2026 22:18:19 +0000 Subject: [PATCH 13/13] docs: tighten wording for summary, rollover, and keydef --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 06c510f..10b4fab 100644 --- a/README.md +++ b/README.md @@ -3,14 +3,14 @@ ## Protocollo per dialogo AI-to-AI a token minimi Obiettivo: ridurre i token mantenendo chiarezza, stato condiviso e sicurezza. -EN: minimal-token AI-to-AI protocol with fixed fields and compact payloads. +English summary: minimal-token AI-to-AI protocol with fixed fields and compact payloads. ### Regole base 1. **Una riga = un atto**. 2. Ogni messaggio usa struttura fissa con delimitatore `|`: `T|id|k|payload` - `id` = intero progressivo univoco per conversazione - - al raggiungimento di `2147483647`, riavvio da `1` annunciato con `S|rollover=y`; nessun messaggio in-flight durante il cambio + - al raggiungimento di `INT32_MAX (2147483647)`, riavvio da `1` annunciato con `S|rollover=y`; nessun messaggio in-flight durante il cambio 3. `k` (kind) consentiti: - `Q` = domanda - `A` = risposta @@ -21,7 +21,7 @@ EN: minimal-token AI-to-AI protocol with fixed fields and compact payloads. - chiavi corte (`obj`, `res`, `err`, `next`), elenco non esaustivo - significati base: `obj`=obiettivo, `res`=risultato, `err`=errore, `next`=prossimo passo - nuove chiavi in `snake_case` breve - - nuove chiavi vanno documentate nel primo messaggio `S` del task (`keydef=:` con `:` interno codificato) + - nuove chiavi vanno documentate nel primo messaggio `S` del task (`keydef=:`; eventuali `:` dentro `` vanno codificati `%3A`) - valori enumerati quando possibile - caratteri riservati in percent-encoding: spazio=`%20`, `;`=`%3B`, `|`=`%7C`, `=`=`%3D`, `:`=`%3A`, `%`=`%25`, newline=`%0A`, carriage return=`%0D`, tab=`%09` - caratteri non riservati RFC3986 (`ALPHA`, `DIGIT`, `-`, `.`, `_`, `~`) restano in chiaro