[상태없는 AI-인간 인터랙션](/pages/Stateless%20AI-Human%20Interaction.txt)을 구현하기 위한 프로세스이자 도구이자 명세서 형식. [에이전트 기반 코딩 실험 3](/pages/Agentic%20coding%20experiment%203.txt)의 결과물. https://github.com/akngs/s4 ## 설명 `s4`는 특정 형식을 따르는 yaml 명세서(`s4.yaml`)와 소스 코드를 정적 분석하여 다음에 해야할 일이 무엇인지를 출력하는 전통적인 CLI 프로그램이다. `s4 status`를 실행하면 1. 명세서에 내적 일관성이 있는지(모든 비즈니스 목표에 한 개 이상의 구체적 기능이 존재하는지, 기능 사이의 의존 관계에 순환이 없는지, 모든 기능에 한 개 이상의 인수 기준이 존재하는지 등) 2. 명세서와 코드 사이가 일치하는지(명세서 상 인수 기준에 대응되는 인수 테스트가 코드에 존재하는지) 3. 명세서에 등록된 모든 검사(인수 테스트, 단위 테스트, 커버리지, 타입 검사 등)를 통과하는지를 검사한 후 문제가 발견되면 가장 먼저 해결해야할 문제가 무엇인지, 해당 문제를 해결하기 위해 필요한 뭘 하면 되는지 등을 알려준다. `s4`의 출력은 문제 해결에 필요한 맥락을 충분히 담고 있어서 [상태없는 AI-인간 인터랙션](/pages/Stateless%20AI-Human%20Interaction.txt)을 가능하게 해준다. ## 부연 이 방식은 AI 에이전트가 도구의 호출 여부를 제어하고, 호출된 도구는 AI 에이전트가 잘 하지 못하는 종류의 작업을 수행한 뒤에 도구가 잘 하지 못하는 종류의 작업을 다시 AI 에이전트에게 구체적으로 지시하여 에이전트의 작업을 촉발한다는 점에서 [재귀적 신경기호 제어 역전](/pages/Recursive%20Neuro-Symbloic%20Inversion%20of%20Control.txt) 패턴의 일종이라고 볼 수 있다.