원클릭으로
discord-huddle-summarize
쌓인 Discord Huddle raw JSONL을 Claude Code 에이전트가 직접 읽고 요약 md로 작성한다 (LLM API 호출 없음)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
쌓인 Discord Huddle raw JSONL을 Claude Code 에이전트가 직접 읽고 요약 md로 작성한다 (LLM API 호출 없음)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | discord-huddle-summarize |
| description | 쌓인 Discord Huddle raw JSONL을 Claude Code 에이전트가 직접 읽고 요약 md로 작성한다 (LLM API 호출 없음) |
/discord-huddle-summarize 명령이 수행하는 작업.
/discord-huddle-sync가 최소 1회 성공해 .system-agents/discord-huddle/raw/*.jsonl이 있다.summarize-check가 ready:true 를 반환하는 수준의 내용이 쌓여 있다 (아래 참조).요약 본문을 작성하기 전에 에이전트는 반드시 다음을 먼저 실행하여 요약할 가치가 있는지 코드 수준에서 확인한다. 이 호출은 LLM을 전혀 쓰지 않고 raw JSONL을 직접 스캔하므로, ready:false면 에이전트는 바로 사용자에게 결과를 전달하고 종료한다(토큰 거의 소비하지 않음).
python bot/discord_collab.py summarize-check
표준출력은 JSON 한 덩어리:
{
"ready": false,
"reason": "short_monologue",
"channel_id": "...",
"after_msg_id": "...",
"stats": {
"message_count": 7,
"total_content_chars": 42,
"unique_participants": 1,
"attachment_count": 0,
"time_span_seconds": 420.0,
"first_msg_id": "...",
"last_msg_id": "..."
}
}
다음 중 하나라도 만족하면 ready:true:
message_count >= 5 AND total_content_chars >= 100 — 독백이지만 내용 있음.unique_participants >= 2 AND message_count >= 3 — 실제 대화가 오감. 짧은 결정도 가치 있음.attachment_count >= 2 — 시각 자료 기반 논의.위 세 조건 모두 탈락하면 ready:false + 다음 reason 중 하나:
no_new_messages — 마지막 요약 이후 새 메시지가 전혀 없음.too_few_messages — 3건 미만. 대화라 보기도 어려움.short_monologue — 한 명이 짧게 몇 마디 한 수준. 요약 의미 없음.insufficient_content — 위 분류 어디에도 안 맞는 애매한 부족.에이전트는 reason을 사용자에게 전달하여 왜 요약을 건너뛰었는지 설명한다.
summarize-check 호출 → JSON 파싱. ready:false면 즉시 종료(토큰 절약).ready:true일 때만 다음으로 진행. docs/discord-huddle-summaries/index.json의 last_summarized를 기준으로 raw 메시지 선별 (forward-only 포인터).docs/discord-huddle-summaries/YYYY-MM-DD_HHMM.md로 요약 작성. 본문 섹션 순서: ## 요약 → ## 도식 → ## 주요 주제별 정리 → ## 타임라인.source, channel, from_msg, to_msg, start, end, participants, message_count, attachments).docs/discord-huddle-summaries/attachments/{summary_stem}/로 복사 (필요 시).index.json의 last_summarized, last_file을 forward-only로 갱신 (더 오래된 msg_id로는 되돌려지지 않음).---
source: discord
channel: general
from_msg: "1496056458826219600"
to_msg: "1496057987075281037"
start: "2026-04-21T07:54:15.169000+00:00"
end: "2026-04-21T08:00:19.532000+00:00"
participants:
- Alice
- Bob
message_count: 3
attachments: []
---
원본 Discord 대화에 이미지가 없더라도, 결정된 게임 루프 / 씬 구조 / 상태 분기 / 결정 타임라인 같은 추상 개념은 에이전트가 직접 시각화해 ## 도식 섹션에 넣는다.
flowcharttimelineClaude Code 세션이 직접 md를 작성하므로 LLM API 키가 필요 없다. 슬래시 커맨드가 에이전트에게 지시하는 형태.
특정 구간을 채우고 싶으면:
# 현재 last_summarized 이후 → 이 구간을 건너뛰고 더 뒤를 먼저 요약하고 싶을 때
# → 그냥 실행하면 됨 (forward 자동)
# 빈 구간을 보충하고 싶으면 수동 범위 지정 (state는 더 큰 값일 때만 forward)
python bot/discord_collab.py summarize --from-msg <ID> --to-msg <ID>
현재 구현에선 summarize CLI는 에이전트가 직접 md를 작성하는 구조라 범위 지정은 에이전트가 결정하며, 상태 갱신은 storage.update_last_summarized()가 forward-only를 강제한다.
docs/discord-huddle-summaries/는 git 트래킹 대상 — 팀원이 pull 받으면 회의록이 따라옴.system-agents 턴 안에서 자기 담당 작업을 자율 처리하거나, TODO.md를 위에서부터 처리하는 루프. 사용자 응답이 필요하면 페르소나로 자가 응답해 계속 진행하고, 승인 필요한 위험 작업은 미뤄둔다.
Unity 빌드 → zip → GitHub Release 공개. 프로젝트 루트 / 산출물 이름 / 씬 경로는 모두 CLI 플래그로 지정 (하드코딩 없음)
Discord Gateway WebSocket listener 기반 실시간 메시지 감지 + Monitor 연결
Claude Code가 구성한 텍스트/파일을 Discord 채널에 게시한다 (sync의 반대 방향)
Discord 채널의 새 메시지를 가져와 프로젝트에 저장한다