refactor: 전체 프롬프트 점검 및 수정

- reviewer.md: 에이전트 모드에 맞게 전면 개편
  - 실제 파일 기반 리뷰로 변경
  - 명확한 통과/반려 기준 (critical만 반려, 스타일은 통과)
  - '의심이 되면 통과시키세요' 원칙
- coder.md: 완성도 요구사항 추가
  - 빈 폴더(새 프로젝트) 대응 안내
  - TODO/뼈대 금지 — 완성된 코드 요구
  - 파일 간 참조 확인 지시
- summarizer.md: 입력 설명을 에이전트 모드에 맞게 수정
- router.md: 삭제 (unified.md가 대체)
This commit is contained in:
2026-03-06 22:51:19 +09:00
parent 3d2af29a0a
commit 69e3a051f7
6 changed files with 100 additions and 93 deletions

View File

@@ -352,12 +352,43 @@ async def _handle_task(message: discord.Message, text: str, ws):
)
return
# 2. Code + Review (재시도 루프)
# 2. Code + Review (실패 시 재계획 루프)
review = None
code_outputs = []
for attempt in range(1 + MAX_REVIEW_RETRIES):
attempt_label = f" (재시도 {attempt})" if attempt > 0 else ""
# 재시도 시: 리뷰 피드백으로 재계획
if attempt > 0:
feedback = review.get("summary", str(review))
await message.channel.send(
embed=discord.Embed(
title=f"🔄 재계획 {attempt}/{MAX_REVIEW_RETRIES}",
description="리뷰 피드백을 바탕으로 다시 계획합니다.",
color=0xF39C12,
)
)
replan_request = (
f"## 원래 요청\n{text}\n\n"
f"## 이전 리뷰 피드백 (반드시 반영)\n{feedback}\n\n"
f"이전 시도가 실패했습니다. 피드백을 분석하고 태스크를 재설계하세요."
)
plan = await pipeline.plan(replan_request)
tasks = plan.get("tasks", [])
if tasks:
task_list = "\n".join(
f"{t.get('title', '?')}" for t in tasks[:10]
)
await message.channel.send(
embed=discord.Embed(
title=f"📝 재계획 결과",
description=f"태스크 {len(tasks)}",
color=0x2ECC71,
).add_field(name="태스크", value=task_list[:1000], inline=False)
)
# 코딩 진행 표시
code_embed = discord.Embed(
title=f"⚙️ 코딩 중...{attempt_label} ({len(tasks)}개 에이전트)",
@@ -395,21 +426,6 @@ async def _handle_task(message: discord.Message, text: str, ws):
if passed:
break
elif attempt < MAX_REVIEW_RETRIES:
# 재시도 안내
await message.channel.send(
embed=discord.Embed(
title=f"🔄 재시도 {attempt+1}/{MAX_REVIEW_RETRIES}",
description="리뷰 피드백을 반영하여 다시 코딩합니다.",
color=0xF39C12,
)
)
feedback = review.get("summary", str(review))
for task in tasks:
task["review_feedback"] = (
f"이전 시도에서 다음 리뷰 피드백을 받았습니다. "
f"반드시 수정하세요:\n{feedback}"
)
# 3. 총평
summary = await pipeline.summarize(text, plan, code_outputs, review)