16.6 KB · updated 2026-07-06 · md

context-engine-roadmap.ko.md

docs/i18n/context-engine-roadmap.ko.md

Tesserae → 컨텍스트 엔진 — 단계별 로드맵

<!-- translations:start -->

English · 한국어 · 中文 · 日本語 · Русский · Español · Français · Deutsch

<!-- translations:end --> MD0에서 파생되었습니다. 7단계 구축 순서를 의존성, 구체적 범위, 수용 기준을 갖춘 순차적 단계로 바꿉니다.

북극성: 세션을 모니터링하고, 자율적으로 지식을 수집하며, 기반을 자기 개선하고, 온디맨드·에이전트용 컨텍스트를 제공하는 — 오늘의 수동 배치 컴파일 CLI를 대체하는 — 연속 실행 엔진.

v0.5.0 기준 상태 (2026-06-06): 단계 0–6이 출시되었습니다. 엔진 스파인(P0 파이프라인 오케스트레이터, P1 슈퍼바이저 데몬, P2 라이브 세션 모니터)은 tesserae/engine/에 있습니다. P3 증분 컴파일 인프라는 도착했지만 플래그 OFF/실험적 상태로 유지됩니다. P4 자기 개선은 node_memory 사이드카(수치 재발 신뢰도, 슈퍼시드 기본 활성화)를 통해 영속화됩니다. P5 진짜 기본 임베딩이 출시되었고(트랙 B), P6 — 온디맨드 컨텍스트 컴파일러 — 가 v0.5.0의 헤드라인 기능입니다. 단계 7(serve + watch + deploy + 생애주기 테스트 통합)은 미해결입니다. 단계별 상태는 아래 인라인에 표시되어 있습니다. v0.5.0 릴리스 노트를 참조하세요.

의존성 형태

P0 파이프라인 오케스트레이터 (refresh 체인을 코드로 추출)
        │
P1 슈퍼바이저 데몬 (루프) ─────────────────────┐
        │                                      │
   ┌────┴─────────────── 트랙 A ───────┐   ┌── 트랙 B (병렬화 가능) ──┐
   P2 라이브 세션 모니터               │   P5 진짜 기본 임베딩
   P3 증분/스트리밍 컴파일             │   P6 온디맨드 컨텍스트 컴파일러
   P4 자기 개선 영속화 ────────────────┘   (P6은 P5에 의존)
        │                                      │
        └──────────────► P7 serve+watch+deploy 통합 ◄──┘

트랙 A(실시간 수집)와 트랙 B(에이전트 대면 출력)는 P1이 도착하면 병렬로 진행될 수 있습니다. P7이 둘을 수렴시킵니다.


단계 0 — 파이프라인 오케스트레이터 (위험 완화 토대) ✅ v0.5.0 출시

v0.5.0에서 출시tesserae/engine/pipeline.py (엔진 스파인, 1–3단계로 병합).

목표: refresh 파이프라인을 슬래시 명령 마크다운에서 데몬, CLI, MCP가 모두 호출하는 일급 인프로세스 오케스트레이터로 옮기기.

  • 왜 지금: 이후의 모든 단계는 ingest → compile → project → publish에 대한 하나의 공유 코드 경로가 필요합니다. 오늘 그 순서는 스킬 속 산문으로만 존재합니다. 호출 가능해지기 전까지는 아무것도 자동화할 수 없습니다.
  • 범위:tesserae/engine/pipeline.py(현재 sessions discover --import → compile → obsidian-sync 체인을 감싸는 Pipeline 객체). cli.py 하위 명령을 이를 통해 라우팅. ~2000줄 project_main 갓-디스패처를 명령 테이블로 분해 시작(기계적, 동작 변경 없음).
  • 산출물: Pipeline.run(steps, changed_only=…); CLI가 위임; 단계 시퀀싱 + 실패 전파에 대한 단위 테스트.
  • 수용: tesserae refresh가 스킬이 아닌 코드로 존재하며 데모 코퍼스에서 마크다운 체인을 바이트 단위로 재현.
  • 위험: 낮음. 순수 리팩터; 기존 테스트가 동작을 보호.
  • 닫히는 감사 발견: "refresh가 스킬에 존재," "cli 갓-디스패처."

단계 1 — 슈퍼바이저 데몬 (엔진 루프) ✅ v0.5.0 출시

v0.5.0에서 출시tesserae/engine/daemon.py (엔진 스파인, 1–3단계).

