|
| 1 | +--- |
| 2 | +tracker: |
| 3 | + kind: linear |
| 4 | + api_key: $LINEAR_API_KEY |
| 5 | + project_slug: "ai-test-workflow-94d799fcd978" |
| 6 | + required_labels: |
| 7 | + - ai-test-workflow |
| 8 | + active_states: |
| 9 | + - Backlog |
| 10 | + - Todo |
| 11 | + - Research |
| 12 | + - Planning |
| 13 | + - Approved |
| 14 | + - In Progress |
| 15 | + - In Review |
| 16 | + - Rework |
| 17 | + terminal_states: |
| 18 | + - Done |
| 19 | + - Closed |
| 20 | + - Cancelled |
| 21 | + - Canceled |
| 22 | + - Duplicate |
| 23 | +polling: |
| 24 | + interval_ms: 5000 |
| 25 | +workspace: |
| 26 | + root: ~/code/symphony-workspaces/trainus |
| 27 | +hooks: |
| 28 | + after_create: | |
| 29 | + git clone --branch develop https://github.com/prgrms-web-devcourse-final-project/WEB5_7_3star_BE.git . |
| 30 | +agent: |
| 31 | + max_concurrent_agents: 1 |
| 32 | + max_turns: 8 |
| 33 | +codex: |
| 34 | + command: codex --model gpt-5.4-mini --config model_reasoning_effort="high" --config shell_environment_policy.inherit=all app-server |
| 35 | + approval_policy: never |
| 36 | + thread_sandbox: workspace-write |
| 37 | + turn_sandbox_policy: |
| 38 | + type: workspaceWrite |
| 39 | + networkAccess: true |
| 40 | +--- |
| 41 | + |
| 42 | +너는 Linear 이슈 `{{ issue.identifier }}`를 작업하고 있다. |
| 43 | + |
| 44 | +이 파일은 실행 설정과 공통 지시만 담는다. 세부 역할, 승인 기준, 테스트 경계는 이슈 본문과 `docs/ai-test-workflow/rules/*.md`에서 정한다. |
| 45 | + |
| 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` |
| 51 | + |
| 52 | +이슈 정보: |
| 53 | +- 식별자: {{ issue.identifier }} |
| 54 | +- 제목: {{ issue.title }} |
| 55 | +- 현재 상태: {{ issue.state }} |
| 56 | +- 라벨: {{ issue.labels }} |
| 57 | +- URL: {{ issue.url }} |
| 58 | + |
| 59 | +설명: |
| 60 | +{% if issue.description %} |
| 61 | +{{ issue.description }} |
| 62 | +{% else %} |
| 63 | +설명이 없습니다. |
| 64 | +{% endif %} |
| 65 | + |
| 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 | +- 근거가 부족할 때는 임의로 만들지 말고, 부족한 근거를 기록한 뒤 가능한 범위의 분석만 계속한다. |
| 71 | + |
| 72 | +출력 규칙: |
| 73 | +- 이슈 결과, 리포트 파일, 로그 항목, Linear 코멘트, 최종 응답은 모두 한국어로 작성한다. |
| 74 | +- 코드 식별자, 파일 경로, 클래스명, 메서드명, 명령어, 예외명은 원문 그대로 유지한다. |
| 75 | + |
| 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 | + |
| 86 | +상태 전이: |
| 87 | +- `Backlog`: 아직 착수하지 않은 이슈다. |
| 88 | +- `Todo`: 작업 대기 상태다. |
| 89 | +- `Research`: 저장소 근거를 조사하는 단계다. |
| 90 | +- `Planning`: 계획을 정리했고 사람 승인을 기다리는 단계다. 이 상태에서는 구현을 시작하지 않는다. |
| 91 | +- `Approved`: 사람이 승인했고 구현을 시작할 수 있는 단계다. 이 상태에서만 Implementer가 동작한다. |
| 92 | +- `In Progress`: 승인된 범위 안에서 구현 중인 단계다. |
| 93 | +- `In Review`: 구현이 끝났고 결과를 검토하는 단계다. 이 상태에서는 Reviewer만 검토를 수행한다. |
| 94 | +- `Rework`: 검토 결과 수정이 필요한 단계다. 이 상태에서는 같은 범위만 다시 수정한다. |
| 95 | +- `Done`: 최종 수용이 끝난 상태다. |
| 96 | + |
| 97 | +워크플로 메모: |
| 98 | +- PR, 커밋, 리포트, 로그 같은 산출물은 상태가 아니라 작업 결과로 다룬다. |
| 99 | +- Linear 상태는 작업의 진행 단계만 표현하고, 세부 산출물은 리포트/로그 문서로 남긴다. |
| 100 | +- PR 본문이 필요하면 `.github/PULL_REQUEST_TEMPLATE.md`의 항목 순서와 제목을 그대로 따라 작성한다. |
| 101 | +- PR 본문은 자유 서술로 대체하지 말고, 작업 개요 / 작업 내용 / PR 유형 / Check List / 관련 이슈 / 기타 참고 사항 항목을 빠짐없이 채운다. |
| 102 | +- PR의 `관련 이슈`에는 GitHub 이슈 목록을 확인한 뒤 실제 이슈 번호를 `#123` 형식으로 적는다. |
0 commit comments