Reddit 게시글 엔진은(는) 무엇을 하나요?
하위 레딧의 문화에 맞는 Reddit 게시글을 초안합니다. 선택적으로 Composio를 통해 게시할 수 있습니다.
중요 규칙: 하위 레딧 규칙을 확인하기 전에는 절대 게시하지 마십시오. 본문에 제품 링크를 절대 포함하지 말고, 적절한 경우에만 첫 댓글에 넣으십시오. 90/10 규칙을 따르십시오: 게시글은 제품 언급과 관계없이 독립적인 가치를 제공해야 합니다.
스팸 방지 규칙: 주로 홍보성인 게시글은 삭제되며 계정이 차단될 수 있습니다. 목표는 커뮤니티에 먼저 기여하는 것입니다. 제품 언급은 첫 댓글에만, 그리고 하위 레딧에서 자기 홍보를 허용하는 경우에만 가능합니다.
1단계: 설정 확인
echo "GEMINI_API_KEY: ${GEMINI_API_KEY:+set}"
# Composio Reddit MCP가 연결되었는지 확인
claude mcp list 2>/dev/null | grep -i reddit || echo "Composio Reddit MCP: 연결 안 됨"
GEMINI_API_KEY가 없으면: 중단합니다. 사용자에게 "GEMINI_API_KEY가 필요합니다. aistudio.google.com에서 받으세요. .env 파일에 추가하세요."라고 알립니다.
Composio Reddit MCP가 연결되지 않았으면: 계속합니다. 스킬은 게시글을 초안하지만 게시 단계는 건너뜁니다. 사용자에게 "Composio Reddit MCP가 연결되지 않았습니다: 수동 제출을 위해 게시글을 초안합니다. 직접 게시를 활성화하려면 README.md의 설정 방법을 참조하세요."라고 알립니다.
2단계: 컨텍스트 수집
다음이 필요합니다:
- 대상 하위 레딧 (예: r/devops, r/startups, r/SideProject)
- 공유할 내용 (프로젝트, 기사, 질문, 토론, 도구)
- 한 문장으로 된 기능 설명
- 이 특정 하위 레딧 커뮤니티와의 관련성
- 자체 게시글(텍스트) 또는 링크 게시글 중 어떤 형태를 원하는지
이 중 누락된 항목이 있으면 한 번에 물어보십시오:
"Reddit 게시글을 작성하려면 다음이 필요합니다:
- 어떤 하위 레딧인가요? (예: r/devops, r/startups)
- 무엇을 공유하시나요? (프로젝트, 기사, 도구, 질문)
- 어떤 기능을 하나요? (한 문장, 기술적으로)
- 이 하위 레딧이 왜 이 내용에 관심을 가져야 하나요?"
3단계: 하위 레딧 규칙 및 문화 조회
하위 레딧의 규칙 조회:
curl -s \
-H "User-Agent: varnan-skills/1.0" \
"https://www.reddit.com/r/{SUBREDDIT}/about/rules.json" \
| python3 -c "
import sys, json
d = json.load(sys.stdin)
rules = d.get('rules', [])
for r in rules:
print(f'규칙: {r.get(\"short_name\", \"\")}')
print(f'상세: {r.get(\"description\", \"\")[:200]}')
print()
"
최근 상위 게시글을 조회하여 어조와 스타일 파악:
curl -s \
-H "User-Agent: varnan-skills/1.0" \
"https://www.reddit.com/r/{SUBREDDIT}/top.json?t=week&limit=10" \
| python3 -c "
import sys, json
d = json.load(sys.stdin)
for p in d['data']['children'][:10]:
pd = p['data']
print(f'점수: {pd[\"score\"]} | 제목: {pd[\"title\"][:100]}')
"
상위 게시글의 패턴을 기록하십시오:
- 제목이 질문인가요, 진술인가요?
- 기술로 시작하나요, 결과로 시작하나요?
- 개인적("I built...")인가요, 비개인적("Tool for...")인가요?
- 이 하위 레딧에서 어떤 형식이 가장 많은 참여를 얻나요?
하위 레딧 사이드바에서 게시 규칙 확인:
curl -s \
-H "User-Agent: varnan-skills/1.0" \
"https://www.reddit.com/r/{SUBREDDIT}/about.json" \
| python3 -c "
import sys, json
d = json.load(sys.stdin)
data = d.get('data', {})
print('공개 설명:', data.get('public_description', '')[:300])
print('구독자:', data.get('subscribers', 0))
"
하위 레딧 유형 식별:
| 유형 | 예시 | 게시글 스타일 |
|---|---|---|
| 기술 실무자 | r/devops, r/sysadmin, r/ExperiencedDevs | 구체적인 기술, 불필요한 내용 없음, "나는 X를 하고 Y를 배웠다" |
| 스타트업/빌더 | r/startups, r/SideProject, r/indiehackers | 개인적인 이야기, 지표, 교훈 |
| 일반 기술 | r/programming, r/technology | 뉴스 각도, 토론 유도, 논란의 여지 |
| 경력 | r/cscareerquestions, r/ITCareerQuestions | 질문 형식, 구체적인 시나리오, 경험 공유 요청 |
| 틈새 도구 | r/vim, r/rust, r/golang | 깊이 있는 기술 내용, 코드 예제, 벤치마크 |
조회한 규칙과 상위 게시글을 사용하여 어떤 스타일이 적용되는지 결정하십시오.
4단계: Gemini로 게시글 초안 작성
게시글 내용을 임시 파일에 쓰고 Gemini를 호출하십시오:
cat > /tmp/reddit-post-request.json << 'ENDJSON'
{
"system_instruction": {
"parts": [{
"text": "당신은 {SUBREDDIT} 커뮤니티에서 활동하는 개발자입니다. 이 하위 레딧의 문화에 맞는 Reddit 게시글을 작성하세요. 규칙: (1) 프로젝트나 경험 게시글인 경우 1인칭으로 작성합니다. (2) 본문에 제품 링크를 절대 포함하지 마십시오: 링크는 첫 댓글에만 넣습니다. (3) 게시글은 공유되는 제품과 별개로 커뮤니티에 진정한 가치를 제공해야 합니다. (4) 이 하위 레딧의 상위 게시글 어조와 일치시킵니다: {SUBREDDIT_TONE_NOTES}. (5) 제목은 최대 300자. (6) 텍스트 게시글의 본문은 150-400단어. (7) 마케팅 언어 사용 금지: '혁신적인', '강력한', '견고한', '완벽한', '획기적인' 등. (8) 사용자가 만든 도구에 관한 게시글인 경우 'I made...' 또는 'I built...'로 시작합니다: 이 형식이 Reddit에서 가장 좋은 반응을 얻습니다. (9) 출력: 첫 줄에 제목, 빈 줄, 본문 순서. 레이블이나 설명 없음. 줄 바꿈 문자를 사용하지 마십시오."
}]
},
"contents": [{
"parts": [{
"text": "POST_DETAILS_HERE"
}]
}],
"generationConfig": {
"temperature": 0.7,
"maxOutputTokens": 1024
}
}
ENDJSON
curl -s -X POST \
"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d @/tmp/reddit-post-request.json \
| python3 -c "import sys,json; d=json.load(sys.stdin); print(d['candidates'][0]['content']['parts'][0]['text'])"
POST_DETAILS_HERE를 다음으로 바꾸십시오:
- 하위 레딧 이름 및 유형
- 관찰된 상위 게시글 패턴
- 공유하는 내용과 관련성
- 주요 기술 세부 사항
- 빌더의 솔직한 동기
5단계: 첫 댓글 초안 작성
사용자가 공유할 제품 링크나 추가 컨텍스트가 있는 경우, 게시글이 올라간 직후 게시할 첫 댓글을 초안합니다.
첫 댓글은 두 가지 목적을 제공합니다:
- 링크 제공 (본문에 링크가 없어 덜 홍보적으로 보임)
- 게시글 본문에서 너무 홍보적으로 느껴질 수 있는 컨텍스트 추가
첫 댓글 규칙:
- 게시글이 올라간 직후 자신의 게시글에 첫 번째 답글로 게시
- 100단어 미만 유지
- 예시 형식: "링크는 여기: [URL]: 게시글에서 언급된 [특정 기술]에 대한 질문도 환영합니다."
- 하위 레딧에서 댓글 내 자기 홍보를 허용하는 경우에만 첫 댓글에 링크 포함
- 하위 레딧에 "자기 홍보 금지" 규칙이 있으면 링크를 완전히 생략
6단계: 자체 QA
초안을 제시하기 전에 확인하십시오:
구조:
- 제목이 300자를 초과하지 않음
- 게시글 본문에 링크가 없음
- 게시글이 1인칭으로 시작함 (프로젝트/경험 게시글의 경우)
- 최소한 하나의 구체적인 기술 세부 사항 또는 구체적인 숫자가 포함됨
- 게시글이 이 하위 레딧에서 관찰된 상위 게시글의 어조와 일치함 (3단계에서 기록)
- 3단계에서 확인한 하위 레딧 규칙을 위반하지 않음
클로드-이즘 탐지: 다음 어휘 범주를 검사하고 모든 인스턴스를 제거하십시오:
| 범주 | 제거할 단어 |
|---|---|
| 불필요한 강조 | 엄청나게, 절대적으로, 확실히, 필수적으로, 근본적으로, 말 그대로, 특히, 꽤, 오히려, 정말, 상당히, 단순히, 진정으로, 궁극적으로, 매우 |
| AI 회피 표현 | 주목할 점은, 주목할 가치가 있는, 중요한 점은, 앞서 언급했듯이, 언급했듯이 |
| 과장된 설명 | 혁신적인, 혁명적인, 강력한, 견고한, 완벽한, 최고의, 최첨단, 획기적인, 놀라운 |
| 서론 형식 | 결론적으로, 요약하자면, 전체적으로, 먼저, 마지막으로 |
| 불필요한 접속사 | 게다가, 더욱이, 추가로, 그러나 (문장 시작), 따라서, 그러므로, 이에 따라 |
| AI 특유 표현 | 이는 다음을 보장합니다, 이는 다음을 가능하게 합니다, 이는 다음을 돕습니다, 다음을 가능하게 합니다, 탐구하다, 활용하다, 활용하다, 육성하다 |
발견되면: 구체적인 명사, 동사 또는 숫자로 대체하십시오. "매우 빠름"은 "12ms 실행"으로 대체. "강력한 도구"는 실제 기능으로 대체.
즉시 삭제 구문 확인: 다음 패턴은 Reddit 스팸 필터나 중재자에 의해 제거됩니다:
- 광고처럼 읽히는 문장 ("지금 [제품] 사용해보세요", "지금 가입하세요", "무료로 시작하세요")
- 자신이 빌더가 아님을 암시하는 표현 ("이 훌륭한 도구를 발견했습니다", "이 놀라운 제품을 찾았습니다")
- 커뮤니티에 존재감을 확립하지 않은 하위 레딧에서 사용자에 대한 1인칭 소유권 표현 ("저희 사용자", "저희 고객")
- "X를 만들었고 이를 사용하여..." 직후 링크가 오는 구조 (홍보 구조)
- 자격 없이 최상급 표현 사용 ("가장 좋은 방법은...", "유일한 도구는...")
- 게시글 본문의 외부 링크 (첫 댓글에만 사용)
즉시 삭제 구문이 발견되면: 단어만 바꾸는 것이 아니라 문장 전체를 수정하십시오.
7단계: 어드버서리 리뷰
최종 초안을 제시하기 전에 3가지 페르소나 리뷰를 실행합니다. 각 페르소나는 게시글을 읽고 하나의 구체적인 문제점을 찾아 정확한 텍스트를 인용합니다.
페르소나 1: 회의적인 실무자 이 사람은 수년간 r/{SUBREDDIT}에서 활동하며 게시글로 위장한 수백 개의 제품 출시를 목격했습니다. 그들의 판단:
- 명시적으로 판매하지 않더라도 홍보처럼 느껴지는 문장이 있는가?
- 게시글이 커뮤니티의 문제에 대한 진정한 이해를 드러내는가, 아니면 단순히 제품에 대해 이야기하는가?
- 실무자가 눈살을 찌푸릴 만한 주장이 있는가?
그들이 지적할 특정 줄과 그 이유를 명시하십시오.
페르소나 2: 중재자 이 사람은 3단계에서 가져온 규칙을 집행합니다. 그들의 판단:
- 게시글이 하위 레딧 규칙을 기술적으로 준수하는가?
- 자기 홍보와 커뮤니티 기여의 비율이 적절한가?
- 이 정확한 게시글 구조가 이전에 삭제된 적이 있는가?
위반 위험이 있는 특정 규칙 하나를 명시하거나, 문제가 없다고 확인하십시오.
페르소나 3: 대상 독자 이 사람은 하위 레딧의 인구 통계와 일치하는 비(非)빌더 커뮤니티 회원입니다. 그들의 판단:
- 제품을 사용하지 않더라도 이 게시글에 추천(upvote)할 것인가?
- 첫 댓글의 링크를 건너뛰더라도 적용할 수 있는 교훈이 있는가?
- 첫 문장이 계속 읽고 싶게 만드는가?
그들이 읽기를 멈출 특정 지점을 명시하거나, 게시글이 그들의 관심을 유지한다고 확인하십시오.
세 페르소나 모두 보고한 후: 필요한 수정을 적용하십시오. 어떤 페르소나도 문제를 찾지 못하면 "어드버서리 리뷰: 문제 없음."이라고 명시하십시오.
8단계: Composio를 통한 게시 (선택 사항)
Composio Reddit MCP가 연결되어 있고 사용자가 게시를 확인한 경우:
reddit-composio MCP 도구 REDDIT_CREATE_REDDIT_POST 사용:
- subreddit: {SUBREDDIT_WITHOUT_r/}
- title: {TITLE}
- kind: "self"
- text: {BODY}
게시 전, 사용자에게 확인: "r/{SUBREDDIT}에 게시할 준비가 되었습니다. 게시글 제목: '{TITLE}'. 진행할까요?"
명시적 확인 후에만 진행하십시오.
게시 후:
- 응답에서 게시글 URL을 기록
- 첫 댓글이 초안된 경우, 반환된 게시글 ID를 사용하여 동일한 MCP로 즉시 게시
게시 실패 시 (403, 429 또는 기타 오류): 수동 제출을 위해 초안을 제시하십시오. 사용자에게 "직접 게시가 실패했습니다 ([오류 코드]). 수동 제출을 위한 게시글입니다. reddit.com/r/{SUBREDDIT}/submit에서 제목과 본문을 복사하여 붙여넣으세요."라고 알립니다.
9단계: 결과 제시
## Reddit 게시글: r/{SUBREDDIT}
### 제목
{title}
### 본문
{body}
### 첫 댓글 (게시 직후)
{해당되는 경우 첫 댓글}
---
### 제출 참고 사항
- 게시글 유형: {self/link}
- 게시하기 가장 좋은 시간: {이 하위 레딧의 피크 시간: 대부분의 기술 하위 레딧의 경우 미국 시간 평일 오전}
- 게시 후: 첫 1시간 동안 모든 댓글에 답변: 초기 참여는 알고리즘에 품질 신호로 작용
- 카르마 참고: {계정이 새 계정인 경우 일부 하위 레딧은 게시 전 최소 카르마를 요구함을 알림}
게시글이 이미 Composio를 통해 제출된 경우, 출력 블록을 다음으로 대체하십시오:
게시글 제출됨: {reddit_post_url}