472.5 KB · 수정 2026-10-25 12:01
목차

pfs 작업 규칙 (rules)

이 파일 = 규칙(하면 되는/안 되는 것). 상태·진행·이력은 handoff.md, 함정은 traps.md, 유사작업 절차는 playbook.md. 새 규칙은 🆕 신규에 1줄 append → 안정화되면 확립 규칙 §로 원문 이관.

📑 인덱스


🆕 신규


§1 UI·표시 규칙 (색상·굵기·폭)

(🆕에서 안정화된 항목을 여기로 이관한다.)

§2 배포 규칙

🆕 신규 26.8.28(목) — PFS-D008: /api/ 는 세션 없으면 401, 예외는 _AGENT_PATHS 뿐

🔴외부 도구(플러그인·워커)를 pfs API 에 붙이려면 반드시 _AGENT_PATHS 에 경로를 등록해야 한다. 안 하면 {"code":"0003","message":"login_required"} 401 을 받는다 — 코드가 배포돼 있어도 문 앞에서 막힌다.

26.8.28 운영배포 3건 (페페 채팅 승인)

26.8.28 운영배포 4건째 — 자재수집 픽 브리지

🆕 신규 26.8.29(토) — pfs.poin.co.kr 은 거래처 존에 세들어 있다

🆕 신규 26.9.3(목) — 자재분류(R/E/S/T) 판정은 「내용」이 아니라 「엑셀 헤더 라벨」을 본다

🆕 업체 전용 페이지(/field/company/<no>)는 고객이 보는 화면이다 (26.9.3)

🆕 devplan pfs.html 의 DONE/PENDING 배열에 작은따옴표를 넣지 마라 (26.9.3)

🆕 pfs 화면의 날짜 표기 = 26.8.29(수) (페페 표준 · 26.9.3 재확인 지시)

전역 원문 = rules/tooling.md 「날짜·시각 표기」(2026-07-27 지시). 여기 다시 적어 두는 이유 = pfs 화면에서 YYYY-MM-DD 로 찍어 놓고 매번 QA 로 되돌아왔기 때문이다(26.9.3 페페 「항상 내가 선호하는 형식이다」).

🆕 모바일 레이아웃 함정 3종 (26.9.3 실측 · 전부 「에러 0인데 안 먹음」)

  1. @media 블록은 <style> 맨 끝에 둔다. 중간에 넣으면 뒤에 오는 데스크톱 규칙이 같은 특이도로 덮는다 — @media 는 특이도를 안 올린다. 26.9.3 검색창 position:static 이 그렇게 통째로 무효였고, 화면은 종전 그대로라 「CSS 를 안 쓴 줄」 알았다.
  2. DataTables .dataTables_filter 는 float:right 다. 이 요소를 다른 자리로 옮기면 float 이 따라간다. 바로 뒤에 플렉스/그리드 컨테이너(= 독립 서식문맥)가 오면 그 컨테이너가 뜬 요소를 피해 폭을 0 으로 줄인다 (실측 #status-tabs w=0 → 탭 글자가 세로로 쌓임). 옮길 땐 float:none 을 같이 건다.
  3. JS 가 body 에 붙이는 요소는 기본 스타일을 미디어쿼리 밖에 둔다. .pfs-nav-backdrop 의 display:none 을 @media(max-width:767px) 안에만 둬서 데스크톱 전 페이지에 빈 블록 div 가 남았다. - 부록 = Bootstrap .row 를 오버레이로 띄우면 -15px 음수마진 때문에 화면 밖으로 삐져나온다 → margin:0 상쇄. - 검사 = C:\dev\pfs\scripts\_ivg_mobile_check.py(iPhone 390×844 23항목) · _sidebar_regress_check.py(사이드바는 전역이라 데스크톱·모바일 3페이지씩 회귀).

🆕 업체 전용 「상세」는 코디 정리본이다 — 문자열 매칭은 폐기 (26.9.3)

🆕 헤드리스 코디에 긴 프롬프트는 stdin 으로 넣는다 (26.9.3 실측)

🆕 git add <디렉터리> 금지 — pfs 작업트리엔 미추적 임시파일이 상시 수백 개 (26.9.3 재발)

🆕 네스팅 저장본 덮어쓰기 소실 = 이력 없음 → nginx 로그 + RDS PITR (26.9.29)