Task Quest
Zero-friction 게이미피케이션 레이어. 사용자는 평소처럼 일하고, 에이전트가 게임을 운영한다. smart-tasks의 companion skill.
Setup
Run the init script once:
bash skills/task-quest/scripts/init-quest.sh
This creates task-quest/quest-state.md, task-quest/achievements.md,
and task-quest/history/. Idempotent — safe to re-run.
After init, apply workspace integration changes from workspace-integration.md with user approval.
Runtime Data Structure
task-quest/quest-state.md— 레벨, XP, 스트릭, 통계 (every session startup에 읽기)task-quest/achievements.md— 달성/미달성 업적 목록task-quest/history/YYYY-QN.md— 분기별 XP/완료 이력
For full mechanics see mechanics.md. For achievement catalog see achievements.md. For theme options see themes.md.
Core Workflow
1. Session Startup
Read task-quest/quest-state.md alongside tasks/INDEX.md.
If active: false, skip all game elements silently.
2. Task Completion → XP Award
When a smart-tasks task is completed:
- Calculate XP using priority + estimated_hours + timing bonuses. Full formula in mechanics.md.
- Update
task-quest/quest-state.md:- Increment
xpandtotal_xp - Increment
total_completed - Update streak (check last_completed date)
- Recalculate
xp_to_nextandlevelif leveled up - Append to
## 최근 활동(keep last 10 entries)
- Increment
- Check achievement conditions (see achievements.md)
- Update
task-quest/achievements.mdif new achievement unlocked
3. Inline Reporting (핵심: 자연스러운 삽입)
게임 요소를 별도 메시지로 보내지 않고 기존 응답에 자연스럽게 한 줄 추가.
일반 완료 (매번):
"심사 완료 처리했습니다. +80 XP ⚡ (조기완료 보너스!)"
레벨업 (강조):
"🎉 Level 8 달성! '마스터' 칭호 획득! 다음 목표: Level 9 (320 XP 남음)"
업적 달성 (강조):
"🏅 새 업적: On Fire! 10일 연속 스트릭 달성!"
스트릭 마일스톤 (7, 14, 30, 60, 100일):
"🔥 30일 연속 스트릭! 새 기록!"
강조 메시지는 하루 최대 2번. 초과 시 XP 한 줄만.
4. Briefing Integration
아침 브리핑에 한 줄 추가:
"🔥 7일 연속 스트릭 중! Level 7 (340/500 XP)"
주간 리뷰에 리포트 카드 섹션 추가:
📊 이번 주 퀘스트 리포트
━━━━━━━━━━━━
⭐ Level 7 → 8 승급!
🔥 스트릭: 12일 (최장 기록 갱신!)
✅ 완료: 8건 | 💎 획득 XP: 420
🏅 새 업적: Scholar 달성!
5. Theme Change
사용자가 "테마 바꿔줘" → 자연어로 요청:
- Read
task-quest/quest-state.md - Update
themefield to requested theme - Update
titleto match new theme's title for current level - Confirm: "테마를 'space'로 변경했습니다. 현재 칭호: 파일럿"
Available themes: rpg | space | academic | minimal
See themes.md for full title tables.
6. Activate / Deactivate
- "게이미피케이션 끄기" / "퀘스트 중지" →
active: falsein quest-state.md - "다시 켜기" / "퀘스트 켜기" →
active: true - 비활성 중에도 데이터 트래킹 계속 (재활성 시 복원 가능)
7. Status Query
사용자가 "내 퀘스트 현황" / "레벨이 몇이야" 등 질의 시:
- Read
task-quest/quest-state.md - Read
task-quest/achievements.md(미달성 목표 확인용) - 현재 상태 요약 + 다음 목표 제시
quest-state.md Format
---
active: true
level: 7
xp: 340
xp_to_next: 500
title: "리서치 나이트"
streak: 5
longest_streak: 12
last_completed: 2026-04-01
total_completed: 47
total_xp: 2840
theme: rpg
daily_highlights: 0 # 오늘 강조 메시지 횟수 (자정 리셋)
highlight_date: 2026-04-01
---
## 최근 활동
- 2026-04-02: +80 XP (AAAI 심사 완료, 조기완료 보너스)
- 2026-04-01: +40 XP (메일 정리)
Streak Logic
last_completed날짜가 어제이면 → streak +1last_completed날짜가 오늘이면 → streak 유지 (이미 카운트됨)last_completed날짜가 그 이전이면 → streak 1로 리셋 (부정적 메시지 없음 — "새로운 모험의 시작!")- Streak 리셋 시
longest_streak는 유지
Achievement Check Sequence
태스크 완료 후 다음 순서로 업적 조건 확인:
- 시작 계열 (total_completed 기반)
- 속도 계열 (완료 타이밍 기반)
- 연속 계열 (streak 기반)
- 카테고리 계열 (카테고리별 완료 수 기반)
- 특별 계열 (기타 조건)
이미 달성한 업적은 스킵. 신규 달성 시 achievements.md 업데이트 + 인라인 알림.
History Logging
분기가 바뀔 때 (또는 매 주간 리뷰 시):
task-quest/history/YYYY-QN.md에 기간 요약 기록.
포맷: 주별 완료 수 + XP + 레벨 변화.
Best Practices
- quest-state.md는 태스크 완료 시마다 즉시 업데이트.
- 게임 요소는 항상 기존 응답의 끝에 추가 (별도 메시지 금지).
active: false이면 quest-state.md 업데이트도 중단.- XP 계산 시 task 파일의
priority,estimated_hours,due필드 활용. - 필드 누락 시: priority → medium(40 XP), hours → 0, timing → ×1.0.