콘텐츠로 이동

자동화 동작

Chorus 플러그인을 연결하면, 이미 AI-DLC 워크플로에서 익숙한 워크플로 위에 몇 가지 동작이 더해집니다. 적절한 순간에 독립적인 검토를 촉구하고, 수작업 기록 없이 에이전트 세션을 추적하며, 무인 에이전트가 할 수 있는 일을 제약합니다. 이 페이지는 그 동작들을 설명합니다. 라이프사이클 단계나 런타임의 설치·실행·복구 방법은 반복하지 않습니다. 그것들은 각각 AI-DLC 워크플로, Chorus 데몬 운영하기, 세션 중단·재개하기, 그리고 에이전트 플랫폼 레퍼런스를 참고하세요.

플러그인은 파이프라인의 세 지점에 독립적인 품질 관문을 더합니다. 각 지점에서 PostToolUse 훅이 발화하며, 메인 에이전트에게 전용 읽기 전용 검토자 서브에이전트를 생성하도록 촉구하는 리마인더를 주입합니다. 검토자는 자동으로 실행되지 않습니다 — 메인 에이전트가 (포그라운드에서) 생성하고 결과를 기다립니다. 모든 검토자는 마지막에 PASS, PASS WITH NOTES, 또는 FAIL 판정을 담은 댓글 하나를 게시합니다.

  • PASS / PASS WITH NOTES — 작업은 계속됩니다. 메모는 참고용입니다.
  • FAIL — 나열된 차단 요소를 먼저 고치고 작업을 재제출해야 다음으로 넘어갑니다.

검토자는 엄격히 읽기 전용입니다. 파일을 편집·작성·생성할 수 없습니다(proposal reviewer는 셸 명령을 전혀 실행할 수 없고, task reviewer와 code reviewer는 읽기 전용 및 테스트/빌드 명령만 실행할 수 있습니다). 그 역할은 작성자가 놓친 것을 찾아내는 것이지, 무언가를 바꾸는 것이 아닙니다.

검토자발화 시점검토 대상판정 게시 위치
Proposal reviewerchorus_pm_submit_proposal 이후문서 완전성, 작업 세분성, 수락 기준과의 정합, 그리고 의존성 그래프제안
Task reviewerchorus_submit_for_verify 이후그 작업의 구현이 수락 기준과 제안 문서를 충족하는지작업
Code reviewer아이디어를 뿌리로 하는 제안의 마지막 작업이 검증될 때(chorus_admin_verify_task)그 아이디어의 모든 작업에 걸친 집계 변경 — 작업 간 통합, 아키텍처 이탈, 보안, 회귀, 기능 수준 커버리지아이디어

Code reviewer는 출시 직전의 최종 관문입니다. 아이디어를 뿌리로 하는 제안의 마지막 작업이 검증될 때만 실행되며, 단일 작업이 아니라 기능 전체를 한 번에 검토합니다. 이 촉구들을 트리거하는 세 매처는 public/chorus-plugin/hooks/hooks.json에 정의되어 있습니다.

이 검토자들은 플러그인을 설치하거나 구성할 때 조정할 수 있는 userConfig 설정으로 제어됩니다. 각 검토자에는 켜기/끄기 토글(모두 기본 켜짐)과, 사람에게 에스컬레이션하기 전에 “검토-수정” 루프를 몇 번까지 돌릴지 제한하는 최대 라운드 상한이 있습니다.

설정유형기본값효과
enableProposalReviewerbooleantrue제안 제출 후 proposal reviewer 생성을 촉구
enableTaskReviewerbooleantrue작업을 검증 요청한 후 task reviewer 생성을 촉구
enableCodeReviewerbooleantrue아이디어의 마지막 작업이 검증된 후 code reviewer 생성을 촉구
maxProposalReviewRoundsnumber3사람에게 에스컬레이션하기 전의 최대 제안 검토-수정 라운드 수(0 = 무제한)
maxTaskReviewRoundsnumber3에스컬레이션 전의 최대 작업 검토 라운드 수(0 = 무제한)
maxCodeReviewRoundsnumber3에스컬레이션 전의 최대 코드 검토 라운드 수(0 = 무제한)

