코덱스로 파일 정리하는 프롬프트 매뉴얼
정리할 이름을 먼저 표로 확인하고, 승인한 파일만 다른 폴더로 복사한다. 날짜와 거래처가 같은 문서도 ID로 구별하며 원본은 이동하거나 삭제하지 않는다.

- 파일 이름부터 바꾸지 말고 원본·대상·검토 사유가 있는 계획표를 만든다.
- 필수 정보가 없으면 추정하지 않고 보류하며, 이름이 겹치면 덮어쓰지 않는다.
- 샘플 3개 중 2개를 복사하고 1개를 검토 대상으로 남겼다. 원본과 복사본의 내용도 대조했다.
먼저 정리 전후를 비교한다
파일을 몇 개 내려받으면 scan1, download, memo처럼 이름만으로 구분하지 못하는 문서가 생긴다. 이번 예제는 가상의 문서 내용이 들어 있는 TXT 파일 3개를 Codex로 정리했다. PDF에서 날짜와 금액을 추출하는 OCR 예제는 아니다. 파일별 날짜·거래처·문서 ID를 적은 목록이 입력이다.
| 원본 | 대상 이름 | 처리 |
|---|---|---|
| scan1.txt | 2026-10-01_가온_R001.txt | 복사 |
| download.txt | 2026-10-01_가온_R002.txt | 복사 |
| memo.txt | 없음 | 필수 정보가 없어 검토 |
같은 날짜에 같은 거래처에서 받은 문서라도 문서 ID가 다르면 별개다. 날짜와 거래처만으로 이름을 만들면 두 파일이 같은 이름이 된다. 이번 규칙은 ID까지 포함해 충돌을 피했다.
입력 목록, 이름 변경 계획표, 복사본 ZIP, 검사 결과를 남겼다. 실제 원본은 input 폴더에 그대로 있다.
1. 파일 전체가 아니라 작업 범위를 정한다
Codex에서 정리할 문서만 담은 작업 폴더를 연다. 다운로드 폴더 전체, 홈 디렉터리 전체를 작업 대상으로 잡지 않는다. 이번 구조는 다음과 같다.
파일정리/
input/ 정리할 원본 3개
index.csv 파일별 날짜·거래처·문서 ID
output/
plan.csv 검토할 계획표
organized/ 승인 후 생성한 복사본
목록에 적은 파일이 실제로 있는지 먼저 확인한다. 날짜와 거래처는 사람이 확인한 값으로 적는다. 자료에 없으면 빈칸으로 두고, ‘오늘 받은 파일이니 오늘 날짜’ 같은 추측으로 문서 날짜를 채우지 않는다.
회계 담당자의 파일명 고민도 이 작업의 출발점이다. Reddit에는 구독 서비스에서 받은 인보이스 파일명이 내용을 구분하지 못해 일괄 변경 도구를 찾는 질문이 있다. 그 질문과 이번 예제가 공유하는 문제는 찾기 어려운 파일명이며, 이번 구현은 문서 내용 추출까지 포함하지 않는다. 사용자 질문
2. 첫 요청은 계획표까지만 만든다
input 폴더의 파일을 index.csv 기준으로 정리하려고 한다.
먼저 output/plan.csv만 만들고 원본에는 손대지 마라.
대상 이름은 날짜_거래처_문서ID.확장자다.
날짜와 거래처가 같아도 문서 ID가 다르면 별도 파일이다.
필수 정보 누락, 존재하지 않는 원본, 폴더 밖 경로,
같은 대상 이름은 검토 대상으로 남겨라.
날짜와 거래처를 추정하지 마라.
복사·이동·삭제는 하지 말고 원본 이름, 대상 이름, 처리 가능 여부,
검토 사유를 표로 보여줘라.
이 단계에서 만든 계획표는 복사 가능한 파일 2개와 검토 파일 1개를 표시했다. 원본 이름이 맞는지, 날짜 형식이 일관적인지, 대상 이름이 겹치지 않는지 살핀다. 계획표를 확인하기 전에는 실제 정리를 시작하지 않는다.
PDF 파일이라면 확장자를 그대로 유지할 수 있다. 다만 목록 기반 정리는 PDF 안의 내용과 날짜가 맞는지를 자동으로 확인하는 작업이 아니다. 문서의 내용까지 읽게 하려면 추출 방법과 사람이 확인할 필드를 별도 요청으로 정해야 한다.
3. 원본을 바꾸지 않는 복사로 실행한다
계획표를 확인한 뒤에는 다음 요청을 보낸다.
복사 전후의 파일 내용은 SHA-256 해시로 대조한다. 해시는 파일 내용에서 계산한 값이며, 원본과 복사본이 같은지 확인하는 데 사용한다.
확인한 이름 규칙대로 복사 가능한 파일만 output/organized에 복사해라.
원본 삭제·이동·이름 변경은 하지 마라.
대상 파일이 하나라도 이미 존재하면 작업 전 중단해라.
경로에 상위 폴더 이동이나 다른 파일·폴더를 가리키는 링크(심링크)가 있으면 거부해라.
복사 전후 원본 파일 목록과 SHA-256을 비교하고,
원본과 복사본의 SHA-256이 같은지도 검사해라.
검토 파일은 원본에 그대로 두고 사유를 유지해라.
샘플 도구는 기본 실행에서는 계획표만 만들고 --apply가 있을 때만 복사했다. 첫 실행에서 계획을 확인한 뒤 복사를 실행했다. 복사본 2개가 생성됐고, 원본 3개는 그대로 남았다.
같은 작업을 다시 실행하자 기존 대상 파일이 있다는 오류로 중단됐다. 두 번째 실행에서 내용이 같은 파일이라고 해도 자동 덮어쓰기를 허용하지 않았다. 작업 결과를 믿고 다시 눌렀을 때 원치 않는 교체가 일어나지 않게 하는 조건이다.
4. 이름과 내용은 따로 검사한다
파일 이름이 맞는 것만으로 복사가 정상이라고 볼 수는 없다. 원본과 복사본의 SHA-256을 비교해 내용이 같은지 확인했다. 동시에 복사 전후 원본 목록과 해시를 비교했다.
| 검사 | 샘플 결과 |
|---|---|
| 원본 파일 수 | 3개 유지 |
| 생성한 복사본 | 2개 |
| 검토 파일 | 1개 |
| 원본 내용 변경 | 없음 |
| 원본·복사본 해시 | 동일 |
| 같은 대상에 재실행 | 중단 |
해시 비교는 파일 내용이 같은지 확인하는 검사다. 문서에 적힌 금액이 정확하다거나 문서가 진짜라는 의미는 아니다. 이번 검사 대상은 정리 작업이 문서를 훼손하거나 교체하지 않았는지다.
다른 운영체제로 옮겨 쓸 때는 파일명에 사용할 수 있는 문자도 다시 확인한다. 이번 예제의 이름은 한글·숫자·밑줄로 제한했다. Windows에 사용할 목록이라면 :, ?, 예약된 이름 등 그 운영체제의 제한까지 요청에 넣는다.
내 폴더에는 복사부터 적용한다
처음에는 파일 3~5개로 계획표와 복사 결과를 확인한다. 목록이 올바른지 검토한 뒤 범위를 늘린다. 원본을 지우거나 이동하는 작업은 이 예제에 포함하지 않았다.
문서를 빨리 정리하는 것보다 중요한 것은 무엇을 어떻게 바꿀지 확인한 뒤 실행하고, 다시 실행해도 원본을 잃지 않는 것이다. 프롬프트에도 이 조건을 넣는다.