nhl-backend → yuon-backend 이관 핸드오프
Summary
nhl-backend 코드 작업은 지금까지 DaVinciCircle/nhl-backend에서 진행됐지만, 다음 작업부터는 yuon-ai/yuon-backend로 이관해야 한다. 현재 yuon-ai/yuon-backend는 empty repo이고, yuon-ai/nhl-backend-archive는 deprecated archive라 다음 작업 대상이 아니다.
이 문서는 Slack 스레드에서 재개되는 Jarvis/Wansu/다른 페르소나가 Codex 대화 맥락 없이도 바로 상황을 복원할 수 있도록 만든 중립 저장소 원본이다.
2026-06-09 랩업 기준으로 DaVinciCircle 쪽 DAV 기능 이슈는 전부 완료 확인되었고, 이 Codex 대화는 종료 가능하다. 이후 실작업 흐름은 Claude Code 쪽 yuon-ai/yuon-backend 이관으로 넘어갔다.
Source Thread
- Slack: #pantheon-ops thread
- 핵심 사용자 요청: "계속 진행하고 싶어요. 이 스레드 읽고 재개해주세요. 안전하게 하나씩 작업 고르고 머지되면 다음 작업 고르시죠"
- 이후 정정:
DaVinciCircle이 아니라yuon-ai쪽으로 옮겨서 작업해야 함.
Verified State
GitHub
| 항목 | 상태 |
|---|---|
| 현재 최신 코드 | DaVinciCircle/nhl-backend main |
| 현재 HEAD | 98002a0 feat: add notification, progress, and review APIs (#21) |
| 로컬 경로 | /Users/hangman/Workspace/davinci-circle/nhl-backend |
| 로컬 상태 | main...origin/main, clean |
yuon-ai/yuon-backend |
존재함, private, empty repo, 사용자 권한 ADMIN |
yuon-ai/nhl-backend |
존재하지 않음 |
yuon-ai/nhl-backend-archive |
존재함, description nahonlep backend archived (deprecated), 기본 브랜치가 DAV-27 시점이라 작업 대상 아님 |
최근 완료 PR:
| PR | 티켓 | 상태 |
|---|---|---|
#16 |
DAV-30 profile agreement API | merged |
#17 |
DAV-31 daily checkin | merged |
#18 |
DAV-38 quest reward logic | merged |
#19 |
DAV-40 badges + acknowledge API | merged |
#20 |
DAV-39 reward summary APIs | merged |
#21 |
DAV-33~37 notification, progress, review APIs | merged |
2026-06-09 대화 랩업 확인:
- DaVinciCircle 쪽 DAV 기능 이슈는 모두 완료된 것으로 확인했다.
nhl-backend의 마지막 DaVinciCircle 기준 main은98002a0.- 이 Codex 대화는 문서화 완료 후 종료해도 안전하다.
- 이어지는 작업은 Claude Code 쪽에서
yuon-ai/yuon-backend이관으로 진행 중이다.
Linear / MCP
현재 Codex 앱 세션의 번들 Linear connector는 Hangman 팀만 보인다. Davinci/DAV Linear는 보이지 않는다.
로컬 Codex 설정에는 linear-davinci 서버가 등록되어 있다:
[mcp_servers.linear-davinci]
url = "https://mcp.linear.app/mcp"
2026-06-08 확인 시 별도 codex exec에서 linear-davinci 쪽 invalid_token / Auth required 로그가 났고, DAV 팀 조회에 실패했다.
2026-06-09 재확인 결과:
codex mcp login linear-davinci로 OAuth 재인증 완료.- read-only
codex exec에서linear-davinci list_teams성공. linear-davinci기준 팀명은Davincicircle.DAV-39:reward: 보상 현황 조회, PR #20 merge SHA5b1c387d3f07f016acc2ecb9d076e39a01261c9d, LinearDone. PR 링크/merge SHA 코멘트가 이미 존재해 추가 변경 없음.DAV-33~DAV-37: PR #21 merge SHA98002a0bd620d8d173709ac9a4b8590a43fe53ec, LinearBacklog에서Done으로 전환. 각 티켓에 PR 링크/merge SHA 코멘트 추가.- 현재 Codex 앱 세션의 번들 Linear connector는 여전히
Hangman만 보이므로, DAV 작업은linear-davinci를 명시하거나 새 세션/CLI 검증 후 진행한다.
Current Handoff State
0. Codex 대화 랩업
2026-06-09 랩업 기준:
- DAV-33~39 구현과 Linear 정리는 완료됐다.
- DaVinciCircle 쪽 DAV 기능 이슈는 전부 완료 확인됐다.
hangman-docs의 이 문서가 Codex/Claude/Slack 페르소나가 함께 참조할 중립 원본이다.- 이 Codex 대화는 종료 가능하며, 새 작업 지휘는 Claude Code 쪽
yuon-ai/yuon-backend이관 흐름을 따른다.
Next Work
1. Repo 이관
최종 대상은 yuon-ai/yuon-backend다. 2026-06-09 랩업 시점에는 Claude Code 쪽에서 이관 작업을 진행 중인 것으로 사용자 확인이 있었다.
권장 절차:
- 현재
DaVinciCircle/nhl-backendmain이98002a0인지 확인한다. - Claude Code 쪽 이관 작업이 이미 진행 중이면 그 상태를 먼저 읽고 중복 push/중복 PR을 피한다.
yuon-ai/yuon-backend가 여전히 empty인지 확인한다.- 새 local checkout 경로를 만든다. 예:
/Users/hangman/Workspace/yuon-ai/yuon-backend. - 최초 이관 push는 사용자 확인 후 진행한다.
- 이관 뒤에는
yuon-ai/yuon-backend기준으로만 새 feature branch/PR을 만든다.
주의:
yuon-ai/nhl-backend-archive에 push하지 않는다.- 이관 후 공용
main직접 push 금지. 티켓 작업은 브랜치 → PR → review/auto-ship 순서. - DaVinciCircle remote를 삭제/변경하기 전에는 사용자 확인을 받는다.
2. Linear 검증과 티켓 정리
다음 세션 첫 작업:
linear-davinci list_teams에서Davincicircle팀이 보이는지 확인한다.- 실패 시
codex mcp login linear-davinci또는 해당 런타임의 Davinci Linear OAuth를 다시 완료한다. - 기본 Linear connector가 아니라 반드시
linear-davinci를 명시한다. - DAV-33~DAV-39는 2026-06-09 기준
Done확인/정리 완료. 다시 구현하지 않는다. - DAV-30, DAV-31, DAV-38, DAV-40은 GitHub PR merge가 확인되어 있으나, 다음 세션에서 Linear 상태까지 필요하면 단건 확인한다.
- migration 관련 티켓은 기존 사용자 지시대로 제외한다.
현재 추정되는 다음 후보:
- 이 문서 범위에서 DaVinciCircle
nhl-backend의 DAV-33~40 기능 구현 후보는 완료됨. - 다음 큰 작업은 코드 구현보다
yuon-ai/yuon-backend이관이다. - 제외/주의: DAV-28, DAV-41, DAV-42는 migration 관련. DAV-32는 Duplicate로 기록됨.
Linear 접근이 안 되면 상태 변경이나 댓글을 만들지 말고, GitHub/repo 기준으로만 현황을 보고한다.
3. DAV-33~39 완료 기록
2026-06-09에 DaVinciCircle/nhl-backend에서 DAV-39와 DAV-33~37 작업이 추가로 완료됐다. 단, 다음 신규 작업은 repo 이관 후 yuon-ai/yuon-backend 기준으로 진행한다.
DAV-39:
- PR: https://github.com/DaVinciCircle/nhl-backend/pull/20
- Merge commit:
5b1c387d3f07f016acc2ecb9d076e39a01261c9d - 구현 API:
GET /users/{user_id}/reward-summaryGET /users/{user_id}/point-ledger- Linear:
Done, PR 링크/merge SHA 코멘트 존재.
DAV-33~37:
- PR: https://github.com/DaVinciCircle/nhl-backend/pull/21
- Merge commit:
98002a0bd620d8d173709ac9a4b8590a43fe53ec - 구현 범위:
- DAV-33: push token, notification dispatch, notification preferences
- DAV-34: progress summary/stats/skills
- DAV-35: checkin history and date detail
- DAV-36: weekly review trigger/list/detail/confirm
- DAV-37: daily logs
- Auto-ship: 3라운드. notification/review 도메인의 SELECT-then-INSERT race를 PostgreSQL upsert 패턴으로 수정한 뒤 merge.
- 검증:
uv run pytest -q tests/domain/review/ tests/domain/notifications/ tests/domain/progress/→ 12 passed. - Linear: DAV-33~37 모두
Backlog에서Done으로 전환, PR 링크/merge SHA 코멘트 추가.
Operating Rules for Agents
- Slack에서 이 작업을 재개하면 먼저 이 문서를 읽고, 그 다음 source thread를 읽는다.
- DAV 작업에서 기본
Linear라고만 부르면 Hangman workspace로 붙을 수 있다. 반드시linear-davinci를 확인한다. - repo 이름이 헷갈리면
yuon-ai/yuon-backend가 새 대상이고,yuon-ai/nhl-backend-archive는 아니다. - 공용 브랜치에 마구 push하지 않는다. 사용자 지시: "안전하게 하나씩 작업 고르고 머지되면 다음 작업 고르기".
- PR 생성/merge/Linear 상태 변경/Slack 댓글 작성은 외부 상태 변경이다. 현재 권한과 대상 repo/team을 확인한 뒤 수행한다.
Resume Prompt
nhl-backend → yuon-backend 이관 작업을 재개합니다.
먼저 현재 로컬 문서 /Users/hangman/Workspace/hangman-docs-worktrees/docs-nhl-yuon-handoff/reports/2026-06-08-nhl-backend-yuon-migration-handoff.md 를 읽으세요.
PR merge 후 canonical 경로는 /Users/hangman/Workspace/hangman-docs/reports/2026-06-08-nhl-backend-yuon-migration-handoff.md 입니다.
그 다음
Slack thread https://hangmansplayground.slack.com/archives/C0B6H0Y7GKC/p1780919350998699?thread_ts=1780156222.978519&cid=C0B6H0Y7GKC 를 확인하세요.
목표:
1. 이 Codex 대화는 랩업 완료로 간주
2. DaVinciCircle/nhl-backend main 98002a0는 DAV 기능 이슈 완료 상태로 간주
3. Claude Code 쪽 yuon-ai/yuon-backend 이관 진행 상태를 먼저 읽고 중복 작업을 피하기
4. 이관 완료 후 yuon-ai/yuon-backend 기준으로 다음 안전한 티켓을 하나만 선택해 브랜치/PR 단위로 진행
금지:
- yuon-ai/nhl-backend-archive에 push 금지
- Hangman Linear에 DAV 티켓 업데이트 금지
- 공용 main 직접 작업 금지
See Also
**See also**: source: [Slack source thread](https://hangmansplayground.slack.com/archives/C0B6H0Y7GKC/p1780919350998699?thread_ts=1780156222.978519&cid=C0B6H0Y7GKC) · source: [DaVinciCircle/nhl-backend](https://github.com/DaVinciCircle/nhl-backend) · related: [PR #20 DAV-39](https://github.com/DaVinciCircle/nhl-backend/pull/20) · related: [PR #21 DAV-33~37](https://github.com/DaVinciCircle/nhl-backend/pull/21) · related: [/Users/hangman/Workspace/davinci-circle/nhl-backend/.claude/reports/handoff/2026-06-08.md](/Users/hangman/Workspace/davinci-circle/nhl-backend/.claude/reports/handoff/2026-06-08.md)