Jedinica 12 / 12

AI alati za kodiranje i integracija tijeka rada

Dobici:

  • Mogućnost mapiranja dovršetka uređivača, pomoćnika za chat, CLI agenta i kategorija automatizacije CI-ja u zadatke
  • Sposobnost prilagodbe razine autonomije prema riziku i primjene discipline 'prvo planiraj' na CLI agente
  • Sposobnost transformacije upotrebe umjetne inteligencije u timski sustav temeljen na validiranom alatu, vratima za provjeru, transparentnosti i odgovornosti

Do sada smo naučili koristiti AI u pojedinačnim zadacima (kodiranje, pregled, testiranje, otklanjanje pogrešaka). U ovoj završnoj jedinici spajamo dijelove: upoznavanje različitih alata za kodiranje AI-ja, usklađivanje pravog alata s pravim poslom i njihovo sigurno ugrađivanje u vaš dnevni tok razvoja—od uređivača do kontrole verzija, od CI/CD cjevovoda do upravljanja timom. Cilj je pretvoriti neurednu naviku "svako malo pitati AI" u dosljedan radni sustav koji se može provjeriti.

Vrste vozila pokrivamo neutralnim kategorijama (određeni nazivi proizvoda brzo se mijenjaju; važno je što kategorija radi). Svaka kategorija ima "slatku točku" i profil rizika; Majstorstvo je znati koliko autonomije dati kojem zadatku.

Kategorije alata za kodiranje AI

1. Završetak u uređivaču. Dodaci koji predlažu retke/blokove dok upisujete u svoj IDE (razvojno okruženje u kojem pišete kod). Dobra točka: brzina u streamu, standardni kod. Rizik: uski kontekst, prihvaćanje prijedloga bez razmišljanja.

2. Pomoćnik za chat/bočnu ploču. Sučelje za chat ugrađeno u IDE s vidljivošću dijela vaše baze kodova. Sweet spot: opis, refaktor, testiranje, bug analiza. Rizik: ograničen na kontekst koji navedete, zahtijeva provjeru.

3. CLI agenti (agentski alati). Alati koji se pokreću iz naredbenog retka mogu čitati i mijenjati više datoteka, pokretati naredbe i samostalno izvršavati zadatke u više koraka. Slatko mjesto: izmjene više datoteka, zadaci koji se ponavljaju, poslovi tipa "dodaj ovo svojstvo". Rizik: visoka autonomija = veliki utjecaj; Ako se ne označi, proizvodi široke i teško provjerljive promjene.

4. Integracija linije/automatizacije. CI (Continuous Integration) roboti koji ostavljaju automatske komentare za recenzije PR-ova, predlažu testove ili prave zapise promjena. Sweet spot: prvo cjedilo bez zamora, postojanost. Rizik: buka, lažno povjerenje.

Savjet: Kako se autonomija povećava, kontrola bi također trebala rasti. Budući da je završetak uređivača mali i trenutan, malo se nadzire; Izmjenu više datoteka CLI agenta treba ispitati jednako, ako ne i pažljivije, nego ljudski PR.

Korak po korak: Ugradnja umjetne inteligencije u tijek rada

  1. Preslikajte zadatak na alat. Mali in-stream dodatak → završetak; razumjeti/refaktorirati/testirati → razgovarati; rad s više datoteka, ponavljajući rad → CLI agent; kontinuirani prvi filtar → CI integracija.
  2. Odaberite razinu autonomije. Koliko slobode agent ima? Prijedlog samo za čitanje ili izmjena datoteke + izvršenje naredbe? Prilagodite se riziku.
  3. Njegujte kontekst. Trajno uvesti projektna pravila (stil, arhitektura, "ne treba") u alat; Koristite datoteku s uputama za projekt umjesto da je objašnjavate uvijek iznova.
  4. Održavajte vrata za provjeru. Promjena umjetne inteligencije je poput ljudske promjene: prolazi kroz kompilaciju, testiranje, pregled i (ako je kritično) odobrenje stručnjaka. AI otvaranje PR ne zaobilazi odobrenje.
  5. Izmjerite i prilagodite. Gledajte što se stvarno ubrzava, gdje se teret korekcije povećava; Izbacite namjene koje ne rade.

Tri mini kućišta

