간단히 말하자면: AI는 특정 gap code에 연결된 작은 per-handler 슬라이스로 간극을 메우지만, 새로운 경로(route), 메서드 또는 패스를 창조할 수는 없습니다. 결정론적 스캔(deterministic scan)은 먼저 프레임워크 트레이싱(framework tracing)과 AST 분석을 통해 구조를 증명하며, 명시적인 미지수만을 남깁니다. 이후 모델은 상상력을 동원하여 경로를 생성하기보다는, 이름이 지정된 해당 간극들을 다루며, 모든 AI 기여는 특정 핸들러와 gap code에 국한됩니다.
모델이 경로를 창조할 수 없는 이유
경로를 창조할 수 있는 모델은 존재하지 않는 경로도 창조할 수 있습니다. 환각된(hallucinated) 경로는 마치 실제인 것처럼 문서에 삽입되며, 그 사양을 기반으로 구축되는 모든 목업(mock), 시나리오 및 검토는 이 거짓된 경로를 상속받게 됩니다. 위험은 작은 오타가 아니라 사실처럼 보이는 조작된 계약서입니다.
경로 생성을 결정론적으로 유지하는 것이 이를 방지합니다. 구조는 실제로 해결된 코드에서 나오며, 모델이 어떤 경로가 존재하는지 결정하는 과정에 개입할 수 없습니다.
추출과 AI 채우기의 분리
| 단계 | 누가 수행하는가 | 무엇을 생성할 수 있는가 |
|---|
| 경로 추출 (Route extraction) | 결정론적 스캔 (Deterministic scan) | 증명된 경로, 메서드 및 패스 |
| ... | | |
| 모델은 게이트(gate)의 하류에서 작동하며, 이미 스캔이 이름을 지정한 미지수들을 다룹니다. 경로 목록 자체를 형성할 수 있는 상류가 아닙니다. | | |
간극 채우기(Gap fill)의 모습
간극이란 스캔이 해결하지 못한 응답 필드와 같이 특정 핸들러에 존재하는 구체적인 요소를 말합니다. AI 채우기는 의도적으로 작고 지점을 겨냥합니다.
- 게이트가 코드와 핸들러를 이용해 간극의 이름을 지정합니다.
- AI는 해당 요소에 대한 제한된 슬라이스를 반환합니다.
- 이 채움은 새로운 경로로 확장되기보다는 이름이 지정된 간극에 붙어 있습니다.
- 사용자는 이를 채택하기 전에 소스(source)와 비교하여 검토합니다.
채우기가 gap code에 묶여 있기 때문에, 조용히 새로운 메서드나 패스로 성장할 수 없습니다. 모델만으로 작성된 메모는 확인되기 전까지 가설로 남아있을 뿐이며, 결정론적 구조를 재분류하지 않습니다.
스캔이 POST 라우트와 그 요청 본문(request body)은 증명하지만, 에러 응답의 형태(shape)는 해결할 수 없다고 가정해 봅시다. 게이트가 해당 응답을 간극(gap)으로 표시합니다. 모델은 핸들러의 에러 분기(error branches)에서 가져온 유한한 에러 스키마(bounded error schema)를 제안할 수 있으며, 이는 기존 POST에 붙어 있습니다. 작동하는 동안에는 두 번째 경로(path)나 DELETE 메서드를 추가할 수 없으며, 제안된 스키마가 핸들러의 실제 분기와 일치하지 않으면 검토에서 거부됩니다. 채우기 전후의 라우트 개수는 동일하게 유지됩니다.
이 경계가 명세(spec)를 신뢰할 수 있게 만드는 이유
이 경계는 모델이 잘하는 것과 못하는 것을 분리합니다. 모델은 사람이보다 구체적인 미지(unknown)에 대해 더 빠르게 추론할 수 있지만, 표면 전체를 나열(enumerate)하는 것은 신뢰할 수 없습니다. 간극을 채우도록 하는 것은 그 강점을 사용하면서 라우트 목록이 환각(hallucination)에 노출되는 것을 막습니다.
소스 코드는 기본적으로 어디에도 전송되지 않으며, 정적 스캔(static scan)에는 모델 키가 필요하지 않습니다. 성공적인 스캔만으로는 구현이 준수됨을 증명하지 못하며, AI 채우기는 검토 없이는 해결되지 않은 라우트를 확정된 것으로 만들지 않습니다.
Powerduck은 도구(tooling)에서 레인(lane)을 강제합니다: 결정론적 추출(deterministic extraction)이 라우트를 증명하고, AI는 게이트가 명명한 간극만 채웁니다.
자주 묻는 질문 (FAQ)
스캔 중에 AI가 새로운 엔드포인트(endpoint)를 추가할 수 있나요? 아니요. 감지된 라우트의 특정 간극을 채울 수는 있지만, 라우트, 메서드 또는 경로 자체를 만들 수는 없습니다.
간극 채우기가 환각된 라우트가 되는 것을 막는 것은 무엇인가요? 이 채움은 명명된 간극 코드(named gap code) 및 핸들러에 연결된 유한한 슬라이스(bounded slice)이며, 채택하기 전에 소스를 기반으로 검토합니다.
라우트를 추출하는 데 모델 키가 필요한가요? 아니요. 결정론적 스캔(deterministic scan)은 모델 키 없이 실행되며, 소스 코드는 기본적으로 어디에도 전송되지 않습니다.
핵심 요약
모델은 의도적으로 좁은 임무를 가지고 있습니다. 즉, 완성도 게이트(completeness gate)가 명명하는 명시적인 간극을, 실제 핸들러에 연결된 경계가 있는 슬라이스로 채우는 것입니다. 경로 생성은 결정론적(deterministic)으로 유지되므로, 모델이 경로를 발명할 수 없으며, 모델만 작성한 메모는 검증될 때까지 가설로 남아 있습니다. 이는 구체적인 미지(unknowns)에 대한 모델의 속도를 활용하는 동시에 표면 영역을 코드에 기반하게 유지합니다. 간극을 채우는 것과 경로를 발명하는 것 사이의 경계가 전체 명세(spec)를 신뢰할 수 있게 만듭니다. 코드-to-OpenAPI 가이드에서 계속 진행하세요.