Reddit 스킬
개요
이 스킬은 OAuth 기반 PRAW를 통해 하나의 서브레딧 또는 r/all에서 재현 가능한 Reddit 연구 데이터를 수집하는 데 사용됩니다. 원시 아티팩트를 먼저 수집한 후 분석을 진행하여, 동일한 실행 결과를 Reddit 재조회 없이 나중에 재순위화, 요약, 가져오기 또는 번역할 수 있도록 합니다.
언어 정책
사용자에게 보여지는 결과물은 사용자의 언어를 반영합니다. 사용자가 중국어로 작성하거나 주변 프로젝트 컨텍스트가 중국어인 경우, 생성되는 보고서, 노트, Markdown 인덱스, 검토 큐, 요약, 권장 사항을 중국어로 작성합니다.
원시 데이터 스키마는 안정적으로 유지합니다. JSON 키, CSV 헤더, Reddit 제목, 게시물 본문, 댓글, URL, API 필드명은 원래 언어 그대로 유지할 수 있습니다. 중국어 컨텍스트에서 번들 스크립트를 실행할 때는 --language zh를 전달하여 index.md와 CLI 메시지가 중국어 레이블을 사용하도록 합니다.
필수 설정
Python 의존성이 없다면 설치합니다:
python3 -m pip install praw
첫 사용 시, 자격 증명 설정을 수집 전 다음 단계로 진행합니다. 가장 쉬운 방법은:
python3 scripts/setup_reddit_env.py
이 스크립트는 사용자에게 다음을 요청합니다:
REDDIT_CLIENT_ID=your_reddit_client_id
REDDIT_CLIENT_SECRET=your_reddit_client_secret
그리고 이를 ~/.config/reddit-skill/.env에 작성하며, scripts/reddit_mine_posts.py가 자동으로 읽습니다. 수집기는 프로젝트 로컬 .env 파일과 프로세스 환경 변수도 읽습니다.
사용자가 이미 Reddit OAuth 앱을 가지고 있다면, 기존 앱 ID를 REDDIT_CLIENT_ID로, 앱 secret을 REDDIT_CLIENT_SECRET으로 재사용하도록 안내합니다.
사용자에게 아직 자격 증명이 없는 경우, https://www.reddit.com/prefs/apps는 로그인 후에도 작동할 수 있는 레거시 OAuth 앱 페이지이지만, 현재 유일한 온보딩 경로가 아닐 수 있음을 설명합니다. 페이지가 작동하면 script 앱을 생성하고, 앱 이름은 아무거나 사용하며, 리디렉션 URI를 http://localhost:8080으로 설정한 후 앱 ID를 REDDIT_CLIENT_ID로, secret을 REDDIT_CLIENT_SECRET으로 복사합니다. 레거시 페이지에서 앱 생성이 허용되지 않는 경우, 공식 Reddit 도움말 개발자 페이지에서 Reddit의 현재 Data API 가입/요청 흐름을 안내합니다.
Reddit 자격 증명을 스킬 저장소 내에 저장하지 마십시오. 환경 변수, 프로젝트 .env, 또는 ~/.config/reddit-skill/.env에 저장하세요.
수집 워크플로우
- 대상 서브레딧과 순위 기준을 명확히 합니다. 일반적인 선택:
--listing top --time-filter all: 역대 최고 게시물.--listing top --time-filter month: 최근 검증된 히트.--listing hot: 현재 인기 있는 게시물.--listing new또는--listing rising: 초기 발견.--listing search --query "키워드" --search-sort comments --time-filter year: 주제 마이닝.
- 현재 프로젝트의 연구 영역 아래에 명시적
--out-dir과 함께scripts/reddit_mine_posts.py를 실행합니다. - 생성된 원시 파일을 보존합니다:
posts.jsonl: 한 줄에 하나의 정규화된 게시물.comments.jsonl: 댓글이 요청된 경우 한 줄에 하나의 정규화된 댓글.posts.csv: 스프레드시트 친화적인 게시물 테이블.index.md: 사람이 읽을 수 있는 상위 게시물 인덱스.summary.json: 실행 메타데이터 및 개수.
- 생성된 아티팩트를 기반으로 분석합니다. 사용자가 더 최신 데이터를 요청하지 않는 한, Reddit 재조회보다는 JSONL/CSV 재읽기를 선호합니다.
빠른 명령어
이 SKILL.md가 있는 디렉토리에서 실행하거나, scripts/reddit_mine_posts.py를 설치된 스킬 스크립트의 절대 경로로 대체합니다.
하나의 서브레딧에서 역대 최고 게시물 수집:
python3 scripts/reddit_mine_posts.py \
--subreddit LocalLLaMA \
--listing top \
--time-filter all \
--language zh \
--limit 100 \
--include-comments \
--max-comments 8 \
--out-dir research/reddit/localllama-top-all
r/all에서 가장 인기 있는 게시물 마이닝:
python3 scripts/reddit_mine_posts.py \
--subreddit all \
--listing hot \
--language zh \
--limit 100 \
--out-dir research/reddit/all-hot
서브레딧에서 주제 검색 및 댓글 수 기준 순위:
python3 scripts/reddit_mine_posts.py \
--subreddit SaaS \
--listing search \
--query "voice agent" \
--search-sort comments \
--time-filter year \
--language zh \
--limit 75 \
--include-comments \
--out-dir research/reddit/saas-voice-agent-comments
분석 가이드
score와num_comments모두로 게시물 순위를 매깁니다. 높은 댓글 수는 높은 점수보다 고통 마이닝(pain mining)에 더 유용할 수 있습니다.- 콘텐츠 전략을 위해 먼저 제목 패턴을 검토한 후 댓글 패턴을 검토합니다.
- 사용자가 명시적으로 요청하지 않는 한, Reddit 게시 또는 답글은 사람이 검토하는 큐로 유지합니다.
- 공개 익명
.json엔드포인트는403또는 희소 데이터를 반환할 때 신뢰할 수 없는 것으로 간주합니다. OAuth 자격 증명과 함께 PRAW를 선호합니다. - DevRel 또는 제품 리드 발굴의 경우, 제목, selftext, 상위 댓글을 함께 분석하여 의도를 평가합니다.
리소스
scripts/setup_reddit_env.py:REDDIT_CLIENT_ID및REDDIT_CLIENT_SECRET을 위한 대화형 설정 도우미.scripts/reddit_mine_posts.py: 서브레딧 리스팅, 검색, 댓글, 연구 아티팩트를 위한 PRAW 수집기.references/reddit-research-patterns.md: 필드 의미, 출력 규칙, 후속 분석 패턴.
사용자가 단순 수집을 넘어 점수 매기기, 연구 종합, 재사용 가능한 작업 공간 레이아웃, 또는 아티팩트 해석을 요청할 경우 참조 파일을 읽으세요.