“로그인 오류를 고쳐 주세요”는 사람에게도 모호하지만, AI 코딩 에이전트에게는 특히 넓은 탐색 요청입니다.
에이전트는 로그인 화면, API, 세션, 환경 변수, 테스트를 모두 살펴보며 가능한 원인을 모두 추측해야 합니다.
그리고 결과는 그리 좋지 않다는 것은 다들 알고 계실것입니다.
좋은 작업 요청은 프롬프트가 아니라, 에이전트가 제대로 실행할 수 있는 작은 작업 계약(단위)입니다.
이 글에서는 작업의 목표·범위·제약·완료 조건을 빠짐없이 전달하는 요청 구조를 정리하는 시간을 가져보겠습니다.
👨💻
에이전트에게 맡기는 일의 크기는 PR 하나가 아니라 “검증 가능한 결과 하나”에 맞추는 편이 좋습니다. 작은 계약은 탐색 범위를 줄이고, 실패했을 때 원인을 찾기도 쉽게 만듭니다.
이 요청에는 오류의 증상, 변경 가능 범위, 테스트, 기존 동작 보존 조건이 없습니다.
에이전트가 넓게 조사하거나, 가장 가까운 코드를 고쳐서 의도와 다른 해결을 낼 가능성이 큽니다.
agent-task.md
## 목표만료된 비밀번호 재설정 링크를 열면 안내 화면을 표시합니다.## 범위- apps/web의 재설정 페이지와 apps/api의 토큰 검증 핸들러만 수정합니다.- 기존 정상 토큰 흐름은 바꾸지 않습니다.## 완료 조건- 만료 토큰은 안내 화면을 표시합니다.- 유효 토큰은 현재 비밀번호 변경 화면을 표시합니다.- 관련 테스트와 pnpm lint가 통과합니다.## 판단 경계- DB 스키마, 토큰 형식, 메일 문구 변경이 필요하면 구현 전에 질문합니다.
두 번째 요청은 에이전트에게 구현 방향을 강요하지 않습니다.
대신
어디까지 스스로 결정해도 되는지와, 무엇을 보존해야 하는지
를 분명하게 만듭니다.
👍
구현 방법을 지나치게 고정하면 더 단순하고 안전한 해결책을 막을 수 있습니다. “React 상태를 세 개 추가하세요”보다 “만료 상태를 사용자에게 구분해 보여 주세요”처럼 결과와 경계를 먼저 적습니다.
# 목표<사용자에게 달라져야 하는 결과> # 범위- <수정 가능한 경로>- <보존해야 하는 기존 흐름> # 완료 조건- <관찰 가능한 결과 1>- <관찰 가능한 결과 2>- <실행할 검증 명령> # 판단 경계- <질문이 필요한 변경>- <명시적으로 제외한 작업> # 전달 결과- 변경한 파일과 이유를 요약합니다.- 실행한 검증 명령과 결과를 기록합니다.- 남은 위험 또는 결정이 있으면 적습니다.
요청을 쓰는 시간이 조금 늘어도, 에이전트의 재탐색과 리뷰 왕복이 줄면 전체 시간은 더 짧아집니다.
특히 팀에서 반복되는 변경은 이 형식을 이슈 템플릿으로 만들면 품질 기준을 공유하기 쉽습니다.
✓ 목표가 사용자나 시스템의 관찰 가능한 변화로 적혀 있습니다.
✓ 수정 가능 경로와 보존해야 할 계약이 구분되어 있습니다.
✓ 완료 조건에 테스트 또는 검증 명령이 포함되어 있습니다.
✓ 추가 판단이 필요한 지점은 질문 경계로 분리했습니다.
✓ 작업 범위보다 큰 리팩터링은 별도 계약으로 나눴습니다.