Sanctum SSOT Storage Policy 향상 보고서

보고서 목적

이 보고서는 Sanctum LLM 운영에서 어떤 지식이 진짜 원본인지, 어떤 지식이 탐색 또는 파생 계층인지 구분하기 위한 의사결정 문서다. 원본 sanctum-ssot-storage-policy.mdcontracts/, repo Markdown, Notion, RAG, Graphify, Derived Knowledge의 권위 차이를 정리했다. 이 보고서는 그 결론을 실제 서비스 작업자 운영 규칙으로 변환한다.

핵심 결론

Sanctum의 SSOT는 사람이 읽고 리뷰하며 diff로 검증할 수 있는 canonical 문서와 코드/계약 소스에 있어야 한다. Graphify graph, RAG DB, 임베딩, 자동 요약, LLM 분석 결과는 SSOT가 아니라 파생 인덱스 또는 Derived Knowledge다.

  • contracts/는 서비스 간 계약의 canonical SSOT다.
  • root 및 service AGENTS.md는 worker 실행 규칙과 작업 경계의 canonical 운영 SSOT다.
  • service llm-context/는 worker가 반복적으로 읽는 실행 문맥이다.
  • Notion은 human-facing product/system/runbook 포털로 유지하되 worker write boundary의 직접 권위가 되면 안 된다.
  • Graphify는 navigation/context-router이며 SSOT나 write authorization engine이 아니다.
  • RAG는 evidence retrieval cache이며 canonical source를 대신하지 않는다.
  • Derived Knowledge는 conclusion, reasoning, confidence, validation state, stale condition, source link를 포함해야 한다.

원본 문서의 주요 내용

Sanctum 지식 계층은 canonical SSOT, Derived Knowledge, retrieval/navigation layer로 나뉜다. Canonical SSOT에는 contracts/, root/service AGENTS.md, service llm-context/, 사람 중심 Notion portal이 포함된다. Derived Knowledge는 wallet-api 요청이 kms-api, hd-manager, MPC 계층을 거치는 방식 같은 유용한 요약이지만 원본은 아니다. RAG는 근거 후보를 찾고 Graphify는 관련 파일과 서비스 관계를 찾지만 무엇이 사실인지 또는 어디를 쓸 수 있는지 결정해서는 안 된다.

Sanctum 적용 해석

Sanctum에서는 계약과 실행 문맥이 섞이면 위험하다. wallet-api worker가 kms-api 응답 schema를 service-local 문서에 복제해 두면 이후 contracts/가 바뀌어도 낡은 복제본을 기준으로 구현을 수정할 수 있다. 따라서 service llm-context/contracts.md는 계약 내용을 복사하지 않고 canonical contracts/ 경로, 사용 위치, handoff owner, 검증 조건만 기록해야 한다.

kms-api는 key management와 signing boundary를 다룰 가능성이 높으므로 Notion 설명, RAG 검색 결과, Graphify edge만으로 key behavior를 바꾸면 안 된다. 반드시 canonical contract와 service owner review 또는 root/e2e handoff가 필요하다.

hd-manager는 wallet derivation과 downstream MPC 흐름의 중간 경계다. Flow 요약도 원본은 아니며 실제 계약은 contracts/, 실제 실행 경계는 AGENTS.md, 실제 검증은 service test와 e2e test가 판단한다. Rust MPC 계층의 protocol behavior는 canonical protocol contract와 e2e 검증을 요구해야 한다.

운영 판단

지식 유형Canonical 위치파생/보조 위치운영 규칙
서비스 간 계약contracts/Graphify edges, RAG chunks, service contract map복제 금지, 변경 시 proposal/handoff
worker 실행 규칙root/service AGENTS.mdonboarding 요약runtime allowlist와 diff guard로 집행
서비스 실행 문맥service llm-context/Derived service summary실제 명령/경로는 repo 검증 후 확정
human overviewNotion 및 필요한 repo mirrorRAG indexworker-critical 내용은 repo-local로 제공
flow/e2e 판단root/e2e docs와 testsGraphify route, flow summarycross-service 변경은 root/e2e agent 담당
분석 결론Derived Knowledge storeRAG indexconfidence/stale/source 필수

핵심은 원본을 사람이 리뷰 가능한 곳에 두고, 자동화 도구는 원본을 찾는 데만 쓰는 것이다.

리스크와 가드레일

  • Notion-only SSOT 위험: worker-critical 정책은 repo Markdown으로 mirror해야 한다.
  • Repo-only SSOT 위험: product/operation owner가 문서를 유지하지 않을 수 있으므로 Notion은 사람용 상위 포털로 유지한다.
  • Contract duplication 위험: service contracts.md는 복제본이 아니라 pointer 문서여야 한다.
  • RAG truth 위험: retrieval score는 truth score가 아니다. 최종 판단 전 canonical file direct read가 필요하다.
  • Graphify authority 위험: Graphify drift가 write boundary를 잘못 확장할 수 있다.
  • Codex App workspace 위험: workspace 분리는 risk reduction일 뿐 hard write boundary가 아니다.
  • Derived summary laundering 위험: 재요약 과정에서 source와 confidence가 사라질 수 있다.

실행 체크리스트

  • contracts/를 contract-only canonical 영역으로 선언한다.
  • root/service AGENTS.md에 write/read/propose-only 경계를 명시한다.
  • 각 service에 llm-context/service.md, commands.md, test-scope.md, e2e-role.md, contracts.md, dependency-stubs.md를 둔다.
  • service contracts.md에는 canonical contract path와 사용 위치만 기록한다.
  • Derived Knowledge에는 confidence, validation state, stale condition, source link를 포함한다.
  • Graphify/RAG 문서에 SSOT 아님을 명시한다.
  • discord-codex-bot runtime에서 write allowlist와 diff guard를 적용한다.
  • contract 변경은 service worker 직접 수정이 아니라 proposal 또는 root/e2e handoff로 시작한다.

관련 주제 연결

이 보고서는 sanctum-llm-doc-folder-structure.md의 폴더 설계, sanctum-contracts-folder-role.md의 contract SSOT 원칙, sanctum-service-context-pack-design.md의 service worker 운영 설계와 직접 연결된다. 또한 20번 Graphify 평가, 40번 worker operations, 50번 Codex App/runtime boundary 주제의 write allowlist, diff guard, workspace correction을 전제로 한다.