Slučaj 1 — CLI agent upravlja preimenovanjem više datoteka. Jedan bi tim preimenovao koncept raspoređen u 60 datoteka. Zadatak su dali CLI agentu, prvo su zatražili plan, odobrili plan, zatim izvršili promjenu i pokrenuli cijeli testni paket. Agent 3 je propustio rubni slučaj u dosjeu; Testovi su to uhvatili, popravili. Posao, koji je ručno trajao otprilike 3 sata, dovršen je za 50 minuta uz nadzor.

Slučaj 2 — Neprovjerena autonomija se izjalovila. Drugi programer rekao je agentu da "poboljša ovaj modul" i pustio ga; Agent je izmijenio 18 datoteka i dodao dvije ovisnosti. Promjena je bila toliko široka da se nije mogla preispitati i morala je biti povučena. Lekcija: agentima dajte uzak opseg, jasne kriterije prihvaćanja i disciplinu prvo planirajte, kasnije učinite.

Slučaj 3 — CI review bot postao je prvi filter. Jedan je tim napravio bota koji ostavlja automatizirane komentare AI pregleda PR-ovima. Nakon što je bot uhvatio propuste u null provjeri i probleme sa stilom, ljudski recenzenti mogli su posvetiti svoje vrijeme poslovnoj logici. Međutim, tim je jasno stavio do znanja da bot nije dao "odobrenje": i dalje je potrebno najmanje jedno ljudsko odobrenje. Kako bi smanjili buku, podesili su brod tako da ostavlja samo buku visokog/srednjeg intenziteta.

Četiri predloška za kopiranje

Disciplina "prvo planiraj" za CLI agenta:

Zadatak: {{jasan, sužen zadatak}}Kriteriji prihvaćanja: {{mjerljivi rezultat}}Ograničenje: rad samo na {{sljedećem direktoriju/datotekama}}; dodavanje nove ovisnosti.Prvo predstavite plan BEZ PROMJENA: koje datoteke, što će se promijeniti, koje testove pokrenuti. Pričekajte da ODOBRIM plan. Zatim ga primijenite korak po korak, pokrećući testove u svakom koraku.

Datoteka s uputama za projekt (stalni kontekst za alate):

Trajna pravila za AI alate u ovom projektu:- Jezik/verzija: {{...}}. Stil: {{...}}.- Arhitektonsko ograničenje: {{npr. smjer između slojeva}}.- NIKADA: ugrađivanje tajni, korištenje proizvodnih podataka, {{zabranjene knjižnice}}.- Svaka promjena mora biti testirana; Promjena javnog API potpisa BEZ pitanja. - Kad ste u nedoumici, stanite i pitajte.

Odluka o mapiranju zadataka i alata:

Definiram sljedeći zadatak: {{zadatak}}. S kojom bi to klasom alata trebao učiniti: (a) završetak uređivača, (b) pomoćnik za chat, (c) CLI agent, (d) CI automatizacija? Napišite svoje obrazloženje, rizik i preporučenu razinu autonomije (samo prijedlog / promjena datoteke / naredba za pokretanje).

Kodeks ponašanja robota za pregled CI-ja:

Ostavite samo nalaze VISOKE i SREDNJE težine kao komentare u pregledu PR-a. Svaki nalaz: kategorija, težina, predložena korekcija. Prikupite bilješke na razini preferencija stila u zaseban, jedan komentar sažetka. NE PRISTAJETE; potrebno ljudsko odobrenje.

Slab upit / Jak upit

Slabo: (CLI agentu) "Učinite modul plaćanja boljim."
Jako: (CLI agentu) "Izvrši samo pod src/payments/. Zadatak: Ekstrahiraj rekurzivnu logiku provjere valjanosti iz refund() funkcije u jednog pomoćnika; ponašanje i potpisi se ne mijenjaju. Prvo predstavi plan i pričekaj moje odobrenje; zatim izvrši i pokreni paket testova/plaćanja/. Dodaj novu ovisnost."

Snažna verzija sužava opseg, postavlja kriterije prihvaćanja i ograničenja te nameće disciplinu "prvo planiraj". Nejasni zahtjevi "učiniti bolje" glavni su uzrok golemih i nekontroliranih promjena.

klasa vozila

Ono u čemu je najbolji

autonomija

inspekcijska težina

Završetak urednika

Mali in-stream dodatak

nizak

Svjetlo (trenutačno očitavanje)

chat pomoćnik

Razumjeti, testirati, refaktorirati

