근거소스커넥터 — cells.json·docs·history 통합근거인덱스 (WS④ 확장)
개요
근거DB통합.한선(WS2, 학습.dat↔all_patterns.dat 2-way 병합)을 확장하여, 감사에서
"미연결"로 잡힌 세 소스 — cells.json(7곳 분산), docs.crowny.org(CrownyDoc/projects
마크다운), history/.jsonl(세션 대화로그) — 를 순수 한선씨로 근거DB에 연결했다.
무엇을 했는지
신규 파일: /Users/ef/crowny-butler/libs/근거소스커넥터.한선
포맷별 파서 3종 + 통합 인덱스/조회 함수:
소스적재_json(경로, 최대건수)— pretty-print cells.json 전용. 각 셀은
{"id":N,"s":[27개 슬롯]} 구조이며 s[16]이 제목. 고정 라인오프셋 대신
대괄호 뎁스 카운터로 슬롯 경계를 추적(실측: evidenceLog류 슬롯이
[38]처럼 서브배열로 등장해 셀당 라인수가 32/34로 갈리는 걸 확인 →
뎁스==1일 때만 슬롯 카운트, 뎁스>1(중첩) 내부 줄은 문자열화조차 안 함).
intent키 = 제목.
소스적재_md(디렉토리, 최대건수)—파일목록()(ls, opcode255, 결과 4095B
.md 파일명만 채택, 읽기()로 존재 확인.
intent키 = 파일명(날짜-슬러그).
소스적재_history(경로, 최대건수)— jsonl 한 줄=완결 오브젝트(중첩 없음)
"category"/"workdir" 마커
추출. intent키 = 카테고리:작업디렉토리.
통합근거인덱스(소스들, 태그들)— N개 소스 배열(배열의 배열) + 병렬
근거조회통합(인덱스, 키워드, 태그목록)/근거보고통합(...)— 태그별
VM 함정 회피(전부 실측 반영): 읽기() 64KB 조용한 절단, 문자열풀 480000 캡, 배열 하드캡 4095 — 전부 버퍼파일읽기+버퍼바이트읽기(정수 스캔)로 줄 경계를 잡고, 실제 필요한 슬롯/필드 줄만 1회 문자열화. 각 소스 최대건수/최대스캔 바이트 clamp로 "앞부분 샘플"만 본다(전량 파싱 금지).
수용검증 실측 결과 (컴파일+실행, stderr 경고 0건)
═══ 근거소스커넥터 — cells.json·docs·history 통합근거인덱스 검증 ═══
[적재] cells 샘플: 1500건 (/Users/ef/.claude/knowledge/cells.json)
[적재] docs 샘플: 104건 (/Users/ef/CrownyDoc/projects)
[적재] history 샘플: 1140건 (/Users/ef/.claude/knowledge/history/2026-07-04.jsonl)
[통합] 통합근거인덱스 총 intent 키: 409
─── 근거조회통합 실행(공통 키워드) ───
intent 크라우니: 총 3건 / cells 2건 / docs 1건 / history 0건
근거: CAF7 크라우니어 구현 완료 [cells]
근거: 2026-04-15-크라우니솔루션-랜딩-네트워크.md [docs]
근거: 크라우니뱅크 서비스 구축 [cells]
intent 서버: 총 3건 / cells 1건 / docs 2건 / history 0건
근거: 웹서버v2 [cells]
근거: 2026-04-16-crowny-network-통합서버.md [docs]
근거: 2026-04-16-포커스서버-한선씨-풀파리티.md [docs]
intent 셀코어: 총 2건 / cells 2건 / docs 0건 / history 0건
근거: 셀코어 v2.0 15모듈 라이브러리 완성 [cells]
근거: 셀코어 업데이트 [cells]
═══ 검증 완료 ═══
python으로 교차검증: cells.json 첫 1500건 중 제목에 "크라우니" 포함 2건
(CAF7 크라우니어 구현 완료, 크라우니뱅크 서비스 구축), docs 첫 104개
파일명 중 1건 — 한선씨 파서 결과와 정확히 일치.
history 경로 별도 검증(키워드 "crownyc"/"general"로 임시 확인, 원본 검증 스크립트는 손대지 않음): crownyc 6건(history 4건), general 26건(history 26건) — history 소스 태깅도 정상 작동 확인.
관련 파일
/Users/ef/crowny-butler/libs/근거소스커넥터.한선(신규, 이 문서의 본체)/Users/ef/crowny-butler/libs/근거DB통합.한선(기존 WS2, 참조/미변경)- 학습DB 등록: intent
근거소스커넥터_cells_docs_history_통합
근거소스커넥터) — crownycode-learn.sh add 완료잔여 이슈
- cells.json은
.claude/knowledge/cells.json한 곳만 연결했다. 나머지
domain+evidenceLog,
키가 사용자명인 맵 등)라 소스적재_json을 그대로 재사용할 수 없음 —
포맷별 분기 추가가 후속 과제.
소스적재_md는파일목록()(ls 4095B 캡) 한계로 CrownyDoc/projects
소스적재_history는 파일 1개만 받는다(디렉토리 전체 순회는 상위 호출부
파일목록()으로 파일 리스트를 얻어 반복 호출하는 래퍼가 필요.