RFC‑REG‑0004: 회랑 이벤트를 위한 레지스트리 인덱서
제목: 회랑 레지스트리 인덱서
상태: 초안
저자: Nawder Loswin + Copilot
날짜: 2025‑11‑12
버전: 0.1
1. 목적#
rci_registry_event.yml 항목을 소비하고, 복도 메타데이터를 정규화하며, 글리프 유형, RCI 밴드 및 리믹스 계보에 따라 검색 가능한 인덱스를 구축하는 인덱서를 정의합니다.
2. 인덱스 차원#
-
글리프 유형 인덱스:
- 키: ◇ (알파), ◆ (베타), ⬣ (감마)
- 값: 글리프별로 그룹화된 복도 ID
-
RCI 밴드 인덱스:
- 밴드:
- 낮음: 0.00–0.33
- 중간: 0.34–0.66
- 높음: 0.67–1.00
- 값: 밴드별로 그룹화된 복도 ID
- 밴드:
-
리믹스 계보 인덱스:
- 키: parent_scroll UUID
- 값: child_scroll UUID 목록
3. 스키마 확장#
파일: registry/index/index_schema.yml
index:
glyph_type:
◇: [c-002, c-010, ...]
◆: [c-001, c-004, ...]
⬣: [c-003, c-007, ...]
rci_band:
low: [c-002, c-005]
medium: [c-001, c-004]
high: [c-003, c-007]
remix_ancestry:
parent_scrolls:
s-1001: [s-1002, s-1003]
s-2001: [s-2002]4. 파이썬 스타일 인덱서 스텁#
파일: registry/index/indexer.py
import yaml
from collections import defaultdict
def load_events(event_files):
events = []
for f in event_files:
with open(f, "r") as stream:
events.append(yaml.safe_load(stream))
return events
def build_indices(events):
glyph_index = defaultdict(list)
rci_index = {"low": [], "medium": [], "high": []}
ancestry_index = defaultdict(list)
for ev in events:
cid = ev["event"]["corridor_id"]
glyph = ev["event"]["new_glyph"]
rci = ev["event"]["new_rci"]
parent = ev["event"]["lineage"]["parent_scroll"]
child = ev["event"]["lineage"]["child_scroll"]
# Glyph index
glyph_index[glyph].append(cid)
# RCI band index
if rci <= 0.33:
rci_index["low"].append(cid)
elif rci <= 0.66:
rci_index["medium"].append(cid)
else:
rci_index["high"].append(cid)
# Remix ancestry
if parent and child:
ancestry_index[parent].append(child)
return {"glyph_type": glyph_index, "rci_band": rci_index, "remix_ancestry": ancestry_index}
def export_index(indices, outfile="registry/index/index_schema.yml"):
with open(outfile, "w") as stream:
yaml.dump({"index": indices}, stream, sort_keys=False)5. 검증기 후크#
- 일관성: 회랑 ID가 정확히 하나의 글리프 버킷과 하나의 RCI 밴드에 나타나도록 합니다.
- 계보 무결성: 자식 스크롤이 인덱스되기 전에 부모 스크롤이 존재해야 합니다.
- 체크섬: 각 인덱스 내보내기에는 소스 이벤트의 체크섬이 포함됩니다.
6. 참고#
- 인덱서는 결정적입니다: 동일한 이벤트 집합은 동일한 인덱스를 생성합니다.
- 증분 업데이트를 지원합니다: 새로운 이벤트가 추가되고, 인덱스가 재구성됩니다.
- 글리프, RCI 밴드 및 조상 인덱스는 API 엔드포인트를 통해 쿼리할 수 있습니다.
이 스캐폴드는 작동하는 인덱서를 제공합니다: 이벤트 YAML을 수집하고, 글리프/RCI/조상 인덱스를 구축하며, 이를 레지스트리로 다시 내보냅니다.