목표: 하나의 이벤트 루프를 소유하고 트리거에 따라 Pipeline을 구동하며 실제 생애주기 처리를 갖춘 감독형 장기 실행 프로세스.

  • 왜 지금: 이것이 척추입니다. 감사의 가장 큰 단일 격차. "연속/자율"인 모든 것이 여기에 매달립니다.
  • 범위:tesserae/engine/daemon.py — 이벤트 루프, 트리거 큐, 디바운스/병합, SIGTERM/SIGINT 우아한 종료, pidfile, 구조화 로깅. tesserae engine / tesserae daemon CLI 진입점. watch.py/vault_watch.py의 맨 KeyboardInterrupt 죽음을 큐에 공급하는 *트리거 소스*로 접어넣어 대체.
  • 산출물: 무기한 실행되고 버스트를 하나의 파이프라인 실행으로 병합하며 깔끔하게 종료되는 데몬; launchd/systemd 예제 유닛.
  • 수용: 소스 파일 편집 → 데몬이 디바운스 창 안에서 병합하고 하나의 compile(changed_only)를 실행; SIGTERM이 고아 스레드 없이 0으로 종료; 파이프라인 예외에도 죽지 않고 살아남음.
  • 위험: 중 — 동시성/종료 정확성. 단일 스레드 asyncio 코어 + 명시적 태스크 감독으로 완화.
  • 닫히는 감사 발견: "데몬 없음," "연속 = sleep 폴러," 워처 KeyboardInterrupt 죽음, 시그널 처리 없음.

단계 2 — 라이브 세션 모니터 (기둥 1) ✅ v0.5.0 출시

v0.5.0에서 출시tesserae/engine/session_tail.py (엔진 스파인, 1–3단계).

목표: 라이브 하네스 트랜스크립트를 테일하고 세션이 진행되는 동안 턴을 수집하여 사후 sessions discover --import를 대체.

  • 왜 지금: P1의 루프가 공급해야 합니다. "세션 모니터링" 기둥을 전달합니다.
  • 범위: 새 세션 테일 트리거 소스(~/.claude / ~/.codex JSONL 추가 이벤트 감시) → 인큐. session_graph*.py에서 턴 단위 증분 추출로 새 턴이 세션 전체 캐시를 무효화하지 않게. harness_sessions용 인덱스/추가 스토어(전체 재스캔 glob 은퇴).
  • 산출물: 데몬이 기록된 지 몇 초 안에 세션의 턴을 수집; test_session_tailer.py.
  • 수용: 감시되는 프로젝트에서 라이브 에이전트 세션 시작 → 수동 명령 없이 새 발견이 그래프에 나타남; 턴 단위 캐시 적중률이 세션 전체 재추출보다 큼을 측정.
  • 위험: 중 — JSONL 포맷이 하네스마다 다름; 부분 라인 읽기.
  • 닫히는 감사 발견: 사후 세션 스캔, 세션 전체 캐시 무효화, 평면 glob 스토어.

단계 3 — GraphStore 포트를 통한 증분/스트리밍 컴파일 ⚙️ 인프라 v0.5.0 출시 (플래그 OFF/실험적)

v0.5.0에서 인프라 출시 (프로비넌스 사이드카, GraphStore 삭제 표면, 영속 url_resolver 비동기 런타임). 단, incremental_compile 플래그는 다중 소유자/생산자 생애주기/캡 폴백 갭으로 인해 OFF/실험적으로 유지됩니다. 커버된 경로에 대한 바이트 동등성은 증명되었습니다. v0.5.0은 여기서 발견된 두 가지 실제 컴파일 버그(변경분만 멱등성, 주입 스토어 계약)도 수정했습니다.

목표: 취약한 changed_only 그래프 축출 패치를 ports/graph_store.py를 흐르는 설계된 증분 계층으로 대체.

  • 왜 지금: 연속 수집(P2)이 현재의 reload-strip-evict-merge 임시방편을 정확성 부채로 만듭니다(문서화된 "2400→1700 노드" 함정). 자기 개선(P4)에는 노드별 upsert가 필요합니다.
  • 범위: 독립형 파이프라인을 GraphStore를 통해 흐르게(오늘은 포트를 우회하여 JSON으로 직행). 출처 + 신선도 타임스탬프가 있는 노드별 upsert/delete. 영속성을 하나의 진실원으로 수렴(감사: JSON 아티팩트 vs SQLite vs Kuzu). url_resolver.py asyncio.run-per-call 수정(영속 비동기 런타임).
  • 산출물: 변경된 노드만 올바르게 추가/갱신/제거하는 증분 컴파일; 노드별 first_seen_at/last_updated_at.
  • 수용: 21파일 편집이 정확히 영향받은 노드만 갱신(붕괴 없음); 바이트 동일 전체 컴파일 동등성을 골든 테스트로 유지.
  • 위험: 높음 — 코어 데이터 모델을 건드림. 기능 플래그 뒤에 게이트; 신뢰될 때까지 전체 컴파일 출력과 diff.
  • 닫히는 감사 발견: 취약한 changed_only, 포트 우회, asyncio per-call, 세 영속 포맷, 노드별 신선도 없음.

