virtual-insanity
← 리포트 목록

118 텔레그램 적립 방법론과 구축 진단

2026-04-17 118 [118-텔레그램, 방법론, 진단, Hermes, channel-collector]

118 텔레그램 적립 방법론과 구축 진단

1. 해리 요청 요지

100 수신함 체계가 제대로 구축 안 됨. 특히 118 텔레그램이 "하루 1개 볼트에 정리"되어야 하는데 방치. 방법론부터 파악하고 거기 맞게 정보 구축.


2. 현재 상태 진단

2-1. 계약서 명문화 상태

  • ~/knowledge/000 선언/002 구조도.md + 004 300지식망-방법론.md에 118 텔레그램 경로와 파이프라인 명시됨.
  • 표준 경로: 100 수신함/118 텔레그램/{채널명}/{YYYY-MM-DD}/_daily.md
  • 파이프라인: channel_collector
  • 원칙: 100 수신함은 자동 수집 전용, 사람/에이전트 직접 쓰기 금지. note_atomizer만 200 아토믹으로 승격.
  • "하루 1개 볼트" 표현은 계약서에 직접 명시되어 있지 않으나, _daily.md 디자인 자체가 일일 통합 다이제스트.

2-2. 채널별 수집 현황 (2026-04-17 기준)

채널 최신 수집일 포맷 상태
전문가들의 마켓 인사이트 (getfeed) 2026-04-05 _daily.md 활성 멈춤
루팡 (bornlupin) 2026-04-04 _daily.md 활성 멈춤
승도리 (seungdori, 비공개) 2026-04-04 _daily.md 활성 멈춤
인포마켓 (infomarketopen) 2026-04-04 _daily.md 활성 멈춤
KK Kontemporaries (kkkontemp) 2026-04-04 날짜 폴더만, 파일 없음 부분 수집 실패
Macro Trader (MacroAllocation) 2026-04-04 날짜 폴더만, 파일 없음 부분 수집 실패
Decoded Narratives 2026-04-03 개별 메시지 파일 포맷 불일치
Harvey's Macro Story 2026-04-03 개별 메시지 파일 포맷 불일치

→ 전 채널 12일간 미수집. 일부는 포맷 자체가 표준에서 벗어남.

2-3. 원인 (3가지, 교차 확인됨)

  1. 크론 누락: Hermes jobs.json(24개 활성 잡) 안에 channel_collector 잡이 없다. Hermes 이전(2026-04-12) 때 analyst-channel-collector만 복구되고 일반 channel_collector는 빠짐.
  2. 세션 미복구: ~/.hermes/credentials/telegram_user(Telethon 세션) 파일 부재. 비공개 채널 승도리 수집 불가. 공개 7개 채널은 HTML 스크래핑이라 영향 없음.
  3. 상태 저장소 비어 있음: ~/.hermes/workspace/memory/channel-collector/state.json 부재. 재개 시 초기 크롤링 필요.

3. 표준 _daily.md 포맷 (기존 샘플 분석)

Frontmatter

---
title: "{채널명} — {YYYY-MM-DD}"
date: "YYYY-MM-DD"
tags: ["bridge/channel-collector", "source/tg-{채널코드}", "status/daily-digest"]
zk_type: "fleeting"
maturity: "seedling"
source_type: "capture"
source_channel: "{채널코드}"
---

본문 규칙

  • 상단 헤더: # {채널명} — {YYYY-MM-DD}
  • 각 메시지: ### {HH:MM} [[{YYMMDD}_{메시지ID}_{slug}|#{메시지ID} {제목}]]
  • 메시지 간 구분자: ---
  • 이미지는 채널 루트 _attachments/img_{메시지ID}_{n}.jpg로 저장, 본문에서 ![[img_{메시지ID}_{n}.jpg]] 참조
  • 개별 메시지 상세는 {YYMMDD}_{메시지ID}_{slug}.md 파일로 별도 저장(enriched)

성숙도 경로

