Update README.md - #2
Merged
Merged
Conversation
Fixed semicolons and $T_4$. Replaced the minus between T_2 and T_4 with a tilde
Fixed x-axis labels in figure at 4.2
Pinperepette
added a commit
that referenced
this pull request
Jul 17, 2026
…st 185, sync copia plugin
Pinperepette
added a commit
that referenced
this pull request
Jul 18, 2026
…e (tidwall/gjson), protocollo cieco, che valida la 2a lingua (1.22.0)
Dopo la n.2 su rich (Python, multi-file), la n.3 sposta la prova su cio' che la
1.22.0 ha appena introdotto: lo slice formale a simbolo in GO, su codice di
produzione e a scala nuova (un singolo file da 3650 righe).
Repo esterno: tidwall/gjson @ parent del fix dell'issue #192 (commit f0ee9eb).
Sintomo riprodotto DAVVERO sul parent: `panic: slice bounds out of range [:5]
with length 4` da `Get("0.#[[{}]].@Valid:\"000", ...)` (stringa quotata
incompleta). Stack trace Go con frame gjson.go:501 (=squash) e altri.
T2/T2b: i frame Go hanno pilotato la discesa a SIMBOLO sul monolite ->
slice Get/execModifier/parseArray/squash (~12.9k token, -58% del file-level
~30.5k) via i _go_symbol_targets della 1.22.0, su codice vero. Il file intero
(30.5k) era oltre un budget ragionevole: la 2a lingua ha retto la sufficienza
alla granularita' di simbolo.
T3: carta di 4 vincoli (niente panic / invarianza sugli input ben formati /
fix locale al case '"' / firma invariata). Fix scritto dalla SOLA slice di
squash: +3 righe (`if i >= len(json) { return json }` prima di
`return json[:i+1]` nel case quote) — BYTE-IDENTICO al fix upstream f0ee9eb,
derivato in cieco.
T4: panic sparito; edge case (quote incompleta, backslash finale, input ben
formato invariato) ok; SUITE gjson intera verde (8.77s, 0 regressioni);
answer-invariance = fix coincidente col parent-fixed upstream, e il test di
regressione upstream TestIssue192 PASSA sul fix cieco.
Documentata nella results table (glance) e in §4.3 (discesa a simbolo su
monolite reale). Nota di copertura onesta: questa prova esercita la #3 (slice
Go); la #2 (riferimenti dinamici) resta coperta da unit test + smoke sintetico
(gjson non ha import dinamici). Dettagli integrali nel quaderno.
Pinperepette
added a commit
that referenced
this pull request
Jul 18, 2026
…n DI framework reale (celery), che chiude la copertura della lista La n.3 esercitava la #3 (slice Go) ma non la #2 (import dinamici): gjson non ne ha. La n.4 colma il buco su un repo Python DI-pesante VERO — celery, 425 sorgenti — mostrando che la #2 recupera archi di runtime che il grafo statico perde, senza mai indovinare. Scenario (codice di produzione, non sintetico): celery/bin/shell.py importa DUE moduli INTERNI al repo solo dinamicamente — import_module('celery.concurrency.eventlet') (shell.py:133) import_module('celery.concurrency.gevent') (shell.py:135) e non li importa staticamente. Prova A/B, seed = shell.py: - SENZA #2 (CK_DYNREF=0): la slice = {shell.py, __init__, bin/base.py}; eventlet.py e gevent.py ASSENTI — il grafo statico non vede l'arco runtime. - CON #2 (default): eventlet.py e gevent.py entrano come SEED col call site esatto, e con le loro dipendenze transitive (concurrency/base, signals, utils/time). Il modulo raggiunto solo a runtime non e' piu' escluso. Lato "mai indovinare", su codice reale: seed su registry.py + fixups/django.py -> punti ciechi DICHIARATI col call site, non seed inventati: - registry.py:67 (argomento non letterale: import_module(module)) - django.py:137/138 ("django.db"/"django.core.cache" fuori repo) Documentata nella results table (glance) e nel bullet §10 della #2. Con questa, tutte e 5 le feature della lista hanno una validazione: #1/#5 unit+live, #3 prova n.3 (gjson), #2 prova n.4 (celery). Clone celery nello scratchpad effimero. Nessun bump (docs, come n.2/n.3).
Pinperepette
added a commit
that referenced
this pull request
Jul 18, 2026
…cipo, deterministica (idea rubata a "Sufficient Context" ICLR 2025, ma calcolata non giudicata)
Ricognizione sui tool vicini (aider/LLMLingua/MemGPT/Sourcegraph) + il paper
"Sufficient Context" (Yu et al., ICLR 2025). Vincolo assoluto posto dall'utente:
NON diluire l'idea matematica di base (pi e' una PROIEZIONE answer-preserving,
non un ranker; l'inverso e' un access path, non un operatore). Filtrate le idee
contro questo, la piu' coerente e' la sufficienza: e' misura di distorsione (la
D del rate-distortion), vive in T4, NON tocca pi.
Definizione, nel nostro linguaggio: la proiezione P e' SUFFICIENTE per i seed
sse contiene la CHIUSURA answer-preserving R = chiusura BACKWARD delle
dipendenze dei seed sul grafo statico (imp_d=0: gli importatori sono
blast-radius, non richiesti dal comportamento del seed; lo slice def-use e'
backward). Se il budget/limite ristringe P, allora R\P e' esattamente
l'insieme dei PAGE FAULT ATTESI, dichiarati per nome nel manifest. E' il
segnale di astensione del paper, ma ESATTO: quando la slice e' insufficiente il
manifest dice DOVE rileggere invece di lasciar indovinare il modello. Nessun
autorater a modello: calcolo, non giudizio.
Fedelta' al nucleo: non tocca pi (misura, non proietta); scope onesto identico
al resto ("sufficiente SUL GRAFO STATICO", gli archi dinamici restano affare di
#2/page-fault); l'esclusione resta prior recuperabile (il gap non sparisce,
diventa un fault dichiarato col nome = l'inverso, non l'oblio).
repo_slice.py: sufficiency_gap(graph, seeds, refs, kept, imp_d) -> (coperti,
totale_R, [droppati]); wired in main + render (sezione "## sufficienza" nel
testo, campo "sufficiency" nel JSON con covered/closure/sufficient/
expected_faults).
Verifica su repo reali: celery no-budget SUFFICIENTE (80/80); celery budget 2000
INSUFFICIENTE 6/80 con 74 page fault attesi elencati; gjson SUFFICIENTE (il
fallback rende i file interi). +4 test (TestSufficiency). Un test esistente
aggiornato: util.py droppato dal budget non "sparisce" piu', e' dichiarato page
fault atteso (rafforzamento). Suite 375 passed (era 371). Carta 8/8
(charter-refresh ha ri-ancorato da solo #5 :1117->1159). README root+plugin
speculari: §1.7 (rate-distortion, aggancio ICLR) + §10 + riga tabella T2.
Pinperepette
added a commit
that referenced
this pull request
Jul 18, 2026
…egnale cold-start che T5 non ha Quarta idea-vicina attuata (da yek/repomix, "priorita' da storia git"), ma nella forma piu' difendibile: non il churn grezzo (non legato al task) bensi' l'ACCOPPIAMENTO EVOLUTIVO. Se nella storia git i file X e Y sono stati toccati negli STESSI commit, un task su X ha buone probabilita' di toccare anche Y (logical coupling, segnale classico). E' ortogonale a T5: T5 impara da cosa hai aperto TU in sessioni passate; il co-change vede cosa il REPO cambia insieme, ed e' disponibile alla PRIMA sessione, quando T5 non ha ancora dati. Fedelta' al nucleo (vincolo dell'utente): e' un PRIOR, stessa disciplina di T5 (charter #5). AGGIUNGE seed col motivo dichiarato ("co-cambiato col seed in N commit (git)"), non esclude mai, non semina una slice da solo (gira solo se il sintomo ha gia' prodotto seed). Recurrence >= 2 come le altre attuazioni di prior (charter #2): un co-cambio isolato non basta. CK_CHURN=0 spegne; repo non-git / git assente -> silenzioso (mai fatale). repo_slice.py: git_cochange(root, seeds, fileset) -> [(file, n_commit)] via `git log --name-only --pretty=format:@ -N`, conta i file che compaiono nei commit che toccano un seed, soglia CHURN_MIN, cap CHURN_MAX; wired in main dopo prior/dynamic seeds; HEAD sha nella chiave di cache (nuovo commit -> ricalcolo). I seed co-change compaiono nella sezione "## seed" col motivo (nessuna modifica a render). +4 test (TestGitCochange: prior aggiunto, co-change basso <2 escluso, CK_CHURN=0, mai slice dai soli prior). Verifica live: repo con app.py+helper.py co-cambiati 4 commit -> helper prior; unrelated (1) escluso. Suite 389 passed (era 385). Carta 8/8. README root+plugin speculari: riga T2 + descrizione.
Pinperepette
added a commit
that referenced
this pull request
Jul 18, 2026
…rnati
Consolidazione, non feature (nessun bump di versione). Rende il prodotto
difendibile a un secondo lettore invece che aggiungere superficie.
(a) Giudizio A/B CHIUSO con lettura onesta 'quando conviene':
- i campioni non sono piu' in attesa: 4 invarianti / 3 degradate su 153
elisioni campionate dal traffico reale (ab_verify.py)
- le 3 degradazioni condividono UNA forma: output Bash in cui il
contenuto SEMBRA rumore ripetitivo ma E' il segnale (lista di ~40 nomi
di simboli, header di hunk diff, sequenza numerica di step 045->104) —
mai una Read di file
- envelope onesto in tabella + §10: converge su codice strutturato/Read;
rischia sugli output shell shape-heavy (i casi che # ck:raw e il canary
auto-degrade esistono per intercettare)
- Django HARD multi-hop (n=5): pareggio di correttezza 3/5 in entrambi i
bracci -> vittoria di COSTO (-29% call, -12% token, -38% tempo), non di
correttezza, e non monotona (un caso in cui il manifest ha sviato).
Distinzione onesta: sufficienza (raise site presente) 100% != solve
end-to-end su task hard
(b) Onboarding utente #2: nuova sezione 'Get started in 60 seconds' in alto
(l'installazione era a riga ~790, dopo tutta la teoria). Install nativo
Claude Code + primo risultato reale (slice da traceback) + puntatori a
MCP tool e skill. §7 resta il riferimento completo.
Numeri aggiornati: 344->406 test (402 stdlib + 4 Pi) in header e §8.
Pinperepette
added a commit
that referenced
this pull request
Jul 18, 2026
…a vede diff e codice Correzione di DIFETTO misurato (non feature): l'unico gap noto lasciato aperto dalla consolidazione. Le 3 degradazioni A/B erano tutte output Bash in cui il contenuto SEMBRA rumore ma E' il segnale, e la SIGNAL log-oriented (error/fail/warn) non lo riconosceva. Cosa: il ramo Bash di compress() ora usa _bash_signal invece della sola SIGNAL. Aggiunge due riconoscitori STRUTTURALI: - DIFF_STRUCT: header di hunk (@@ ... @@ func), diff --git, ---/+++ -> recupera funzione contenitore E numeri di riga (degradato #2, 'squash') - CODE_SIGNAL dietro un prefisso di grep (file:NN: / NN: / NN-) -> recupera le dichiarazioni di codice da grep/dump di simboli (degradato #1, ~40 nomi di funzione) La terza classe (continuita' numerica) era gia' dichiarata da _numeric_continuity. Mirato, non allarga i log ordinari: 'processing item 42 ok', '2024: server started', 'INFO ready' restano rumore. Contro-fattuale verificato: le righe grep/hunk erano False con la vecchia SIGNAL, True con _bash_signal. signal_preserving_truncate ora accetta un predicato (regex O callable) via _sig; il ramo codice (CODE_SIGNAL) e log (SIGNAL) invariati. Solo ALLARGA il segnale -> comprime meno, mai di piu' (coerente charter #4/#7). +5 test (2 predicato coi contro-fattuali, 1 non-allargamento, 2 end-to-end che recuperano le degradazioni nel mezzo). Suite 406 -> 411. README §10 + tabella: il ciclo si chiude, misurato -> corretto -> testato. Specchiati (charter #1). plugin.json 1.29.0 -> 1.29.1.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixed semicolons and$T_4$ . Replaced the minus between T_2 and T_4 with a tilde