매일 KST 08:00, 디스코드 채널로 한국 면접·자소서 단골 질문 2개를 푸시하는 미니멀 봇.
📅 2026-05-15 (금) 오늘의 면접/자소서 질문
1. 본인이 새로운 환경에 적응했던 구체적인 경험을 말해주세요.
2. 본인이 생각하는 직업적 성공의 정의는 무엇입니까?
답변 가이드·카테고리 태그·면접관 포인트 같은 부속 정보는 의도적으로 뺐다. 매일 한 번, 가볍게 떠올려보는 트리거 역할이 목적.
면접·자소서 인성 질문은 한 번 외워도 시간이 지나면 흐릿해진다. 시중 자료를 통째로 외우는 건 부담스럽고, 매일 두세 개씩 머릿속에서 돌려보는 게 훨씬 누적이 잘된다. 디스코드는 알림 동선이 짧고 모바일에서도 그대로 보여서 일상 회독 채널로 적합하다.
scripts/post.py— GitHub Actions cron이 호출. 풀에서 2개 선정 후 Webhook POST.dailyiq/— 라이브러리 모듈 (schema·select·format·webhook).data/questions.json— 정적 질문 풀 (현재 62개)..github/workflows/daily-post.yml— cron0 23 * * *(UTC) = KST 08:00.
선정은 today.year 시드 결정론. 같은 날짜·같은 풀이면 항상 같은 결과. 풀이 작아도 wrap-around로 매일 다른 짝이 나온다. 자세한 설계 결정은 docs/decisions/ 참고.
python3.12 -m venv venv
./venv/bin/pip install -e ".[dev]"
./venv/bin/pytest # 48 tests
./venv/bin/ruff check .오늘 메시지 미리보기 (웹훅 발사 X, stdout만):
./venv/bin/python scripts/post.py --dry-run
./venv/bin/python scripts/post.py --date 2026-06-01 --dry-run # 특정일대상 채널 → 톱니바퀴(설정) → 연동 → 웹후크 → 새 웹후크 → URL 복사.
이 repo의 Settings → Secrets and variables → Actions → New repository secret:
- Name:
DISCORD_WEBHOOK_URL - Value: 위에서 복사한 URL
CLI로도 가능 (gh 로그인 상태):
gh secret set DISCORD_WEBHOOK_URL --repo <OWNER>/<REPO>
# 프롬프트에 URL 입력 후 Ctrl+D — shell history·채팅에 URL 흔적 없음매일 자동 발사는 UTC 23:00이지만, 즉시 한 번 발사해 보고 싶다면:
gh workflow run "Daily post" --repo <OWNER>/<REPO>
gh run watch --repo <OWNER>/<REPO>또는 Actions 탭 → "Daily post" → "Run workflow" 수동 dispatch.
질문 추가는 scripts/add_questions.py 사용 (id 자동 부여 + 검증 내장):
echo '[{"text":"...?","category":"self-understanding"}]' \
| ./venv/bin/python scripts/add_questions.py
# dry-run 미리보기
./venv/bin/python scripts/add_questions.py --input new.json --dry-run풀 잔량·카테고리 분포 점검:
python3 -c "import collections, json; d=json.load(open('data/questions.json')); \
print('total:', len(d['questions'])); \
print(collections.Counter(q['category'] for q in d['questions']))"현재 정적 시드 풀(data/questions.json)로만 동작한다. 자동 보충 메커니즘은 의도적으로 deferred — 풀이 카테고리당 10개 미만으로 줄어들면 그때 결정. 옵션 비교는 docs/superpowers/specs/2026-05-14-daily-interview-bot-design.md §8 참조.
- 08:00 정시에 안 옴: GitHub Actions schedule cron은 정시 보장이 없다. 부하 따라 5~15분 지연 흔함. 정확한 시각이 필요하면
.github/workflows/daily-post.yml의 cron을55 22 * * *(KST 07:55 목표) 같은 식으로 당겨라. - 갑자기 며칠째 메시지 없음: GitHub은 60일간 commit 활동이 없는 repo의 schedule을 자동 비활성화한다. Actions 탭에서 워크플로를 다시 enable 토글하거나, 풀에 질문 1개라도 커밋해 활동 시그널을 주면 풀린다.
- Actions run이 4xx로 실패: Webhook URL이 만료·재발급됐을 가능성. 디스코드에서 재발급 후
DISCORD_WEBHOOK_URLsecret 갱신. SchemaError: ...:data/questions.json이 깨졌거나 카테고리 enum 위반. 잘못된 메시지를 보내는 것보다 실패가 안전하다는 설계 (CLAUDE.md "핵심 제약" 참조). 잡고 푸시.
- 설계 합의:
docs/superpowers/specs/2026-05-14-daily-interview-bot-design.md - 의사결정 ADR:
docs/decisions/(6건) - AI 에이전트용 컨텍스트:
CLAUDE.md
MIT © 2026 makersfarm