서비스 레포의 코드 작성·품질 규칙이다. 모든 서비스는 모노레포(백엔드 server/ + 프론트 client/* 또는 web-app/)이고, 백엔드는 Python·FastAPI, 프론트는 React·Vite·TypeScript다. 각 레포의 상세 정본은 그 레포의 AGENTS.md와 sdd/99_toolchain/02_policies/다. 이 문서는 조직 공통 기준과 현재 상태를 정리한다.
snake_case, React 컴포넌트 PascalCase, TS 변수·함수 camelCase.sdd/ 하위에만 둔다(top-level docs/ 금지). do4i·palcar·passv 공통 거버넌스.uv.lock) 를 표준으로 한다.snake_case.[tool.mypy] 설정이 기준). 신규 코드에 적용.pytest-asyncio, asyncio_mode=auto). 위치 server/tests/{unit,integration,e2e}, 규칙 test_*.py / Test* / test_*. API 변경 시 integration 테스트 1개 이상을 동반한다.strict: true는 모든 앱 필수. Node 24.14.1 고정(.nvmrc/.node-version).eslint.config.js). files에 ts,tsx를 포함하고 @typescript-eslint/parser를 쓴다(JS 전용 패턴 금지).tsc를 포함한다(tsc -b && vite build). vite build만 두지 않는다.web-app 선례). E2E는 CI 워크플로로 운영.main 대상)에서 빌드 + 테스트를 돌린다. palcar는 server/** 변경 시 mypy를 강제한다(server-mypy.yml)..github/workflows/다.| 레포 | Python 린트/포맷 | Python 타입 | Python 테스트 | 프론트 린트 | 프론트 테스트 |
|---|---|---|---|---|---|
| passv | 없음 | 없음 | pytest | platform·admin만 ESLint | 없음(E2E는 CI) |
| do4i | 없음 | 없음 | pytest | agents·admin만 ESLint | 없음 |
| palcar | ruff 선언(미사용) | mypy 구성·CI 강제 | pytest(+JUnit) | 없음 | 없음 |
| papersens | 없음 | 없음 | 없음 | 없음 | Vitest(web-app) |
공통: Prettier·pre-commit은 전 레포 부재. 프론트 포매터 없음.
tsc 통합.pyproject.toml 부재(requirements.txt 이원화), web-app/Dockerfile이 없는 pnpm-lock.yaml을 COPY → 빌드 실패 가능. 패키지매니저(pnpm 선언 vs npm 실사용) 정합 필요.위 TODO는 레포별 설정 변경이 필요한 항목이다. 이 문서는 기준과 현황만 정의하고, 실제 설정 변경은 각 레포에서 PR로 진행한다.
온보딩 트랙 4부. 운영 변경과 컨벤션
이전: 관측, 알림, SRE · 다음: 없음(트랙 끝). 시작하기: 신입 온보딩의 "트랙을 마친 뒤"를 본다 · 전체 경로: 시작하기: 신입 온보딩