srednji

Srednje (provjera izlaza)

CLI agent

Više datoteka, rekurzivno

visoka

Teško (plan + potpuni pregled)

CI automatizacija

Kontinuirani prvi filtar

srednji

Srednje (pravilo + ljudsko odobrenje)

Timsko upravljanje: od individualnih vještina do zajedničkog sustava

Dobro korištenje umjetne inteligencije na individualnoj osnovi je početak; stvarna zrelost je dosljedan sustav na razini tima. Ovaj se sustav temelji na nekoliko stupova: popis odobrenih alata (koji se alati mogu koristiti s kojim podacima — od jedinice 10), vrata za provjeru (promjene AI-ja prolaze kroz ista vrata za izradu/testiranje/pregled — od jedinice 11), transparentnost (navod da je promjena pokretana AI-om omogućuje sljedivost gdje je to potrebno) i jasnoća odgovornosti (osoba koja potpisuje i koja je odgovorna je jasna). Ovaj okvir ograničava rizik uz održavanje brzine i osigurava da novi članovi tima rade s istom disciplinom.

Oprez: Što je veća autonomija alata—posebno CLI agenata koji mogu modificirati datoteke, pokretati naredbe—to mu je strože ograničen pristup proizvodnom okruženju, povjerljivim podacima i operacijama koje je teško vratiti. Povežite destruktivne naredbe (trajno brisanje, raspoređivanje) s ljudskim odobrenjem.

Uobičajene greške

  • Zadatak-znači nekompatibilnost. Pokušavam obaviti posao s više datoteka s dovršetkom uređivača ili malim privitkom s teškim agentom.
  • Otpuštanje agenta. Zadaci agenta dani s uskim opsegom i bez "prvog plana" proizvode neispitane promjene.
  • Otpuštanje verifikacijskih vrata za AI. "AI je to učinio, idemo brzo dalje" je najopasnija iznimka; Vrata su ista za sve.
  • Ručno davanje konteksta svaki put. Nezapisivanje projektnih pravila u trajnu datoteku s uputama stvara nedosljednost i dupliciranje.
  • Miješajući odobrenje CI bota s ljudskim odobrenjem. Bot je filter; Odgovorno ljudsko odobrenje je obavezno.

Ukratko

AI alati za kodiranje spadaju u četiri glavne kategorije: dovršetak uređivača, pomoćnik za chat, CLI agenti i CI automatizacija. Majstorstvo je spajanje zadatka s pravim alatom i pravom razinom autonomije; Kako se autonomija povećava, povećava se i kontrola. Dajte alatima trajni projektni kontekst, nametnite disciplinu "najprije planirajte" agentima s više datoteka i provedite AI promjene kroz ista vrata za provjeru kao i ljudske promjene. Individualna vještina; Pretvorite ga u timski sustav izgrađen na odobrenom popisu alata, vratima za verifikaciju, transparentnosti i jasnoći odgovornosti. AI je end-to-end multiplikator brzine; Osoba koja potpisuje i daje račun uvijek je stručna osoba.

Zadatak aplikacije

Navedite tri stvarna zadatka koja ćete obaviti sljedeći tjedan. Upotrijebite predložak „odluka o usklađivanju zadatka s vozilom” za svaki kako biste obrazložili koju ćete klasu vozila i razinu autonomije odabrati. Zatim pokrenite uski zadatak za CLI agenta (ili pomoćnika za chat) s disciplinom "najprije planirajte": odobrite plan, provedite ga, pokrenite testove i pregledajte promjenu kao ljudski PR. Na kraju, izradite nacrt "pravila upotrebe umjetne inteligencije" od 5 točaka za svoj tim (odobreni alati, pravilo podataka, vrata za provjeru, ograničenje autonomije, odgovornost).

popis za provjeru

  • [ ] Mogu razlikovati kategorije alata za kodiranje umjetne inteligencije i najbolje točke svake od njih.
  • [ ] Preslikavam zadatak na ispravnu klasu vozila i odgovarajuću razinu autonomije.
  • [ ] Alatima dajem trajni kontekst projekta (datoteku s uputama).
  • [] Primjenjujem uzak opseg i disciplinu "prvo planiraj" na CLI agente.
  • [ ] Propuštam AI promjene kroz ista vrata za provjeru kao i ljudske promjene.
  • [ ] Zalažem se za validirani alat, pravilo podataka, transparentnost i okvir odgovornosti na razini tima.

