nightshift
요약
Nightshift는 AI 에이전트에게 장기간의 코딩 작업을 부여하고, 그 과정을 체계적으로 관리하는 도구입니다. 작업 목록 가져오기, 근무 시간 할당, 미완성 작업 보관 등 지속 가능한 개발 환경을 제공합니다. 특히, 항목별 토큰 사용량과 시간을 기록한 '영수증' 기능을 통해 투명성을 높이고, 실패 시 세션 복구가 가능하여 신뢰도를 크게 향상시킵니다.
핵심 포인트
- AI 에이전트에게 장기 코딩 작업을 부여하고 관리하는 도구입니다.
- 작업 목록 가져오기 및 근무 시간 할당 기능이 제공됩니다.
- 항목별 토큰 사용량과 시간을 기록한 '영수증'으로 투명성을 확보합니다.
- 미완성 작업 보관(퇴근 게이트) 및 세션 복구 기능을 지원합니다.
<img src="https://raw.githubusercontent.com/orwa-mahmoud/nightshift/HEAD/plugins/nightshift/assets/nightshift-logo.png" alt="" width="56" align="absmiddle"> nightshift
에이전트에게 근무를 부여하세요. 검토할 수 있도록 업무로 돌아오세요.
</div>Nightshift는 Claude Code, OpenAI Codex, 그리고 Cursor에 장기간의 코딩 실행을 위한 지속 가능한 근무 계약을 제공합니다. 작업 목록을 가져오거나, 준비된 근무를 선택하거나, 에이전트에게 목표와 근무 시간을 부여할 수 있습니다. 퇴근 게이트는 미완성 작업을 보관하고, 진행 상황은 디스크에 저장되며, 감시자는 실패한 세션을 복구할 수 있습니다. 사용 가능한 경우 결과, 항목별 토큰 사용량 및 시간을 검토한 후, 증거가 온전하게 유지된 채로 근무를 아카이브합니다.
<div align="center">MIT 라이선스 · macOS, Linux, Windows · 별도의 서비스나 API 키 불필요
설치 · 첫 번째 근무 · 실제 실행 ·
존재 이유 · 문서화 ·
웹사이트
| 원하는 것 | Nightshift가 제공하는 것 |
|---|---|
| 이미 계획한 작업을 완료 | 영구적인 체크리스트, 항목별 검증, 그리고 성급한 퇴근을 거부하는 게이트. |
| ... | |
| 근무 선택 · 영수증 및 토큰 사용량 · | |
| 아카이브 및 계속하기 |
네이트시프트(Nightshift)는 검토 가능한 커밋 9개를 남겼습니다. 나중에 진행된 45시간 계약은 호스트 인계 과정을 거쳐 인간이 검토한 67개 커밋의 풀 리퀘스트가 되었습니다. 이들은 벤치마크가 아닌 문서화된 실행 사례입니다.
Nightshift란?
처음에는 요청된 변경 사항 8개와 네 개의 어려운 작업에 '집중 세션'이 필요하다는 화면으로 시작되었습니다. 에이전트는 쉬운 작업을 완료하고 나머지는 나중에 처리하도록 남겨두었습니다.
Nightshift는 시도되는 모든 중단 지점에서 남아있는 작업을 명시적으로 만듭니다. 이 목록은 컨텍스트 압축을 견디며, 결정 사항들은 기본값과 함께 주차장에 보관되고, 감시자가 실패한 세션을 복구할 수 있습니다. 최종 완료된 항목이 좋은지 여부는 여전히 검사와 사용자의 검토에 달려있습니다.
스토리 읽기 및 원본 스크린샷 보기 →
설치
Codex 및 ChatGPT
공식 OpenAI 플러그인 디렉터리에서 Nightshift를 설치하세요.
로컬 Codex 개발의 경우, 마켓플레이스에서 동일한 패키지를 설치합니다:
codex plugin marketplace add orwa-mahmoud/nightshift
codex plugin add nightshift@nightshift
Nightshift가 변경할 프로젝트를 Codex에서 열거나, Codex를 해당 GitHub 리포지토리에 연결하세요. Git 리포지토리 또는 영구적인 로컬 폴더가 작동합니다. 일회용 ChatGPT 스크래치 대화로는 프로젝트 변경 사항을 보존할 수 없으므로, 설정은 실행 상태를 작성하기 전에 사용자를 Codex로 리디렉션합니다.
Claude Code
Claude Code 내부에서 실행하세요:
/plugin marketplace add orwa-mahmoud/nightshift
/plugin install nightshift
Cursor
Open Customize → Add → From GitHub Repository를 누르고 https://github.com/orwa-mahmoud/nightshift를 붙여넣은 다음, 스코프(scope)를 선택하고 Import를 선택합니다. 그런 다음 가져온 마켓플레이스에서 Nightshift를 선택하여 설치합니다.
Cursor Directory listing는 발견용이며, 설치는 Cursor 내부에서 이루어집니다. 작업을 시작하기 전에 호스트별 복구 및 CLI 제한 사항을 읽어보세요.
플랫폼(Platforms)
macOS와 Linux는 번들된 Bash 런타임을 사용합니다. 네이티브 Windows는 번들된 PowerShell을 사용하며, Git Bash나 WSL은 필요하지 않습니다. WSL의 경우, 호스트, 플러그인, 리포지토리, watchman을 하나의 Linux 배포판에 유지하세요. 플랫폼 세부 정보는 네이티브 Windows와 원격 환경(Remote environments)를 참조하세요.
<a id="run-a-first-shift"></a>
첫 번째 작업(Your first shift)
신뢰하는 프로젝트에서 작은 작업부터 시작하세요. 처음 실행할 때는 자리를 지키고, 장시간 동안 혼자 두기 전에 첫 밤 안전 체크리스트를 사용하세요.
| 액션(Action) | Codex: ask Nightshift | Claude Code |
|---|---|---|
| 설정(Set up) | “이 프로젝트에 Nightshift를 설정해 줘.” | /nightshift:setup |
| ... |
- 설정. 제안된 검사 및 권한을 검토하세요. 설정을 할 때 적용하기 전에 질문합니다.
.nightshift/punch-list.md의## Items아래에 항목 하나를 작성하세요. 테스트 러너가 이미 있는 리포지토리라면, 작은 첫 번째 작업은 다음과 같을 수 있습니다:
- [ ] **1. 테스트 실행 방법을 문서화하기.**
- 이 리포지토리에 구성된 테스트 명령어를 찾습니다.
- 이를 README에 전제 조건과 실행할 디렉토리와 함께 추가합니다.
...
프로젝트에 중요한 결과물을 사용하세요. 제목은 결과를 명시하고, 글머리 기호는 작업을 묶으며, Verify는 확인 방법을 설명하고, Commit은 로컬 변경 사항의 이름을 지정합니다. 더 많은 예시는 예제 펀치 리스트에서 확인할 수 있습니다.
3. Start. 작업이 대기 중이면, Start는 워크스페이스와 권한을 확인한 다음, 시프트를 활성화하고 다른 질문 없이 목록 작업을 수행합니다. 거부하면, 수정할 부분을 명시합니다. 빈 목록의 경우, 조용히 새로운 것을 시작하는 대신 단계별 작업을 제공합니다.
4. Review. 변경 사항, 실행된 검사, 그리고 각 항목의 영수증을 검사합니다. 결정했을 때만 푸시합니다. 진행 상황이 잘못되었다고 보이면, Doctor는 워크스페이스 상태를 변경하지 않고 보고하며, 문제 해결을 따릅니다.
**펀치 리스트(punch list)**에는 작업 내용이 담겨 있습니다. **게이트(Gates)**는 사용자가 선택한 검증 주기(verification cadence)로 실행되는 프로젝트 검사입니다. **주차장(parking lot)**은 결정 및 기본값을 기록하며, **시프트 로그(shift log)**는 진행 상황과 문제를 기록하고, 어휘집은 모든 작업 중인 파일의 이름을 지정합니다. 체크 표시는 에이전트가 완료했다고 주장하는 것이지, 독립적인 품질 증명은 아닙니다.
Git을 사용하지 않는 영구 폴더도 작동합니다: 아티팩트 모드(artifact mode)는 .nightshift/receipts/ 아래의 아티팩트 영수증을 통해 항목을 완료합니다. 소스 및 체크포인트 영수증은 로컬에 유지됩니다. 무엇을 검토해야 하는지는 증거 및 영수증를 참조하세요.
아침
아침 영수증으로 시작합니다: 시프트가 어떻게 끝났는지, 어떤 검증이 실행되었는지, 무엇이 사용 불가능하거나 비활성화되었는지, 그리고 무엇에 주의가 필요한지입니다. 그런 다음 이 순서로 읽으세요:
- 레시피 인덱스(The receipts index) —
.nightshift/receipts/README.md파일에는 항목별 상태, 토큰 수, 시간 등이 나열되어 있어 밤의 형태가 하나의 표로 구성됩니다. - 개별 항목의 레시피(Any item's receipt) —
.nightshift/receipts/<NN>-<slug>-<id>.md파일은 해당 항목의 기록을 담고 있습니다. 무엇이 전달되었는지, 무엇이 시도되고 거부되었는지, 어떻게 검증되었는지, 그리고 결과물이 어디에 저장되었는지를 보여줍니다. 작업하는 동안 업데이트되므로, 완료되기 전에도 장기 실행 중인 항목을 읽어볼 수 있습니다. - 차이점 또는 출력 파일(The diff or output files) — 사용자가 승인하거나 수정하거나 거부할 작업물입니다.
- 주차장 및 문제 기록(The parking lot and the snag log) —
.nightshift/inbox/폴더에 위치하며, 기본적으로 '승인' 또는 '반전'으로 설정되며, 처리 방안이 확정되지 않은 발견 사항들이 모여 있습니다.
항목별 토큰 사용량 및 시간
실행 시(runtime)는 각 항목의 레시피에 틱(tick)마다 '토큰 테이블(Tokens table)'과 '시간 테이블(Time table)'을 추가하고, 인덱스에도 해당 수치를 반복합니다. 입력(Input), 출력(output), 캐시(cache), 추론(reasoning)은 호스트의 계산 규칙을 유지하며, 누락된 측정값은 명확하게 표시됩니다. 진행 상황 업데이트는 시간, 토큰, 또는 완료 여부 중 선택할 수 있습니다. 이들은 기록되는 내용을 제어할 뿐, 지출 한도를 의미하지는 않습니다. 레시피 및 토큰 사용량에서 측정값과 제한 사항을 설명하며, 예시 레시피에서는 이를 구체적인 맥락으로 보여줍니다.
근무 기록 보관 및 다음 단계 유지
Nightshift에게 완료된 작업물을 아카이브(archive)하도록 요청할 수 있습니다 (Claude Code의 /nightshift:archive). 완료된 항목과 처리된 기록은 날짜별 히스토리로 이동하며, 진행 중인 작업물, 답변되지 않은 결정 사항, 그리고 체크리스트 계약(punch-list contract)은 활성 상태를 유지합니다. 보관된 레시피는 증거 자료와 연결되는 작업 링크를 유지하며, 히스토리 인덱스는 이전 근무 기록을 쉽게 다시 검토할 수 있게 합니다. 만약 이 부분까지 처리되기를 원한다면 퇴근 시 자동 파일링(automatic filing) 기능을 활성화할 수 있습니다. 오래된 히스토리를 정리하는 것은 별도의 명시적인 보존 선택 사항입니다.
아카이브 및 계속 진행에서는 무엇이 파일링되고 다음 근무 기록에서 무엇을 상속받는지 설명합니다.
실제 작업(real runs) 라이브러리는 검토 과정을 통해 실제 근무 교대(shifts)를 추적하며, 호스트 인계(host handoff)를 거쳐 인간이 검토한 67개 커밋의 풀 리퀘스트가 된 45시간 계약을 포함합니다. 또한 무슨 일이 있었는지 숨기지 않고 나쁜 밤(bad night)을 보고하는 템플릿도 제공합니다.
두 가지 종류의 교대
- 유한 목록. 항목을 직접 작성하거나 초안 테이블에 준비된 작업을 승인한 다음, 해당 목록의 작업을 시작합니다. 마지막 체크 표시에서 종료되며, 선택적 마감일이 실행을 제한할 수 있습니다.
- 시계가 있는 목표. Hunt는 준비된 카탈로그에서 작업을 구성합니다. 제품 진화(Product evolution)와 커버리지 헌트(coverage hunts)는 퇴근 시간까지 계속됩니다. 결함 헌트(defect hunt)는 완전한 패스에서 새로운 결함이 발견되지 않으면 더 일찍 끝날 수 있습니다. 각 항목은 종료 시점을 선언합니다.
Hunt에게 작업을 자동으로 선택하도록 요청하거나, 직접 카탈로그 항목을 선택할 수 있습니다. 독립적으로 계획을 먼저 검토할지 즉시 시작할지를 선택할 수 있습니다. 예를 들어, Setup 이후에:
이 제품의 온보딩 개선을 위해 Nightshift를 4시간 동안 사용합니다. 프로젝트를 검사하고, 작업을 제안하며, 시작하기 전에 저의 승인을 기다립니다.
Quality는 테스트(tests), 린트(lint), 의존성(dependencies), 문서화(documentation), 접근성(accessibility) 및 기타 적용 가능한 품질 부채에 대해 동일한 선택을 사용합니다. 이름이 지정된 GitHub 이슈는 Import issues로 준비될 수 있으며, 이후 패치 목록(punch list)으로 승격됩니다. Import issues는 아무것도 검색하지 않고 GitHub에 아무것도 쓰지 않습니다. 네 가지 조합과 바로 사용할 수 있는 요청은 Shift modes에서 확인할 수 있습니다.
계약이 있는 준비된 작업
준비된 근무 목록(ready-shift catalog)은 결함 수정, 의존성 업그레이드, 릴리스 준비 상태, 개발자 온보딩, 문서화, 접근성, SEO 감사, 연구 종합과 같은 작업을 다룹니다. 각 항목은 자체적인 발견 방법, 완료 정의(definition of done), 검증 및 종료를 가집니다. Hunt는 호환 가능한 여러 항목을 하나의 예산으로 결합할 수 있습니다. Maintainer night 프리셋은 온보딩, 문서화 편차(documentation drift), CI 경고, 릴리스 준비 상태 순서로 진행됩니다.
Product evolution은 프로젝트와 사용자를 연구하고, 증거를 기록하며, 기회를 평가하고, 퇴근 시간까지 완전한 개선을 구축합니다. 이의 기회 지도는 완료된 작업, 거부된 경로, 정확한 다음 조치 및 세션 전반에 걸쳐 남아 있는 검증 사항을 유지합니다.
Owner walkthrough는 사용자의 목표를 그대로 유지하고 설정한 시간 동안 일관된 단위로 작업을 수행합니다. 이는 Guided 모드에서 선택할 수 있습니다. 이 기능은 목표의 승인 기준이 확인되면 조기에 완료될 수 있으며, Product evolution 및 Coverage hunt는 마감일까지 계속됩니다.
또한 한 모델로 계획하고 다른 모델로 실행할 수도 있습니다: 온-디스크 계약(on-disk contract)과 지속 기록(continuation records)이 작업을 전달합니다. [Cross-host continuity]는 인계와 그 한계를 설명합니다.
나중에 실행하려면, Schedule은 운영 체제 구성 및 설치 명령을 출력하며, 자체적으로 아무것도 등록하지 않습니다. [command reference]에는 실시간 모델 세션이나 남은 할당량이 필요 없는 터미널 경로가 포함되어 있습니다.
건드리기 전에
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기