Ship It With AI Mihai Cvasnievschi

Întâi harta: review-ul de arhitectură

6 min de citit

La finalul capitolului poți produce o hartă corectată a unui codebase pe care nu și-l mai amintește nimeni și poți folosi rularea ca diagnostic inițial pentru următorul pas.

TL;DR


Workflow-ul

Pune agentul să citească întâi codul, apoi corectează ce a scris și dă commit rezultatului.

Multe echipe dețin un codebase care se potrivește unei singure descrieri: autorul a plecat, README-ul descrie un build care nu mai merge, codul aduce bani și nimeni nu vrea să-l atingă. Agentul poate scurta prima investigație, dar o hartă nu înseamnă că ai devenit productiv sau că ai înțeles business-ul. Cazul de mai jos a cerut minute de lucru de agent și review de la un expert de domeniu; alte repository-uri cer mai mult.

Promptul cere nouă secțiuni, de la scop și model de date până la riscuri și necunoscute, cu citări fișier:linie peste tot; textul complet e în Anexa B.1. Alege secțiunile și profunzimea de care are nevoie investigația. Un document poate părea complet și totuși să interpreteze greșit partea esențială de business. Dacă codebase-ul depășește un singur context window, investigațiile independente pe module pot justifica subagenți, iar orchestratorul asamblează bucățile și verifică granițele comune.


Cazul

Agentul n-a decis că rewrite-ul nu era necesar. A dat experților de domeniu suficientă structură ca să decidă mai repede.

O echipă de banking deținea un sistem de onboarding pentru clienți: cam șaizeci de mii de linii de Java, scrise între 2018 și 2024 de o distribuție rotativă de contractori. Echipa fusese asamblată în 2024 din trei achiziții și nimeni nu fusese de față la build-ul original. README-ul descria o arhitectură din 2020, iar documentația enumera doi dintre cei trei pași ai build-ului. Echipa lua în calcul un rewrite complet, estimat la optsprezece luni, pentru că „nimeni nu îl înțelege suficient de bine ca să-l întrețină cu încredere.”

Am cerut cincisprezece minute și un terminal. Am lipit promptul de review cu două adăugiri: domeniul (onboarding de clienți, banking reglementat) și cererea de a marca tot ce arată a fi sensibil din punctul de vedere al conformității. Optsprezece minute mai târziu aveam un document de treisprezece pagini, greșit în trei locuri:

Documentul corectat a intrat în repository, iar echipa a ales muncă țintită în locul propunerii de rewrite amplu. Au înlocuit două module în trimestrul următor, inclusiv dependența deprecated. Propunerea de optsprezece luni și înlocuirea de trei luni descriu calendare, nu totaluri comparabile de muncă. Fără ipotezele inițiale despre numărul de oameni și un scenariu contrafactual credibil, relatarea nu stabilește om-luni economisite și nu izolează efectul agentului de judecata experților.

Fișă de caz Ce stabilește relatarea
Proveniență Engagement de banking anonimizat, relatat de autor
Dovezi Relatarea, cele trei greșeli corectate și timpii raportați de investigație; artefactele originale nu sunt publicate
Comparație Calendarul estimat al unui rewrite amplu față de munca țintită aleasă de echipă; numărul de oameni nu e specificat
Limitări Efortul evitat e un scenariu contrafactual nemăsurat; experții au corectat harta și au ales alternativa
Lecție transferabilă Folosește o hartă revizuită ca să verifici scope-ul, apoi estimează explicit alternativele

Corectează harta

Harta agentului e o ciornă, iar estimarea de 45 de minute presupune un reviewer care cunoaște domeniul.

Nu mai văzusem niciodată codebase-ul ăla, dar construisem sisteme de onboarding și înainte, așa că știam cum arată de obicei un serviciu de deduplicare și un path de conformitate în banking reglementat. Greșelile agentului mi-au sărit în ochi. Un reviewer nou și pe codebase, și pe domeniu n-are un asemenea reper: identificările greșite continuă să pară plauzibile, nu poate spune pe care să le semnaleze, iar corecția durează ore, nu 45 de minute. Workflow-ul funcționează în continuare; partea umană costă mai mult.

Verifică harta față de cinci lucruri:


Dă-i commit

Documentul corectat e punctul de intrare pentru orice lucrare ulterioară.

Pune-l la docs/architecture.md. Membrii noi ai echipei îl citesc primii, inginerii seniori îl consultă înainte să atingă o parte nefamiliară, iar agentul îl deschide la cerere, când un task atinge un modul pe care nu l-a văzut, în loc să re-derive arhitectura. AGENTS.md conține o trimitere către fișier, nu structura codebase-ului (Capitolul 6).


Șterge pe bază de dovezi

O eliminare e o afirmație; dovedește-o înainte ca agentul să șteargă ceva.

Harta face și curățenia mai sigură, adică exact munca pe care o vinde Slopfix din Prolog. Pentru fiecare candidat, strânge referințele statice, folosirea la runtime (log-uri, metrici, feature flags, job-uri programate), orice fallback păstrat pentru incidente și confirmarea owner-ului. Apoi deschide câte un pull request mic pentru fiecare eliminare, cu dovezile atașate, iar review-ul îl face echipa care deține codul. Relatarea OpenAI despre propria curățenie făcută cu modelele GPT-6, peste 1.400 de pull request-uri acceptate la merge care au șters mai mult de 800.000 de linii, numește capcanele: reflection care păcălește analiza statică, o rută nefolosită păstrată ca să atenueze incidente viitoare și propuneri care au adăugat mai multă complexitate decât au eliminat.


Review-ul ca diagnostic

O hartă incoerentă e un motiv să oprești schimbările autonome și să investighezi cauza. Rularea e un diagnostic inițial, nu un verdict despre codebase.

Alocă un timp limitat primei investigații, apoi decide dacă încă o trecere ar putea lămuri o necunoscută concretă. Kill signals din Capitolul 8 sunt grila sistematică; o singură hartă nu o înlocuiește.


Când se strică


De făcut luni


Mai departe