단계 4 — 자기 개선 활성화 & 영속화 (기둥: 자기 개선) ✅ v0.5.0 출시

v0.5.0에서 출시node_memory 사이드카(tesserae/memory/): 결정적 판정과 다운스트림 억제를 갖춘 기본 활성화 슈퍼시드, 그리고 출력에 표시되는 수치 재발 신뢰도(교차 세션 빈도 → TemporalFactProjector).

목표: 지식 기반이 실제로 제자리에서, 기본 켜짐으로, 컴파일 시점에 영속화되며 진화하게 만들기.

  • 왜 지금: P3의 노드별 upsert에 의존. 가장 테스트되지 않은 단면을 닫음.
  • 범위: 컴파일 시 감쇠 점수 영속화(memory/decay.py가 더 이상 쿼리 시점 전용 아님); MCP 읽기 시 access_count/last_accessed_at 증가. 노후 콘텐츠의 다운스트림 *억제*가 있는 기본 켜짐 supersede(단순 엣지 추가가 아님). 모순 해결 추가(lint.py의 탐지를 신뢰도 중재 패스로 승격). 반복 인사이트 강화(교차 세션 빈도 → 수치 신뢰도). 스키마 드리프트 적용 경로와 피드백 지침을 추출에 연결(결정론적 경로가 현재 무시). 임베딩 기반 supersede 후보 생성(어휘 자카드 은퇴).
  • 산출물: 각 패스가 기본 파이프라인에서 실행되고 기록; decay/supersede/ feedback/drift/contradiction을 다루는 새 tests/ 스위트.
  • 수용: 세션을 가로질러 사실을 재진술하면 신뢰도 상승; 대체된 사실이 컨텍스트 출력에 더 이상 나타나지 않음; 감쇠 점수가 영속되고 실행마다 이동; 자기 개선 스위트가 녹색(현재 테스트 0개).
  • 위험: 중 — 추출 출력의 동작 변경; 골든 픽스처로 보호.
  • 닫히는 감사 발견: 기둥 2 테이블 전체.

단계 5 — 진짜 기본 임베딩 (트랙 B 토대) ✅ v0.5.0 출시

v0.5.0에서 출시(트랙 B): 진짜 기본 Model2VecBackend, 실패 시 명시적으로 알리는 active_embedding_backend(무음 blake2b 다운그레이드 없음), embedding_status에 표시되는 시맨틱 백엔드 플래그, 임베딩 레인이 후보를 인정하게 하는 코사인 하한선.

목표: 결정론적 해시 버킷 의사 임베딩을 기본 "의미" 레인으로 출하하는 것을 멈추기.

  • 왜 지금: P6의 컨텍스트 컴파일러는 검색만큼만 좋습니다. 데몬과 독립적 — P0가 도착하자마자 시작 가능.
  • 범위: 진짜 기본 임베딩 백엔드 출하(또는 retrieval/hybrid.py에서 blake2b로 조용히 강등하는 대신 auto가 큰 소리로 실패하게). 임베딩이 진짜가 되면 임베딩 레인이 (재순위만이 아니라) 후보를 생성하게.
  • 산출물: 기본 설치가 진짜 의미 검색을 산출, 또는 명시적·가시적 "해시 스텁 실행 중" 경고.
  • 수용: 패러프레이즈/동의어 쿼리가 BM25가 놓치는 관련 노드를 표면화; 작은 레이블 집합에서 해시 베이스라인 대비 검색 품질 측정.
  • 위험: 중 — 의존성 무게 / 오프라인 설치. 계층화된 기본값 제공.
  • 닫히는 감사 발견: 해시 버킷 기본값, 임베딩 레인 후보 게이트.

단계 6 — 온디맨드 컨텍스트 컴파일러 (기둥 3) ✅ v0.5.0 출시 (헤드라인 기능)

v0.5.0에서 헤드라인 기능으로 출시. tesserae/context_compiler.py의 순수 compile_context 파이프라인이 ContextCitation들의 인메모리 ContextBundle을 반환합니다(쿼리/시드 → PPR + 하이브리드 검색 → 깊이 제한 k-홉 이웃 → 위키 본문 조립 → 우아한 폴백을 갖춘 선택적 LLM 합성 → 예산 제어). MCP compile_context 도구와 tesserae context CLI 서브커맨드로 노출됩니다. node_context에는 이제 use_ppr 순위 경로가 있고, 주제 범위 llms.txt 익스포트 슬라이스가 제공됩니다.