어떤 검토자를 끄면 그 독립적인 품질 점검은 사라지지만 토큰 사용량은 줄어듭니다. 별도의 enableOpenSpec 토글이 OpenSpec 모드를 제어하며, 이는 별도 페이지에서 다룹니다.

두 번째 훅 그룹은 에이전트의 Chorus 세션을 자동으로 관리합니다. 그래서 당신도 에이전트도 세션을 손으로 열거나, 하트비트를 보내거나, 닫을 필요가 없습니다. 이들은 판단이나 촉구 없이 스스로 실행됩니다.

  • SessionStart — 연결성을 확인하고, 에이전트를 체크인하며, 플러그인이 미리 만들어 둔 세션이 있으면 찾아냅니다.
  • SubagentStart — 생성된 워커가 시작되기 전에, 그 워커를 위한 Chorus 세션을 동기적으로 만들어 작업이 올바르게 귀속되도록 합니다.
  • SubagentStop — 워커가 점유하던 모든 작업에서 그 워커를 체크아웃하고 세션을 닫습니다. 그래서 어떤 워커도 매달린 체크인이나 열린 세션을 남기지 않습니다.
  • 하트비트와 리마인더 — 유휴 워커는 하트비트를 보내 오래 실행되는 동안 세션이 비활성으로 표시되지 않게 합니다. PostToolUse 리마인더는 위에서 설명한 검토 지점에서 메인 에이전트를 촉구합니다.

이 훅들이 세션 라이프사이클을 관장하므로, 에이전트는 스스로 세션을 만들거나 닫아서는 안 됩니다. 이 세션들이 실행되는 런타임 자체를 관리하는 방법(시작, 작업 디렉터리 선택, 중단, 재개)은 Chorus 데몬 운영하기세션 중단·재개하기를 참고하세요.

헤드리스 데몬 세션: 대화형 프롬프트 금지

섹션 제목: “헤드리스 데몬 세션: 대화형 프롬프트 금지”

에이전트가 데몬 세션으로 무인 실행될 때는, 팝업에 답할 사람이 터미널 앞에 없습니다. 헤드리스 세션은 결정에 이르기 위해 대화형 프롬프트(예: AskUserQuestion)를 사용해서는 안 됩니다 — 아무도 답할 수 없는 프롬프트는 실행 전체를 멈춰 세웁니다.

대신 에이전트는 모든 결정을 Chorus를 통해 되돌려 보내, 책임 있는 사람이 비동기로 응답할 수 있게 합니다.

  • 작업이나 제안에 증거가 충실한 댓글을 게시하고, 필요한 정확한 조치(예: 관리자 검증)를 적어 책임자를 @mention 합니다.
  • 실시간 답변을 기다리며 막히는 대신, 요구사항 구체화를 사용해 아이디어의 미해결 질문을 기록합니다.

이렇게 하면 감사 추적이 온전히 유지되고, 사람은 다음에 Chorus에 들어올 때 응답할 수 있으며, 세션은 표면에 띄울 수 없는 프롬프트에서 기다리지 않아도 됩니다. 이 인계 방식은 세션이 대화형이든 헤드리스든 동일하게 적용되며, 다만 헤드리스인 경우에만 대화형 프롬프트가 불가능해질 뿐입니다.

Codex 플러그인은 이식판이지 완전한 복제본이 아닙니다. Codex는 Claude Code와 같은 세 검토자(proposal, task, code)를 실행하며, 각각 제안 제출 후, 작업을 검증 요청한 후, 그리고 아이디어를 뿌리로 하는 제안의 마지막 작업이 검증된 후에 동일한 PostToolUse / 훅 촉구로 실행됩니다. 다른 점은 검토자의 구성이 아니라 설정과 생성의 메커니즘입니다.

  • userConfig 토글 표면이 없다. Codex는 enable* 검토 스위치도 라운드 상한 설정도 노출하지 않습니다. 검토 촉구는 Codex의 스킬과 훅이 직접 구동하므로, Claude Code처럼 설치 시에 끌 수 없습니다. 예를 들어 코드 검토 게이트웨이는 기본으로 켜져 있고, 비활성화할 토글이 없습니다.
  • 네이티브 생성. 메인 에이전트는 Claude Code의 Agent Teams가 아니라 Codex 자체의 spawn_agent / wait_agent를 통해 검토자를 호출하며, TeammateIdleTaskCompleted 훅에 해당하는 것은 Codex에 없습니다.

