소스 정보
- 저장소
- bam-bam-2/solo-skills
- 최근 소스 활동
- 2026년 8월 22일 13:42
- 감지된 SKILL.md 언어
- 한국어
- 스타
- 335
- 포크
- 82
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/bam-bam-2/solo-skills --skill daily-brief-bot명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
AI(ChatGPT·Claude·Gemini 등)가 쓴 한글 텍스트를 "사람이 쓴 글처럼" 윤문해주는 오케스트레이터 스킬. 번역투·영어 인용 과다·기계적 병렬·관용구·피동태 남용·접속사 남발·리듬 균일성·이모지/불릿 과다 등 10대 카테고리 40+ AI 티 패턴을 탐지·분류해 내용은 한 글자도 건드리지 않고 문체·리듬·표현만 자연스러운 한국어로 재작성한다. 트리거 — "AI 티 없애줘", "AI 같은 글 자연스럽게", "GPT/ChatGPT 문체", "AI 번역투 고쳐", "사람이 쓴 것처럼 윤문", "AI 윤문", "ChatGPT 티 제거", "한글 AI 탐지·윤문", "AI 글 사람처럼", "번역투 제거", "영어 인용 많은 글 윤문", "AI 글 티 안 나게", "휴머나이저", "humanize Korean", "AI detector bypass 한글". 후속 작업 — "특정 카테고리만 다시", "윤문 강도 조정", "장르 바꿔서", "이 문단만", "2차 윤문" 도 모두 이 스킬. 단순 맞춤법·오탈자 교정은 직접 처리, 번역은 번역 스킬, 내용 추가·삭제를 동반한 재작성은 별도 집필 스킬.
회의 전사록을 받아 회의록으로 정리하고 노션 DB에 등록한 뒤 디스코드에 공지까지 한 번에 처리한다.
온라인 유료 커뮤니티 개설 전체 프로세스를 지원하는 에이전트 조직 스킬. 커뮤니티 기획부터 모집 카피, 노션 DB 세팅, 운영 SOP까지 한번에 처리. 오케스트레이터가 인터뷰를 진행하고 4개 전문 에이전트가 결과물을 순서대로 생성한다. 트리거: "커뮤니티 만들자", "커뮤니티 개설", "유료 커뮤니티 만들어줘", "커뮤니티 기획해줘", "/community-launch"
SOC 직업 분류 기준
SKILL.md 표시 중
| name | daily-brief-bot |
| description | 매일 정해진 시간에 관심 주제 아티클을 수집·요약해 디스코드로 받는 봇을 만들고 튜닝한다. 톤·길이·발송 시각 조정 방법 포함. |
사용자는 매일 아침 10시에 디스코드 DM으로 데일리 브리프봇 아티클을 받는다. 지피터스(gpters.org) 신규 글을 전부 읽고, 사용자의 제2두뇌 볼트·에이사이드 스킬/메모리와 대조해 사용자가 지금 붙들고 있는 고민에 닿는 3건을 골라 편지 형식으로 보낸다. 각 항목에 번호(1~3)와 원문 링크가 붙어 있다.
"여백"은 이 봇이 후보를 고르는 내부 판정 기준을 부르는 말이다(볼트에 한 번도 안 나온 것). 사용자에게 말할 때는 봇 이름인 데일리 브리프봇으로 부른다.
ssh remote-host)~/Projects/<프로젝트>/
prompt-template.md ★ 톤·형식·길이·몇 건을 결정하는 유일한 파일. 편집은 거의 여기만 고친다
collect.mjs 지피터스 신규 글 수집 (Bettermode GraphQL, 게스트 토큰 · 로그인 불필요)
brief.mjs 볼트·스킬·메모리 대조 → 후보 22건 추린 뒤 템플릿에 끼워 프롬프트 생성
verify.mjs 브리핑 링크가 실제 수집분인지 대조·정정
dm.py 디스코드 DM 발송 (stdin → 사용자 DM, 1900자씩 분할)
capture.py 사용자의 DM 답장 회수 (10분마다)
run.sh 매일 10:00 전체 실행 (launchd com.bambam.gpters-brief)
.env DISCORD_TOKEN / BAMBAM_USER_ID / CLAUDE_CODE_OAUTH_TOKEN (600)
ctx/ 맥북에서 동기화한 에이사이드 skills/ · memory/ ("이미 하고 있는 것" 판정용)
state/
posts-YYYY-MM-DD.json 그날 수집한 글 전문
brief-YYYY-MM-DD.md 그날 보낸 아티클
marks.jsonl 사용자가 DM에서 표시한 관심 항목
done.jsonl 실제로 실현한 항목 (재제안 금지 목록)
사용자 볼트: ~/Library/Mobile Documents/com~apple~CloudDocs/제2두뇌 (원격 머신에서도 접근됨)
사용자가 "데일리 브리프봇 고치자" 계열로 말하면 아래에서 해당하는 파일만 고친다.
| 요청 | 고칠 곳 |
|---|---|
| 톤, 문체, 형식, 길이, 몇 건, 어떤 순서로, 금지 표현 | prompt-template.md ← 거의 전부 여기 |
| 어떤 글을 후보로 올릴지 (점수 기준, 후보 개수, 활동 판정 기간 7일) | brief.mjs |
| 어떤 카테고리를 수집할지, 몇 건 가져올지 | collect.mjs |
| 보내는 시각 | ~/Library/LaunchAgents/com.bambam.gpters-brief.plist → 수정 후 unload/load |
| 모델 (클로드 → 코덱스 폴백) | run.sh |
고친 뒤에는 반드시 한 번 돌려보고 결과를 보여준 다음 발송한다.
ssh remote-host 'cd ~/Projects/<프로젝트> && node brief.mjs && set -a && . ./.env && set +a && claude -p < state/prompt-<날짜>.txt'
맥북 스킬/메모리가 바뀜으면 판정 근거도 갱신해야 한다.
rsync -az --delete 스킬 폴더 remote-host:~/Projects/<프로젝트>/ctx/skills/
rsync -az --exclude='.history.jsonl' --exclude='memory-index.json' --exclude='.moss-cache' --exclude='.git' 에이전트 메모 remote-host:~/Projects/<프로젝트>/ctx/memory/
원문 전문부터 읽는다. 브리핑 요약만 보고 시작하지 마라.
ssh remote-host 'cat ~/Projects/<프로젝트>/state/brief-<날짜>.md'
해당 항목의 링크에서 post ID를 뽑아 posts-<날짜>.json에서 body를 꺼낸다.
사용자 볼트의 관련 노트를 읽는다. 브리핑의 "사용자 쪽 연결" 줄에 적힌 노트를 실제로 열어본다. 남이 쓴 방법을 그대로 옮기지 말고, 사용자가 이미 가진 것과 겹치는 부분을 먼저 확인한다.
사용자 환경 기준으로 다시 짠 실행안을 제시하고 승인받는다.
실행한다. 무거운 작업이면 원격 머신로 넘긴다(macmini-offload 스킬).
끝나면 기록한다.
[[위키링크]] 문법 지킬 것.
예) 참고: 정본노트를 채널별 브리프로 분리하는 OSMU 방식 — https://...
새 개념 노트가 필요할 정도면 사용자에게 먼저 묻는다.done.jsonl에 한 줄 추가:
ssh remote-host 'echo "{\"date\":\"2026-08-13\",\"no\":2,\"post\":\"<postId>\",\"title\":\"...\",\"result\":\"...\"}" >> ~/Projects/<프로젝트>/state/done.jsonl'
이게 있으면 같은 주제를 다시 제안하지 않는다.후보 4종이 원격 머신 ~/Projects/<프로젝트>/assets/ 에 있다 (b_bot 적용 중 / a_owl / c_book / d_cat).
사용자가 로봇을 골랐다. 40px 원형으로 잘려도 눈 두 개와 안테나 라임 점이 살아남는다.
커뮤니티 브랜드 컬러 기준: 배경 #0d0d0d, 강조 #d4f000. 디스코드는 작은 원으로 잘리니 여백을 넉넉히 둔 단순한 형태만 쓴다.
ssh remote-host 'cd ~/Projects/<프로젝트> && set -a && . ./.env && set +a && python3 -c "
import os,json,base64,urllib.request
img=base64.b64encode(open(\"assets/b_bot.png\",\"rb\").read()).decode()
H={\"Authorization\":\"Bot \"+os.environ[\"DISCORD_TOKEN\"],\"User-Agent\":\"DiscordBot (https://github.com, 1.0)\",\"Content-Type\":\"application/json\"}
r=urllib.request.Request(\"https://discord.com/api/v10/users/@me\",data=json.dumps({\"avatar\":\"data:image/png;base64,\"+img}).encode(),headers=H,method=\"PATCH\")
print(json.load(urllib.request.urlopen(r))[\"username\"])"'
사용자는 개발자가 아니다. 읽다가 모르는 단어가 하나라도 나오면 실패다.
전문용어는 처음 나올 때 괄호로 풀고, 영어 약어는 우리말로 바꾸고, 명령어·코드는 역할 설명이 붙을 때만 쓴다.
단 숫자와 구체적 사실은 그대로 살린다. 쉽게 쓰라는 게 내용을 빼라는 뜻이 아니다.
자세한 규칙은 prompt-template.md 의 "말투와 어휘" 절에 있다.