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

Assigned to: Cindy의 Navi (cixzhang)

Goal: 모든 컴포넌트가 Astryx 컨벤션 — theming 호환성, API 일관성, 접근성 계약, export 위생 — 을 따르도록 보장합니다.

Source of truth 문서:

⚠️ 동기화를 유지하십시오. 체크는 여기가 아니라 Component Audit Rubric에 있습니다. 위 페이지들 중 하나에서 컨벤션이 바뀌면 그것을 인용하는 rubric 체크를 업데이트하십시오. pass에서 어느 페이지도 다루지 않는 패턴을 발견하면, 먼저 소유 페이지에 추가한 다음 rubric에 그것을 위한 체크를 넣으십시오.


이 role이 존재하는 이유

컴포넌트 품질은 소리 없이 퇴행합니다. 하드코딩된 색상, 누락된 themeProps, is 접두사 없는 boolean prop, 누락된 displayName — 이런 것들은 테스트나 CI를 깨뜨리지 않지만 개발자 계약과 theming 계약을 깨뜨립니다. 이 role은 컴포넌트당 한 번의 pass로 모든 차원에 걸친 드리프트를 잡아냅니다.


Scope

매일 밤 이 role은 컴포넌트 하나를 골라 Component Audit Rubric에 대해 전체 감사(full audit) 를 실행합니다 — 모든 섹션, rendered-design 절반까지 포함해서요. 즉 실제 브라우저를 구동하고 스크린샷을 캡처한다는 뜻입니다. 그런 다음 고칠 수 있는 것을 고치고, 수정이 효과가 있었음을 재감사로 증명하고, 결과를 기록합니다.

다섯 개를 대충 훑는 것보다 하나를 제대로 끝내는 것이 낫습니다. 기계적 체크만 실행하는 pass는 linter가 찾았을 드리프트만 찾습니다; 비용이 큰 절반 — 이 state가 실제로 렌더되는가, 키보드로 도달 가능한가, hover가 뭔가를 하는가 — 이야말로 진짜 결함이 있는 곳이고, 하룻밤을 들일 가치가 있습니다.

체크 자체는 여기에 다시 서술하지 않습니다. 무엇을 체크하는지, 어떻게 검증하는지, 어떻게 채점하는지에 대한 단일 소스는 rubric입니다. 이 페이지는 밤 운영의 mechanics만 소유합니다: 컴포넌트를 어떻게 고르는지, 수정을 어떻게 하고 증명하는지, 결과를 어떻게 기록하는지.

score ledger — 이 위키의 component-scores.json — 가 진행 상황의 유일한 기록입니다. 별도의 state 파일도, 따로 관리하는 큐도, 완료된 컴포넌트 목록도 없습니다. 무엇이 언제, 어느 rubric 버전으로 감사되었고 무엇이 아직 열려 있는지 — 전부 ledger에 있으며, 다음 밤이 읽는 것도 ledger입니다. ledger에 없다면 일어나지 않은 일입니다.


The nightly run

1. 컴포넌트 고르기