← Files AI 백서ARCHIVED FILE
references/result-contract.md
22.8 KB · Sep 30, 2026 · 23:15 UTC
# B 결과·변화 추적 계약 질문이 끝나고 결과 방향을 바꾸는 충돌이 없을 때만 이 파일을 사용한다. B는 확인된 정보와 표시된 한계를 반영한 내부 요청이며 B 요청문 자체는 기본 출력하지 않는다. ## 목차 1. B 구성과 기본 출력 2. AI 백서 변화 추적 3. 조건부 결과 4. 큰 변화 판정 5. A Markdown 대화 산출물 6. 산출물 미지원·실패 ## 1. B 구성과 기본 출력 B에는 필요한 만큼만 구조화한다. 길거나 구조적인 최종 답변은 [answer-clarity-output-contract.md](answer-clarity-output-contract.md)를 먼저 적용해 `## 핵심 답변` 아래의 `결론`, `핵심 근거`, `다음 행동` 가운데 실제로 있는 항목만 한 문장씩 둔다. 짧은 직접 답변에는 이 상단을 강제하지 않는다. 상단은 방향만 압축하고 이후 B 본문은 세부 근거·조건·예외·실행 방법만 확장하며 동일하거나 의미상 같은 문장을 반복하지 않는다. - 목적과 사용할 사람 - 대상과 범위 - 사용할 자료와 정보 출처 - 중요한 제약과 위험 - 원하는 결과와 완료 기준 간결하게 조립하더라도 사용자 입력·자료에 명시된 결정 관계를 삭제하거나 일반론으로 치환하지 않는다. 행위자·행동·대상, 조건·순서·의존성, 분기·예외·복구, 검증·완료 기준 가운데 이번 결과에 명시된 관계는 B의 적절한 위치에 보존한다. 사용자 입력에 명시된 결과 행동은 B에서 각각 직접 확인할 수 있게 보존한다. `세션 저장 → 자동 로그인 → 홈 이동`처럼 별개로 요구된 결과를 인접 상태로 암시하거나 하나로 축약하지 않는다. 제안 인터페이스로 정할 수 있는 것은 요청·응답·오류 계약의 경로·필드·오류 이름(오류 코드 이름 포함)뿐이다. 이름 제안은 사용자 입력·자료에 없는 데이터 타입·wire type·값 형식·직렬화 형식·enum·nullability까지 정할 권한이 아니다. 예를 들어 필드 이름만 제공되거나 제안한 `email`·`signupId`·`expiresAt`·`id`·`version`·`bodyLink`·`required`·`agreed`에 출처 없이 `: string`·`: boolean` 같은 타입을 붙이지 않는다. 필요한 속성에 출처가 없으면 생략하거나 `[확인 필요]`로 두며, 사용자 입력·자료가 타입·wire type·형식·enum·nullability를 직접 제공한 경우에는 그 제공값을 그대로 보존할 수 있다. 기본 출력은 다음 두 의미를 순서대로 제공한다. 1. `final_answer`: B에 대한 실제 최종 답변 2. `refinement_effect`: 사용자 표시명 `AI 백서 변화 추적` 변화가 없는 바로 답하기, 실패 복구, 특정 결과만 요구한 후속 응답에는 필요한 결과만 제공한다. 제목은 자연스럽게 바꿀 수 있지만 B 최종 답변을 쉽게 찾게 한다. `답만`·`결과만`이면 간결하게 조립하되 필요한 변화 추적과 큰 변화 A를 끄지 않는다. 처음 요청과 함께 제공된 첨부·자료, 요청 전에 이미 존재해 관련 요청에서 읽은 로컬 도메인 문맥은 A 기준선의 일부다. 이를 정상적으로 사용했다는 이유만으로 변화 추적이나 A 비교를 만들지 않는다. 처음 요청의 안전하지 않은 요구를 거절·비식별화하거나 안전 규칙에 맞게 바꾼 것만으로도 변화 추적을 만들지 않는다. 질문 답, 요청 뒤 새로 추가된 자료·외부 확인처럼 A 기준선 이후의 입력이 결과를 실제로 바꾼 경우에만 변화 추적과 큰 변화 판정을 수행한다. N3처럼 사용자 입력이 처음 요청뿐이고 그 뒤 새 사용자 답·새 자료·외부 확인이 전혀 없으면, `AI 백서 변화 추적`·`조치·변화 추적`·A·delta 전용 제목·표·설명을 만들지 않는다. 입력에 이미 주어진 운영 승인·감사 기록 요건은 실행·검증에 그대로 둘 수 있지만 변화 추적으로 다시 이름 붙이지 않는다. 이때 입력이 제공한 기존 승인 시스템·읽기·쓰기 역할·3년 보존은 보존하되, 입력에 없는 실제 기록 수행자·서식·내부 저장 절차는 생략하거나 비차단 `[확인 필요]`로 둔다. `실제 수행자는 조직 절차에 따라 정함`, `기존 내부 서식과 저장 절차는 변경하지 않음`처럼 그 존재나 불변 상태를 단정하지 않는다. 민감정보 제외 규칙은 그대로 유지한다. N3에서 입력이 제공한 쓰기·읽기 역할은 승인 기록에 대한 접근 권한일 뿐 실제 저장 수행자·책임 주체 지정이 아니다. 역할별 접근통제와 승인 기록 저장 완료는 적용·검증할 수 있지만, `쓰기가 허용된 지정 역할`이나 `쓰기 권한이 있는 두 역할만`을 실제 저장 수행자·책임자로 이름 붙이거나 그 수행 범위를 해당 역할로 한정하지 않는다. 입력에 없는 수행자는 생략하거나 비차단 `[확인 필요]`로 둔다. `읽기·쓰기 권한만으로 새로 지정하지 않는다` 같은 면책 문장은 표·본문의 명시적 배정을 해소하지 못한다. 출처가 지정한 팀·역할은 그대로 보존하고 하위 역할을 만들지 않는다. 초기 입력뿐인 경우에는 `별도 변화 추적 산출물은 생성하지 않는다`처럼 생략 사실을 설명하는 메타 문장도 만들지 않고 조용히 생략한다. `2026년 9월 18일까지`는 준비·검토·수정·재승인·기록 저장의 최종 완료 기한이므로, `2026년 9월 18일 하루 안에`나 `9월 18일 실행`처럼 당일 시작 또는 하루짜리 실행 기간으로 바꾸지 않는다. N3의 날짜만 있는 최종 완료 기한 `2026년 9월 18일까지`는 그 날짜를 포함한다. `2026년 9월 18일 이전에`·`2026년 9월 18일 전까지`·`2026년 9월 17일까지`처럼 출처보다 이른 완료 컷오프로 바꾸지 않는다. 대상 날짜를 완료 기한·완료 관계에 반복할 수 있다. N3에서 실제 저장 수행자가 제공되지 않았다면 승인 기록 저장이 포함된 행동 묶음을 `IT 운영팀·보안팀` 같은 출처상 다른 책임 주체가 승인 기록 저장까지 문법적으로 지배하게 하지 않으며, 요약·표·완료 기준·집계 행에서도 허용하지 않는다. 행동을 분리하거나 저장 수행자를 비차단 `[확인 필요]`로 둔다. 접근 권한, 승인·반려 수정·재승인·검토 책임, 완료 검증은 출처가 지정한 주체에 그대로 둘 수 있다. 별도의 저장 수행자 `[확인 필요]` 행이나 면책 문장은 다른 행의 적극적 책임 배정을 해소하지 못한다. 기존 승인 시스템·읽기·쓰기 역할·3년 보존, 네 가지 고위험 권한, 여섯 기록 필드, 반려 당일 재승인 흐름은 그대로 보존한다. N3에서 사용자가 `비식별 목록 준비`만 제공했다면, 이를 원계정 연결·가역 매핑, 재식별 키·테이블, 토큰·가명 식별자 매핑 저장, 추적·재식별 내부 통제·정책이 존재하거나 유지된다는 단정으로 확대하지 않는다. 입력이 제공한 기존 승인 시스템·읽기·쓰기 권한·3년 보존·목록 버전·기록 필드는 그대로 보존한다. 구체 연결·재식별 방식이 필요하지만 출처가 없으면 생략하거나 비차단 `[확인 필요]`로 두며, 원계정 매핑·재식별 방식을 확정하지 않는다고 직접 밝힐 수 있다. 주변 면책 문장은 같은 답의 적극적 연결·통제 단정을 해소하지 못한다. 이 제한은 비식별 목록 자체, 비식별 식별자 또는 목록 버전 추적을 금지하지 않는다. SKILL.md의 Plan mode 시각 우선 계약 적용 조건이 성립하면 `final_answer`를 호스트가 요구한 하나의 Plan 본문으로 조립한다. B 최종 답변을 Plan의 주 내용으로 두고, `refinement_effect`와 필요한 조건부 모듈·A 링크는 같은 Plan 본문의 뒤쪽 보조 섹션에 한 번만 둔다. Plan 앞뒤에 일반 대화용 B를 별도로 반복하지 않는다. AI 백서 활성·호스트 Plan mode·질문 해소 후 최종 Plan이라는 시각 우선 계약의 활성 조건이 성립하고 사용자가 완료일과 완료 행동을 하나의 관계로 지정했다면, 텍스트 전용이 아닐 때는 그 날짜와 행동을 주 시각의 같은 단계·행·셀에서 직접 연결하고 요약이나 시각 뒤 상세에만 분리하지 않는다. 텍스트 전용일 때는 같은 실행 단계나 문장에서 날짜와 행동을 직접 연결한다. ## 2. AI 백서 변화 추적 결과를 실제로 바꾼 인과를 다음 열로 연결한다. | 빈칸 | 가능한 갈림길 | 답·자료와 출처 | B에서 달라진 부분 | 판단·행동 영향 | |---|---|---|---|---| 각 행은 `빈칸 → 가능한 갈림길 → 답·자료와 출처 → B에서 달라진 부분 → 판단·행동 영향` 하나를 담는다. 새 답으로 달라진 결정 관계마다 다섯 필드의 인과를 끝까지 연결한다. 승인 절차와 승인 확인 책임처럼 한 답에 여러 관계가 있으면 책임 주체를 `답·자료와 출처`에만 두고 끝내지 말고, B에서 달라진 책임과 실제 행동 영향까지 같은 행에서 명시하거나 별도 행으로 분리한다. 상류 질문 단계에서는 현재 입력에서 이미 식별된 서로 독립적인 고영향 빈칸은 첫 질문 묶음에 모두 포함한다. 결과 조립에서는 초기 입력과 후속 답의 명시 관계를 최종 B에 각각 직접 보존하며, 초기 입력이나 후속 답의 준비 완료 상태를 새 준비 작업으로 바꾸거나 누락하지 않는다. N2의 `2026-09-15 한국·일본 동시 출시` 조건과 `현행 보안 규정상 9월에는 한국만 출시 가능` 조건이 충돌하면, 질문 payload 전체에 두 조건의 이름과 내용을 각각 최소 한 번 직접 쓴다. 안전한 question 예시는 `2026-09-15 한국·일본 동시 출시 조건과 현행 보안 규정상 9월에는 한국만 출시 가능한 조건이 충돌합니다. 어느 조건을 변경하거나 예외 승인할 수 있나요?`이다. 표현은 의미가 같게 바꿀 수 있고 두 조건을 question 본문에만 모을 필요는 없지만, `두 조건`·`위 조건` 같은 대명사나 일반적인 보류·연기·예외 승인 표현은 어느 조건도 대신하지 못한다. 선택지가 question에서 빠진 조건을 보완하려면 그 선택지 자체가 빠진 조건의 이름과 내용을 구체적으로 밝혀야 한다. 조건 이름을 모든 선택지에 반복할 필요는 없다. N2에서 `동시 출시 조건과 보안 규정을 변경할 수 없다`는 사실만으로 `예외 승인도 불가`라고 추론하지 않는다. 출처가 예외 승인 불가를 명시하지 않았다면 충돌 질문에서 예외 승인 가능성을 유지하고 확인하며, `예외 승인 불가`·`예외 승인할 수 없다`고 단정하거나 그 추정만을 전제로 선택지를 좁히지 않는다. 출처가 예외 승인 불가를 직접 명시했다면 그 제한을 그대로 보존한다. No-Go·출시 연기와 예외 승인 확인을 함께 선택지로 두는 것은 허용한다. 첫 질문은 현재 입력에서 식별된 미해결 고영향 빈칸 자체를 직접 묻는다. 이미 확정된 인접 조건이나 일반 책임 배치로 대체하지 않는다. 예를 들어 승인 필요·승인 시점·미승인 처리가 이미 정해졌다면 이를 구체 승인 절차·승인 확인·증적 확보 책임, 배포 시작 시각·30분 정상 판정 기준·경보 발생 조치의 질문 대신 사용하지 않는다. 이는 이미 식별한 슬롯을 보존하는 규칙이며 새 후보 발굴이나 고정 체크리스트 요구가 아니다. 후속 답이 원래 물은 빈칸을 모두 채우고 초기 입력과 합쳐 실행 책임·조건·완료 기준이 충분하면, 완료 기준만을 근거로 별도 감시 담당이나 완료 선언자를 새 차단 빈칸으로 만들지 않는다. 위 P4처럼 기획팀의 변경안 작성과 반려 시 수정·두 팀 재요청, 재무팀의 가격 승인, 법무팀의 약관 승인, 두 승인 모두를 게시 게이트로 사용, 커뮤니케이션팀의 게시·게시본 확인, 승인 기록과 게시본 확인을 완료 기준으로 이미 제공했다면, 결정은 완결된 것으로 보고 최종 Plan으로 바로 진행한다. 이때 `재무팀·법무팀의 승인 기록 작성과 게시 전 증적 확인은 누가 맡나요?` 같은 질문은 선택적인 미제공 구현 세부를 새 고영향 빈칸으로 만든 것이므로 차단 질문으로 만들지 않는다. 승인 기록은 완료 증거로 참조하되 새 기록 작성·취합·게시 전 증적 확인 책임자를 배정하지 않는다. 저장 위치·기록 방식·게시 전 증적 확인 절차는 생략하거나 비차단 `[확인 필요]`로 둘 수 있으며, 출처가 정한 팀 역할은 그대로 보존한다. 특정 횟수·범위·분기에 한정된 규칙을 모든 분기나 다른 실패 유형으로 확대하지 않는다. 예를 들어 1~4회 실패의 남은 횟수 비반환을 5회 실패·만료·rate limit 응답까지 넓히지 않는다. 책임이 달라진 행은 `답·자료와 출처`, `B에서 달라진 부분`, `판단·행동 영향` 모두에서 같은 책임 주체와 책임 행동을 명시한다. 승인 주체와 증적 확보·제출 주체가 다르면 합치지 않는다. 입력에 없는 롤백 후 재배포 절차·일정은 B나 변화 추적에 확정하지 않고 생략하거나 `[확인 필요]`로 둔다. - 결과를 바꾼 연결을 모두 제공하고 고정 행 수 제한을 두지 않는다. - 같은 답·자료가 같은 B 변화와 같은 판단·행동 영향을 만들 때만 의미를 잃지 않는 범위에서 행을 병합한다. - 출처 유형은 `사용자 답`, `사용자 자료`, `외부 확인`, `모델 가정`으로 표시한다. - 출처 상태는 `확인됨`, `미확정`, `충돌 해소됨`으로 표시한다. - 질문 답과 자료를 사용자용 `질문 구체화 비교`·`자료 보강 비교` 유형으로 나누지 않는다. - `더 좋아짐`, `명확해짐` 같은 일반 평가 대신 달라진 구조·범위·내용·결정·주의를 지목한다. - 대화와 B에서 관찰할 수 있는 변화만 설명하고 숨은 사고과정이나 내부 추론을 설명하지 않는다. - 질문했지만 B가 달라지지 않은 항목은 억지로 기록하지 않는다. 그 질문은 회귀 검토 대상으로 본다. - A를 실제로 만들지 않았다면 엄밀한 답변 비교나 개선 폭처럼 표현하지 않는다. ## 3. 조건부 결과 가치가 있을 때만 다음을 덧붙인다. - `reuse_tip`: 사용자 답이나 자료가 결과를 바꿨을 때 이번 영향 요소를 다음 업무에 재사용할 수 있게 짧게 일반화한다. - `material_effect`: 새 파일·데이터 또는 최신 외부 근거를 실제로 사용했을 때 사용 자료, 바뀐 결론과 남은 한계를 구분한다. - `verification`: 틀리면 결과 채택이나 판단이 달라지는 사실·수치·인용·최신 정보·가정·추천·원인 해석·중대한 실행 근거가 있을 때 제공한다. - `full_comparison`: 사용자가 A 전문을 요청했거나 큰 변화이고 비교를 직접 금지하지 않았을 때 제공한다. - `next_step`: 현재 범위에서 유용한 후속 작업이나 사용자 선택이 남았을 때만 제공한다. 검증은 `확인 대상 → 현재 근거 또는 불확실성 → 외부 확인 방법`으로 쓴다. 전문 검토·회사 승인·권한 확인이 필요하면 실제 검토 주체나 원자료를 지목한다. 일반 경고, 근거 없는 자체 신뢰도 점수, 같은 AI의 반복 답변을 독립 검증으로 제시하지 않는다. ## 4. 큰 변화 판정 먼저 다음 질문에 답한다. > 원래 정보로 만든 답을 그대로 사용했다면 사용자의 판단이나 행동이 유의미하게 달라졌을까? `그렇다`이면서 다음 중 하나가 실제로 달라질 때만 큰 변화다. - 선택 또는 결론 - 실행 여부 - 범위·우선순위·순서·책임·승인 - 안전·권한·실행 가능성 - 성공 판정 추천안 전환, 바로 실행에서 승인 후 실행으로 전환, 구현에서 보류로 전환, 완료 범위가 승인·배포까지 바뀌는 경우는 큰 변화다. 존댓말, 길이, 표·목록, 예시, 표현 명료화만 바뀌고 같은 행동을 할 수 있으면 큰 변화가 아니다. 와이어프레임·흐름도·타임라인·표의 추가나 교체처럼 시각적 표현만 달라지고 같은 판단과 행동을 만들면 큰 변화가 아니다. - 큰 변화이면 A 전문을 B 한 건당 한 번만 생성하고 같은 변화 원인으로 반복하지 않는다. - A 기준선 이후 새 입력이 없으면 처음부터 있던 첨부·로컬 문맥의 영향이 커도 큰 변화로 판정하지 않는다. - `답만`, `결과만`은 A를 막지 않는다. - `비교하지 마`, `비교 없이 답해줘`처럼 비교를 직접 금지했을 때만 A를 생략한다. - 변화가 작아도 사용자가 A 전문을 명시적으로 요청하면 현재 시점에 생성하고 과거에 실제 제공한 답변처럼 표현하지 않는다. ## 5. A Markdown 대화 산출물 플랫폼이 명시적인 대화 산출물 파일 기능을 제공하는 경우에만 A 전문을 `ai-baekseo-initial-answer.md`로 만든다. 일반 파일시스템이나 워크스페이스 쓰기 가능 여부를 대화 산출물 지원으로 간주하지 않는다. A를 파일이나 본문으로 만들기 전에 별도의 민감정보 검사를 수행한다. - 비밀번호·인증정보는 복사하거나 부분 노출하지 않고 완전히 생략한다. - 개인 식별정보, 개별 고객·직원 정보와 핵심 회사 기밀은 비교 의미를 보존하는 최소 범위로 비식별화·일반화한다. - 원래 요청 A와 당시 사용 가능했던 정보를 원문 그대로 복제하지 않고, 비교에 필요한 안전한 요약만 기록한다. - 비식별화·일반화하면 A의 의미가 달라지거나 안전한 비교가 불가능하면 산출물과 링크를 만들지 않고 다음 문구를 제공한다. > 비교 전문을 안전하게 만들 수 없어요. 원래 요청에 민감정보가 포함되어 있습니다. 민감정보를 제거한 요청으로 다시 비교해 주세요. 사용자가 `처음 답변 보여줘`라고 요청하거나 워크스페이스 저장을 명시해도 이 검사를 생략하지 않는다. 본문에는 B와 변화 추적을 먼저 제공한 뒤 다음만 덧붙인다. > **차이가 커서 비교해봤어요.** > 처음 요청 기준 답변 보기 두 번째 문구는 실제로 생성된 산출물 링크로 제공한다. A 산출물에는 다음만 포함한다. 1. 비식별화·일반화한 원래 요청 A 2. 비교에 필요한 범위로 최소화한 당시 사용 가능했던 정보 3. 당시 정보만으로 지금 생성한 A 답변 4. 같은 대화 문맥에서 생성한 교육용 비교이며 엄밀한 독립 대조 실험이 아니라는 한계 B를 산출물에 중복하지 않는다. A에 필수 정보가 부족하면 임의로 채우지 않고 당시 답할 수 없었던 범위와 이유를 표시한다. 자료 조건이 달랐다면 이를 기록하고 차이를 질문 표현만의 효과로 단정하지 않는다. 플랫폼 대화 산출물은 플러그인의 별도 저장·수집이 아니다. 이를 도메인 문서·배포 패키지·색인·이후 요청의 자동 검색에 편입하지 않는다. 보존 기간이 공식적으로 확인되지 않으면 `임시 파일`이라고 부르지 않는다. 사용자가 명시적으로 저장을 요청하지 않으면 A를 워크스페이스 파일로 만들지 않는다. ## 6. 산출물 미지원·실패 플랫폼이 대화 산출물 파일을 지원하지 않거나 생성에 실패하면 존재하지 않는 링크나 본문 A를 만들지 않고 다음 문구를 그대로 제공한다. > 차이가 큽니다. 이 환경에서는 비교 전문 파일을 만들 수 없어요. '처음 답변 보여줘'라고 하면 본문에 생성해드릴게요. 사용자가 `처음 답변 보여줘`라고 요청하면 A만 본문에 생성하고 B를 반복하지 않는다. 자료는 정상적으로 사용했지만 A 생성만 실패한 경우 B, 변화 추적과 자료 영향은 유지하고 전체 비교만 실패로 처리한다. 새 자료를 열지 못했다면 사용한 것처럼 표시하지 않고 재첨부 또는 자료 없이 진행하는 경로를 안내한다. ## 실행 결과와 다음 행동 실행 요청의 B는 host-execution-contract.md에 따른 실제 결과와 확인 근거를 포함한다. 설명이나 계획을 실제 실행 완료로 대체하지 않는다. 필요한 후속 AI 행동의 모델은 next-action-contract.md를 따르며 사람의 승인에는 모델을 붙이지 않는다. ## 조건·역할·시간·필드 관계 보존 준비 완료라는 상태를 구현·API·데이터 계약의 변경 금지로 바꾸지 않는다. 변화 추적이 필요한 행에는 그 근거의 출처 유형과 확인 상태를 각각 유지하며 다른 행의 상태로 대신하지 않는다. - 질문은 독립적인 고영향 빈칸을 함께 묻되 도구의 현재 지원 방식에 맞춘다. 업무 절차와 책임 주체가 모두 미정이면 둘 다 묻는다. 이미 확인된 값·승인·답은 다시 묻지 않고 선택적 서식·채널을 새 차단 조건으로 늘리지 않는다. - 사용자 답으로 달라진 역할과 행동을 결과 및 필요한 변화 추적에 연결한다. 같은 주어가 명확한 연속 서술은 허용하며 승인자·실행자·검증자를 합치지 않는다. 예시의 표 행·문구·질문 수를 고정 형식으로 요구하지 않는다. - 시작 시각, 완료 시각, 완료 후 상대 관찰 기간을 구분한다. 소요시간이 없으면 시작 시각만으로 완료일·완료 시각·관찰 종료 시각을 계산하지 않는다. 날짜만 있는 기한의 포함 여부와 행동일을 원문대로 보존한다. - 서로 독립적인 선행 조건은 모두 충족해야 한다는 관계로 표현하고 임의의 순서를 만들지 않는다. 실패·반려 분기에만 주어진 재시도 순서나 조건을 정상 경로에 확대하지 않는다. 최종 요약·표·실행 설명 사이에서도 같은 관계를 유지한다. - 필드의 요청·응답·이벤트 소속은 각각 보존한다. 이름을 제안할 권한은 새 필드·타입·값 형식·소속 관계를 추가할 권한이 아니다. 원문에 없는 세부가 필요하면 제안임을 구분하거나 비차단 `[확인 필요]`로 둔다. 사용자가 제공한 세부는 생략하지 않는다. 배포·인증 예시는 [조건부 예시](output-examples.md#조건부-배포인증-예시)에서 해당 업무일 때만 읽는다. 예시의 역할·숫자·시간을 새 요청의 사실로 가져오지 않는다.
SHA-256: a2bc94774fab24f0a558982b466458c1129e4621db4042e38202802711a93de5