보고서 목적
이 보고서는 Sanctum에서 Graphify graph가 stale하거나 부분 갱신에 실패할 때 발생할 운영 리스크를 정리한다. 목적은 Graphify를 안전하게 쓰기 위한 rebuild policy, freshness gate, handoff rule, write boundary rule을 결정하는 것이다.
핵심 결론
Graphify의 가장 큰 위험은 graph가 틀리는 것 자체가 아니라 틀린 graph가 최신 사실처럼 사용되는 것이다.
- Graphify는 context router이며 SSOT가 아니다.
- rename/delete/move, branch switch, merge/rebase, ignore rule 변경, shared
contracts/변경, semantic extraction 실패는 drift trigger다. - 초기 pilot은 root graph를 기본으로 하고 incremental update는 편의 기능으로만 사용한다.
- main/nightly 또는 canonical artifact 승격에는 clean full build가 필요하다.
- write boundary는 freshness와 무관하게 runtime allowlist와 diff guard가 강제한다.
- drift가 의심되면 Graphify를 candidate-only로 낮추고 source-first verification을 수행한다.
Drift 시나리오
Rename은 old path나 semantic role을 잘못 이어줄 수 있고, Delete는 삭제된 파일이나 generated summary를 false dependency로 남길 수 있다. Move는 ownership, package boundary, test scope 변경을 동반할 수 있다. Branch switch와 merge/rebase는 다른 checkout의 graph를 현재 사실처럼 만들 수 있다. Ignore changes는 scan coverage를 바꾸고, shared files는 service-local update에서 누락될 수 있다. Rust macro, dynamic import, generated binding, trait dispatch, config-driven routing은 semantic extraction failure에 취약하다.
Sanctum 적용 해석
contracts/ 변경 하나가 wallet-api, kms-api, hd-manager, Rust MPC, root/e2e test에 fan-out될 수 있다. Rust MPC 영역의 move나 rename은 protocol ownership 변화를 의미할 수 있다. 따라서 incremental update는 성능 최적화로만 보고 운영 판단은 clean build, source inspection, service context pack, 테스트 결과와 결합해야 한다.
운영 판단
Full root graph rebuild 대상
- branch switch, merge 완료, rebase 완료
- ignore rule 변경, root
AGENTS.md변경 contracts/변경, package/workspace manifest 변경- e2e test structure 변경, Graphify schema 또는 version 변경
Affected scan-root rebuild 허용 대상
- service 내부 code/test/docs edit
- ownership 변화가 없는 service 내부 rename/move
Incremental update만으로 처리하면 안 되는 대상
- service 간 move, downstream impact가 불명확한 delete
- shared file 변경, conflict resolution이 있었던 merge
- semantic extraction confidence가 낮은 critical flow
Freshness gate
Worker는 graph branch, source commit, dirty working tree, scan root, ignore rules hash, validation state를 확인해야 한다. 하나라도 불명확하면 Graphify 결과는 hint로만 사용하고 실제 파일 inspection을 필수화한다.
리스크와 가드레일
핵심 리스크는 stale graph false confidence, incremental update의 cross-service impact 누락, rename/move로 인한 ownership assumption 붕괴, branch graph contamination, generated summary의 shadow SSOT화, workspace separation을 enforcement로 착각하는 것이다. 가드레일은 graph metadata schema, shared file registry, derived index 표시, 변경 전 service AGENTS.md와 llm-context/ 확인, diff guard, boundary 밖 handoff다.
체크리스트
- Graphify query 전 branch, commit, working tree, scan-root, ignore rules, validation state를 확인한다.
- Incremental update 전 service-local 여부, rename/delete/move, shared file, merge/rebase, conflict resolution, semantic extraction 위험을 확인한다.
- Worker 변경 전 service
AGENTS.md, servicellm-context/, canonicalcontracts/mapping, write allowlist, handoff 필요성을 확인한다.