AI에게 먼저 신분증을 제시하게 만들기
AI가 틀리는 이유 중 하나는 답을 몰라서가 아니다. 무엇을 기준으로 답해야 하는지 모르는 상태에서 말하기 때문이다.
이번 작업에서 가장 자주 나온 문제도 이것이었다.
AI는 내가 물어보면 그럴듯하게 대답했다. 하지만 조금 더 따져보면 실제 파일을 읽은 게 아니라 대화 흐름에 맞춰 추정한 경우가 있었다.
그래서 만든 장치가 Authority Preflight다.
Preflight란 무엇인가
비행기가 이륙하기 전에 점검표를 확인하듯, AI도 작업을 시작하기 전에 먼저 확인해야 한다.
| 나는 어디에서 실행 중인가? 이번 작업은 워크스페이스 작업인가, 프로젝트 작업인가? 어떤 기준 문서를 읽었는가? 어떤 파일을 수정할 예정인가? 어떤 행동이 금지되어 있는가? 진행해도 되는가? |
이것을 대화창 첫머리에 출력하게 했다.
Loaded Authority Files
특히 중요한 것은 “무슨 파일을 읽었는가”다.
예전에는 AI가 이렇게 말했다.
| 규칙을 확인했습니다. |
하지만 이것만으로는 부족하다.
이제는 이렇게 말해야 한다.
| Loaded authority files: 1. WORKSPACE_INDEX.md 2. WORKSPACE_SYSTEM_BIBLE.md 3. AGENTS.md 4. GEMINI.md 5. docs/99_HANDOFF_CURRENT.md |
읽은 파일을 이름으로 밝혀야 한다. 그래야 사용자가 “그 파일이 아니라 이 파일을 봐야 한다”고 바로잡을 수 있다.
워크스페이스 작업과 프로젝트 작업
이번에 특히 중요했던 구분은 실행 위치였다.
| WORKSPACE_ROOT = 여러 프로젝트를 관리하는 루트 PROJECT_ROOT = 하나의 프로젝트 루트 |
!템플릿비교, !템플릿반영, !안전검사 같은 명령은 workspace level이다. 반면 !SD2AG, !이어하기는 project level이다.
이 구분이 없으면 AI는 AutoVideo 작업을 하면서 blog 문서를 건드리거나, workspace 규칙을 project 규칙으로 착각할 수 있다.
출력도 redaction 대상이다
처음에는 문서와 덤프에서만 로컬 경로를 지우면 된다고 생각했다. 하지만 AG가 기동 선언에서 실제 경로를 출력하는 문제가 있었다.
그래서 규칙을 바꿨다.
| 문서 redaction만으로는 부족하다. 대화창 출력도 redaction 대상이다. |
이제 AG는 이렇게 출력해야 한다.
| Current cwd: <WORKSPACE_ROOT> Loaded authority files: - <WORKSPACE_ROOT>/GEMINI.md - <PROJECT_ROOT>/docs/99_HANDOFF_CURRENT.md |
실제 로컬 사용자명이나 절대경로는 보여주지 않는다.
Preflight는 귀찮지만 빠르다
처음에는 이 절차가 번거로워 보인다. 하지만 실제로는 시간을 줄인다.
왜냐하면 잘못된 위치에서 실행하거나, 오래된 규칙을 읽거나, 금지된 파일을 수정하는 사고를 초반에 막기 때문이다.
| 작업 전 10초 점검 = 작업 후 2시간 복구 방지 |
체크리스트
AI에게 작업을 맡기기 전에 확인할 것.
- 현재 위치가 맞는가?
- 작업 범위가 workspace인지 project인지 명확한가?
- 읽은 authority files가 표시되는가?
- 수정 예정 파일이 명시되는가?
- 금지 작업이 표시되는가?
- 출력에 raw local path가 없는가?
마무리
AI 협업에서 중요한 것은 AI가 말을 잘하는지가 아니다. 어떤 기준으로 말하는지 투명하게 드러내는 것이다.
Authority Preflight는 AI에게 먼저 신분증을 제시하게 만드는 장치다.