OpenClaw, Kiro, Pi 런타임에 대해서는 자동화를 “차이와 안내”로 다루세요. Claude Code의 동작을 그대로 가정하지 말고, 에이전트 플랫폼 레퍼런스 아래 각 런타임의 페이지에서 무엇을 지원하는지 확인하세요.

  • 트리거:
    • chorus_pm_submit_proposal 이후, PostToolUse 훅이 chorus:proposal-reviewer(포그라운드) 생성을 촉구합니다. 제안의 VERDICT: 댓글을 읽으세요.
    • chorus_submit_for_verify 이후, chorus:task-reviewer를 생성합니다. 작업의 VERDICT: 댓글을 읽으세요.
    • 아이디어를 뿌리로 하는 제안의 마지막 작업에 대해 chorus_admin_verify_task를 한 후, code reviewer를 생성합니다. 아이디어의 VERDICT: 댓글을 읽으세요. 이는 Claude Code (chorus:code-reviewer)와 Codex(chorus-code-reviewer) 양쪽에서 실행됩니다.
    • 검토자는 자동으로 실행되지 않습니다. 당신이 직접 생성하고 판정을 기다립니다. PASS / PASS WITH NOTES는 계속, FAIL은 차단 요소를 고치고 재제출하라는 뜻입니다.
  • 제약:
    • 검토자는 읽기 전용입니다(Edit/Write/NotebookEdit 없음. proposal reviewer는 Bash 없음, task reviewer와 code reviewer는 읽기 전용 및 테스트/빌드 명령만 실행).
    • 세 검토자(proposal, task, code) 전부가 Claude Code와 Codex 양쪽에 탑재됩니다. Claude Code 전용인 것은 userConfig 토글 표면 — enable* 스위치(enableProposalReviewer, enableTaskReviewer, enableCodeReviewer)와 라운드 상한(maxProposalReviewRounds, maxTaskReviewRounds, maxCodeReviewRounds, 기본 3, 0 = 무제한)입니다. Codex에는 userConfig가 없으므로, Codex에서는 이 검토자들이 스킬과 훅이 직접 제어하며 설치 시에 끌 수 없습니다.
    • chorus_create_session이나 chorus_close_session호출하지 마세요. 세션 라이프사이클 훅 (SessionStart, SubagentStart, SubagentStop)이 관리합니다.
    • 헤드리스 데몬 세션은 대화형 프롬프트(AskUserQuestion 등)를 사용해서는 안 됩니다. 결정은 Chorus 댓글 + @mention과 요구사항 구체화를 통해 되돌려 보내세요.
  • 출처:
    • 훅 이벤트와 PostToolUse 매처: public/chorus-plugin/hooks/hooks.json.
    • 검토자 역할: public/chorus-plugin/agents/proposal-reviewer.md, public/chorus-plugin/agents/task-reviewer.md, public/chorus-plugin/agents/code-reviewer.md.
    • userConfig 토글과 라운드 상한(Claude Code 전용): public/chorus-plugin/.claude-plugin/plugin.json.
    • Codex는 같은 세 검토자를 userConfig 표면 없이 탑재: plugins/chorus/skills/chorus-code-reviewer/SKILL.md, plugins/chorus/hooks/on-post-verify-task.sh(코드 검토 게이트웨이 촉구), 그리고 plugins/chorus/.codex-plugin/plugin.json.
    • 훅과 스킬의 분담: docs/chorus-plugin.md.
    • 헤드리스 상호작용 가드: docs/DAEMON.mddevelop / quick-dev 스킬.