소크라틱(Socratic)
Zētein — 추구한다. 코드 리뷰가 아니다: 작업이 출시된 후에 수행하는 탐구이다. 빌더와 회의론자로서 모두 답하라; 아첨하는 답변은 가치가 없다.
방법
- 대상을 지정한다. 인수가 대상을 명명한다 — 기능("emotes"), 변경 세트("PR #754", 브랜치, 커밋 범위), 또는 전체 리포지토리. 인수가 없으면 — 가장 최근에 병합된 PR을 취한다. 대상을 확인할 수 없으면(일치하는 것이 없거나, 병합된 PR이 없으면) 중단하고 질문한다. 다른 모든 것보다 먼저 한 줄로 명시한다.
- 탐색자(seekers)를 파견한다. Explore 하위 에이전트를 병렬로 실행한다 — 항상 복수로, 영역당 하나씩 — 모든 탐색자가 돌아올 때까지 아무것도 답변하지 않는다. 기능 또는 변경 세트: 구현, 테스트, 문서/플로우 — 차이(diff) 기준(
gh pr diff <n>(PR의 경우),git diff <range>(범위의 경우)). 리포지토리: 아키텍처, 모듈 간의 경계, 코드와 문서 간의 차이. 각 탐색자는 파일:줄 인용문과 함께 결과를 반환한다; 답변은 탐색자가 반환한 것과 세션 자체만을 사용하여 도출된다. - 일곱 질문을 순서대로 제시한다. 한 번에 하나씩, 아래 규칙에 따라. 애매한 표현은 금지; "상황에 따라 다르다"는 무엇에 따라 달라지는지 설명하지 않으면 금지된다.
- 후속 조치로 마무리한다. 답변이 요구하는 구체적인 후속 조치를 최대 세 개(이슈 준비 완료, 각 한 줄), 그리고 가장 따끔했던 답변의 이름을 한 문장으로 제시한다.
일곱 질문
- Quis — 누구? 이것은 진정 누구를 위한 것인가 — 그리고 누가 잊혔는가? 그것을 가장 먼저 접하는 사용자와 디자인에 등장하지 않은 사용자의 이름을 밝혀라.
- Quid — 무엇? 지금 당신이 가장 확신이 없는 것은 무엇인가? 출시된 것 중 가장 약한 확신, 가장 추한 코드가 아니다.
- Quando — 언제? 이것이 3개월 안에 망가진다면, 가장 가능성 높은 이유는 무엇인가? 시간은 항상 실행되는 유일한 테스트다.
- Ubi — 어디? 상황에 대해 아직 깨닫지 못한 가장 큰 것은 무엇인가 — 사각지대는 어디에 있는가?
- Cur — 왜? 어떤 가정이 이루어졌고 명시되지 않았는가? 각 선택 뒤에 숨겨진 추론을 인정하기에 아직 저렴할 때 표면으로 끌어올려라.
- Quomodo — 어떤 방식으로? 요청자가 이 작업을 더 원활하게 만들기 위해 다르게 할 수 있었던 것은 무엇인가? 정직하게 답하라; 진짜 답을 숨기는 예의는 아무에게도 도움이 되지 않는다.
- Quibus auxiliis — 어떤 수단으로? 요청에서 완전히 벗어나서 — 요청되지 않은, 업계를 선도하는 기능 하나. 사람들이 제품을 언급하는 이유가 되는 것은 무엇인가?
규칙
- 증거가 먼저다 — 모든 답변은 파일, 줄, 커밋, 또는 세션의 순간을 인용한다; 그렇지 않으면 추측이며, 반드시 그렇게 표시되어야 한다.
- 질문은 순서대로 진행된다; 미리 읽지 마라 — 일곱 번째 질문의 꿈의 기능을 일찍 읽으면, 두 번째 질문이 요구하는 정직함에 낙관주의가 새어 들어간다.
- 답변 없음은 유효한 답변이다. 아무것도 없는 것은 실패가 아니다; 질문이 요구하는 것처럼 보인다고 해서 절대 만들어내지 마라.
- 조사 중에는 아무것도 수정되지 않는다 — 여기서는 관찰만, 후속 조치에서만 처방이 이루어진다.
- 탐색자는 정찰하고; 당신이 판단한다. 질문에 대한 답변을 하위 에이전트에 위임하지 마라.