세션 진입 문서가 없어 41.6k 라인 · 70모듈 구조를 매번 재발견하고 있었다. - CLAUDE.md: 진입점 + 이 프로젝트에만 해당하는 규칙(폐쇄망 의존성 금지, app-*.js 로드 순서 계약, SCORER_VERSION 갱신 의무, 직렬화 라운드트립 불변식, LLM 은 실모델로 프로브, cp949 비ASCII 출력 주의) - docs/PROJECT_MAP.md: 파일·라우트·스키마 위치, app-*.js 로드 순서, 알려진 부채 - README: verify 명령, app-*.js 구조, 인증 스로틀 동작 설명 7/11 리메디에이션 체크리스트를 코드와 대조해 갱신했다. 미체크 항목 중 6건은 이미 수정돼 있었고(naver 멀티페이지 쿼터, #10 Origin/Referer CSRF, env_file BOM, daily-limit fail-open, __main__ 경로 앵커링, 그리고 Batch 8 전체가 Batch 6 과 중복) 각 줄에 확인 근거를 남겼다. 남은 미체크는 전부 근거가 기재된 명시적 연기다.
1.9 KiB
1.9 KiB
POSA Copyrighter
이미지 저작권 위험 자동 분석 + 운영자 판정 콘솔. 폐쇄망(air-gapped) 납품 대상.
먼저 읽기
docs/PROJECT_MAP.md (구조·라우트·스키마 위치) → docs/INDEX.md (작업 이력).
전체 소스 재스캔 금지 — MAP 에서 위치를 찾고 필요한 부분만 연다.
검증
.\verify.ps1 # ruff + pytest. 커밋 전 게이트, CI 도 이 명령 하나
모든 패치를 적용한 뒤 마지막에 1회만 실행한다.
이 프로젝트의 규칙
- 폐쇄망 우선: 새 런타임 의존성 추가는 기본적으로 금지. 필요하면 오프라인 휠 반입 절차
(
docs/operations/offline-install.md)까지 함께 처리한다. CDN·원격 fetch·자동업데이트 금지. app-*.js로드 순서는 계약: 클래식 스크립트 15개가 전역 스코프를 공유한다. 추가·제거· 재배치 시index.html과test_static_workbench.py의APP_SCRIPT_NAMES를 함께 고친다.- 점수를 바꾸면
SCORER_VERSION을 올린다 (analysis/risk_scoring.py). 이 스탬프가 가중치 변경과 스코어링 버그를 사후 구분하는 유일한 근거다. - 직렬화 라운드트립은 원 점수를 재현해야 한다 (
store_serialization.py). 과거에result_url→url별칭이 리스코어 시 0점을 45점으로 바꾼 사고가 있었다. - LLM 은 요약기가 아니라 증거 판독기다. 인용 없는 claim 은 폐기한다. 프롬프트나 모델을 바꾸면 가짜 transport 가 아니라 실모델로 프로브한다 — 형식 예시 반향 결함은 실모델에서만 드러났다.
- 비ASCII 출력 주의: 콘솔이 cp949 라 em-dash 등이
UnicodeEncodeError로 프로세스를 죽인 이력이 있다. 스크립트 stdout 에 넣지 말 것.
커밋
의미 있는 묶음으로 1커밋 → docs/INDEX.md 에 결과 기록. 원격은 Forgejo(tea CLI, gh 아님).