Nu promisiunea. Măsurătoarea.

Suita care spune adevărul

Noua suită nu mai încearcă să țină testele cuminți într-o bază comună. Fiecare run își deține baza, fișierele, portul, procesele și build-ul; fiecare fișier pornește din baseline-ul migrațiilor. Când ceva nu poate fi garantat, runner-ul se oprește înainte să testeze.

VERDE: stress + merge gate, fără retry
4.541teste trecute în gate-ul final
610fișiere clasificate automat
179,89sruntime suite, cache-hit
10/10golden pair, ambele ordini
01 · arhitectura

De la disciplină socială la izolare structurală

Apasă pe „înainte” și „acum”. Diferența importantă nu este numărul de scripturi, ci cine deține starea mutabilă.

LANE 01

Pure unit

DB deliberat inexistentă. HOME și workspace distincte pe fișier. Accesul accidental la Prisma e un red cu remediu.

229 fișiere · 28,11s sub load
LANE 02

Unit + Postgres

Clone per worker, baseline real per fișier, seed-uri și secvențe restaurate, drift DDL detectat înainte și după.

231 fișiere · 65,85s sub load
LANE 03

CLI / procese

Procese reale, fake-uri locale, filesystem curat și DB izolată. Nicio punte către providerul live.

47 fișiere · 38,67s sub load
LANE 04

Next + HTTP

Build de producție, server real, identitate de runtime, port loopback rezervat și Postgres resetat per fișier.

103 fișiere · 177,68s

O bază comună

Fișiere paralele mutau aceleași singleton-uri și aceleași rânduri. Ordinea și workerul deveneau parte ascunsă din rezultat.

suite-lockserial firstmocks de switchcleanup pe convenții

False green

Perechea pause/watchdog putea trece serial și eșua împreună. Testele verificau uneori ordinea favorabilă, nu aplicația.

flake mascatrun-uri care se ștergstare rămasă
02 · performanță

Rapid unde agentul lucrează. Complet unde se decide merge-ul.

Barele folosesc secunde măsurate pe Mac Mini. Apasă „animează” pentru scară.

Focus pure
≈1,5s
Focus DB
≈3,7s
Focus API hit
5,56s
Unit vechi
58,1s
Unit nou
58,88s
Runtime complet
179,89s
Adevărul neplăcut: suita unit totală nu este de 2,5× mai rapidă; la 58,88s este practic plată și cu 0,78s mai lentă decât vechiul 58,1s, după adăugarea gardurilor noi. Rezultatul de 22,5–25,8s din prototip era contaminat de o coliziune de janitor și nu este folosit ca rezultat final. Câștigul mare este bucla focalizată de 1–6 secunde și semnificația mai puternică a verdelui.
03 · ce dovedește

Un verde are acum un contract explicit

Nu toate suprafețele sunt numite E2E doar pentru că sună bine. Fiecare celulă spune ce este real și unde realismul se oprește.

REAL

Migrații + Postgres

Template sigilat, clonă validată, baseline cu cele 3 companii seed și decision_code_seq.

REAL

Next build + server

Build real, cache atomic, next start, health cu identitatea run-ului și HTTP real.

REAL

Procese și crash

Grupuri supravegheate, SIGTERM/SIGKILL, drain proof, janitor cu PID + start-time + sentinel.

REAL

Ordine și overlap

Shuffle reproductibil, două run-uri nu își pot șterge clonele, reset per fișier, golden pair alternat.

CONTROLAT

Provider boundaries

CLI-uri și HTTP fake locale. Nici Necesit, SmartBill, Speechmatics, Hermes sau Telegram live.

NU ESTE ACOPERIT

Browser + UI vizual

Nu dovedește layout, hidratare, accesibilitate sau comportament vizual; acestea cer smoke separat.

04 · probe adversariale

Flake-ul a fost atacat, nu așteptat

O selecție din verificările care au schimbat efectiv implementarea în timpul acestei sesiuni.

DB / ordinePipeline pause × watchdog: 10/10

Seed 424242, ordini alternate, fără retry și fără mock-ul care fixa switch-ul.

SCHEMĂUn trigger dezactivat este drift

Fingerprint-ul include pg_trigger.tgenabled; următorul fișier refuză o bază contaminată.

PROCESE / LOGURI2 MiB stdout după exit

Runner-ul a crăpat real cu write-after-end; acum așteaptă close, iar selecția pure+DB este verde.

CREDENȚIALEBasic, Bearer, URL, JSON și password