Modul ispit

1. Što temeljni veliki jezični model pomoćnika kodiranja zapravo radi kada proizvodi kod?

  • A) Po uzoru predviđa najvjerojatniji nastavak na temelju danog konteksta ✔
  • B) Jamči točan rezultat stvarnim prevođenjem i izvođenjem koda
  • C) Skenira kod po cijelom internetu uživo i kopira najtočniji.
  • D) Razumije logiku koda poput ljudskog inženjera i razumije namjeru

Pojašnjenje: LLM ne 'razumije' kod kao čovjek; Generira najvjerojatniji nastavak zadanog konteksta, na temelju obrazaca koje uči iz vrlo velikog skupa teksta i koda. Stoga kvaliteta izlaza izravno ovisi o kvaliteti konteksta i uputa koje dajete, a svaki izlaz mora biti potvrđen.

2. Kako se zove kada AI uvjerljivo izmisli nepostojeću funkciju ili biblioteku i koji je jedini pravi protuotrov?

  • A) Ovo se zove greška kompilacije; Protuotrov je jača oprema
  • B) To se zove halucinacija; Protuotrov je provjeriti kod i svaki korišteni API ✔
  • C) To se zove regresija; Protuotrov je ponovno pokretanje modela
  • D) Ovo se zove prelijevanje konteksta; Protuotrov je skratiti prompt

Opis: Ovo se zove halucinacija i uzrokuje jednu od najskupljih grešaka u softveru. Jedini pravi protuotrov je provjera: potvrda da svaka funkcija, API i paket koji se koristi stvarno postoji i da kôd radi. Samouvjereni ton modela nije dokaz točnosti.

3. Koji pristup najviše poboljšava kvalitetu i konzistentnost izlaza pri generiranju koda pomoću umjetne inteligencije?

  • A) Otpuštanje modela govoreći 'napiši mi ovo' bez davanja ikakvog konteksta
  • B) Pisanje najduljeg i otmjenog mogućeg prompta
  • C) Navedite i navedite primjere ulazno/izlaznih ugovora, rubnih slučajeva, verzije i stila ✔
  • D) Kombiniranje generiranog koda izravno bez čitanja

Objašnjenje: Određivanje tipova ulaza/izlaza funkcije (ugovor), rubnih slučajeva, ograničenja jezika/verzije i stila te davanje primjera modelu omogućuje prijelaz s predviđanja na preciznost. Zahtjevi 'napiši mi ovo' bez konteksta proizvode kod koji je svaki put drugačiji i često zaobilazi rubne slučajeve.

4. Kada istražujete stranu bazu kodova s ​​AI-jem, naziv funkcije može biti 'validateAndSave', ali AI sažetak može biti netočan. Koji je pravi pristup?

  • A) Potpuno povjerenje u sažetak umjetne inteligencije jer je naziv sam po sebi razumljiv
  • B) Promjena funkcije izravno bez čitanja
  • C) Odlučivanje samo gledanjem naziva funkcije
  • D) Tretirajte opis umjetne inteligencije kao hipotezu i potvrdite kritične tvrdnje redak po redak u kodu ✔

Objašnjenje: AI može pogledati naziv u kodu i reći vam 'što izgleda kao da radi', ali u stvarnosti logika može biti drugačija (ili čak obrnuta). Dakle, AI objašnjenje je hipoteza; Kritične tvrdnje, posebno one koje uključuju sigurnost, ovlasti ili protok novca, treba vizualno provjeriti na relevantnim linijama.

5. Koja je najveća opasnost kada kažete 'AI je pogledao, jasno je' u pregledu koda potpomognutom umjetnom inteligencijom?

  • A) AI može proizvesti lažno negativne rezultate; Stvarno propuštene pogreške stvaraju lažno samopouzdanje ✔
  • B) AI pregled je prespor pa gubi vrijeme
  • C) Tim ne razumije jer AI komentira samo na engleskom
  • D) PR ne konvergira jer AI uvijek pretjerano tumači

Objašnjenje: AI proizvodi i lažno pozitivne (označavanje problema tamo gdje ne postoji) i lažno negativne (propuštanje prave greške). Lažni negativi su tihi; Najopasnije pogreške su one koje se u recenziji uopće ne spominju. Dakle, AI je prvi filter, a ne odobrenje; Odluka o spajanju pripada odgovornoj osobi.

