오류를 고치려면 근거가 필요하지만 프로그램 폴더를 통째로 보내는 방식은 근거보다 많은 것을 섞을 수 있었다. 코드, 실행 로그, 로그인 세션과 실제 원고는 용도가 다르다. 북극성의 소스 선택 함수를 읽으며 어떤 파일을 대상으로 삼는지와 그 파일 내용이 공개해도 되는지는 별도 판단이라는 기준을 남겼다.

개발에 필요한 폴더부터 정한다

sourceManifest는 apps·packages·tests·sdk·docs 같은 정해진 소스 폴더와 루트 설정 파일을 대상으로 한다. profiles·.secrets·release·out·의존성 폴더는 제외하고 경로 구성요소에 .env가 포함돼도 건너뛴다. 데이터베이스·로그·바이너리 계열 확장자도 소스 목록에서 뺀다.

이 방식은 작업 중 발견한 모든 폴더를 긁어 오는 것보다 범위가 명확하다. 파일 이름과 해시를 남겨 무엇을 비교했는지도 확인할 수 있다. 다만 해시는 같은 바이트인지 확인할 뿐 내용의 비밀 여부를 판정하지 않는다. 허용된 문서 안에 실제 계정이나 원고를 붙여 놓았다면 이 목록만으로는 걸러지지 않는다. 파일 경계와 내용 경계를 모두 봐야 했다.

경로가 안쪽으로 보인다는 것만 믿지 않는다

inside는 상대 경로가 소스 루트 바깥으로 나가는지 검사한다. regularPath는 루트와 각 경로 구성요소의 symbolic link도 확인한다. 겉으로는 소스 폴더 아래지만 링크를 따라 다른 자료를 가져오는 경우를 경로 계산만으로 놓치지 않기 위해서다.

후보 감사 함수는 예상하지 않은 최상위 항목과 runtime 확장자·환경 파일을 거절한다. 소스 한 파일의 크기도 제한한다. 이 함수들을 일반적인 모든 파일 시스템 공격에 대한 인증이라고 부르지는 않는다. 여기서 설명하는 것은 개발 후보를 만들 때 경로와 파일 종류를 명시적으로 검사한 구현이다. 운영 로그인 폴더를 직접 열어 내용까지 조사한 검수와도 구분한다.

실행 payload는 사용자 데이터 보관함과 다른 집합이다

rollback의 payloadManifest는 실행 파일과 런타임 자원, 허용한 locale 및 MCP 파일을 열거한다. 사용자 데이터 전체를 복사해 복원 설치물을 만드는 함수가 아니다. MCP 묶음 일부가 있으면 필요한 파일이 모두 있는지도 검사한다. 같은 폴더에 뜻밖의 파일이 있으면 무시하며 포함하지 않고 거절하는 경로가 있다.

관련 시험은 허용된 MCP 파일을 복사한 fixture에서 해시 변조와 파일 누락을 확인한다. 추가 token.json은 지원하지 않는 payload로 거절한다. 이것은 이름이 그런 합성 파일을 넣은 시험이지 실제 토큰을 공개하거나 인증 저장소를 전수 검사한 결과가 아니다. 배포의 구성 완전성과 계정 세션의 보존은 서로 다른 자료 집합에서 판단한다.

연결 토큰은 개발 편의를 위한 공유물이 아니다

현재 외부 MCP 문서는 로컬 연결 파일의 토큰을 출력·커밋·복사하지 않도록 명시한다. 실제 PC 경로도 소스 밖의 호스트 설정에 둔다. 문서에 실행 예시가 필요하다는 이유로 현재 연결 정보를 그대로 넣지는 않는다. 독자가 따라 할 계약과 이 PC의 인증 값은 분리할 수 있다.

또한 현재 설치판은 내장 CLI와 수리 runtime을 제거한 뒤 외부 대화의 실행 호스트로 작동한다. 남아 있는 과거 수리 소스의 파일 선택 함수를 설명하면서 현재 자동으로 소스를 외부 모델에 보낸다고 쓰면 안 된다. 역사적 구현의 자료 경계와 현재 제품에 실제 연결된 경로를 함께 확인해야 정확한 제작기가 된다.

재사용할 것은 폴더 전체보다 선택의 근거다

나는 공개 글과 공유 모듈을 만들 때 원래 인증 파일을 지운 사본 대신 필요한 개념을 합성 입력으로 다시 구현했다. 원본 소스 근거는 비공개 장부에 범위와 해시를 남긴다. 공개 설명은 선택 기준과 실패 조건을 전하고 실제 고객 자료는 옮기지 않는다.

파일 이름 필터를 통과했다고 공개 안전을 확정하지 않는 것도 같은 이유다. 주석·문서·예제의 내용은 마지막에 다시 읽어야 한다. 이번 글의 근거는 코드와 기존 fixture 검토이며 새 설치나 로그인 추출은 하지 않았다. 오류를 충분히 설명하면서도 어떤 자료까지 함께 넘겼는지 스스로 대답할 수 있는 제작 절차를 남기려 했다.