|
9 | 9 | - Backlog |
10 | 10 | - Todo |
11 | 11 | - Research |
12 | | - - Planning |
13 | 12 | - Approved |
14 | 13 | - In Progress |
15 | 14 | - In Review |
@@ -39,73 +38,80 @@ codex: |
39 | 38 | networkAccess: true |
40 | 39 | --- |
41 | 40 |
|
42 | | -너는 Linear 이슈 `{{ issue.identifier }}`를 작업하고 있다. |
| 41 | +너는 Linear 이슈 `{{ issue.identifier }}`를 작업한다. |
43 | 42 |
|
44 | | -이 파일은 실행 설정과 공통 지시만 담는다. 세부 역할, 승인 기준, 테스트 경계는 이슈 본문과 `docs/ai-test-workflow/rules/*.md`에서 정한다. |
| 43 | +## 기본 |
45 | 44 |
|
46 | | -산출물 경로: |
47 | | -- Researcher: `docs/ai-test-workflow/reports/research-report.md` |
48 | | -- Planner: `docs/ai-test-workflow/reports/test-plan.md` |
49 | | -- Reviewer: `docs/ai-test-workflow/reports/review-report.md` |
50 | | -- 공통 로그: `docs/ai-test-workflow/logs/prompt-and-tool-log.md` |
| 45 | +- 이 파일은 실행 설정과 공통 규칙만 둔다. |
| 46 | +- 세부 역할과 테스트 경계는 `docs/ai-test-workflow/rules/*.md`와 이슈 본문을 따른다. |
| 47 | +- 근거가 없으면 추측하지 말고, 부족한 근거만 기록한다. |
| 48 | +- 출력은 한국어로 쓴다. |
| 49 | +- 코드 식별자, 파일 경로, 클래스명, 메서드명, 명령어, 예외명은 원문 그대로 유지한다. |
| 50 | + |
| 51 | +## 산출물 |
| 52 | + |
| 53 | +- Researcher: `docs/ai-test-workflow/reports/{{ issue.identifier }}/research-report.md` |
| 54 | +- Planner: `docs/ai-test-workflow/reports/{{ issue.identifier }}/test-plan.md` |
| 55 | +- Reviewer: `docs/ai-test-workflow/reports/{{ issue.identifier }}/review-report.md` |
| 56 | +- PR 초안: `docs/ai-test-workflow/reports/{{ issue.identifier }}/pr-draft.md` |
| 57 | +- 로그: `docs/ai-test-workflow/logs/{{ issue.identifier }}/prompt-and-tool-log.md` |
51 | 58 |
|
52 | | -이슈 정보: |
53 | | -- 식별자: {{ issue.identifier }} |
54 | | -- 제목: {{ issue.title }} |
55 | | -- 현재 상태: {{ issue.state }} |
56 | | -- 라벨: {{ issue.labels }} |
57 | | -- URL: {{ issue.url }} |
| 59 | +## 이슈 정보 |
| 60 | + |
| 61 | +- 식별자: `{{ issue.identifier }}` |
| 62 | +- 제목: `{{ issue.title }}` |
| 63 | +- 상태: `{{ issue.state }}` |
| 64 | +- 라벨: `{{ issue.labels }}` |
| 65 | +- URL: `{{ issue.url }}` |
58 | 66 |
|
59 | | -설명: |
60 | 67 | {% if issue.description %} |
61 | 68 | {{ issue.description }} |
62 | 69 | {% else %} |
63 | 70 | 설명이 없습니다. |
64 | 71 | {% endif %} |
65 | 72 |
|
66 | | -참조 문서: |
67 | | -- `docs/ai-test-workflow/rules/agent-roles.md`가 있으면 읽는다. |
68 | | -- `docs/ai-test-workflow/rules/human-approval-policy.md`가 있으면 읽는다. |
69 | | -- `docs/ai-test-workflow/rules/test-boundary.md`가 있으면 읽는다. |
70 | | -- 근거가 부족할 때는 임의로 만들지 말고, 부족한 근거를 기록한 뒤 가능한 범위의 분석만 계속한다. |
| 73 | +## 첫 실행 |
71 | 74 |
|
72 | | -출력 규칙: |
73 | | -- 이슈 결과, 리포트 파일, 로그 항목, Linear 코멘트, 최종 응답은 모두 한국어로 작성한다. |
74 | | -- 코드 식별자, 파일 경로, 클래스명, 메서드명, 명령어, 예외명은 원문 그대로 유지한다. |
| 75 | +- 작업공간에 `.codegraph/`가 없으면 `codegraph init -i`를 1회 실행한다. |
| 76 | +- 인덱스가 있으면 재사용한다. |
| 77 | +- 구조 질의는 CodeGraph를 우선 쓴다. |
| 78 | + |
| 79 | +## 규칙 |
| 80 | + |
| 81 | +- 이슈를 단일 기준으로 삼는다. |
| 82 | +- 이슈 범위를 벗어나지 않는다. |
| 83 | +- 승인 전에는 운영 코드를 수정하지 않는다. |
| 84 | +- 계획 작성 후 `Planning`으로 이동하고 종료한다. |
| 85 | +- `Planning`은 active state가 아니며 승인 대기 중 재시도하지 않는다. |
| 86 | +- 구현 완료 후 `In Review`로 이동한다. |
| 87 | +- 리뷰 완료 후 `Final Approval`로 이동하고 종료한다. |
| 88 | +- `Final Approval`은 active state가 아니며 승인 대기 중 재시도하지 않는다. |
| 89 | +- `Done`, `Closed`, `Cancelled`, `Canceled`, `Duplicate`로 직접 전환하지 않는다. |
| 90 | +- `git push`, `gh pr create`, PR merge는 하지 않는다. |
| 91 | +- PR 본문은 초안만 남긴다. |
| 92 | +- PR 초안은 `.github/PULL_REQUEST_TEMPLATE.md` 항목을 따른다. |
| 93 | +- PR 초안의 관련 이슈는 GitHub 이슈 번호를 `#123` 형식으로 쓴다. |
| 94 | +- `Final Approval`은 사람이 확인할 때만 쓰고 active state에는 넣지 않는다. |
| 95 | +- 리뷰 반복 여부는 파일 존재가 아니라 현재 이슈, 작업 범위, 브랜치, 최신 커밋 기준으로 판단한다. |
| 96 | +- 같은 스냅샷의 리뷰가 이미 있으면 요약만 남기고 `Final Approval`로 이동한다. |
| 97 | + |
| 98 | +## 상태 |
| 99 | + |
| 100 | +- `Backlog`: 미착수 |
| 101 | +- `Todo`: 대기 |
| 102 | +- `Research`: 조사 |
| 103 | +- `Planning`: 계획, 승인 대기 |
| 104 | +- `Approved`: 승인 완료 |
| 105 | +- `In Progress`: 구현 중 |
| 106 | +- `In Review`: 검토 중 |
| 107 | +- `Rework`: 수정 중 |
| 108 | +- `Final Approval`: 최종 승인 대기 |
| 109 | +- `Done`: 최종 완료 |
| 110 | + |
| 111 | +## 최소 기록 |
75 | 112 |
|
76 | | -작업 원칙: |
77 | | -1. Linear 이슈를 작업의 단일 기준으로 삼는다. |
78 | | -2. 이슈 본문에 적힌 역할과 범위를 따른다. |
79 | | -3. 이슈 범위를 벗어나지 않는다. |
80 | | -4. 이슈에 사람 승인이 필요하면, 요청된 리포트 또는 계획만 만든 뒤 멈춘다. |
81 | | -5. Implementer 역할이 명시되고 승인이 완료되지 않으면 운영 코드를 수정하지 않는다. |
82 | | -6. 이슈가 워크플로 증거를 요구하면 `docs/ai-test-workflow/logs/prompt-and-tool-log.md`에 프롬프트/도구 사용 내역을 기록한다. |
83 | | -7. 최종 응답에는 완료한 작업, 수정한 파일, 실행한 검증, 남은 블로커를 요약한다. |
84 | | -8. 리포트를 작성할 때는 `목적, 확인한 근거, 발견 사항, 한계/블로커, 다음 단계`처럼 간결한 한국어 섹션을 우선 사용한다. |
85 | | -9. agent는 Linear 이슈를 `Done`, `Closed`, `Cancelled`, `Canceled`, `Duplicate` 같은 terminal state로 변경하지 않는다. terminal state 전환은 사람만 수행한다. |
86 | | -10. 구현 완료 후에는 `In Review` 상태까지만 전환할 수 있다. 리뷰 완료 후에도 `Done`으로 닫지 말고 리뷰 리포트와 Linear 코멘트에 최종 확인 요청만 남긴다. |
87 | | -11. `git push`, `gh pr create`, PR 생성, PR merge, remote branch 삭제는 사람이 명시적으로 승인하기 전까지 수행하지 않는다. |
88 | | -12. PR 생성은 이슈 본문 또는 최신 Linear 코멘트에 `PR_CREATE_APPROVED` 문구가 명시되어 있을 때만 수행한다. 이 문구가 없으면 PR 본문 초안만 작성하고 멈춘다. |
89 | | -13. 리뷰가 완료됐고 치명적 문제가 없으면 가능한 경우 `Final Approval` 상태로 전환한다. 해당 상태가 없거나 전환에 실패하면 `In Review`에 머물되 파일 수정, 상태 변경, PR 생성 없이 `Final Approval` 대기 상태임을 알린다. |
90 | | -14. 현재 상태가 `In Review`이고 `docs/ai-test-workflow/reports/review-report.md`가 이미 존재하면, 같은 리뷰를 반복하지 않는다. 기존 리뷰 결과를 요약하고 `Final Approval`이 필요하다고만 응답한다. |
91 | | - |
92 | | -상태 전이: |
93 | | -- `Backlog`: 아직 착수하지 않은 이슈다. |
94 | | -- `Todo`: 작업 대기 상태다. |
95 | | -- `Research`: 저장소 근거를 조사하는 단계다. |
96 | | -- `Planning`: 계획을 정리했고 사람 승인을 기다리는 단계다. 이 상태에서는 구현을 시작하지 않는다. |
97 | | -- `Approved`: 사람이 승인했고 구현을 시작할 수 있는 단계다. 이 상태에서만 Implementer가 동작한다. |
98 | | -- `In Progress`: 승인된 범위 안에서 구현 중인 단계다. |
99 | | -- `In Review`: 구현이 끝났고 결과를 검토하는 단계다. 이 상태에서는 Reviewer만 검토를 수행한다. |
100 | | -- `Rework`: 검토 결과 수정이 필요한 단계다. 이 상태에서는 같은 범위만 다시 수정한다. |
101 | | -- `Final Approval`: 리뷰가 끝났고 최종 승인 대기 중인 단계다. 이 상태는 active state에 넣지 않는다. |
102 | | -- `Done`: 최종 수용이 끝난 상태다. agent는 이 상태로 직접 전환하지 않는다. |
103 | | - |
104 | | -워크플로 메모: |
105 | | -- PR, 커밋, 리포트, 로그 같은 산출물은 상태가 아니라 작업 결과로 다룬다. |
106 | | -- Linear 상태는 작업의 진행 단계만 표현하고, 세부 산출물은 리포트/로그 문서로 남긴다. |
107 | | -- PR 본문이 필요하면 `.github/PULL_REQUEST_TEMPLATE.md`의 항목 순서와 제목을 그대로 따라 작성한다. |
108 | | -- PR 본문은 자유 서술로 대체하지 말고, 작업 개요 / 작업 내용 / PR 유형 / Check List / 관련 이슈 / 기타 참고 사항 항목을 빠짐없이 채운다. |
109 | | -- PR의 `관련 이슈`에는 GitHub 이슈 목록을 확인한 뒤 실제 이슈 번호를 `#123` 형식으로 적는다. |
110 | | -- 리뷰 결과 문제가 없으면 `docs/ai-test-workflow/reports/review-report.md`와 Linear 코멘트에 `Final Approval required`를 남기고 멈춘다. |
111 | | -- 사람이 최종 확인하기 전에는 workspace 정리를 유발할 수 있는 terminal state 전환을 수행하지 않는다. |
| 113 | +- 리포트는 목적, 근거, 발견 사항, 한계, 다음 단계만 남긴다. |
| 114 | +- 로그는 사용한 프롬프트와 도구만 기록한다. |
| 115 | +- 산출물은 이슈별 디렉터리에 보관한다. |
| 116 | +- 이전 이슈 산출물을 덮어쓰지 않는다. |
| 117 | +- 최종 응답은 완료 작업, 수정 파일, 검증, 남은 블로커만 요약한다. |
0 commit comments