orchestrate-load.py¶
pilot orchestrate-load — wrapper agents 용 컨텍스트 로드 의사결정.
래퍼 (@pilot-planner / @pilot-planner-critic / @pilot-generator / @pilot-evaluator) 가 프로젝트 workspace 를 조사해서 어떤 파일을 Read 해야 하는지 결정하는 로직을 여기로 이관.
입력: --phase {planner|planner-critic|generator|evaluator} --workspace PATH (default: ./workspace) --project NAME (optional — 미지정 시 STATE.md 진행중. 명시 시 STATE 우회 project 모드 강제)
출력 (stdout, JSON): { "phase": "planner", "project": "MyProject", # issue 모드에서는 이슈명 "work_mode": "project" | "issue", # STATE.md mode 열 (issue 외 → project 폴백) "domain": "
" | null, "analyzed": bool, "tdd": bool, "mode": string | null, "focus": string | null, "config": {...}, # 언어·도구 병합 결과 (LANG_KEYS) "instructions": [...], # 결과 처리 공통 지시 — wrapper 는 이 지시를 따른다 (SSOT) "files_to_read": [...], # 순서대로 "hints": [...], # 자유 형식 힌트 (래퍼 프롬프트에 포함) "error": string | null }
instructions는 wrapper 4종에 공통이던 JSON 처리 지시의 정본이다 — wrapper .md 에 전문을 복제하지 않는다 (drift 방지). phase 별 focus 반영 지시만 값이 다르다.issue 모드 (STATE.md
| issue | {이슈명} | 진행중 |): 상태 파일 없이issues/{이슈명}/issue.md가 단건 명세다 (stateless). analyzed=false, tdd=false, mode=null 고정 (.agent-state.yml안 읽음). domain 은 issue.md 의도메인:/domain:라인에서 파싱. project.md·prompts/* 는 로드하지 않는다. 계약 상세: docs/how-to/issue-cycle.md.Exit: 0 — 성공 1 — 치명 오류 (error 필드 참조)