6. Koja je najpodmuklija zamka koja se javlja kada AI-ju samo date kod i ispišete testove?

  • A) AI uvijek piše previše testova i napuhuje bazu koda
  • B) AI testira trenutno (možda pogrešno) ponašanje koda kao 'ispravno' i ispravlja grešku ✔
  • C) AI automatski briše kod prilikom pisanja testova
  • D) AI piše testove ne samo za sretan put, već uvijek i za rubni slučaj

Objašnjenje: AI obično gleda kod i piše tvrdnje koje testiraju trenutno ponašanje. Ako je kod od početka pogrešan, umjetna inteligencija popravlja to pogrešno ponašanje kao "ispravno". Stoga bi očekivanja testa trebala biti napisana prema traženom pravilu (specifikaciji), a ne prema trenutnom izlazu koda.

7. Što najviše određuje točnost hipoteza pri otklanjanju pogrešaka s AI?

  • A) Koliko je pristojno napisano.
  • B) Koliko je puta pitanje ponovno postavljeno
  • C) Kvaliteta dokaza pruženih modelu: potpuna poruka o pogrešci, praćenje hrpe, unos i očekivano ponašanje ✔
  • D) U kojoj je temi boja kod napisan?

Objašnjenje: AI ne vidi grešku na način na koji vi vidite; On zna samo dokaze koje mu vi date. S obzirom na potpunu poruku o pogrešci, praćenje hrpe, unos okidača i očekivano ponašanje, model nabraja stvarne mogućnosti; Ako nema dokaza, stvara nagađanje (halucinacije) i vodi vas na krivi trag.

8. Koji je najkritičniji korak prije davanja proizvodnih zapisa AI-ju na analizu?

  • A) Zalijepiti dnevnik kakav jest, pokrivajući cijeli dan
  • B) Prvo pretvorite dnevnik u velika slova
  • C) Raspored redova dnevnika abecednim redom
  • D) Maskiranje osobnih podataka i tajni i davanje samo relevantnog prozora ✔

Opis: neobrađeni proizvodni zapisnici sadrže IP, e-poštu, ID sesije, token i ponekad otvorenu tajnu. Zalijepiti ih u AI alat bez maskiranja ozbiljno je kršenje privatnosti. Dodatno, zapisnik treba filtrirati na uski vremenski prozor; Ali prva je potreba očistiti osjetljive podatke.

9. Što treba učiniti ako AI u analizi dnevnika kaže da su se dva događaja dogodila 'istovremeno' i proglasi jedan glavnim uzrokom?

  • A) Zanemarivanje korelacije kao uzročnosti i provjera tvrdnje metrikom i kodom ✔
  • B) Prihvaćanje uzroka kao definitivnog jer AI uspostavlja vremenski odnos
  • C) Odmah ponovno pokretanje prve optužene komponente
  • D) Potpuno brisanje zapisa i njihovo ponovno prikupljanje

Objašnjenje: Najčešća zamka u analizi dnevnika je brkanje korelacije s uzročnom vezom. Vremenski odnos koji je uspostavila AI je trag, a ne dokaz. Prava uzročnost zahtijeva vrijeme, mehanizam i, ako je moguće, ponovljivost; Zahtjev mora biti potvrđen metrikom i kodom.

10. Koje je zlatno pravilo o kojem se ne može pregovarati kod refaktoriranja s AI i što ga osigurava?

  • A) Kod treba biti kraći; Broj redaka to jamči
  • B) Nema promjene u ponašanju; testovi koji bilježe trenutno ponašanje osiguravaju ovo ✔
  • C) Kod sadrži više komentara; AI to jamči
  • D) Prepisivanje cijele datoteke odjednom; agent to jamči

Objašnjenje: Refaktoriranje je poboljšanje unutarnje strukture koda bez mijenjanja njegovog vanjskog ponašanja; Zlatno pravilo je da ponašanje ostaje konstantno. Ono što to osigurava je testiranje: testna mreža koja bilježi trenutno ponašanje prije nego što ga promijeni postavlja se i pokreće nakon svakog koraka. Refactoring bez testneta je kockanje.