Valorile sunt redactate, dar expresia legitimă „bearer token” și parametrul benign page=2 rămân vizibile.

CRASHSIGKILL real și cleanup exact

Guardianul benchmark-ului și janitorul suitei recuperează numai descriptorul/comentariul/intentul deținut.

FINAL0 resturi

După stress + verify: 0 clone de run, 0 DB benchmark, 0 runtime directories, 0 procese de test, next-env.d.ts absent.

05 · dogfood cu agenți

Fără context ajutător, exact cum va fi folosită

Un agent nou a primit doar task-ul. Un al doilea a auditat onboarding-ul. Ambele au urmat fișierele încărcate automat.

Ce a reușit agentul rece

  • A găsit singur pnpm test -- <exact-file>.
  • A adăugat acoperire tabelară pentru toate cele 8 limite watchdog.
  • A verificat zero side effects înainte de reject.
  • 39/39 verde în 4,30s; typecheck și ESLint verde.

Ce a găsit auditorul: helper global divergent, conflict în ghidul TDD, dump de DATABASE_URL, help incomplet și profil benchmark legacy incorect. Toate cele cinci au fost reparate.

$ pnpm test -- --help
Focused TDD · exact files · setup · lanes · stress seed

$ pnpm benchmark:agent-maintainability -- doctor
tasks: 26
recommended matrix: 64 cells
exhaustive: 288 cells
Claude OAuth expired → live matrix NOT RUN

$ fresh-agent watchdog bounds
39 tests passed · 4.30s
no implementation hints supplied
06 · limite și costuri

Ce nu trebuie ascuns

„Nu vreau să mă mai gândesc la teste” este o direcție bună, nu o proprietate matematică. Suita poate crește organic doar dacă fiecare feature păstrează TDD și contractele de aici.

P0 · INFRASTRUCTURĂ

CI rulează lângă producție

PR code este încă pe același Mac, UID, network namespace și PostgreSQL superuser. Guardurile protejează agenți cooperanți, nu cod ostil. Remedierea reală este runner/VM efemer separat: #1287.

P2 · SCALARE

API lane este serial

103 fișiere trec printr-un server real și costul crește liniar. Sharding-ul cere mai multe perechi server+DB și se justifică atunci când măsurarea depășește ținta de merge.

P2 · HOST

Semafor, nu sandbox

Un singur full-suite sau stress rulează simultan între worktree-uri; buclele focalizate nu așteaptă. Semaforul previne furtuna de CPU/RAM/I/O, dar nu izolează un run de producție — limita reală rămâne #1287.

P2 · CACHE

Același dist este read-write

Servere cu fingerprint identic folosesc același build. Endpointurile actuale nu scriu ISR/Image cache, dar o viitoare astfel de funcție cere runtime clone/read-only. Lock-ul omorât poate aștepta TTL-ul de 120s.

P2 · MENTENANȚĂ

Infrastructura este mare

Izolarea completă înseamnă mii de linii. Logging-ul duplicat a fost centralizat după un bug real; argument parsing și tail helpers mai pot fi consolidate când se schimbă, nu prin refactor cosmetic.

BLOCAT EXTERN

Benchmark live Claude

Harness-ul este verificat cu DB real și SIGKILL, dar matricea plătită nu a rulat: OAuth-ul Claude este expirat. Scor before/after nu este inventat și nu apare ca „verde”.

07 · operare

Interfața pe care trebuie s-o știe un agent

Restul rămâne intern. Help-ul refuză directoare, glob-uri, symlink-uri, path-uri greșite și selectoare goale.

tools/dev/new-worktree.sh <ticket>SSD worktree + DB migrată + env sigur. Helper-ul global deleagă aici.
pnpm test -- tests/.../x.test.tsRed-green-refactor pe exact fișierele afectate; clasificare automată.
pnpm testToate cele patru lane-uri runtime, în paralel.
pnpm verifyJanitor → lint → types → PP parity → 610 fișiere runtime.
pnpm test:stress -- --seed=424242Shuffle complet + golden pair 10×; nightly, nu în fiecare ciclu TDD.
Verdict

Poți să uiți orchestrarea. Nu și adevărul.

Pentru munca zilnică, agentul scrie un test și rulează un singur command. Runner-ul decide lane-ul și deține starea. Pentru merge, un verde înseamnă aplicație reală prin Postgres, procese, build Next și HTTP — nu browser și nu provider live. Suita este mult mai greu de păcălit; limita de securitate a hostului rămâne deschisă și vizibilă.