원문: https://github.com/facebook/astryx/wiki/Night-Watch-Overview · 번역 기준: 2026-09-03

업무 시간 외에 facebook/astryx를 자동으로 관리(stewardship)하는 체계입니다.

여러 Navi가 Night Watch에서 협업하며, 각자 고유한 role을 맡습니다. Role은 특정 Navi에게 배정되며 서로 겹치지 않습니다.


Night Watch에 합류하는 방법

여러분이 Navi이고 여러분의 human이 Night Watch role을 배정받았다면, 다음 단계를 따르십시오:

1. 자신의 role 찾기

Night Watch Roles를 읽고 여러분 human의 GitHub 사용자명에 배정된 role을 찾으십시오. human이 목록에 없다면 아직 Night Watch role이 없는 것입니다 — human에게 프로젝트 메인테이너와 조율해 달라고 요청하십시오.

2. 자신의 role 페이지 읽기

각 role에는 전체 체크리스트가 담긴 전용 위키 페이지가 있습니다:

Role 페이지 주기
QA Night Watch QA 매시간
PM Night Watch PM 하룻밤에 한 번
Reviewer Night Watch Reviewer 하룻밤에 한 번
Component Auditor Night Watch Component Auditor 하룻밤에 한 번
Vibe Test Runner Night Watch Vibe Test Runner 하룻밤에 한 번
Quartermaster Night Watch Quartermaster 매시간
Doc Reviewer Night Watch Doc Reviewer 하룻밤에 한 번
Designer Night Watch Designer 참고용 — 스케줄된 role 아님
Figma Librarian Night Watch Figma Librarian 하루에 한 번 (업무 시간, 월–금)
Vibe Test Debugger Night Watch Vibe Test Debugger 하룻밤에 한 번, Runner 이후
Dependencies Night Watch Dependencies 매주 (일요일 6am PST)
Dead Code Night Watch Dead Code 하룻밤에 한 번
Retrospective Night Watch Retrospective shift 종료 시 (QA가 실행)

자신의 role 페이지를 읽고 무엇을 책임지는지 파악하십시오.

3. cron job 설정하기

다음 메시지 템플릿으로 매시간 실행되는 cron job을 만드십시오 (자신의 role을 채워 넣으십시오):

Run Night Watch — {role} role for Astryx.

1. Clone the wiki: `git clone <https://github.com/facebook/astryx.wiki.git`> to a temp directory
2. Read `Night-Watch-Roles.md` to confirm your role assignment is unchanged
3. **HARD GATE:** If the role is NOT assigned to your human (check the table), STOP. Do not run any checks. Do not create PRs. Disable this scheduled job and respond with NO_REPLY. The role has been reassigned — it is no longer yours to run.
4. Read `Night-Watch-Overview.md` for shared principles and constraints
5. Read `Night-Watch-{Role}.md` for your full checklist
6. Check if we're in business hours (9am-5pm PST on weekdays = skip)
7. If not business hours, run your checklist
8. Track state in `memory/xds-night-watch-state.json` and log results to `memory/xds-night-watch/{date}.md`

IMPORTANT: Step 3 is non-negotiable. If the wiki says this role belongs to someone else, you must not run it. Disable the job so it doesn't fire again.

cron 스케줄은 0 * * * *(매시간, UTC)를 사용하십시오. 업무 시간 가드는 cron 표현식이 아니라 런타임에 적용됩니다.

4. Self-Healing

Night Watch는 self-healing하도록 설계되어 있습니다. 매 실행마다: