내가 자주 사용하는 루프 엔지니어링 프롬프트
- 작업 계획서를 만든다.
- 작업 계획서를 만들때 작업을 세부 작업으로 쪼개고 체크박스를 추가해둔다.(진행 관리를 위해)
- 예시
### T-M0-03 백엔드 앱 골격 — 설정·로깅·오류·헬스
| 상태 | 규모 | 선행 | 참조 |
|---|---|---|---|
| [대기] | S | T-M0-01 | PRD 6.1·11.1·부록 B·13.2(기동 순서) / CLAUDE.md §1 backend·§5 Python |
**산출물** — `backend/app/main.py`, `core/config.py`, `core/logging.py`, `core/errors.py`, `core/deps.py`(골격), `api/v1/system.py`, `tests/conftest.py`(DB 없는 unit 픽스처)
**작업**
- [ ] `main.py` 앱 팩토리 + `lifespan`. 기동 순서 함수 7단계(Alembic → 시드 → 파티션 보장 → 캐시 복원 → 진행 중 명령 정리 → 인제스트·WS 수락)를 **스텁으로 순서만** 고정, `/readyz`는 완료 전 503
- [ ] `core/config.Settings`(pydantic-settings): PRD 11.1 `.env` 키 전부. `APP_ENV=development`에서만 OpenAPI UI 노출
- [ ] `core/logging`: JSON 구조화, `request_id/tenant_id/site_id/robot_id/bridge_id/command_id` contextvar 자동 부착. `print` 금지 ruff 규칙(T201)
- [ ] `core/errors.AppError(code, http_status, details)` + 부록 B 오류 코드 **전부** 상수화 + 전역 핸들러 → `{"error":{"code","message","details","request_id"}}` 봉투
- [ ] `X-Request-ID` 수신/생성 미들웨어
- [ ] `GET /healthz`(프로세스 생존) / `GET /readyz`(기동 순서 완료 + DB ping — 마이그레이션·파티션 조건은 T-M0-04·T-M2-01에서 추가, 응답에 `checks{}` 항목별 결과) / `GET /version`(빌드 시 주입 `APP_VERSION`·`GIT_SHA` + `protocol` 버전)
- [ ] uvicorn **단일 워커** 기동 스크립트(D-21) + `make dev-backend`(로컬 핫리로드, `:8000`) 구현 — 본 태스크의 확인은 Compose 없이 이 명령으로 수행(T-M0-02가 본 태스크를 선행으로 둠)
**DoD**
- [ ] `pytest backend/tests/unit` 통과(오류 봉투 형식, 로깅 contextvar 부착, `/version` 응답)
- [ ] `APP_ENV=production`에서 `/docs` 404
**확인(사용자 실행)** — 이 시점에는 Compose 스택이 없으므로 `make dev-backend`(터미널 1)로 띄우고 `:8000`을 직접 친다. nginx 경유 확인은 T-M0-02 표에서.
- 그 다음 아래 프롬프트로 작업을 위임
/goal @docs/plan/plan.md 의 "T-M0-03 백엔드 앱 골격" 작업 완료
- 세부 항목은 각각 subagent로 진행하고 메인 오케스트레이터는 잡업 현황을 관리
- 세부 항목 작업을 순서대로 진행할 것
- 세부 항목 작업 완료 후, @docs/plan/plan.md 에 완료 여부를 기록, 커밋 푸시 후 다음 작업 진행
댓글0조회3