이 프로젝트는 토론 테이블 구성, 타이머 실행, 투표를 제공하는 웹 애플리케이션임. 이 문서는 코드 작성과 리뷰에서 지켜야 할 최상위 원칙을 소유함. 문서 지도는 이 원칙을 구현하는 아키텍처와 컨벤션 문서를 연결함.
화면 조립, 공용 UI, 상태 관리, 외부 통신, 데이터 소스, 순수 계산의 책임을 분리함. 기능 전용 코드는 해당 기능 가까이에 두고, 여러 기능이 공유하는 계약과 구현은 공용 위치에 둠.
새 코드와 실질적으로 수정한 코드는 저장소의 확정 컨벤션을 준수함. 기존 코드의 불일치가 새 규칙을 약화하는 근거가 되지 않음. 컨벤션은 헌법 원칙을 완화하거나 변경할 수 없음.
기능 구현은 실패하는 테스트를 먼저 확인하는 TDD를 따름.
제품 UI, 접근성 문구, 사용자에게 표시하는 오류 문구는 번역 체계에서 관리함.
- 이 문서와 하위 문서가 직접 충돌하면 이 문서를 우선함.
- 문서 지도의 요약과 상세 계약이 다르거나 상세 문서끼리 충돌하면 문서 오류로 보고하고 해당 문서를 수정함. 요약만을 근거로 상세 계약을 재해석하지 않음.
- 요청이 이 문서의 원칙을 약화하거나 책임 경계를 불명확하게 만들면 코드 변경 전에 팀 논의를 거침.
- 제품 동작이나 아키텍처 결정이 불명확하면 임의로 계약을 만들지 않고 팀과 논의함.
이 헌법의 원칙을 변경하려면 팀 합의와 관련 문서 갱신이 필요함. 구현 경로, 라이브러리 버전, 명명·테스트 절차의 변경은 각 상세 문서에서 관리하되 헌법의 의무를 약화할 수 없음. 헌법에서 상세 문서로 규칙을 옮길 때 적용 의미가 달라진다면 원칙 변경으로 취급함.