heygrc
Inżynieriathe heygrc team

Przytocz dokładny zapis lub milcz

Znalezisko dotyczące zgodności, którego nie można zweryfikować, jest gorsze niż milczenie. Jednostką zaufania jest zapis.

Są dwa sposoby na sygnalizowanie problemu w pull request. Pierwszy: 'to wygląda na niezgodne'. Drugi: 'to usuwa dziennik audytu dla uprzywilejowanej akcji, którego ISO 27001 A.8.15 oczekuje, że zachowasz'. Pierwszy to szum. Drugi to coś, z czym inżynier może coś zrobić albo się spierać. Różnica tkwi w zapisie.

Przytaczanie dokładnego zapisu jest rdzeniem tego, jak heygrc raportuje znalezisko, a jednocześnie ograniczeniem, które akceptujemy: gdy nie możemy podać zapisu, wolelibyśmy milczeć. Oto dlaczego.

Niejasne znalezisko jest gorsze niż nic

Znalezisko bez podanego zapisu zmusza czytelnika do wykonania pracy, której my nie zrobiliśmy. Czy to prawda? Jaki przepis? Gdzie mam to sprawdzić? Za pierwszym razem szuka odpowiedzi. Po kilku fałszywych alarmach przestaje czytać znaleziska w ogóle, w tym te prawdziwe. Recenzent zgodności, który krzyczy 'wilk', nie dostaje drugiej szansy – zostaje zignorowany.

Ograniczonym zasobem nie jest pokrycie. To zaufanie, a niejasne znalezisko je marnuje.

Przytoczenie to falsyfikowalne twierdzenie

Podanie dokładnego zapisu zamienia ogólnik w twierdzenie, które można zweryfikować. Informuje czytelnika, który konkretny kontrola, na poziomie, który może sprawdzić, i zaprasza do dyskusji. To jest cecha, a nie efekt uboczny: znalezisko, które można obalić, to znalezisko, któremu można zaufać, gdy się potwierdzi.

exports/run.ts+0 -1
async function runExport(userId, rows) {-  await audit.log("data.export", { userId, count: rows.length })  return write(rows)}
heygrcISO 27001 A.8.15

Nie 'to wygląda na niezgodne'. Konkretne twierdzenie: to usuwa zapis masowego eksportu danych, rodzaju zdarzenia, którego A.8.15 oczekuje, że zostanie zarejestrowane. Możesz otworzyć A.8.15, spojrzeć na diff i sam zdecydować, czy twierdzenie jest słuszne. Właśnie o to chodzi.

Poziom szczegółowości to najtrudniejsza część

Zapis musi być na odpowiednim poziomie szczegółowości. 'To dotyczy ISO 27001' jest prawie tak bezużyteczne jak milczenie; 'to usuwa rejestrowanie, którego oczekuje A.8.15' jest konkretne. Osiągnięcie tego wymaga mapowania rzeczywistej zmiany, zachowania, które pojawiło się w diff, do konkretnego kontroli, który ją reguluje. Nie chodzi o ramy, nie o rodzinę kontroli, ale o zapis.

Większość trudności w budowaniu recenzenta zgodności tkwi tutaj. Zauważenie, że coś się zmieniło, to łatwa część. Dokładne określenie, który kontrola został naruszony, poprawnie, to prawdziwa praca.

Gdy nie możemy przytoczyć, milczymy

To jest kompromis, który podejmujemy, zwłaszcza na początku: precyzja ponad pełność. Jeśli nie możemy powiązać zmiany z konkretnym zapisem, co do którego jesteśmy pewni, nie emitujemy łagodniejszego, bardziej ogólnego ostrzeżenia, tylko po to, by być bezpiecznym. Błędne lub niezweryfikowalne znalezisko kosztuje więcej zaufania niż pominięte, a zaufanie sprawia, że prawdziwe znaleziska w ogóle są brane pod uwagę.

Milczenie jest cechą, gdy alternatywą jest szum. Recenzent zdobywa prawo do bycia wiarygodnym, milcząc, gdy nie jest pewien.

To ma większe znaczenie, gdy czytelnikiem jest agent

Gdy agent kodujący jest tym, który czyta znalezisko, niezweryfikowalne 'to wygląda na niezgodne' jest jeszcze gorsze: agent nie może o nim rozumować ani działać, więc je ignoruje lub zgaduje. Znalezisko, które podaje kontrolę i zapis, to coś, z czego może skorzystać zarówno człowiek, jak i agent: sprawdzić kontrolę, zobaczyć, czego oczekuje, zdecydować. Przytoczenie to interfejs.

Próg jest prosty do sformułowania, ale trudny do utrzymania: każde znalezisko podaje zapis albo nie ma znaleziska. Szczera miara tego, czy go utrzymujemy, to poprawność poziomu szczegółowości naszych przytoczeń w rzeczywistych diffach, co zgłosimy z naszych własnych ewaluacji, gdy je przeprowadzimy, z liczbami lub wcale.

citationstrustcode-reviewevals