# GTSIT 프로젝트 작업 규칙

## 기본 원칙

- 사용자에게 보여주는 설명과 진행 상황은 한국어로 작성한다.
- 작업 시작 시 `docs/README.md`, `docs/architecture.md`, `docs/implementation-todo.md`, `docs/qa-list.md`에서 현재 상태와 다음 단계를 확인한다.
- 코드, 배포, 호스팅, 도메인, DB 설정을 진행하면서 관련 문서를 백그라운드에서 함께 갱신한다.
- 문서 갱신을 별도 후속 작업으로 미루지 않고 해당 변경의 완료 조건에 포함한다.

## 문서별 갱신 기준

- `docs/README.md`: 문서 구성, 현재 목표, 운영 원칙이 바뀔 때 갱신
- `docs/architecture.md`: 페이지 구조, 기술 구성, 데이터 모델, 호스팅 사양, 보안 또는 배포 전략이 바뀔 때 갱신
- `docs/implementation-todo.md`: 작업 시작·완료·차단 상태와 사용자/Codex 담당이 바뀔 때 즉시 갱신
- `docs/qa-list.md`: 기능 추가나 결함 발견 시 검증 항목을 추가하고, 실제 검증을 통과한 항목만 완료 처리

## 상태 기록 규칙

- 실제로 구현하거나 검증한 항목만 `[x]`로 표시한다.
- 진행하지 않은 항목, 사용자 확인이 필요한 항목, 재검증이 필요한 항목은 `[ ]`로 유지한다.
- 외부 설정이 실패하거나 차단되면 원인, 현재 영향, 다음 행동을 관련 문서에 기록한다.
- 중요한 설계 결정과 운영 환경 변경에는 확인 날짜를 기록한다.
- 배포 URL, 환경, 기기 등 QA 재현에 필요한 정보는 `docs/qa-list.md` 실행 기록에 남긴다.
- 작업 종료 전 코드 변경과 문서 상태가 서로 일치하는지 확인한다.

## 보안

- 비밀번호, DB 접속 비밀번호, SSH 개인키, 인증번호, 세션 정보는 문서와 Git에 기록하지 않는다.
- 인증키와 로컬 비밀정보는 `.secrets/`에 보관하고 파일 권한을 제한한다.
- 문서에는 민감정보 자체가 아닌 설정 상태, 확인 결과, 재현 가능한 안전한 절차만 기록한다.
