OpenCode - Sisyphus (Ultraworker)

                         *or*

Claude Code - /goal Skill *2026.5.12.업데이트*

*codex 의 조건부 loop도 참고하세요!

Claude를 목표를 향해 계속 작동하게 하기 - Claude Code Docs

Claude Code 의 /goal 에이전틱 워크플로우 장점 알아보기

(2) 자율형 Agent Loop 로 이슈 구현하기

공격적 Harness 들을 사용할 때는 작업 범위, 종료 조건, 수반 동작을 명시하여

  1. 예측 가능한 길이로 작업 패턴을 제어하고,
  2. 원하는 결과물을 확실하게 확보하는 것이 중요합니다.

https://github.com/wild-mental/goal-setting-skill

/goal-setting 스킬과 연계한 /goal 프롬프팅

  1. 가장 강력하게 **Hands-off**형 에이전틱 워크플로우를 실행할 수 있는 프롬프트 작성하기!
  1. 사람의 개입이 필요해보이는 내용이 얼마만큼이나 “임의로” 들어가고 있는지를 조건화! (내가 정하지 않았는데, Agent 가 유추하는 양이 얼마만큼인지?)
**/goal-setting**

@docs/PRD_v1.0.md @docs/issues/ISSUE_LIST.md 문서들과,
현재 프로젝트의 GitHub Issue 및 PR 진행상태를 확인하고, 
후속 작업으로 한번에 처리할 수 있는 최대 작업 범위를 목표로 설정해서 다음 에이전틱 루프를 실행하고 싶어. 

goal 에 "조기 종료 조건"으로는 기존 문서에서 명확하게 정해놓지 않은 **핵심 의사결정사항이 3가지 이상 누적되거나, 부수적인 의사결정사항이 10가지 이상 누적**되는 경우로 설정해주고, 이 카운팅은 별도 문서를 체크포인트로 두어서 멀티에이전트 작업에서도 명확하게 확인할 수 있도록 명시해줘.

스크린샷 2026-05-27 오후 9.57.22.png

전체 프롬프트를 한글로 작성해주고, 한줄로 작성하지 말고 적절히 개행해서
다음의 네 개 항목으로 구조화된 /goal 프롬프트를 작성해줘
---
1) 작업 핵심 목표 및 범위
2) 작업 세부 규칙
3) 종료 조건 및 종료 방법
4) 기타 제약조건
**/goal**

## 1) 작업 핵심 목표 및 범위
- lecture-hub 프로젝트의 후속 구현 작업을 자동화 루프로 진행한다.
- 시작 지점: 선행 이슈가 모두 해소된 다음 착수 지점.
- 작업 대상: ISSUE_LIST.md 순서(ISSUE-002~ISSUE-024)의 열린 GitHub 이슈 중 선행 이슈가 해소되어 있고 아직 PR이 없는 것을 차례로 구현.
- 작업 자율성: 사용자의 권한 승인 및 컨펌을 받기 위한 작업 중단 없이, 최대한 모든 권한을 가지고 종료 조건에 도달하거나 모든 구현이 끝날 때까지 작업한다.

## 2) 작업 세부 규칙
- 브랜치 전략: 각 이슈는 프로젝트 TDD 사이클(Red→Green→Refactor→Report→PR)을 따르고, 그 선행 이슈의 기존 feat/* 브랜치 위에 스택형 draft PR로 분기한다.
- 각 이슈별 TDD 작업 순서:
  1) TEST 작성
  2) 코드 구현
  3) TEST 수행
  4) TEST 기준 미달성 항목 개선
  **5) TEST 기준 모두 충족 시 보고서 작성
  6) 변경 내용을 상세 기록한 PR 작성 — 다음 작업 수행
  ~~7) 작업 내용 중 사용자가 직접 확인 및 외부 플랫폼 연동 수행해야 하는 내용이 있다면 "작업 순서 & 상세 작업 방법 가이드"로 작성~~**
- 의사결정 로그:
  **- docs/PRD_v1.0.md 또는 docs/issues/ISSUE_LIST.md에서 기존에 확정되어 있지 않은 모든 추가 의사결정을 docs/loop/DECISION_LOG.md 에 기록한다.
  - 의사결정 각 항목은 CORE(아키텍처·보안·외부의존 선택) 또는 MINOR(네이밍·디렉터리·UI 디테일·로그 포맷)로 분류한다.**
  - grep 가능한 카운터를 각각 별도 줄에 `CORE: N` 과 `MINOR: M` 으로 유지한다.

## 3) 종료 조건 및 종료 방법
- 종료 조건 (아래 중 하나라도 충족되는 순간 루프를 즉시 멈춘다):
  **- CORE 카운터가 3에 도달 → `STOP REASON: CORE_BUDGET`
  - MINOR 카운터가 10에 도달 → `STOP REASON: MINOR_BUDGET`**
  - 선행 이슈가 해소된 열린 이슈가 더 없음 → `STOP REASON: NO_UNBLOCKED_ISSUES`
  - 평가-진행 라운드(turn = /goal 평가자가 진행 상태를 한 번 점검하는 메인 에이전트 응답 사이클)가 누적 40회에 도달 → `STOP REASON: TURN_CAP` (= `or stop after 40 turns`)
- 종료 방법:
  1) docs/loop/DECISION_LOG.md 마지막 줄에 `STOP REASON: <원인 코드>` 한 줄을 덧붙인다.
  2) `pnpm typecheck && pnpm test && pnpm lint && pnpm build` 를 실행해 네 명령 모두 exit 0 인 출력을 대화에 남겨 증명한다.
  3) `cat docs/loop/DECISION_LOG.md` 를 실행해 `CORE: N` · `MINOR: M` 카운터 줄과 `STOP REASON:` 줄이 보이는 출력을 대화에 남긴다.
  4) `gh pr list` 를 실행해 루프가 연 draft PR 목록을 대화에 남긴다.

## 4) 기타 제약조건
- 어떤 PR도 main에 merge하지 않으며, Vercel 자동배포를 유발하지 않는다.
- docs/PRD_v1.0.md, docs/issues/ISSUE_LIST.md, docs/PRD_OPEN_DECISIONS.md 는 수정하지 않는다.
- 활성 이슈의 구현 범위 밖 파일은 수정하지 않는다 (단 docs/loop/DECISION_LOG.md 와 reports/ 는 예외).

⇒ 상기 포맷의 프롬프트를 여러 벤더 에이전틱 플로우에 적용할 수 있습니다.

GPT-5.5 xhigh 로 /ulw-loop 를 사용한 공격적인 Issue 해결 작업 프롬프팅

Goal 프롬프트를 그대로 사용합니다.

**/ulw-loop**

**[goal prompt]**