로컬 AI
문서를 읽고, 후보를 기안하고, 테스트 케이스를 제안합니다. 엔지니어의 머신에서 돌며, 마지막 발언권은 결코 주어지지 않습니다.
모두가 통과해야 한다고 합의했기에 통과하는 시험은 시험이 아닙니다. 그것은 회의입니다. 검증이란 합의가 필요 없도록 일을 배열하는 실천입니다.
모든 도구는 정답이 알려져 있고 고정된 입력들의 스위트와 함께 배포됩니다. 예제도 문서도 아닙니다 — 빌드가 측정되는 기준 그 자체이고, 실행 파일 안에 함께 들어갑니다.
어떤 변경이 벡터 하나라도 어긋나게 하면 그 빌드는 출하되지 않습니다. 그 차이가 중요한지에 대한 토론은 없습니다 — 벡터는 아무도 마감에 쫓기지 않던 시점에 합의된 것이기 때문입니다.
규칙으로 결정할 수 있는 것은 전부 규칙이 결정합니다. 주소 중복, 불가능한 범위, 단위 충돌, 누락된 스케일 팩터, 커버리지 임계값 — 이것들은 판단이 아니라 산수이고, 산수는 금요일 오후에도 의견을 갖지 않습니다.
AI는 규칙이 정말로 닿지 못하는 곳에 씁니다: 스캔 상태가 나쁜 표를 읽는 일, 모호한 필드명의 의도를 짐작하는 일, 첫 테스트 케이스의 초안. 그 출력은 '제안'으로 파이프라인에 들어와 다른 모든 것과 똑같이 검사받습니다.
이 도구들은 네트워크가 의도적으로 존재하지 않는 방을 위해 만들어졌습니다: 보안 프로그램, 비행시험 벤치, 팹 플로어. 이 제약은 처음부터 받아들입니다 — 나중에 덧대는 방식은 실제로는 결코 성공하지 못하기 때문입니다.
그 결과 하나: 소프트웨어는 라이선스·모델·업데이트·분석 그 무엇을 위해서도 외부 서버에 연결하지 않습니다. 또 하나: 신뢰 경계 전체를 한 문장으로 읽을 수 있습니다 — 당신이 복사한 그 파일, 그 이상은 없다.
승인은 승인하는 사람이 그 대상을 들여다볼 수 있을 때에만 의미가 있습니다. 파생된 모든 값은 자기 출처를 지니고 다닙니다: 어느 페이지에서 왔는지, 어느 규칙이 통과시켰는지, 어느 벡터가 커버했는지.
그 감사 추적이야말로 몇 달 뒤 설계 리뷰에서, 그 자리에 없었고 누구의 말도 그대로 믿을 이유가 없는 사람 앞에서 작업을 방어 가능하게 만드는 것입니다.
모든 결과에는 세 주체가 손을 댑니다. 그 순서는 고정이고, 예라고 말할 수 있는 것은 그중 하나뿐입니다.
문서를 읽고, 후보를 기안하고, 테스트 케이스를 제안합니다. 엔지니어의 머신에서 돌며, 마지막 발언권은 결코 주어지지 않습니다.
골든 벡터, 린트 규칙, 컴파일러, 커버리지. 설득되지 않으며, 같은 입력에는 영원히 같은 판정을 돌려줍니다.
판정을 읽고, 스펙에 서명하고, 출하되는 것을 책임집니다. 이 단계를 없애는 도구는 시간을 아껴주는 것이 아니라 책임을 옮기는 것입니다.