통합 오케스트레이션 스킬 — 테마 루프 + 판단 + 요구사항서 + Agent 위임 + 재시도 + 저장
Main CLI가 직접 읽고 따르는 유일한 오케스트레이션 스킬. </Purpose>
<Use_When>
<Do_Not_Use_When>
<Why_This_Exists>
.pipeline-temp/ 파일로 주고받고, Main은 경로만 전달. 1테마당 ~340토큰 (텍스트 릴레이 대비 ~10배 절감).<Execution_Policy> CRITICAL 제약 8개 -- 위반 시 파이프라인 오동작:
<Steps>CRITICAL 1: .md 내용을 직접 작성하지 말 것
-> 반드시 Agent(docu-writer)에 위임
-> Write 도구로 직접 .md 본문을 생성하지 말 것
-> docu-writer가 draft_path에 Write. Main은 PASS 시 cp, WARNING 시 frontmatter 수정 후 Write
CRITICAL 2: 검증을 직접 수행하지 말 것
-> 반드시 Agent(critic)에 위임
-> "내용이 적절해 보인다" 같은 직접 판단 금지
CRITICAL 3: docu-writer 결과 수신 전 critic 호출 금지 (순차)
-> critic은 draft_path의 파일이 있어야 검증 가능
CRITICAL 4: 테마 순회는 반드시 순차 (병렬 금지)
-> 현재 테마의 전체 사이클(판단->작성->검증->저장)이 완료된 후 다음 테마 진행
CRITICAL 5: 테마마다 새 scout/docu-writer/critic 생성 (Full Reset)
-> 이전 에이전트 resume 금지
-> 재시도 시에도 새 에이전트 생성
CRITICAL 6: 재시도 최대 2회 Hard Cap
-> 2회 초과 시 auto_generated_warning 태그 부착 후 WARNING으로 저장
CRITICAL 7: 3연속 FAIL 시 파이프라인 중단
-> PASS/SKIPPED/WARNING 발생 시 consecutive_fail 초기화
CRITICAL 8: Step A의 Glob/Grep을 Main이 직접 수행 금지
-> 반드시 Agent(scout)에 위임
-> Main 컨텍스트에 Glob/Grep 결과가 적재되면 테마 확장 시 오토 컴팩트 발생
</Execution_Policy>
실행 시 전달받는 파라미터:
target: 대상 코드베이스 경로target 디렉토리가 존재하는지 확인한다. 없으면 즉시 중단.
Bash로 target이 독립 git repo인지 확인 후 커밋 해시를 조회:
cd {target} && [ -d .git ] && git log -1 --format=%h 2>/dev/null || echo "non-git"
.git 디렉토리 존재): 해당 repo의 최신 커밋 해시 (7자).git 없음 — 하위 디렉토리, git 미초기화 등): "non-git"주의:
git rev-parse --is-inside-work-tree는 부모 repo의 working tree 내부에서도true를 반환하므로, 반드시[ -d .git ]로 target 자체가 git root인지 확인해야 한다.
결과를 last_commit 변수에 저장한다. 이후 모든 테마의 요구사항서에 동일하게 전달.
Bash로 현재 시각을 ISO-8601 형식으로 조회:
date -u +%Y-%m-%dT%H:%M:%S 2>/dev/null || echo "unknown"
결과를 generated_at 변수에 저장한다. 이후 모든 테마의 요구사항서에 동일하게 전달.
mkdir -p {target}/.pipeline-temp
docu-writer가 md 드래프트를 저장할 임시 디렉토리. Phase 3에서 정리.
테마 처리 시작 전 {target}/execution-log.md가 존재하면 Read하여 YAML 상태 헤더를 파싱:
completed_themes에 포함된 테마는 건너뜀consecutive_fail 값 복구아래 4개 테마를 정의된 순서대로 순차 처리한다 (병렬 금지).
테마 추가 시: 아래 리스트에 항목 추가 +
skills/theme-definitions/themes/{normalized_theme}.yaml파일 생성