[
 {
  "schema": "jev-cmds-shadow/1",
  "cmd": "retrieve",
  "run_id": "sample-retrieve-1",
  "ts": "2026-09-26T21:00:00+0900",
  "dry_run": false,
  "writes_vault": false,
  "input": {
   "query": "배운 걸 점점 긴 간격을 두고 다시 떠올리는 공부법을 정리한 노트가 어디 있지?",
   "collections": [
    "wiki"
   ],
   "k": 10,
   "keep_cut": 0.3,
   "reverse": true
  },
  "result": {
   "query": "배운 걸 점점 긴 간격을 두고 다시 떠올리는 공부법을 정리한 노트가 어디 있지?",
   "collections": [
    "wiki"
   ],
   "collections_measured": true,
   "candidates": [
    {
     "path": "예시/망각 곡선 (Forgetting Curve).md",
     "title": "망각 곡선 (Forgetting Curve)",
     "label": "망각 곡선 (Forgetting Curve)",
     "collection": "wiki",
     "bm25_rank": 1,
     "vec_rank": 3,
     "fused_rank": 1,
     "desc_source": "description"
    },
    {
     "path": "예시/간격 반복 (Spaced Repetition).md",
     "title": "간격 반복 (Spaced Repetition)",
     "label": "간격 반복 (Spaced Repetition)",
     "collection": "wiki",
     "bm25_rank": 4,
     "vec_rank": 1,
     "fused_rank": 2,
     "desc_source": "description"
    },
    {
     "path": "예시/주간 복습 루틴.md",
     "title": "주간 복습 루틴",
     "label": "주간 복습 루틴",
     "collection": "wiki",
     "bm25_rank": 2,
     "vec_rank": 5,
     "fused_rank": 3,
     "desc_source": "description"
    },
    {
     "path": "예시/분산 학습.md",
     "title": "분산 학습",
     "label": "분산 학습",
     "collection": "wiki",
     "bm25_rank": 3,
     "vec_rank": 4,
     "fused_rank": 4,
     "desc_source": "description"
    },
    {
     "path": "예시/인출 연습 (Retrieval Practice).md",
     "title": "인출 연습 (Retrieval Practice)",
     "label": "인출 연습 (Retrieval Practice)",
     "collection": "wiki",
     "bm25_rank": null,
     "vec_rank": 2,
     "fused_rank": 5,
     "desc_source": "description"
    },
    {
     "path": "예시/플래시카드 앱 비교.md",
     "title": "플래시카드 앱 비교",
     "label": "플래시카드 앱 비교",
     "collection": "wiki",
     "bm25_rank": 5,
     "vec_rank": null,
     "fused_rank": 6,
     "desc_source": "description"
    },
    {
     "path": "예시/독서 노트 템플릿.md",
     "title": "독서 노트 템플릿",
     "label": "독서 노트 템플릿",
     "collection": "wiki",
     "bm25_rank": 6,
     "vec_rank": null,
     "fused_rank": 7,
     "desc_source": "description"
    },
    {
     "path": "예시/집중 학습의 함정.md",
     "title": "집중 학습의 함정",
     "label": "집중 학습의 함정",
     "collection": "wiki",
     "bm25_rank": null,
     "vec_rank": 6,
     "fused_rank": 8,
     "desc_source": "description"
    }
   ],
   "pool": {
    "bm25_nonempty": true,
    "fts_query": "\"배 운\" OR \"점 점\" OR \"간 격\" OR \"두 고\" OR \"다 시\" OR \"떠 올 리\" OR \"공 부 법\" OR \"정 리 한\" OR \"노 트\" OR \"어 디\" OR \"있 지\"",
    "vec_error": null,
    "filtered_counts": {},
    "n_candidates": 8
   },
   "choice": {
    "top_path": "예시/간격 반복 (Spaced Repetition).md",
    "probs": {
     "예시/간격 반복 (Spaced Repetition).md": 0.78,
     "예시/분산 학습.md": 0.09,
     "예시/인출 연습 (Retrieval Practice).md": 0.06,
     "예시/망각 곡선 (Forgetting Curve).md": 0.03,
     "예시/주간 복습 루틴.md": 0.01,
     "예시/집중 학습의 함정.md": 0.01,
     "예시/플래시카드 앱 비교.md": 0.01,
     "해당 없음": 0.01,
     "예시/독서 노트 템플릿.md": 0.0
    },
    "reverse_top_path": "예시/간격 반복 (Spaced Repetition).md",
    "probs_reverse": {
     "예시/간격 반복 (Spaced Repetition).md": 0.71,
     "예시/분산 학습.md": 0.12,
     "예시/인출 연습 (Retrieval Practice).md": 0.09,
     "예시/망각 곡선 (Forgetting Curve).md": 0.04,
     "예시/주간 복습 루틴.md": 0.01,
     "예시/집중 학습의 함정.md": 0.01,
     "예시/플래시카드 앱 비교.md": 0.01,
     "해당 없음": 0.01,
     "예시/독서 노트 템플릿.md": 0.0
    },
    "decision": "제안",
    "rule": "both orders agree on a non-abstain argmax (no tie)",
    "top_label": "간격 반복 (Spaced Repetition)"
   },
   "keep": [
    {
     "path": "예시/간격 반복 (Spaced Repetition).md",
     "title": "간격 반복 (Spaced Repetition)",
     "p": 0.88
    },
    {
     "path": "예시/인출 연습 (Retrieval Practice).md",
     "title": "인출 연습 (Retrieval Practice)",
     "p": 0.41
    }
   ],
   "keep_cut": 0.3,
   "keep_rule": "keep iff noul > 0.3 (strict; equal = not kept)",
   "model": "jev-1.13.0",
   "input_tokens": 1258,
   "latency_ms": 1551,
   "dry_run": false,
   "query_redactions": [],
   "error": null
  },
  "calls": [
   {
    "cond": "C1",
    "order": "normal",
    "qid": "find",
    "kind": "choice",
    "pair_key": "C1",
    "payload": {
     "model": "jev-1.13.0",
     "state": {
      "질의": "배운 걸 점점 긴 간격을 두고 다시 떠올리는 공부법을 정리한 노트가 어디 있지?"
     },
     "questions": {
      "find": {
       "type": "choice",
       "instructions": "질의가 찾는 노트를 후보 중에서 하나 고르라. 각 선택지 설명은 그 노트의 요약이다. 질의가 찾는 노트가 후보에 없으면 '해당 없음'.",
       "criteria": {
        "망각 곡선 (Forgetting Curve)": "시간이 지나며 기억이 얼마나 빨리 줄어드는지 보여 주는 곡선과 그 실험 배경을 정리한 개념 노트.",
        "간격 반복 (Spaced Repetition)": "배운 내용을 점점 긴 간격을 두고 다시 떠올리는 학습 방법의 뜻, 유래, 비슷한 용어와의 차이를 정리한 용어 노트.",
        "주간 복습 루틴": "매주 한 번 지난 노트를 다시 읽고 서로 잇는 30분 절차와 체크리스트.",
        "분산 학습": "학습 시간을 여러 번으로 나누는 방식 전체를 가리키는 용어와 집중 학습과의 비교.",
        "인출 연습 (Retrieval Practice)": "다시 읽는 대신 기억에서 꺼내 보는 연습이 오래 남는 이유를 정리한 개념 노트.",
        "플래시카드 앱 비교": "카드형 복습 앱 세 개를 알림, 동기화, 가격 기준으로 비교한 메모.",
        "독서 노트 템플릿": "책을 읽으며 인용, 내 생각, 연결할 노트를 칸으로 나눠 적는 서식.",
        "집중 학습의 함정": "한 번에 몰아서 공부하면 당장은 잘 아는 것처럼 느껴지는 이유를 다룬 글 초안.",
        "해당 없음": "어느 후보도 질의가 찾는 노트가 아님"
       }
      }
     }
    },
    "payload_sha256": "ed7e3c30236c7629fadc0d1bf476aafdf1771ae79baf34f92cacdbc0f2512110",
    "state_sha256": "5949b69652cc2ed5174a32caf619276134fa355ee86de7b442b4ca5f3ace8c69",
    "options_revision": "332bdd6e9784245fe768f37c1e1687f10e068aa4f4d604ee8d8b571a5c14c697",
    "candidate_set_revision": "ba29e052325fb1cc3aaa0de10db982bfe34beb01aac1971f4167a21af406ad9c",
    "model_requested": "jev-1.13.0",
    "model_actual": "jev-1.13.0",
    "http": 200,
    "input_tokens": 342,
    "output_tokens": 64,
    "latency_ms": 512,
    "retries": 0,
    "attempts": [
     {
      "attempt": 1,
      "http": 200,
      "dur_s": 0.512,
      "error": null,
      "retry": false,
      "discarded": false
     }
    ],
    "est_tokens": 684,
    "error": null,
    "blocked": null,
    "response": {
     "choice": "간격 반복 (Spaced Repetition)",
     "confidence": 0.74,
     "probabilities": {
      "간격 반복 (Spaced Repetition)": 0.78,
      "분산 학습": 0.09,
      "인출 연습 (Retrieval Practice)": 0.06,
      "망각 곡선 (Forgetting Curve)": 0.03,
      "주간 복습 루틴": 0.01,
      "플래시카드 앱 비교": 0.01,
      "집중 학습의 함정": 0.01,
      "독서 노트 템플릿": 0.0,
      "해당 없음": 0.01
     }
    },
    "decision": "간격 반복 (Spaced Repetition)",
    "gate": {
     "min_top": 0.0,
     "min_margin": 0.0,
     "source": "jev-cmds argmax + boundary tie = 보류 (no cut)",
     "calibrated_revision": null
    },
    "abstain_keys": [
     "hold",
     "보류",
     "해당 없음"
    ],
    "dry_run": false,
    "synthetic": true
   },
   {
    "cond": "C1R",
    "order": "reversed",
    "qid": "find",
    "kind": "choice",
    "pair_key": "C1",
    "payload": {
     "model": "jev-1.13.0",
     "state": {
      "질의": "배운 걸 점점 긴 간격을 두고 다시 떠올리는 공부법을 정리한 노트가 어디 있지?"
     },
     "questions": {
      "find": {
       "type": "choice",
       "instructions": "질의가 찾는 노트를 후보 중에서 하나 고르라. 각 선택지 설명은 그 노트의 요약이다. 질의가 찾는 노트가 후보에 없으면 '해당 없음'.",
       "criteria": {
        "집중 학습의 함정": "한 번에 몰아서 공부하면 당장은 잘 아는 것처럼 느껴지는 이유를 다룬 글 초안.",
        "독서 노트 템플릿": "책을 읽으며 인용, 내 생각, 연결할 노트를 칸으로 나눠 적는 서식.",
        "플래시카드 앱 비교": "카드형 복습 앱 세 개를 알림, 동기화, 가격 기준으로 비교한 메모.",
        "인출 연습 (Retrieval Practice)": "다시 읽는 대신 기억에서 꺼내 보는 연습이 오래 남는 이유를 정리한 개념 노트.",
        "분산 학습": "학습 시간을 여러 번으로 나누는 방식 전체를 가리키는 용어와 집중 학습과의 비교.",
        "주간 복습 루틴": "매주 한 번 지난 노트를 다시 읽고 서로 잇는 30분 절차와 체크리스트.",
        "간격 반복 (Spaced Repetition)": "배운 내용을 점점 긴 간격을 두고 다시 떠올리는 학습 방법의 뜻, 유래, 비슷한 용어와의 차이를 정리한 용어 노트.",
        "망각 곡선 (Forgetting Curve)": "시간이 지나며 기억이 얼마나 빨리 줄어드는지 보여 주는 곡선과 그 실험 배경을 정리한 개념 노트.",
        "해당 없음": "어느 후보도 질의가 찾는 노트가 아님"
       }
      }
     }
    },
    "payload_sha256": "ed7e3c30236c7629fadc0d1bf476aafdf1771ae79baf34f92cacdbc0f2512110",
    "state_sha256": "5949b69652cc2ed5174a32caf619276134fa355ee86de7b442b4ca5f3ace8c69",
    "options_revision": "58d68b54f153ad44c88ad309edf43fdb320bd2fa7ed1eb09f50a10851d1d9514",
    "candidate_set_revision": "afb08e84ef647db52d2d4c630d30724a4d1a599fe855edbf50e05e69c9fd1acf",
    "model_requested": "jev-1.13.0",
    "model_actual": "jev-1.13.0",
    "http": 200,
    "input_tokens": 342,
    "output_tokens": 64,
    "latency_ms": 498,
    "retries": 0,
    "attempts": [
     {
      "attempt": 1,
      "http": 200,
      "dur_s": 0.498,
      "error": null,
      "retry": false,
      "discarded": false
     }
    ],
    "est_tokens": 684,
    "error": null,
    "blocked": null,
    "response": {
     "choice": "간격 반복 (Spaced Repetition)",
     "confidence": 0.67,
     "probabilities": {
      "간격 반복 (Spaced Repetition)": 0.71,
      "분산 학습": 0.12,
      "인출 연습 (Retrieval Practice)": 0.09,
      "망각 곡선 (Forgetting Curve)": 0.04,
      "주간 복습 루틴": 0.01,
      "플래시카드 앱 비교": 0.01,
      "집중 학습의 함정": 0.01,
      "독서 노트 템플릿": 0.0,
      "해당 없음": 0.01
     }
    },
    "decision": "간격 반복 (Spaced Repetition)",
    "gate": {
     "min_top": 0.0,
     "min_margin": 0.0,
     "source": "jev-cmds argmax + boundary tie = 보류 (no cut)",
     "calibrated_revision": null
    },
    "abstain_keys": [
     "hold",
     "보류",
     "해당 없음"
    ],
    "dry_run": false,
    "synthetic": true
   },
   {
    "cond": "C2",
    "order": "normal",
    "qid": null,
    "kind": "noul",
    "pair_key": "C2",
    "payload": {
     "model": "jev-1.13.0",
     "state": {
      "질의": "배운 걸 점점 긴 간격을 두고 다시 떠올리는 공부법을 정리한 노트가 어디 있지?"
     },
     "questions": {
      "c01": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 망각 곡선 (Forgetting Curve) / 요약: 시간이 지나며 기억이 얼마나 빨리 줄어드는지 보여 주는 곡선과 그 실험 배경을 정리한 개념 노트.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c02": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 간격 반복 (Spaced Repetition) / 요약: 배운 내용을 점점 긴 간격을 두고 다시 떠올리는 학습 방법의 뜻, 유래, 비슷한 용어와의 차이를 정리한 용어 노트.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c03": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 주간 복습 루틴 / 요약: 매주 한 번 지난 노트를 다시 읽고 서로 잇는 30분 절차와 체크리스트.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c04": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 분산 학습 / 요약: 학습 시간을 여러 번으로 나누는 방식 전체를 가리키는 용어와 집중 학습과의 비교.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c05": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 인출 연습 (Retrieval Practice) / 요약: 다시 읽는 대신 기억에서 꺼내 보는 연습이 오래 남는 이유를 정리한 개념 노트.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c06": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 플래시카드 앱 비교 / 요약: 카드형 복습 앱 세 개를 알림, 동기화, 가격 기준으로 비교한 메모.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c07": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 독서 노트 템플릿 / 요약: 책을 읽으며 인용, 내 생각, 연결할 노트를 칸으로 나눠 적는 서식.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c08": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 집중 학습의 함정 / 요약: 한 번에 몰아서 공부하면 당장은 잘 아는 것처럼 느껴지는 이유를 다룬 글 초안.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      }
     }
    },
    "payload_sha256": "739e237edd80b8760cc32d442ad090e1f3b8aa275fb1ea7897135494af20018b",
    "state_sha256": "5949b69652cc2ed5174a32caf619276134fa355ee86de7b442b4ca5f3ace8c69",
    "options_revision": null,
    "candidate_set_revision": null,
    "model_requested": "jev-1.13.0",
    "model_actual": "jev-1.13.0",
    "http": 200,
    "input_tokens": 574,
    "output_tokens": 96,
    "latency_ms": 541,
    "retries": 0,
    "attempts": [
     {
      "attempt": 1,
      "http": 200,
      "dur_s": 0.541,
      "error": null,
      "retry": false,
      "discarded": false
     }
    ],
    "est_tokens": 1149,
    "error": null,
    "blocked": null,
    "response": {
     "nouls": {
      "망각 곡선 (Forgetting Curve)": 0.18,
      "간격 반복 (Spaced Repetition)": 0.88,
      "주간 복습 루틴": 0.04,
      "분산 학습": 0.27,
      "인출 연습 (Retrieval Practice)": 0.41,
      "플래시카드 앱 비교": 0.03,
      "독서 노트 템플릿": 0.01,
      "집중 학습의 함정": 0.06
     }
    },
    "decision": "noul_set",
    "gate": {
     "min_top": 0.0,
     "min_margin": 0.0,
     "source": "jev-cmds argmax + boundary tie = 보류 (no cut)",
     "calibrated_revision": null
    },
    "abstain_keys": [
     "hold",
     "보류",
     "해당 없음"
    ],
    "dry_run": false,
    "synthetic": true,
    "noul_cut": 0.3,
    "keymap": {
     "c01": "망각 곡선 (Forgetting Curve)",
     "c02": "간격 반복 (Spaced Repetition)",
     "c03": "주간 복습 루틴",
     "c04": "분산 학습",
     "c05": "인출 연습 (Retrieval Practice)",
     "c06": "플래시카드 앱 비교",
     "c07": "독서 노트 템플릿",
     "c08": "집중 학습의 함정"
    }
   }
  ],
  "human_final": null,
  "human_note": null,
  "human_reviewed_at": null,
  "synthetic": true,
  "note": "합성 예시: 실제 노트, 경로, 호출 기록이 아니다. 확률, 토큰, 지연은 설명용으로 지어낸 값이다."
 },
 {
  "schema": "jev-cmds-shadow/1",
  "cmd": "retrieve",
  "run_id": "sample-retrieve-2",
  "ts": "2026-09-26T21:05:00+0900",
  "dry_run": false,
  "writes_vault": false,
  "input": {
   "query": "노트 제목을 한 문장 주장으로 짓는 이유를 정리한 노트",
   "collections": [
    "wiki"
   ],
   "k": 10,
   "keep_cut": 0.3,
   "reverse": true
  },
  "result": {
   "query": "노트 제목을 한 문장 주장으로 짓는 이유를 정리한 노트",
   "collections": [
    "wiki"
   ],
   "collections_measured": true,
   "candidates": [
    {
     "path": "예시/노트 이름 짓기 규칙.md",
     "title": "노트 이름 짓기 규칙",
     "label": "노트 이름 짓기 규칙",
     "collection": "wiki",
     "bm25_rank": 1,
     "vec_rank": 2,
     "fused_rank": 1,
     "desc_source": "description"
    },
    {
     "path": "예시/제목은 주장으로 짓는다.md",
     "title": "제목은 주장으로 짓는다",
     "label": "제목은 주장으로 짓는다",
     "collection": "wiki",
     "bm25_rank": 3,
     "vec_rank": 1,
     "fused_rank": 2,
     "desc_source": "description"
    },
    {
     "path": "예시/원자 노트 원칙.md",
     "title": "원자 노트 원칙",
     "label": "원자 노트 원칙",
     "collection": "wiki",
     "bm25_rank": 2,
     "vec_rank": 4,
     "fused_rank": 3,
     "desc_source": "description"
    },
    {
     "path": "예시/태그 정리 기준.md",
     "title": "태그 정리 기준",
     "label": "태그 정리 기준",
     "collection": "wiki",
     "bm25_rank": 5,
     "vec_rank": 5,
     "fused_rank": 4,
     "desc_source": "description"
    },
    {
     "path": "예시/에버그린 노트.md",
     "title": "에버그린 노트",
     "label": "에버그린 노트",
     "collection": "wiki",
     "bm25_rank": null,
     "vec_rank": 3,
     "fused_rank": 5,
     "desc_source": "description"
    },
    {
     "path": "예시/링크 먼저 쓰기.md",
     "title": "링크 먼저 쓰기",
     "label": "링크 먼저 쓰기",
     "collection": "wiki",
     "bm25_rank": 4,
     "vec_rank": null,
     "fused_rank": 6,
     "desc_source": "description"
    }
   ],
   "pool": {
    "bm25_nonempty": true,
    "fts_query": "\"노 트\" OR \"제 목\" OR \"문 장\" OR \"주 장\" OR \"짓 는\" OR \"이 유\" OR \"정 리 한\"",
    "vec_error": null,
    "filtered_counts": {},
    "n_candidates": 6
   },
   "choice": {
    "top_path": "예시/노트 이름 짓기 규칙.md",
    "probs": {
     "예시/노트 이름 짓기 규칙.md": 0.47,
     "예시/제목은 주장으로 짓는다.md": 0.42,
     "예시/원자 노트 원칙.md": 0.05,
     "예시/에버그린 노트.md": 0.03,
     "예시/링크 먼저 쓰기.md": 0.01,
     "예시/태그 정리 기준.md": 0.01,
     "해당 없음": 0.01
    },
    "reverse_top_path": "예시/제목은 주장으로 짓는다.md",
    "probs_reverse": {
     "예시/제목은 주장으로 짓는다.md": 0.52,
     "예시/노트 이름 짓기 규칙.md": 0.37,
     "예시/원자 노트 원칙.md": 0.05,
     "예시/에버그린 노트.md": 0.03,
     "예시/링크 먼저 쓰기.md": 0.01,
     "예시/태그 정리 기준.md": 0.01,
     "해당 없음": 0.01
    },
    "decision": "보류",
    "rule": "order disagreement: normal '노트 이름 짓기 규칙' vs reversed '제목은 주장으로 짓는다'",
    "top_label": "노트 이름 짓기 규칙"
   },
   "keep": [
    {
     "path": "예시/제목은 주장으로 짓는다.md",
     "title": "제목은 주장으로 짓는다",
     "p": 0.79
    },
    {
     "path": "예시/노트 이름 짓기 규칙.md",
     "title": "노트 이름 짓기 규칙",
     "p": 0.44
    }
   ],
   "keep_cut": 0.3,
   "keep_rule": "keep iff noul > 0.3 (strict; equal = not kept)",
   "model": "jev-1.13.0",
   "input_tokens": 884,
   "latency_ms": 1508,
   "dry_run": false,
   "query_redactions": [],
   "error": null
  },
  "calls": [
   {
    "cond": "C1",
    "order": "normal",
    "qid": "find",
    "kind": "choice",
    "pair_key": "C1",
    "payload": {
     "model": "jev-1.13.0",
     "state": {
      "질의": "노트 제목을 한 문장 주장으로 짓는 이유를 정리한 노트"
     },
     "questions": {
      "find": {
       "type": "choice",
       "instructions": "질의가 찾는 노트를 후보 중에서 하나 고르라. 각 선택지 설명은 그 노트의 요약이다. 질의가 찾는 노트가 후보에 없으면 '해당 없음'.",
       "criteria": {
        "노트 이름 짓기 규칙": "파일명에 날짜, 주제, 형식을 넣는 순서와 쓰지 않는 문자를 정리한 규칙 모음.",
        "제목은 주장으로 짓는다": "노트 제목을 명사가 아니라 한 문장 주장으로 쓰면 다시 찾고 연결하기 쉬워지는 이유를 정리한 노트.",
        "원자 노트 원칙": "노트 하나에 생각 하나만 담는 원칙과 그 장단점.",
        "태그 정리 기준": "태그를 주제, 상태, 형식 세 종류로 나누는 기준.",
        "에버그린 노트": "시간이 지나도 계속 다듬어 쓰는 노트라는 용어의 뜻과 특징.",
        "링크 먼저 쓰기": "새 노트를 쓰기 전에 연결할 노트부터 찾는 습관에 대한 메모.",
        "해당 없음": "어느 후보도 질의가 찾는 노트가 아님"
       }
      }
     }
    },
    "payload_sha256": "91c3918f049023137b2b5451dcae33c64921a65f227e4de792e8b823975248d8",
    "state_sha256": "571dc638fb39b218a2046247001dde8746a341c4e4c592b6eded7fdd60d876b7",
    "options_revision": "988d54364bbb909f3d589008ec3600a0449366cbfd23a08a5544f6d5d54ab659",
    "candidate_set_revision": "c9c48790113d8321b9fdb6db98b40e1bff7749a414e3978dc0905901a0dc02de",
    "model_requested": "jev-1.13.0",
    "model_actual": "jev-1.13.0",
    "http": 200,
    "input_tokens": 242,
    "output_tokens": 64,
    "latency_ms": 488,
    "retries": 0,
    "attempts": [
     {
      "attempt": 1,
      "http": 200,
      "dur_s": 0.488,
      "error": null,
      "retry": false,
      "discarded": false
     }
    ],
    "est_tokens": 485,
    "error": null,
    "blocked": null,
    "response": {
     "choice": "노트 이름 짓기 규칙",
     "confidence": 0.43,
     "probabilities": {
      "노트 이름 짓기 규칙": 0.47,
      "제목은 주장으로 짓는다": 0.42,
      "원자 노트 원칙": 0.05,
      "에버그린 노트": 0.03,
      "링크 먼저 쓰기": 0.01,
      "태그 정리 기준": 0.01,
      "해당 없음": 0.01
     }
    },
    "decision": "노트 이름 짓기 규칙",
    "gate": {
     "min_top": 0.0,
     "min_margin": 0.0,
     "source": "jev-cmds argmax + boundary tie = 보류 (no cut)",
     "calibrated_revision": null
    },
    "abstain_keys": [
     "hold",
     "보류",
     "해당 없음"
    ],
    "dry_run": false,
    "synthetic": true
   },
   {
    "cond": "C1R",
    "order": "reversed",
    "qid": "find",
    "kind": "choice",
    "pair_key": "C1",
    "payload": {
     "model": "jev-1.13.0",
     "state": {
      "질의": "노트 제목을 한 문장 주장으로 짓는 이유를 정리한 노트"
     },
     "questions": {
      "find": {
       "type": "choice",
       "instructions": "질의가 찾는 노트를 후보 중에서 하나 고르라. 각 선택지 설명은 그 노트의 요약이다. 질의가 찾는 노트가 후보에 없으면 '해당 없음'.",
       "criteria": {
        "링크 먼저 쓰기": "새 노트를 쓰기 전에 연결할 노트부터 찾는 습관에 대한 메모.",
        "에버그린 노트": "시간이 지나도 계속 다듬어 쓰는 노트라는 용어의 뜻과 특징.",
        "태그 정리 기준": "태그를 주제, 상태, 형식 세 종류로 나누는 기준.",
        "원자 노트 원칙": "노트 하나에 생각 하나만 담는 원칙과 그 장단점.",
        "제목은 주장으로 짓는다": "노트 제목을 명사가 아니라 한 문장 주장으로 쓰면 다시 찾고 연결하기 쉬워지는 이유를 정리한 노트.",
        "노트 이름 짓기 규칙": "파일명에 날짜, 주제, 형식을 넣는 순서와 쓰지 않는 문자를 정리한 규칙 모음.",
        "해당 없음": "어느 후보도 질의가 찾는 노트가 아님"
       }
      }
     }
    },
    "payload_sha256": "91c3918f049023137b2b5451dcae33c64921a65f227e4de792e8b823975248d8",
    "state_sha256": "571dc638fb39b218a2046247001dde8746a341c4e4c592b6eded7fdd60d876b7",
    "options_revision": "892983166c40b71f396af0199d5fd8329577b069a3accb2a208ab8faa4b938ba",
    "candidate_set_revision": "16210193699f7a8a3ebdea76c8deb7ccf31a68a4097d2fc9c982bce8b57c2a90",
    "model_requested": "jev-1.13.0",
    "model_actual": "jev-1.13.0",
    "http": 200,
    "input_tokens": 242,
    "output_tokens": 64,
    "latency_ms": 503,
    "retries": 0,
    "attempts": [
     {
      "attempt": 1,
      "http": 200,
      "dur_s": 0.503,
      "error": null,
      "retry": false,
      "discarded": false
     }
    ],
    "est_tokens": 485,
    "error": null,
    "blocked": null,
    "response": {
     "choice": "제목은 주장으로 짓는다",
     "confidence": 0.48,
     "probabilities": {
      "제목은 주장으로 짓는다": 0.52,
      "노트 이름 짓기 규칙": 0.37,
      "원자 노트 원칙": 0.05,
      "에버그린 노트": 0.03,
      "링크 먼저 쓰기": 0.01,
      "태그 정리 기준": 0.01,
      "해당 없음": 0.01
     }
    },
    "decision": "제목은 주장으로 짓는다",
    "gate": {
     "min_top": 0.0,
     "min_margin": 0.0,
     "source": "jev-cmds argmax + boundary tie = 보류 (no cut)",
     "calibrated_revision": null
    },
    "abstain_keys": [
     "hold",
     "보류",
     "해당 없음"
    ],
    "dry_run": false,
    "synthetic": true
   },
   {
    "cond": "C2",
    "order": "normal",
    "qid": null,
    "kind": "noul",
    "pair_key": "C2",
    "payload": {
     "model": "jev-1.13.0",
     "state": {
      "질의": "노트 제목을 한 문장 주장으로 짓는 이유를 정리한 노트"
     },
     "questions": {
      "c01": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 노트 이름 짓기 규칙 / 요약: 파일명에 날짜, 주제, 형식을 넣는 순서와 쓰지 않는 문자를 정리한 규칙 모음.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c02": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 제목은 주장으로 짓는다 / 요약: 노트 제목을 명사가 아니라 한 문장 주장으로 쓰면 다시 찾고 연결하기 쉬워지는 이유를 정리한 노트.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c03": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 원자 노트 원칙 / 요약: 노트 하나에 생각 하나만 담는 원칙과 그 장단점.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c04": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 태그 정리 기준 / 요약: 태그를 주제, 상태, 형식 세 종류로 나누는 기준.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c05": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 에버그린 노트 / 요약: 시간이 지나도 계속 다듬어 쓰는 노트라는 용어의 뜻과 특징.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c06": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 링크 먼저 쓰기 / 요약: 새 노트를 쓰기 전에 연결할 노트부터 찾는 습관에 대한 메모.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      }
     }
    },
    "payload_sha256": "adf5ab438ecdc5cb1b2a674112970013ef2dde3184ec60e1e33c724339e698d0",
    "state_sha256": "571dc638fb39b218a2046247001dde8746a341c4e4c592b6eded7fdd60d876b7",
    "options_revision": null,
    "candidate_set_revision": null,
    "model_requested": "jev-1.13.0",
    "model_actual": "jev-1.13.0",
    "http": 200,
    "input_tokens": 400,
    "output_tokens": 72,
    "latency_ms": 517,
    "retries": 0,
    "attempts": [
     {
      "attempt": 1,
      "http": 200,
      "dur_s": 0.517,
      "error": null,
      "retry": false,
      "discarded": false
     }
    ],
    "est_tokens": 799,
    "error": null,
    "blocked": null,
    "response": {
     "nouls": {
      "노트 이름 짓기 규칙": 0.44,
      "제목은 주장으로 짓는다": 0.79,
      "원자 노트 원칙": 0.12,
      "태그 정리 기준": 0.02,
      "에버그린 노트": 0.07,
      "링크 먼저 쓰기": 0.05
     }
    },
    "decision": "noul_set",
    "gate": {
     "min_top": 0.0,
     "min_margin": 0.0,
     "source": "jev-cmds argmax + boundary tie = 보류 (no cut)",
     "calibrated_revision": null
    },
    "abstain_keys": [
     "hold",
     "보류",
     "해당 없음"
    ],
    "dry_run": false,
    "synthetic": true,
    "noul_cut": 0.3,
    "keymap": {
     "c01": "노트 이름 짓기 규칙",
     "c02": "제목은 주장으로 짓는다",
     "c03": "원자 노트 원칙",
     "c04": "태그 정리 기준",
     "c05": "에버그린 노트",
     "c06": "링크 먼저 쓰기"
    }
   }
  ],
  "human_final": null,
  "human_note": null,
  "human_reviewed_at": null,
  "synthetic": true,
  "note": "합성 예시: 실제 노트, 경로, 호출 기록이 아니다. 확률, 토큰, 지연은 설명용으로 지어낸 값이다."
 },
 {
  "schema": "jev-cmds-shadow/1",
  "cmd": "retrieve",
  "run_id": "sample-retrieve-3",
  "ts": "2026-09-26T21:10:00+0900",
  "dry_run": false,
  "writes_vault": false,
  "input": {
   "query": "회의가 끝나자마자 정한 것과 할 일을 담당자, 기한과 함께 뽑아내는 순서를 정리해 둔 노트가 어디 있더라?",
   "collections": [
    "wiki"
   ],
   "k": 10,
   "keep_cut": 0.3,
   "reverse": true
  },
  "result": {
   "query": "회의가 끝나자마자 정한 것과 할 일을 담당자, 기한과 함께 뽑아내는 순서를 정리해 둔 노트가 어디 있더라?",
   "collections": [
    "wiki"
   ],
   "collections_measured": true,
   "candidates": [
    {
     "path": "예시/액션 아이템 (Action Item).md",
     "title": "액션 아이템 (Action Item)",
     "label": "액션 아이템 (Action Item)",
     "collection": "wiki",
     "bm25_rank": 1,
     "vec_rank": 1,
     "fused_rank": 1,
     "desc_source": "description"
    },
    {
     "path": "예시/결정 로그 (Decision Log).md",
     "title": "결정 로그 (Decision Log)",
     "label": "결정 로그 (Decision Log)",
     "collection": "wiki",
     "bm25_rank": 2,
     "vec_rank": 3,
     "fused_rank": 2,
     "desc_source": "description"
    },
    {
     "path": "예시/칸반 보드 사용기.md",
     "title": "칸반 보드 사용기",
     "label": "칸반 보드 사용기",
     "collection": "wiki",
     "bm25_rank": null,
     "vec_rank": 2,
     "fused_rank": 3,
     "desc_source": "description"
    },
    {
     "path": "예시/주간 회고 서식.md",
     "title": "주간 회고 서식",
     "label": "주간 회고 서식",
     "collection": "wiki",
     "bm25_rank": 3,
     "vec_rank": null,
     "fused_rank": 4,
     "desc_source": "description"
    },
    {
     "path": "예시/데일리 노트 운영 원칙.md",
     "title": "데일리 노트 운영 원칙",
     "label": "데일리 노트 운영 원칙",
     "collection": "wiki",
     "bm25_rank": 4,
     "vec_rank": null,
     "fused_rank": 5,
     "desc_source": "description"
    },
    {
     "path": "예시/음성 메모 정리 순서.md",
     "title": "음성 메모 정리 순서",
     "label": "음성 메모 정리 순서",
     "collection": "wiki",
     "bm25_rank": null,
     "vec_rank": 4,
     "fused_rank": 6,
     "desc_source": "description"
    }
   ],
   "pool": {
    "bm25_nonempty": true,
    "fts_query": "\"회 의\" OR \"끝 나 자 마 자\" OR \"정 한\" OR \"것 과\" OR \"일 을\" OR \"담 당 자\" OR \"기 한\" OR \"함 께\" OR \"뽑 아 내\" OR \"순 서\" OR \"정 리 해\" OR \"노 트\" OR \"어 디\" OR \"있 더 라\"",
    "vec_error": null,
    "filtered_counts": {
     "bm25:privacy rule: conversation_or_meeting_derived": 2,
     "vec:privacy rule: conversation_or_meeting_derived": 2
    },
    "n_candidates": 6
   },
   "choice": {
    "top_path": null,
    "probs": {},
    "reverse_top_path": null,
    "probs_reverse": {},
    "decision": "보류",
    "rule": "no Jev answer (fail-open)"
   },
   "keep": [],
   "keep_cut": 0.3,
   "keep_rule": "keep iff noul > 0.3 (strict; equal = not kept)",
   "model": null,
   "input_tokens": 0,
   "latency_ms": 0,
   "dry_run": false,
   "query_redactions": [],
   "error": "payload blocked"
  },
  "calls": [
   {
    "cond": "C1",
    "order": "normal",
    "qid": "find",
    "kind": "choice",
    "pair_key": "C1",
    "payload": {
     "model": "jev-1.13.0",
     "state": {
      "질의": "회의가 끝나자마자 정한 것과 할 일을 담당자, 기한과 함께 뽑아내는 순서를 정리해 둔 노트가 어디 있더라?"
     },
     "questions": {
      "find": {
       "type": "choice",
       "instructions": "질의가 찾는 노트를 후보 중에서 하나 고르라. 각 선택지 설명은 그 노트의 요약이다. 질의가 찾는 노트가 후보에 없으면 '해당 없음'.",
       "criteria": {
        "액션 아이템 (Action Item)": "해야 할 일을 담당자, 기한, 완료 기준과 함께 적은 항목이라는 용어의 정의. 단순한 할 일 목록과 무엇이 다른지 정리했다.",
        "결정 로그 (Decision Log)": "중요한 결정을 날짜, 검토한 선택지, 고른 이유와 함께 남기는 기록 방식과 그 효과.",
        "칸반 보드 사용기": "할 일을 카드로 만들어 진행 단계별로 옮기며 관리해 본 석 달의 기록과 소감.",
        "주간 회고 서식": "한 주를 돌아보는 질문 다섯 개와 다음 주 우선순위 세 개를 적는 서식.",
        "데일리 노트 운영 원칙": "매일 노트에 무엇을 쓰고 무엇을 쓰지 않을지 정한 개인 원칙과 그 이유.",
        "음성 메모 정리 순서": "녹음한 음성 메모를 글로 옮긴 뒤 요약하고 할 일을 떼어 내는 순서.",
        "해당 없음": "어느 후보도 질의가 찾는 노트가 아님"
       }
      }
     }
    },
    "payload_sha256": "51cbdc48ace4a4a63276f1b644675a96d316efbb76f690a65beaa8e9af4e76a0",
    "state_sha256": "19e3ef2597bc94a6e68cdd7a9eff50e5dad8d80faa9e227daf5d670e10d6b754",
    "options_revision": "8116e798b9970387bcb7837218aad02bd6567f6b2d131280cb9f36ff39a9e4db",
    "candidate_set_revision": "515917eedb5636c8fc39cf354ccc7b6796235351125719310061b958340b71bc",
    "model_requested": "jev-1.13.0",
    "model_actual": null,
    "http": null,
    "input_tokens": 0,
    "output_tokens": 0,
    "latency_ms": null,
    "retries": 0,
    "attempts": [],
    "est_tokens": null,
    "error": "payload blocked before send (nothing sent)",
    "blocked": [
     "privacy rule 'conversation_or_meeting_derived' in state.질의"
    ],
    "response": null,
    "decision": null,
    "gate": {
     "min_top": 0.0,
     "min_margin": 0.0,
     "source": "jev-cmds argmax + boundary tie = 보류 (no cut)",
     "calibrated_revision": null
    },
    "abstain_keys": [
     "hold",
     "보류",
     "해당 없음"
    ],
    "dry_run": false,
    "synthetic": true
   },
   {
    "cond": "C1R",
    "order": "reversed",
    "qid": "find",
    "kind": "choice",
    "pair_key": "C1",
    "payload": {
     "model": "jev-1.13.0",
     "state": {
      "질의": "회의가 끝나자마자 정한 것과 할 일을 담당자, 기한과 함께 뽑아내는 순서를 정리해 둔 노트가 어디 있더라?"
     },
     "questions": {
      "find": {
       "type": "choice",
       "instructions": "질의가 찾는 노트를 후보 중에서 하나 고르라. 각 선택지 설명은 그 노트의 요약이다. 질의가 찾는 노트가 후보에 없으면 '해당 없음'.",
       "criteria": {
        "음성 메모 정리 순서": "녹음한 음성 메모를 글로 옮긴 뒤 요약하고 할 일을 떼어 내는 순서.",
        "데일리 노트 운영 원칙": "매일 노트에 무엇을 쓰고 무엇을 쓰지 않을지 정한 개인 원칙과 그 이유.",
        "주간 회고 서식": "한 주를 돌아보는 질문 다섯 개와 다음 주 우선순위 세 개를 적는 서식.",
        "칸반 보드 사용기": "할 일을 카드로 만들어 진행 단계별로 옮기며 관리해 본 석 달의 기록과 소감.",
        "결정 로그 (Decision Log)": "중요한 결정을 날짜, 검토한 선택지, 고른 이유와 함께 남기는 기록 방식과 그 효과.",
        "액션 아이템 (Action Item)": "해야 할 일을 담당자, 기한, 완료 기준과 함께 적은 항목이라는 용어의 정의. 단순한 할 일 목록과 무엇이 다른지 정리했다.",
        "해당 없음": "어느 후보도 질의가 찾는 노트가 아님"
       }
      }
     }
    },
    "payload_sha256": "51cbdc48ace4a4a63276f1b644675a96d316efbb76f690a65beaa8e9af4e76a0",
    "state_sha256": "19e3ef2597bc94a6e68cdd7a9eff50e5dad8d80faa9e227daf5d670e10d6b754",
    "options_revision": "36aaff8d64094d1fcadd6a1d8f14b855717f6bd448a94788603b12b0cfa04290",
    "candidate_set_revision": "28d69667dfdbfbf84ff82a42de78bf8356c1866b26518dd358a60f173ab88d84",
    "model_requested": "jev-1.13.0",
    "model_actual": null,
    "http": null,
    "input_tokens": 0,
    "output_tokens": 0,
    "latency_ms": null,
    "retries": 0,
    "attempts": [],
    "est_tokens": null,
    "error": "not sent: stopped earlier (payload blocked)",
    "blocked": null,
    "response": null,
    "decision": null,
    "gate": {
     "min_top": 0.0,
     "min_margin": 0.0,
     "source": "jev-cmds argmax + boundary tie = 보류 (no cut)",
     "calibrated_revision": null
    },
    "abstain_keys": [
     "hold",
     "보류",
     "해당 없음"
    ],
    "dry_run": false,
    "synthetic": true
   },
   {
    "cond": "C2",
    "order": "normal",
    "qid": null,
    "kind": "noul",
    "pair_key": "C2",
    "payload": {
     "model": "jev-1.13.0",
     "state": {
      "질의": "회의가 끝나자마자 정한 것과 할 일을 담당자, 기한과 함께 뽑아내는 순서를 정리해 둔 노트가 어디 있더라?"
     },
     "questions": {
      "c01": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 액션 아이템 (Action Item) / 요약: 해야 할 일을 담당자, 기한, 완료 기준과 함께 적은 항목이라는 용어의 정의. 단순한 할 일 목록과 무엇이 다른지 정리했다.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c02": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 결정 로그 (Decision Log) / 요약: 중요한 결정을 날짜, 검토한 선택지, 고른 이유와 함께 남기는 기록 방식과 그 효과.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c03": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 칸반 보드 사용기 / 요약: 할 일을 카드로 만들어 진행 단계별로 옮기며 관리해 본 석 달의 기록과 소감.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c04": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 주간 회고 서식 / 요약: 한 주를 돌아보는 질문 다섯 개와 다음 주 우선순위 세 개를 적는 서식.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c05": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 데일리 노트 운영 원칙 / 요약: 매일 노트에 무엇을 쓰고 무엇을 쓰지 않을지 정한 개인 원칙과 그 이유.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      },
      "c06": {
       "type": "noul",
       "instructions": "후보 노트 — 제목: 음성 메모 정리 순서 / 요약: 녹음한 음성 메모를 글로 옮긴 뒤 요약하고 할 일을 떼어 내는 순서.\n이 후보 노트가 state의 질의가 찾는 바로 그 노트인가?"
      }
     }
    },
    "payload_sha256": "1e2f677c6f9064c9e26ee6712837d2f8ee25bd29ee14b1354863a133d526fa5f",
    "state_sha256": "19e3ef2597bc94a6e68cdd7a9eff50e5dad8d80faa9e227daf5d670e10d6b754",
    "options_revision": null,
    "candidate_set_revision": null,
    "model_requested": "jev-1.13.0",
    "model_actual": null,
    "http": null,
    "input_tokens": 0,
    "output_tokens": 0,
    "latency_ms": null,
    "retries": 0,
    "attempts": [],
    "est_tokens": null,
    "error": "not sent: stopped earlier (payload blocked)",
    "blocked": null,
    "response": null,
    "decision": null,
    "gate": {
     "min_top": 0.0,
     "min_margin": 0.0,
     "source": "jev-cmds argmax + boundary tie = 보류 (no cut)",
     "calibrated_revision": null
    },
    "abstain_keys": [
     "hold",
     "보류",
     "해당 없음"
    ],
    "dry_run": false,
    "synthetic": true,
    "noul_cut": 0.3,
    "keymap": {
     "c01": "액션 아이템 (Action Item)",
     "c02": "결정 로그 (Decision Log)",
     "c03": "칸반 보드 사용기",
     "c04": "주간 회고 서식",
     "c05": "데일리 노트 운영 원칙",
     "c06": "음성 메모 정리 순서"
    }
   }
  ],
  "human_final": null,
  "human_note": null,
  "human_reviewed_at": null,
  "synthetic": true,
  "note": "합성 예시: 실제 노트, 경로, 호출 기록이 아니다. 확률, 토큰, 지연은 설명용으로 지어낸 값이다."
 }
]
