Skip to content

M6: 3단계 재발 방지와 잔재 회수 (3단계 마지막) - #27

Merged
mack-erel merged 3 commits into
mainfrom
p3/m6
Oct 18, 2026
Merged

mack-erel merged 3 commits into
mainfrom
p3/m6

Conversation

@mack-erel

Copy link
Copy Markdown
Contributor

요약

3단계 마지막 단계 M6입니다. 3단계 규칙("회원은 정해진 입구로만 생기고 바뀐다")이 이후 변경에서 깨지지 않게 검사로 고정합니다.

  • G-M6.1·2 잔재: K6과 같은 패턴으로 3단계 경로까지 검사합니다. 시험 갈림길·꺼진 테스트·미구현 표식이 0이어야 합니다.
  • G-M6.3·10 user 쓰기 자리: scripts/check-user-writes.mjs가 AST 별칭 추적으로 user 테이블 쓰기 자리를 모아 허용 목록(scripts/user-writes.allow.json)과 정확히 비교합니다. 검사기 시험은 21개입니다.
  • G-M6.4·11 운영 문서: deploy/README.md에 가입 정책, 초대, 탈퇴 데이터 처리, 계정 단위 한도, UTC 날짜, 메일 설정을 적었습니다.
  • G-M6.5~8 봉인·순서·필수 검사: S0S7·K0K6·M0~M5 봉인, 처음 커밋부터의 순서, ruleset, p3-m6 잡을 확인합니다.
  • G-M6.18·19 백로그 고정: 2단계 audit 직접 INSERT의 detail 키와 SSO JIT 권한 칼럼 방어를 DB 없는 시험으로 고정합니다.
  • 실행판 M6 절: 백로그 결정과 근거를 적었습니다.
    • check-verify resolved_in은 정확 일치를 유지합니다.
    • M3 보안 LOW 넷은 보류합니다.
    • M4 격리 대조는 게이트에 등록하지 않기를 권장합니다.

로컬 검증

  • gate M6 19개 중 18개 통과. G-M6.12~17(다섯 DB·D1) 포함.
  • 실패 1건은 G-M6.7이었습니다. ruleset에 잡 이름을 추가하기 전이라 실패했고, 추가한 뒤 check-required-checks가 통과합니다(잡 31개).
  • 독립 검수에서 차단 문제는 0건이었습니다.

제품 코드 후속 (이 PR에서는 고치지 않음)

  • keys/reconcile.ts detail 키 name: writeAudit으로 옮길 때 keyName으로 바꿔야 합니다.
  • userCreateGuard 설치 전 분기: 5단계 IdP를 켜기 전에 이메일 가입 밖 경로를 거부해야 합니다.
  • D1에서 계정 없는 user 행을 정리하는 작업이 없습니다.

남은 일

  • gate M6 --seal → 봉인 커밋 → 병합(머지 커밋). 이것으로 3단계가 끝납니다.

🤖 Generated with Claude Code

mack-erel and others added 3 commits October 18, 2026 23:24
- G-M6.1·2: K6 과 같은 패턴으로 3단계 경로까지 시험 갈림길·꺼진 테스트·미구현 표식 0.
- G-M6.3·10: user 테이블 쓰기 자리를 AST 별칭 추적으로 모아 허용 목록과 정확히 비교한다 (별칭·구조 분해·재내보내기·고정 SQL·칼럼 집합·STALE).
- G-M6.4·11: 운영 문서에 가입 정책·초대·탈퇴 데이터 처리·계정 단위 한도·UTC 날짜·메일 설정.
- G-M6.18·19: 2단계 audit 직접 INSERT 의 detail 키와 SSO JIT 권한 칼럼 방어를 DB 없는 시험으로 고정한다.
- 실행판 M6 절에 백로그 결정과 근거를 적는다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mack-erel
mack-erel merged commit 6aca231 into main Oct 18, 2026
48 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant