AI용 분할본 · 지도 7단계(운영·개정 — 필요할 때만) — 어느 단계에서든 막히면 이 페이지를 연다 · 이 페이지 전에 읽을 페이지: PART 0 사용법·AI 시작 지침 · 코드 파일은 여기 없다 — 코드 자리의 줄을 따른다(폴더에 책 파일이 하나도 없는 처음이면 부록 A-2 의 curl 한 줄부터)
핵심 규칙 — AI 는 어느 페이지에서든 이것을 지킨다
node scripts/get-book-code.mjs 가 책 그대로 만든다(첫 실행은 부록 A-2 의 curl 한 줄). AI용 분할본의 코드 자리는 " 경로" 한 줄이다 — 그 파일을 cat 으로 읽는다. 고쳐도 되는 파일은 PART 0 [AI 시작 지침] 5-b 의 목록뿐이다.node scripts/verify-book-code.mjs 를 실행해 "불일치 0개" 출력을 그대로 보인다.__Host-session으로 직접 지었거나 ② 세션 쿠키를 브라우저 JS(document.cookie)로 만든 것 — RIDM Apps 관문은 서버 응답의 Set-Cookie만 받아 줍니다. 앱은 평범한 session으로 서버에서만 굽고 읽습니다(5-1 lib/get-session-user.ts) ③ 관리자가 정지한 회원이면 로그인 자체가 403 "이용이 정지된 계정이에요"lib/client.ts 의 sendJson/postJson)으로 부르면 정상입니다. 새 화면이 <form action="/api/auth/login"> 처럼 폼을 그대로 보내게 만들었다면 postJson 으로 바꿉니다HEAD나 curl 기본 User-Agent로 확인한 것 — 브라우저로 열거나 curl -s -A "Mozilla/5.0" 처럼 브라우저 User-Agent를 붙이면 깨어납니다(8-3). 브라우저인데도 계속 503이면 앱 카드 상태(시작 실패·정지)를 확인next build 타입 에러가 대부분(8-2 표)secrets found in the repository: 배포 기록에 나온 파일·줄을 봅니다. .env.example에 예시 비밀번호가 든 DB 주소를 적은 경우가 대부분 — 값을 비우고 push(8-2 표)/api/health 의 commit 이 옛 커밋이면 새 빌드가 실패했거나 아직 자동 승인 중 — 콘솔 → 내 앱 → 배포 기록에서 그 커밋 줄의 상태·사유를 봅니다(8-2 표)DeleteAccount.tsx): verify-book-code 가 첫 화면이 책의 메모·탈퇴 컴포넌트를 쓰지 않는다고 알려 준 것 — 자작 화면을 지우고 app/page.tsx 에서 @/components/Notes·@/components/DeleteAccount 를 불러 씁니다(6-3, 5-4)verify-book-code 가 파일 속에서 admin+숫자 24자리를 찾은 것 — 그 줄을 지우고 커밋합니다. 이미 push 했다면 make-admin-path 로 새 주소를 만들어 바꿉니다(B-7)/가 응답 안 함, 읽기 전용 파일시스템에 쓰기 시도(/tmp만 가능), 메모리 초과. 로컬에서 docker run --read-only --tmpfs /tmp -p 3000:3000 이미지로 재현DATABASE_URL is not set.env.local에 로컬 Postgres 주소를 안 넣은 것(7-5). RIDM Apps에서는 플랫폼이 자동으로 넣어 주니 직접 넣지 마세요(예약 이름이라 저장도 거부됩니다)lib/schema-extra.ts)의 문장이 틀린 것 — 책 테이블은 남지만 고칠 때까지 DB 를 쓰는 모든 요청이 실패합니다. 테스트 DB 로 npx vitest run tests/db.test.ts 를 돌려 어느 문장인지 찾습니다(부록 E)too many clientslib/db.ts의 Pool max: 2를 늘리지 말고, 새 라우트가 요청마다 새 Pool을 만들고 있지 않은지 확인(쿼리는 전부 lib/db.ts 의 sql() 로)SET default_transaction_read_only = off 를 먼저 실행해야 합니다. 용량이 90% 아래로 내려가거나 플랜을 올리면 5분 안에 풀립니다(부록 E-2)components/Notes.module.css 나 app/globals.css 를 고치다 고정 폭(width: 500px, 100vw)을 넣은 것 — minmax(0, 1fr)·width: 100% 로 되돌리고 390px 에서 scrollWidth === clientWidth 확인AI용 분할본 · 지도 7단계(운영·개정 — 필요할 때만) — 어느 단계에서든 막히면 이 페이지를 연다 · 이 페이지 전에 읽을 페이지: PART 0 사용법·AI 시작 지침 · 코드 파일은 여기 없다 — 코드 자리의 줄을 따른다(폴더에 책 파일이 하나도 없는 처음이면 부록 A-2 의 curl 한 줄부터)