1. 주요 기능 및 특징
PromptManager는 프롬프트를 작성하고 관리하는 데 있어 다음과 같은 핵심 기능을 제공합니다. * YAML 메타데이터 파싱: Markdown 파일 상단의 YAML Front-matter를 파싱하여 제목, 파라미터 정의 등 구조화된 데이터를 관리합니다. 이는 프롬프트를 단순한 텍스트가 아닌 데이터 객체로 취급할 수 있게 합니다. * Shell 확장: 환경 변수($VAR) 및 명령어 실행 결과($(command))를 프롬프트 내에 직접 삽입할 수 있어 시스템 컨텍스트를 프롬프트에 실시간으로 반영할 수 있습니다. * ERB 렌더링: Ruby의 ERB 엔진을 사용하여 조건문, 반복문 등 복잡한 로직이 포함된 템플릿을 온디맨드로 렌더링함으로써 동적인 프롬프트 생성을 지원합니다. * 파일 포함(Includes): 여러 파일로 분산된 프롬프트 조각을 하나로 조합하여 모듈화된 프롬프트 설계를 가능하게 합니다. * 커스텀 지시어: ERB 템플릿 내에서 사용할 수 있는 사용자 정의 메서드를 등록하여 프롬프트 작성의 편의성을 높입니다.
2. 프로세싱 파이프라인 (Processing Pipeline)
모든 프롬프트는 정의된 4단계의 파이프라인을 순차적으로 통과하며 처리됩니다.
1. HTML 주석 제거: <!-- ... --> 형태의 주석을 가장 먼저 제거하여 최종 프롬프트에 불필요한 개발용 메모가 포함되지 않도록 차단합니다.
2. YAML 메타데이터 추출: 펜스(---) 사이의 데이터를 PM::Metadata 객체로 변환하여 프로그램에서 쉽게 접근할 수 있도록 합니다.
3. Shell 확장: shell: true 설정이 활성화된 경우, 환경 변수와 셸 명령어를 확장하여 동적 데이터를 주입합니다.
4. ERB 렌더링: to_s 메서드 호출 시점에 최종적으로 템플릿을 평가하여 최종 문자열을 생성합니다. 이는 지연 평가(Lazy Evaluation)를 통해 효율성을 높입니다.
3. 기술적 시사점 및 활용성
PromptManager는 프롬프트를 단순한 텍스트 파일에서 고도로 구조화된 템플릿으로 격상시킵니다. 특히 Ruby 생태계와의 긴밀한 통합을 통해 개발자는 익숙한 도구를 사용하여 복잡한 프롬프트 로직을 간결하게 유지할 수 있습니다. YAML을 통한 메타데이터 관리는 대규모 프롬프트 라이브러리를 구축할 때 필수적인 분류 및 검색 기능을 제공하며, Shell 확장은 인프라 상태나 외부 API의 결과값을 프롬프트에 즉시 반영하는 유연성을 제공합니다. 또한 커스텀 지시어 기능을 통해 프로젝트 고유의 프롬프트 DSL(Domain Specific Language)을 구축할 수 있어, 팀 단위의 프롬프트 엔지니어링 표준화에 크게 기여할 수 있습니다. 이러한 구조화된 접근 방식은 AI 애플리케이션의 유지보수성을 높이고 프롬프트 엔지니어링의 생산성을 극대화하는 핵심적인 도구가 될 것입니다.