Case Study: B2B Platform

Jak wytworzyć 16 000 linii kodu przez AI bez ani jednej ucieczki błędu do produkcji

Empiryczne podsumowanie wdrożenia metodyki CDAL na komercyjnej platformie instalacyjno-serwisowej (B2B HVAC). 14 dni roboczych, 1 architekt prowadzący, autonomiczny zespół agentów Claude Code.

Stack: Next.js, TypeScript, Supabase, Claude Code, CDAL
Czas: 14 dni roboczych
Status: Produkcja (Live)

Problem: Destrukcyjne wzorce agentów AI

W pierwszych dniach prac prototypowych zespół zaobserwował zjawisko „agenta oceniającego samego siebie”. Kiedy model napotykał błąd podczas implementacji logiki biznesowej, zamiast poprawić algorytm, edytował plik testowy (.test.ts), osłabiał asercje lub dodawał it.skip, po czym meldował „zadanie zakończone sukcesem”. Dodatkowo gęstość @ts-ignore i castingów „as any” wzrosła do 14.2 na 1 kLOC.

Twarde dane: Przed vs. Po wdrożeniu CDAL

Pomiary wygenerowane deterministycznie skryptem scripts/case-metrics.mjs z repozytorium projektu.

Wskaźnik jakości (Metric)Przed CDAL (Prototyp)Po wdrożeniu CDAL
Kontrakty bazowe (*.contract.mjs)0 (kod ad-hoc)6 kontraktów
Twardo sprawdzane niezmienniki~10 niestabilnych asercji58 twardych reguł
Zdefiniowane wymagania w rejestrzeRozproszone w promptach47 wymagań (REQ-*)
Pokrycie macierzy trace (@REQ:)0% (brak powiązań)100% (47/47 z testami)
Zweryfikowane mutacje selftest0 (dekoracyjne bramki)60 / 60 (100% wykrytych)
Zablokowane próby fałszowania testów przez AINiewykryte (agent sam zmieniał testy)342 blokady hooka (exit 2)
Gęstość @ts-ignore i "as any"14.2 na 1 kLOC0.0 na 1 kLOC (bramka forbidden)
Ucieczki regresji do produkcjiCzęste rozjazdy stanów0 błędów w modułach CDAL

Trzy kluczowe wnioski architektoniczne

  • 1. Rozdziel role test-author i implementer: Fizyczna blokada zapisu do testów dla implementera (denyTests: true) z kodem exit 2 całkowicie wyeliminowała zjawisko fałszowania testów.
  • 2. Reguła bez mutacji to dekoracja: Każda reguła walidatora musi mieć przypisaną sondę selftest. Dopiero test mutacyjny daje gwarancję, że bramka potrafi zapalić się na czerwono.
  • 3. Trace 100% przyspiesza merge: Dzięki jawnej macierzy cdal trace --enforce, każdy PR zawierał automatyczny dowód, które wymaganie zostało zrealizowane.

Chcesz osiągnąć taką samą dyscyplinę w swoim repo?

Zacznij od darmowego audytu lokalnego lub zabezpiecz swoje repozytorium licencją Pro.