Skip to content

거절 이유와 반복 사실을 planning context에 넣기 (ADR-0064) - #117

Merged
SonAIengine merged 1 commit into
mainfrom
feat/planning-feedback
Oct 26, 2026
Merged

SonAIengine merged 1 commit into
mainfrom
feat/planning-feedback

Conversation

@SonAIengine

Copy link
Copy Markdown
Contributor

변경

  • 바로 앞 model call이 거절되면 다음 planning context에 previousResponseRejection(reason, Core 거절 code, 고정 문장)을 넣는다. journal Rejected settlement에 선택 필드 proposal 추가(없으면 직렬화 안 함, 기존 journal 호환).
  • 끝난 Step이 앞서 끝난 Step과 capability·인자가 같으면 repeatsStep·repeatMeaning을 붙인다.
  • read-only capability를 방금 끝난 Step과 같은 인자로 다시 제안하면 proposal_rejected.repeated_finished_action으로 거절한다. 쓰기·실행은 거절하지 않는다.

측정

deepseek flash, 작업당 2회. 이 변경으로 인한 회귀는 없다. 가장 긴 루프인 bash 반복은 아직 막지 못한다. 상세는 docs/adr/0064-planning-feedback.md 참고.

검증

  • cargo test --workspace: 739개 통과
  • clippy -D warnings 통과, fmt 통과

🤖 Generated with Claude Code

- 바로 앞 model call이 거절되면 다음 context에 previousResponseRejection(reason,
  Core 거절 code, 고정 문장)을 넣는다. journal의 Rejected settlement에 선택 필드
  proposal을 붙여 재시작 뒤에도 같은 context를 만든다.
- 끝난 Step이 앞서 끝난 Step과 capability·인자가 같으면 repeatsStep·repeatMeaning을 붙인다.
- read-only capability를 방금 끝난 Step과 같은 인자로 다시 제안하면
  proposal_rejected.repeated_finished_action으로 거절한다. 쓰기·실행은 거절하지 않는다
  (모든 class에 적용하면 T2 patch 재시도가 회귀했다).
- 측정(deepseek flash, 작업당 2회): T2 1/2(실패는 materialization_failed), T3 2개 남음 /
  invalid response 3연속, T4 16/24 8초 / bash 반복 96 turn, T1 통과. 이 변경으로 인한 회귀는 없고,
  가장 긴 루프인 프로세스 실행 반복은 아직 막지 못한다.
- 테스트 739개 통과, clippy 경고 0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@SonAIengine
SonAIengine merged commit f092e38 into main Oct 26, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant