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가지, 교차 확인됨)
- 크론 누락: Hermes
jobs.json(24개 활성 잡) 안에channel_collector잡이 없다. Hermes 이전(2026-04-12) 때 analyst-channel-collector만 복구되고 일반 channel_collector는 빠짐. - 세션 미복구:
~/.hermes/credentials/telegram_user(Telethon 세션) 파일 부재. 비공개 채널 승도리 수집 불가. 공개 7개 채널은 HTML 스크래핑이라 영향 없음. - 상태 저장소 비어 있음:
~/.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. 구축 조치 (이번 세션에서 실행)
- 방법론 문서 작성 (이 파일) —
~/knowledge-agent/400-reports/260417_118_텔레그램_방법론과_구축.md channel_collector크론 재등록 —~/.hermes/cron/jobs.json에 하루 4회 실행 잡 추가 (cron_store.add_or_update_job 사용, 이름 dedup).- dry-run 검증 —
--dry-run플래그로 공개 채널 7개 파싱만 확인. - 1회 수동 실행 — 공개 채널 7개만 실제 수집(승도리 제외, 세션 복구 전).
- 해리 확인 대기 항목 정리 — 세션 복구 가이드.
6. 남은 해리 확인 항목
- Telethon 세션 재인증 (필요 시):
cd /Users/ron/.hermes/workspace/scripts/pipeline python3 channel_collector.py --channel seungdori→ 최초 실행 시 OTP 입력 요청. 해리가 직접 휴대폰으로 받은 코드 입력. - 구 포맷(Decoded / Harvey) 일괄 정리 여부: 기존 개별 메시지 파일 삭제/보존 판단.
- 수집 주기 조정 요청: 현 제안은 4회/일. 더 자주/덜 자주 원하시면 스케줄 조정.
7. 성공 기준
- 내일(2026-04-18) 아침까지 공개 7개 채널에 각각 1개 이상
_daily.md가 새로 생성되어야 함. channel_collector.log에 수집 성공 건수 기록.analyst-channel-collector잡은 116 croned_data 전용이므로 혼동 금지. 이번 추가 잡은 118 텔레그램 전용.