11. Koji je sloj u proizvodnji dokumentacije koji AI ne može znati i koji je opasno nadoknaditi?

  • A) Kako pokrenuti korake instalacije
  • B) Popis parametara funkcije
  • C) Obrazloženje 'zašto' je odluka o dizajnu donesena na taj način ✔
  • D) Na kojem je jeziku napisan kôd?

Opis: AI može izdvojiti sloj 'što/kako' (što funkcija radi, kako je postavljena) iz koda; ali ne može znati sloj 'zašto' (razlog dizajna za odluku, razlog za graničnu vrijednost). Izmišljeni 'razlog' opasniji je od nikakvog opravdanja; Vlasnik koda mora dodati ovaj sloj.

12. Što programer treba učiniti ako želi zalijepiti konfiguracijsku datoteku koja sadrži živi API ključ u neodobreni AI alat dok rješava hitnu pogrešku?

  • A) Za brzinu, zalijepite datoteku kakva jest i zatim izbrišite chat
  • B) Dodajte napomenu 'povjerljivo' na kraj datoteke i pošaljite je
  • C) Ostavite ključ i promijenite samo naziv datoteke
  • D) Uklonite/maskirajte tajne i dajte samo nužan neosjetljivi kontekst ✔

Otkrivanje: tajne, osobni podaci i povjerljiva imovina nikada se ne smiju unositi na neodobrene načine; Hitnost ne obustavlja ovu crvenu liniju. Ispravan pristup je prvo izdvojiti/maskirati tajne i dati samo nužan, neosjetljiv kontekst. Ako tajna ipak procuri, prvo što treba učiniti je odmah okrenuti ključ.

13. Kod generiran umjetnom inteligencijom prolazi testiranje i radi u proizvodnji. Dokazuje li to da je kod siguran?

  • A) Ne; 'radi' ne znači sigurno, sigurnost zahtijeva zaseban sloj autentifikacije ✔
  • B) Da; Kod koji prođe test siguran je po definiciji
  • C) Da; Pokretanje u proizvodnji uklanja sve ranjivosti
  • D) Ne; ali sigurnost je važna samo ako je kod spor

Pojašnjenje: 'Raditi' nije isto što i 'sigurno'. Čak i ako kod sadrži ranjivost kao što je SQL injection, može proći testiranje i raditi glatko; Ranjivost se otkriva tek kada je napadač pronađe. Stoga, uz točnost, sigurnosno orijentirani pregled i skeniranje kao što je SAST treba provoditi kao zaseban sloj.

14. Koja je najsigurnija disciplina pri davanju zadatka s više datoteka CLI agentu (autonomni alat koji može mijenjati datoteke i pokretati naredbe)?

  • A) Reći agentu 'poboljšaj ovaj modul' i dati punu slobodu
  • B) Davanje uskog opsega i kriterija prihvaćanja, prvo traženje plana, njegovo odobravanje, implementacija korak po korak i izvođenje testova ✔
  • C) Izravno spojite sve promjene agenta bez pregleda
  • D) Davanje agentu neograničenog pristupa proizvodnom okruženju i povjerljivim podacima

Objašnjenje: Kako se autonomija povećava, kontrola bi također trebala rasti. Davanje agentu uskog opsega i jasnih kriterija prihvaćanja, prvo traženje plana bez promjena, odobravanje plana, zatim njegova implementacija korak po korak i izvođenje testova u svakom koraku; Sprječava promjene koje su široke, ne mogu se pregledati i koje je potrebno vratiti.

15. Tko ima odgovornost koja proizlazi iz koda generiranog umjetnom inteligencijom u softveru koji je kritičan za sigurnost (npr. plaćanje ili autentifikacija)?

  • A) Budući da kod dolazi od AI, nalazi se u dobavljaču vozila
  • B) Ako je umjetna inteligencija dovoljno razvijena, nitko nije; nema potrebe za provjerom
  • C) Tim/inženjer koji ispituje, sastavlja i distribuira kod; AI ne zamjenjuje pristanak ✔
  • D) Samo osoba koja piše upit, ne oni koji ga pregledavaju

Opis: AI je multiplikator brzine i generator nacrta; ne može preuzeti odgovornost. Odgovornost za sve pogreške, ranjivosti ili kršenja koja proizlaze iz koda u proizvodnji leži na timu koji pregledava, sastavlja i distribuira taj kod. U područjima kritičnim za sigurnost, AI izlaz ni pod kojim okolnostima nije zamjena za pregled i odobrenje od strane kvalificiranog inženjera.