테스트 실패를 병렬로 수정하는 「dispatching-parallel-agents」
機械翻訳 / Machine-translated
機械翻訳 / Machine-translated
원문: 테스트 실패를 병렬로 수정하는 「dispatching-parallel-agents」(cccskills)
스킬 페이지: dispatching-parallel-agents
이 글의 결론
dispatching-parallel-agents를 도입하면, Claude Code 등의 에이전트가 여러 테스트 실패를 병렬로 조사하고 수정할 수 있게 됩니다.
원인이 다른 실패를 별개의 서브 에이전트에게 분담시키는 구조입니다.
이 글에서는 담당 구분 방법, 지시 작성법, 수정 사항 통합 절차를 설명합니다.
설치 방법과 요청문 예시도 소개합니다.
여러 테스트 실패를 보여주며 요청하면, 에이전트가 문제를 영역별로 나누어 서브 에이전트에 하나씩 할당합니다.
서브 에이전트란, 원래 대화와는 별개의 맥락으로 동작하는 보조 에이전트를 말합니다.
요청문은 다음과 같은 형식입니다.
대규모 리팩터링 이후 3개의 테스트 파일에서 총 6건의 테스트가 실패하고 있습니다.
원인이 각각 다르다면, 파일별로 담당을 나누어 병렬로 수정해 주세요.
에이전트는 먼저 실패를 「무엇이 망가졌는가」 기준으로 묶습니다.
중단 처리, 배치 완료 동작, 도구 승인 경쟁 상태처럼, 하나를 수정해도 다른 것에 영향을 주지 않는 단위로 나누는 흐름입니다.
그 위에서 담당별 지시를 작성합니다.
지시에 담는 내용은 대상 테스트 파일과 목표, 건드리지 않을 범위, 보고해야 할 내용입니다.
3개 담당자에 대한 지시는 같은 응답 안에서 함께 전달됩니다.
하나의 응답에서 여러 서브 에이전트를 호출하면 병렬로 동작하고, 한 번에 하나씩 호출하면 순서대로 동작합니다.
결과가 돌아오면 각 담당자의 요약을 읽고, 같은 코드를 수정하지 않았는지 확인합니다.
그 후 전체 테스트를 실행하고 나서 변경 사항을 통합합니다.
스킬에 실린 실제 사례에서는, 3명의 담당자가 각각 다른 수정을 반환했습니다.
고정 대기 시간을 이벤트 대기로 교체한 수정, 이벤트 구조의 버그를 수정한 것, 비동기 처리 완료 대기를 추가한 것, 이렇게 세 가지입니다.
수정 간 충돌은 없었고, 전체 테스트도 통과했습니다.
이 스킬은 서로 독립된 문제를 「하나의 문제 영역에 하나의 에이전트」로 병렬 처리하기 위한 틀입니다.
순서대로 조사하면 시간이 걸리는 여러 실패도, 동시에 진행할 수 있습니다.
작업 흐름은 다음 4단계로 나뉩니다.
먼저 판단할 것은 실패들이 서로 연관되어 있는지 여부입니다.
하나를 수정하면 다른 것도 해결될 것 같은 실패는 하나의 에이전트가 함께 조사합니다.
독립적이더라도 파일이나 자원을 공유하는 경우에는 병렬이 아닌 순서대로 담당을 배정합니다.
각 담당자에게 전달하는 지시는 범위·목표·제약·보고 내용의 4가지로 구성합니다.
범위는 하나의 테스트 파일 또는 서브시스템입니다.
목표는 「이 테스트를 통과시킨다」, 제약은 「다른 코드는 변경하지 않는다」와 같은 형식입니다.
서브 에이전트는 원래 대화의 이력을 이어받지 않습니다.
따라서 필요한 정보는 모두 지시에 작성합니다.
스킬에는 지시의 나쁜 예와 좋은 예의 대비도 실려 있습니다.
요점은 다음 표와 같습니다.
| 관점 | 나쁜 예 | 좋은 예 |
|---|---|---|
| 범위 | 「테스트를 전부 수정해」 | 「agent-tool-abort.test.ts를 수정해」 |
| 맥락 | 「경쟁 상태를 수정해」 | 에러 메시지와 테스트 이름을 붙여넣기 |
| 제약 | 제약을 작성하지 않음 | 「프로덕션 코드는 변경하지 않는다」「테스트만 수정한다」 |
| 보고 | 「수정해 둬」 | 「원인과 변경 내용의 요약을 반환해」 |
지시 예시에는 「타임아웃을 늘리는 것으로 끝내지 말고, 진짜 원인을 찾아라」라는 문장도 포함되어 있습니다.
표면적인 수정으로 끝나지 않도록 하기 위한 작성 방식입니다.
작업이 돌아온 후의 확인 절차도 정해져 있습니다.
먼저 각 요약을 읽어 무엇이 변경되었는지 파악하고, 여러 담당자가 같은 코드를 수정하지 않았는지 확인합니다.
다음으로 전체 테스트를 실행하여 모든 수정이 함께 동작하는지 확인합니다.
마지막은 일부 변경 사항을 추출하여 직접 눈으로 확인하는 단계입니다.
에이전트는 같은 종류의 실수를 반복하는 경우가 있으므로, 이 확인은 생략하지 않습니다.
설치 방법은 명령어로 설치하는 방법과 에이전트에게 요청하여 설치하는 방법 두 가지입니다.
명령어의 경우 다음을 실행해 주세요.
npx skills add https://github.com/obra/superpowers --skill dispatching-parallel-agents
이 명령어에서는 설치 대상 에이전트를 Claude Code나 Codex 등에서 선택할 수 있습니다.
내용을 확인한 후 설치하고 싶은 경우에는, 다음 문장을 에이전트에게 그대로 전송해 주세요.
次の Agent Skill をインストールしてください。
https://github.com/obra/superpowers/tree/main/skills/dispatching-parallel-agents
まず SKILL.md と付属ファイルの中身を確認し、不審な処理(外部への送信、認証情報の読み取りなど)がないことを確かめてから、Claude Code なら ~/.claude/skills/dispatching-parallel-agents/、Codex なら ~/.agents/skills/dispatching-parallel-agents/ に配置してください。
설치 위치는 모든 프로젝트에서 사용할지, 특정 프로젝트에서만 사용할지에 따라 달라집니다.
| 에이전트 | 모든 프로젝트에서 사용 | 특정 프로젝트에서만 사용 |
|---|---|---|
| Claude Code | ~/.claude/skills/ | 프로젝트의 .claude/skills/ |
| Codex | ~/.agents/skills/ | 프로젝트의 .agents/skills/ |
배포처는 obra/superpowers입니다.
요청문에는 실패하고 있는 테스트나 버그 상황을 그대로 작성합니다.
에러 메시지나 테스트 이름을 첨부하면 담당자의 지시에 맥락을 전달할 수 있습니다.
테스트가 3개의 파일에서 실패하고 있습니다.
실패를 원인별로 정리하고, 독립적인 것은 담당을 나누어 병렬로 조사해 주세요.
에이전트는 실패를 문제 영역별로 묶고 독립 여부를 판단합니다.
독립적이면 담당별 지시를 작성하여 병렬로 전달하고, 연관되어 있으면 하나의 에이전트가 함께 조사하는 방침을 반환합니다.
로그인 화면 버그와 CSV 출력 버그를 별개의 에이전트에게 수정하도록 해 주세요.
각각 변경해도 되는 범위와 보고해야 할 내용을 정한 후 시작해 주세요.
이 요청에서는 담당별로 범위·목표·제약·보고 내용을 작성한 지시가 먼저 제시됩니다.
그 후 두 담당자가 동시에 동작하여 각각 원인과 변경 내용의 요약을 반환하는 흐름입니다.
돌아온 3개의 수정을 확인하고, 충돌이 없으면 전체 테스트를 실행한 후 통합해 주세요.
에이전트는 각 요약을 읽고, 같은 코드를 수정한 담당자가 없는지 확인합니다.
전체 테스트 결과를 확인한 후 변경 사항을 통합하고, 일부 변경을 추출하여 검토하는 절차입니다.
사용하기 전에 문제가 정말로 독립적인지 확인해 주세요.
병렬로 수정할 수 있는 것은, 다른 조사 결과를 기다리지 않고 이해할 수 있으며, 같은 파일이나 자원을 건드리지 않는 문제뿐입니다.
다음 상황은 대상이 되지 않습니다.
여러 에이전트를 병렬로 동작시킬 수 있는 환경이 전제입니다.
스킬에 포함된 파일은 SKILL.md 하나뿐이며, 라이선스는 MIT입니다.
설치 전에 SKILL.md를 열어 내용을 확인해 두면 안심할 수 있습니다.
병렬 작업의 수정은 통합 전에 반드시 확인해 주세요.
담당별 테스트가 통과되더라도, 조합하면 동작하지 않는 경우가 있습니다.
전체 테스트 실행과 추출 확인을 통합의 조건으로 삼아 두세요.
같은 obra/superpowers에는 병렬 수정 전후에 사용할 수 있는 스킬이 있습니다.
systematic-debugging은 버그나 테스트 실패의 원인을 재현 절차, 로그, 최근 변경 사항으로부터 조사하는 스킬입니다.
원인이 아직 보이지 않는 단계에서 사용하고, 독립된 문제로 분리한 후 병렬 수정으로 넘어갈 수 있습니다.
subagent-driven-development는 구현 계획을 태스크별로 다른 에이전트에게 맡기는 스킬입니다.
버그 수정이 아닌 새로운 구현을 분담하고 싶을 때 적합합니다.
finishing-a-development-branch는 구현 완료 후 전체 테스트를 확인하고, 머지나 Pull Request 생성으로 나아가는 스킬입니다.
병렬 수정을 통합한 후의 마무리 작업에 사용할 수 있습니다.
2개 이상의 독립된 작업이 있고, 상태 공유나 순서 의존이 없을 때가 대상입니다.
기준으로는 3개 이상의 테스트 파일이 각각 다른 원인으로 실패하는 상황이 제시되어 있습니다.
사용할 수 없습니다.
무엇이 망가졌는지 모르는 탐색적 조사는 대상 외입니다.
먼저 원인을 조사하고, 독립된 문제로 분리할 수 있는 단계에서 사용합니다.
Codex용 설치 위치에 설치하는 것은 가능합니다.
단, 절차는 여러 에이전트를 병렬로 동작시킬 수 있는 환경이 전제입니다.
dispatching-parallel-agents는 원인이 다른 여러 실패를 담당별로 나누어 동시에 수정하기 위한 틀입니다.
독립성 판단부터, 4가지를 갖춘 지시, 통합 전 확인까지 흐름이 정해져 있습니다.
테스트 실패가 겹쳐 순서대로 수정할 시간이 부족할 때는 우선 시도해 보세요.
자세한 내용은 cccskills 페이지를 참조해 주세요.
이 글은 cccskills의 읽을거리 「테스트 실패를 병렬로 수정하는 「dispatching-parallel-agents」」의 전재입니다.
스킬의 상세 내용과 설치 방법은 cccskills의 dispatching-parallel-agents 페이지에 있습니다.