목표: 헤드라인 기능 — "X에 대한 컨텍스트를 달라" → 맞춤·인용·에이전트용 문서.

  • 왜 지금: P5(검색 품질)에 의존. P4(더 깨끗한 기반)에서 이득. 제품의 핵심 가치 제안.
  • 범위:tesserae/context_compiler.py: 쿼리/시드 → PPR + 하이브리드 검색 → 순위가 매겨진 k-홉 이웃 탐색 → 위키 본문 조립 → 선택적 LLM 종합 → 인용 + 예산 제어가 있는 하나의 범위화 마크다운 문서. MCP compile_context(query|seeds, depth, budget)tesserae context … CLI로 노출. agent_harness를 토픽 범위로; node_context를 PPR을 통해; 토픽 범위 llms.txt 내보내기 슬라이스.
  • 산출물: 임의 쿼리에 대해 다운로드 가능·인용된 컨텍스트 번들을 반환하는 도구; 번들 형태 + 인용 무결성을 주장하는 테스트.
  • 수용: compile_context("X")가 인용이 모두 해소되는 일관된 다중 노드 문서를 반환; 하네스 브리프가 하드코딩 상위 12개가 아니라 토픽별로 재생성.
  • 위험: 중 — 종합 품질; 결정론적 무-LLM 조립 모드 유지.
  • 닫히는 감사 발견: "온디맨드 문서 생성이 존재하지 않음," 쿼리 범위 종합, 정적 하네스, 순위 없는 node_context, 전체 코퍼스 내보내기.

단계 7 — serve + watch + deploy + 생애주기 테스트 통합 ⏳ 미해결 (v0.5.0 이후)

v0.5.0 기준 미해결. 수렴 단계는 다음 마일스톤으로 남습니다. 이것이 통합하는 데몬(P1)과 출력 측(P6)은 이제 모두 자리잡았습니다.

목표: 하나의 감독형 프로세스가 사이트를 서빙하고, 변경 시 재컴파일하며, 연속 발행; 생애주기 계층이 테스트 커버리지를 얻음.

  • 왜 지금: 수렴. 연속 발행할 가치를 위해 P1(데몬)과 출력 측(P6)이 필요.
  • 범위: serve.py(블로킹 TCPServer)와 deploy.py(수동 git push)를 데몬에 접어넣어 serve + watch + publish가 하나의 슈퍼바이저를 공유. 연속/디바운스 발행. 누락된 test_watch/test_serve/데몬-생애주기 테스트 추가. 사용 중단 frontend.py 죽은 모듈 삭제. review_workflow.py의 문자열 타입 TODO 루프를 실제 적용 경로로 연결.
  • 산출물: tesserae engine --serve --publish가 전체 루프 실행; 생애주기 테스트 스위트; 죽은 코드 제거.
  • 수용: 소스 편집이 수동 명령 없이 라이브 서빙 페이지와 (선택적으로) 발행 배포로 전파; 생애주기 테스트 녹색.
  • 위험: 낮음–중 — 대부분 통합.
  • 닫히는 감사 발견: serve/watch/deploy 분리, 수동 deploy, 사용 중단 frontend.py, 리뷰 루프 스텁, 누락된 생애주기 테스트.

시퀀싱 요약

단계테마의존병렬화 가능 대상 상태
P0파이프라인 오케스트레이터— ✅ v0.5.0 출시
P1슈퍼바이저 데몬P0— ✅ v0.5.0 출시
P2라이브 세션 모니터P1P5 ✅ v0.5.0 출시
P3증분 컴파일P1P5 ⚙️ 인프라 v0.5.0 출시 (플래그 OFF/실험적)
P4자기 개선 영속화P3P5, P6 ✅ v0.5.0 출시
P5진짜 임베딩P0P2, P3, P4 ✅ v0.5.0 출시
P6온디맨드 컨텍스트 컴파일러P5P2, P3, P4 ✅ v0.5.0 출시
P7serve/watch/deploy 통합P1, P6— ⏳ 미해결 (v0.5.0 이후)

최소 실행 가능 엔진: P0 + P1 + P2 + P3 — 라이브 세션을 감시하고 증분 컴파일하는 실행 데몬. 차별화된 제품: P5 + P6 추가(온디맨드 에이전트 컨텍스트). 다듬어진: P4 + P7.