스펙 frontmatter에서 parent만 수동 관리하고 children은 스크립트가 자동 계산한다. staleness는 review_at 필드 대신 문서 내 History 섹션으로 관리한다.
---
id: L2-007
title: "로컬 drift 감지"
type: spec
level: L2
status: planned # planned | done | discarded
parent: L1-002
related_decisions: [042, 044]
created: 2026-04-16
---양방향 수동 관리 시 불일치 리스크가 높음 — L2-007의 parent를 L1-002에서 L1-003으로 바꿨는데 L1-002의 children에서 L2-007을 빼는 걸 잊으면 RTM이 깨짐. parent만 수동이면 진실이 하나(parent 필드)이고, children은 그로부터 파생되므로 불일치가 구조적으로 불가능.
review_at은 "다음 리뷰 예정일"이라는 단일 데이터포인트에 불과. 문서의 전체 이력(언제 만들었는지, 언제 리뷰했는지, 무슨 변경이 있었는지)을 History 로그로 관리하면 staleness 판단에 더 풍부한 정보를 제공. 마지막 reviewed 엔트리의 날짜만 봐도 staleness를 판단할 수 있음.
문서 하단에 위치. 로그 타입:
created— 문서 최초 생성 (scaffold 자동)reviewed— 리뷰/constitution check 통과done— planned → done 전환discarded— planned → discarded 전환archived— archive 처리note— 기타 (스펙 의미 변경, 참고사항 등)
"updated"는 "뭘 업데이트했는지"를 안 담으므로, 어차피 설명을 써야 하면 note로 충분. "오타 수정도 updated인가, 전면 재작성도 updated인가" 같은 기록 기준 모호성도 제거됨.
## History
- 2026-04-16 created: 초기 작성
- 2026-04-17 note: Input 섹션에 timeout 파라미터 추가 (L3-012 반영)
- 2026-04-20 reviewed: constitution check 통과
- 2026-04-22 done: PR #42 merge