_daily.md(seedling) → 사람/agent 판단으로 200 아토믹 승격(note_atomizer만 가능) → 300 지식망 연결.


4. 적립 방법론 (확정)

4-1. 원칙

원칙 설명
하루 1개 볼트 채널 × 날짜당 _daily.md 1개 고정. 중복 생성 금지.
원본 보존 100 수신함은 수집 파이프라인 외 쓰기 금지. 편집은 200 승격 후.
frontmatter 필수 title/date/tags/source_channel/maturity 누락 금지.
포맷 통일 8개 채널 모두 _daily.md + 개별 slug 파일. Decoded/Harvey 구 포맷(개별 메시지만) 점진 정리.
수집 주기 하루 최소 4회(03:17/09:17/15:17/21:17 KST), 미체결 메시지 없도록 분 단위 끝자리 분산.
중복 방지 channel-collector/state.json에 마지막 수집 메시지 ID 기록, 재실행 시 그 이후만 fetch.
멱등성 같은 날짜 재실행 시 _daily.md에 append만, 기존 메시지 재작성 금지.
관측성 ~/.hermes/logs/channel_collector.log에 수집 성공·실패·스킵 건수 기록. 24h 무실행이면 알림.

4-2. 채널 포맷 통일 원칙

  • 신규 수집 시점부터 8개 채널 전부 _daily.md 포맷 표준.
  • Decoded/Harvey 기존 개별 메시지 파일은 건드리지 않음(과거 기록 보존). 신규 수집본만 표준 포맷.
  • KK Kontemporaries / Macro Trader의 빈 날짜 폴더는 수집 재시도 시 채워지거나, 빈 상태 유지(해리가 직접 삭제 판단).

4-3. 실패 모드 대응

실패 감지 조치
공개 채널 HTTP 429 channel_collector.log에 retry 횟수 3회 초과 다음 실행 주기에서 자동 재시도 (지수 백오프 REQUEST_DELAY=2s)
비공개 채널 세션 만료 Telethon SessionPasswordNeededError 해리가 직접 재인증 (OTP 입력 필요, 자동화 불가)
볼트 경로 없음 FileNotFoundError get_source_inbox_dir()이 부모 디렉터리 자동 생성
잡 전체 타임아웃 cron timeout_seconds 초과 600초 상한, 다음 사이클 재개

5. 구축 조치 (이번 세션에서 실행)

  1. 방법론 문서 작성 (이 파일) — ~/knowledge-agent/400-reports/260417_118_텔레그램_방법론과_구축.md
  2. channel_collector 크론 재등록~/.hermes/cron/jobs.json에 하루 4회 실행 잡 추가 (cron_store.add_or_update_job 사용, 이름 dedup).
  3. dry-run 검증--dry-run 플래그로 공개 채널 7개 파싱만 확인.
  4. 1회 수동 실행 — 공개 채널 7개만 실제 수집(승도리 제외, 세션 복구 전).
  5. 해리 확인 대기 항목 정리 — 세션 복구 가이드.

6. 남은 해리 확인 항목

  1. Telethon 세션 재인증 (필요 시): cd /Users/ron/.hermes/workspace/scripts/pipeline python3 channel_collector.py --channel seungdori → 최초 실행 시 OTP 입력 요청. 해리가 직접 휴대폰으로 받은 코드 입력.
  2. 구 포맷(Decoded / Harvey) 일괄 정리 여부: 기존 개별 메시지 파일 삭제/보존 판단.
  3. 수집 주기 조정 요청: 현 제안은 4회/일. 더 자주/덜 자주 원하시면 스케줄 조정.

7. 성공 기준

  • 내일(2026-04-18) 아침까지 공개 7개 채널에 각각 1개 이상 _daily.md가 새로 생성되어야 함.
  • channel_collector.log에 수집 성공 건수 기록.
  • analyst-channel-collector 잡은 116 croned_data 전용이므로 혼동 금지. 이번 추가 잡은 118 텔레그램 전용.