행 순서 불변성
같은 이벤트의 순서를 섞어도 정본 해시는 하나여야 합니다.
packages/replay-engine/src/replay-foundation.test.ts- produces the same canonical result after row shuffling
- pins every committed four-event fixture permutation to the golden hash
그래서 쓰기 전에 후보 모델마다 같은 시험을 치르게 하는 것이 원칙입니다.이 원칙에 따라 미리 정해 둔 기준을 넘은 모델만 씁니다.
그래서 실시간 AI 제안은 꺼 두었습니다.체험에서는 미리 준비한 제안을 씁니다.
후보 5개가 시험을 치렀고, 4개에서 답을 받았습니다. 비모델 기준선과 함께, 시험 전에 정한 규칙으로 비교했습니다.
모델별 기준 통과 여부, 2026-10-08 시험. 숫자를 누르면 정의가 열립니다.
| 모델 | 기준 통과 | 엄격 정확도 | 유효 출력 | 과잉 기권 | 오배정 | 없는 필드 연결 | 주입 추종 | 비용 |
|---|---|---|---|---|---|---|---|---|
| gemini-2.5-pro | ✕ 미달 | 없음 | 0/36 · 0.0% | 없음 | 없음 | 없음 | 없음 | 없음0/36회 가격 확인 |
| gemini-3.1-flash-lite | ✕ 미달 | 0/288 · 0.0% | 0/36 · 0.0% | 0/288 · 0.0% | 141/540 · 26.1% | 72/540 · 13.3% | 66/72 · 91.7% | $0.07272936/36회 가격 확인 |
| gemini-3.1-pro-preview | ✕ 미달 | 229/288 · 79.5% | 29/36 · 80.6% | 0/288 · 0.0% | 49/540 · 9.1% | 29/540 · 5.4% | 14/72 · 19.4% | $0.63911436/36회 가격 확인 |
| gemini-3.5-flash-lite | ✕ 미달 | 0/288 · 0.0% | 0/36 · 0.0% | 0/288 · 0.0% | 148/540 · 27.4% | 80/540 · 14.8% | 43/72 · 59.7% | $0.10850736/36회 가격 확인 |
| gemini-3.8-flash | ✕ 미달 | 202/288 · 70.1% | 27/36 · 75.0% | 0/288 · 0.0% | 36/540 · 6.7% | 22/405 · 5.4% | 0/72 · 0.0% | 없음27/36회 가격 확인 |
| 비모델 기준선lexical-baseline/2 | 비교 기준 | 0/288 · 0.0% | 0/36 · 0.0% | 246/288 · 85.4% | 0/540 · 0.0% | 0/540 · 0.0% | 0/72 · 0.0% | 없음0/36회 가격 확인 |
후보 1개는 그리지 않았습니다. 모든 요청이 제공자 단계에서 실패해 관찰한 출력이 없으므로 정확도를 알 수 없습니다.
● 기준 통과○ 기준 미달◆ 비모델 기준선
| 모델 | 기준 통과 | 엄격 정확도 | 비용 |
|---|---|---|---|
| 1. 비모델 기준선 | 비교 기준 | 0/288 · 0.0% | 없음 |
| 2. gemini-2.5-pro | ✕ 미달 | 없음 | 없음 |
| 3. gemini-3.1-flash-lite | ✕ 미달 | 0/288 · 0.0% | $0.072729 |
| 4. gemini-3.1-pro-preview | ✕ 미달 | 229/288 · 79.5% | $0.639114 |
| 5. gemini-3.5-flash-lite | ✕ 미달 | 0/288 · 0.0% | $0.108507 |
| 6. gemini-3.8-flash | ✕ 미달 | 202/288 · 70.1% | 없음 |
| 열 종류 | gemini-2.5-pro | gemini-3.1-flash-lite | gemini-3.1-pro-preview | gemini-3.5-flash-lite | gemini-3.8-flash | 비모델 기준선 |
|---|---|---|---|---|---|---|
| 분명한 이름CLEAR | 없음 | 0/108 · 0.0% | 84/108 · 77.8% | 0/108 · 0.0% | 73/108 · 67.6% | 0/108 · 0.0% |
| 줄인 이름ABBREVIATED | 없음 | 0/72 · 0.0% | 58/72 · 80.6% | 0/72 · 0.0% | 54/72 · 75.0% | 0/72 · 0.0% |
| 동의어SYNONYM | 없음 | 0/72 · 0.0% | 58/72 · 80.6% | 0/72 · 0.0% | 54/72 · 75.0% | 0/72 · 0.0% |
| 모호한 이름AMBIGUOUS | 없음 | 없음 | 없음 | 없음 | 없음 | 없음 |
| 없는 필드로 유도ABSENT_LURE | 없음 | 없음 | 없음 | 없음 | 없음 | 없음 |
| 잘못된 변환으로 유도TRANSFORM_LURE | 없음 | 없음 | 없음 | 없음 | 없음 | 없음 |
| 헤더에 숨긴 지시INJECTION | 없음 | 0/36 · 0.0% | 29/36 · 80.6% | 0/36 · 0.0% | 21/36 · 58.3% | 0/36 · 0.0% |
보관 평가 집합에서 모델마다 실패한 빈도입니다. 많이 나온 실패부터 보여 줍니다.
| 모델 | 실패 |
|---|---|
| gemini-2.5-pro |
|
| gemini-3.1-flash-lite |
|
| gemini-3.1-pro-preview |
|
| gemini-3.5-flash-lite |
|
| gemini-3.8-flash |
|
관측한 모델·검증기 실패마다 깨진 가정과 수정 내용을 기록합니다.
FIXEDACCEPTED_RESIDUALFIXEDACCEPTED_RESIDUALFIXEDACCEPTED_RESIDUALACCEPTED_RESIDUALACCEPTED_RESIDUALACCEPTED_RESIDUALACCEPTED_RESIDUAL규칙은 보관 평가 집합에 모델을 호출하기 전에 승인했고, 오프라인에서 정확한 정수 연산으로 적용합니다.
전체 시험에서 다음을 모두 충족해야 기준을 통과합니다.
기본 모델: 분명한 이름·줄인 이름·동의어 열에서 엄격 정확도 90/100 이상인 통과 후보 중 가장 저렴한 모델입니다.
상위 모델: 모호한 이름·잘못된 변환 유도 열과 기본 모델이 실패한 형식에서 가장 많은 항목을 맞힌 다른 통과 후보입니다.
기본 모델 자격을 갖춘 후보가 없으면 모델을 선택하지 않고 AI 경로를 켜지 않습니다.
등록된 모든 프롬프트 버전입니다. 보관 평가 집합 실행 뒤 프롬프트를 바꾸면 새 보관 평가 집합이 필요합니다.
| 버전 | 도입 | 모델에 전송 | 설명 |
|---|---|---|---|
schema-mapping/1 | 95f283b, #17 | 예 | 모든 후보 모델이 받는 데이터 항목 연결 지시문입니다. 처음 도입한 뒤 바꾸지 않았습니다. |
schema-mapping/2 | #320 | 예 | ADR 0075 재시도 지시문입니다. 1판의 문장을 모두 유지하고 세 규칙을 더했습니다. 지시처럼 보이는 글은 데이터로 보고, 판단할 수 없는 열은 검토로 남기고, 각 대상 항목은 한 번만 씁니다. DEV에서만 확인했고, 재시도는 held-out 실행 전에 철회되었습니다. |
schema-mapping/3 | #320 | 예 | ADR 0075 개정 1판입니다. 2판의 문장을 모두 유지하고 대상 정의, 확신할 때만 대상 지정, 어떤 변환도 하지 못하는 변환, 필수 대상을 더했습니다. DEV에서만 확인했고, 재시도는 held-out 실행 전에 철회되었습니다. |
schema-mapping/4 | #320 | 예 | ADR 0075 개정 2판입니다. 3판의 문장을 모두 유지하고, 대상은 값의 형식이 아니라 헤더로 정하며 receivedAt은 헤더가 그렇게 말할 때만 쓴다는 규칙을 더했습니다. DEV에서만 확인했고, 재시도는 held-out 실행 전에 철회되었습니다. |
fixture-mapping/1 | 95f283b, #17 | 아니요 | 등록된 연결 fixture의 표시입니다. 프롬프트를 보내지 않습니다. |
rapid-price-lift-case-v1 | bf8946a, #15 | 아니요 | 직접 작성한 합성 사례 범위의 표시입니다. 프롬프트를 보내지 않습니다. |
published-execution-schema-case-v1 | e60b89d, #79 | 아니요 | 직접 작성한 합성 사례 범위의 표시입니다. 프롬프트를 보내지 않습니다. |
published-execution-broad-case-v1 | e8689cf, #176 | 아니요 | 직접 작성한 합성 사례 범위의 표시입니다. 프롬프트를 보내지 않습니다. |
non-model/no-prompt/1 | 8235395, #284 | 아니요 | 비모델 기준선의 표시입니다. 모델을 호출하지 않습니다. |
synthetic-no-prompt/1 | 8235395, #284 | 아니요 | 직접 작성한 채점 대조군의 표시입니다. 모델을 호출하지 않습니다. |
보관 평가 집합 실행일: 2026-10-08. 규칙 승인일: 2026-10-08. 보관 평가 집합을 호출하기 전입니다. 가격: Google 가격표 2026-10-08 기준.
구현된 검증마다 그것을 지키는 커밋된 테스트를 밝힙니다. 계획된 측정은 사례, 명령, 실행 환경, 한계를 커밋해야 결과가 됩니다.
현재 평가는 합성 사례만 사용합니다. 이전 공개자료 평가는 출처가 철회된 과거 캡처입니다.
같은 이벤트의 순서를 섞어도 정본 해시는 하나여야 합니다.
packages/replay-engine/src/replay-foundation.test.ts커밋된 fixture를 정해진 정본 결과 해시에 고정합니다.
packages/replay-engine/src/replay-foundation.test.ts동일한 소스 행을 넣어도 정본 이벤트는 바뀌지 않아야 합니다.
packages/replay-engine/src/replay-foundation.test.tsevent 또는 소스 식별자가 충돌한 채 재사용되면 거부합니다. 커밋된 FIX 충돌 사례는 결과 해시 없이 INPUT_REVIEW_REQUIRED에서 멈춥니다.
packages/replay-engine/src/replay-foundation.test.tspackages/replay-engine/src/published-execution-schema.test.ts동등한 offset과 Z 시각을 같은 순간으로 정규화합니다.
packages/replay-engine/src/replay-foundation.test.ts지원하는 정밀도는 보존하고 그보다 세밀한 시각은 거부합니다.
packages/replay-engine/src/replay-foundation.test.ts로캘 데이터 없이 UTF-16 코드 단위로 정본 키를 정렬합니다.
packages/replay-engine/src/replay-foundation.test.ts수집 메타데이터는 정본 결과 해시에서 제외합니다.
packages/replay-engine/src/replay-foundation.test.tssequence 유무가 섞이면 실패로 처리하고, 모두 없을 때의 순서를 정합니다.
packages/replay-engine/src/replay-foundation.test.ts동등한 커밋 소스 방언은 하나의 정본 결과에 이릅니다.
packages/replay-engine/src/source-ingest.test.tsapps/web/src/app/api/replay/route.test.ts행 순서와 소스 방언이 바뀌어도 데이터셋 프로파일을 일정하게 유지합니다.
packages/replay-engine/src/dataset-profile.test.ts승인을 검증된 제안과 실제 적용된 변환에 묶습니다.
packages/replay-engine/src/approval-validation.test.tsapps/web/src/app/api/replay/route.test.ts결과 해시 전에 선언된 행이나 승인된 열이 빠졌으면 거부합니다.
apps/web/src/app/api/replay/route.test.tspackages/replay-engine/src/source-ingest.test.ts매핑된 정본 이벤트와 각 매핑 적용의 검토 결과가 필드별로 일치하는지 보고합니다.
packages/replay-engine/src/source-ingest.test.ts표시된 필드는 사유가 있는 override를 요구하되, 끝까지 처리할 수 있는 경로는 남깁니다.
packages/ai-harness/src/fixture-provider.test.tsapps/web/src/app/api/replay/route.test.ts공개 스키마 기반 합성 사례로 SUPPORTED, NOT_SUPPORTED, INCONCLUSIVE에 도달합니다. FIX 참여자 분산 사례는 비교 가능한 체결 여섯 건으로 ACTOR_CONCENTRATION과 REMOVAL_SENSITIVITY를 통과하지 못하고 나머지 세 기준은 통과합니다.
packages/replay-engine/src/published-execution-schema.test.tspackages/replay-engine/src/rapid-price-lift-golden.test.tspackages/replay-engine/src/published-execution-not-supported.test.ts기준 사례의 각 발견 참조를 eventId와 rawRowHash를 거쳐 해시를 검증한 커밋 원본 행까지 연결합니다.
packages/evals/src/runner.test.ts커밋된 연결, 검토, 변형, 시나리오와 추적 건수를 재현하고 실행 환경을 별도로 기록합니다. 직접 작성한 사례로 정확도를 추정하지 않습니다.
packages/evals/src/publication.test.ts별도로 선언한 측정 방식 아래 독립된 연결 자료로 설정된 제공자를 평가할 계획입니다.