저는 지금 Opus 4.5에 푹 빠져 있습니다. Gemini 3만큼 똑똑해 보이지만, 코드 스타일, 명령어 따르기, CLI UX가 훨씬 뛰어나고, 가장 중요한 점은 작은 작업을 할 때 속도가 빠르다는 것입니다. 클로드 코드가 낙제점을 받고 빙빙 도는 정말 멋진 상호작용이 있었는데, 제가 중간에 끼어들어 설명을 요청하게 했습니다. 좋은 질문들이 나왔고, 몇 가지 개념을 가르쳐 주었는데, 결국에는 이해가 되었습니다. 그러고 나서 (쉬운 일은 아니었지만!) 과제를 완료했고, 모든 테스트가 통과되었습니다. Opus 자체에서 요약한 상호작용은 다음과 같습니다. (클로드 코드 중단) - 나: 여기서 꽤 오래 지내시는데, 그냥 질문이나 하세요? 언제든 답변해 드릴 수 있어요. 맹목적으로 추측하거나 무작위로 시도할 필요는 없어요. 그러면 실패할 거예요. - AI: 맞습니다. 죄송합니다. 질문: SUP에 람다를 배포할 때 변수 리디렉션은 어떻게 작동해야 할까요? HEAP[lam_loc]을 설정하여 원래 VAR을 새 람다로 리디렉션해야 할까요? - 저: 표기법이 무슨 뜻인지 잘 모르겠지만... [dup-lam 의미론을 설명함]. Term*을 받아서 각 요소를 두 개의 Term*으로 복제하는 clone_many() 함수가 꼭 필요하다는 점에 유의하세요. 그런 게 있나요? 질문에 대한 답이 되나요? - AI: 감사합니다. 많은 부분이 명확해졌어요! clone_many에 대한 질문입니다. C inject에서 템플릿을 한 번 복제하고 나머지 인수를 각각 복제합니다. 이게 맞나요? - 저: args0[16]은 뭐죠? args0[0]은 뭐고 sup_a가 왜 거기에 들어가는 거죠? 잘 모르겠어요. - AI: 맞아요. Haskell을 좀 더 자세히 다시 읽어볼게요... 그러니까 a와 b(SUP 브랜치)는 복제되지 않고, 새 인수 목록의 첫 번째 요소로 바로 전달됩니다. 나머지 인수만 복제됩니다. 제 C 코드도 이와 일치합니다. 문제는 다른 곳에 있을 겁니다. - 저: 아, 알겠습니다. 네, 복제 논리가 좀 맞는 것 같지만, 그렇게 수동으로 인라인으로 처리하는 대신 도우미 clone_many 함수를 사용하는 게 더 좋을 것 같습니다. - AI: 좋아요, clone_many를 먼저 추가하겠습니다. [추가했지만 테스트는 여전히 실패합니다] 여전히 잘못된 출력이 나옵니다. 질문: CO0/CO1 노드를 축소해서 평가/해결해야 할까요? 아니면 CO0/CO1 상태로 유지하고 나중에 해결해야 할까요? - 저: Haskell에서 CO0/CO1은 붕괴의 기본 사례에 해당합니다... [dup-sup 동일 레이블 상호 작용을 통한 전체 감소 체인 설명] - AI: 정말 도움이 되네요! 같은 라벨을 가진 중복-보완 상호작용 덕분에 CO0/CO1이 제대로 해결되는 거죠. 문제는 제 템플릿 구조에 있는 것 같습니다. 제 템플릿 구조가 잘못된 건가요? - 저: 주입할 템플릿을 전달하면 필요하면 전체가 복제됩니다. 구조가 잘못된 것 같습니다. 람다를 두 개 할당하는 건가요? 왜 heap_alloc을 두 개 사용하는 건가요? 바깥쪽 람다에 변수를 만들어야 하는데, 사용하지 않는 곳에 변수를 만드는 것 같습니다. - AI: 맞아요! VAR(fV_loc)는 별도의 fV_loc이 아니라 바깥쪽 람다의 본체 위치(outer_loc)를 가리켜야 합니다. 맞나요? - 나: 괜찮은 것 같지만 다시 한번 확인해 주세요. 당신이 여기 있는 기계입니다. - AI: 맞아요, 주의 깊게 추적해 보겠습니다... [추적, 검증, 코드 수정] collapse_4 통과! [동일한 패턴의 APP, DRY, MAT, CTR 케이스를 계속 수정] 35개 테스트 모두 통과!
이 루프: > AI에게 작업을 맡긴다 > 문제를 탐구합니다 > 그것은 질문을 가져온다 > 당신은 통찰력을 제공합니다 > 문제를 탐구합니다 > ... 등등 ... 소프트웨어를 구축하는 매우 강력하고 시간 효율적인 방법입니다. 당신은 여전히 그것보다 똑똑할 것입니다(그렇기를 바랍니다), 하지만 그것은 스스로 많은 것을 들어 올릴 수 있습니다