🎮 Life RPG 시스템 가이드

성장과 휴식을 함께 관리하는 인생 게임화 시스템 — 과로하면 손해, 잘 쉬면 보너스
Proxmox · n8n · nginx · PostgreSQL · Telegram · OpenClaw 스택 그대로 사용

00지금 어디서 무엇을 쓰면 되나

웹 입력 페이지
가장 빠르게 기록할 때 사용. 모바일에서 코딩 45분, 회의 1, 수면 6.5시간처럼 바로 보낸다. PIN은 브라우저에만 저장된다.
텔레그램 봇
수동 입력과 간단 조회용. 모바일 메신저 흐름이 편할 때 사용한다. 웹 입력과 같은 문법을 공유한다.
OpenClaw
#기록 태그가 붙은 자연어 입력만 원장에 저장한다. 태그가 없으면 일반 대화로 남고 XP는 기록되지 않는다.
대시보드
지금 상태를 해석하는 곳. 레벨, 스탯, 기력, 최근 추이를 확인하고 입력 규칙 설명은 이 가이드에서 본다.
역할 분리 원칙: 입력 페이지 = 빨리 기록, 정보 페이지 = 규칙 이해, 대시보드 = 상태 해석.

01핵심 개념 — 이 게임의 4가지 규칙

이벤트 소싱
DB에 저장되는 "사실"은 XP 이벤트 로그 하나뿐. 레벨·스탯·기력·스트릭은 전부 그때그때 계산된다. 감쇠조차 이벤트로 기록되어 이력이 투명하고, 공식을 바꿔도 과거가 재해석된다.
스킬 ≠ 스탯 ≠ 기력
스킬(코딩·운동·휴식)은 XP 누적 레벨 — 노력의 총량. 스탯(HP·MP·WIS)은 최근 2~4주 달성률 — 요즘의 나. 기력(0~100)은 하루하루의 정신 에너지 — 지금의 나. 수면은 예외적으로 레벨업용 스킬이 아니라 회복·컨디션 신호로 취급된다.
과로는 손해, 휴식은 전략
작업은 기력을 소모하고, 지친 상태의 작업은 XP가 깎인다. 지친 상태의 휴식·놀이는 XP ×1.5 보너스. 시스템이 잔소리하는 대신, 쉬는 게 수치상 이득이 되게 설계.
안 하면 내려간다
성장 스킬은 기본 5일 유예 뒤 하루 1.5%씩 XP가 줄어 레벨 다운될 수 있다. 매일 아침 점검 봇이 감쇠와 기력 상태를 알려주며, 운동·휴식·수면·놀이 같은 회복 스킬은 감쇠하지 않는다.

02데이터 흐름 — 무엇이 어디로 가는가

📱 텔레그램 봇
"운동 40분" 수동 입력
🌐 웹 입력
PIN + 키워드 빠른 입력
🤖 OpenClaw
자연어 기록·조회
⚙️ n8n 자동수집
Obsidian ToDo 수확 · 수면 연동 후보
🌅 아침 점검 cron
감쇠 적용 · 기력 경고
▼   모든 경로가 하나의 함수로 수렴   ▼
liferpg.add_xp()
과로 페널티·휴식 보너스 적용 → 레벨업·기력·경고 반환
xp_events 테이블
append-only 원장 · xp(보정 후) + raw_xp(원본)
▼   계산 (저장 안 함)   ▼
스킬 레벨
v_skill_status
스탯 0~100
v_stat_status
기력 시뮬레이션
energy_at()
스트릭·캐릭터
v_current_streak · v_character
📊 캐릭터 시트
기력 바 + 30일 추이 + 레이더
💬 텔레그램 응답
/stat · 레벨업 · 과부하 경고

03실제로 이렇게 동작한다

평소: 기록하면 XP와 기력이 함께 움직인다
코딩 2시간 리팩토링
✅ 코딩 +120 XP · Lv.7 · 누적 1,740
🔋 기력 63 🟡
과로: 지친 상태의 작업은 효율이 깎인다
며칠 크런치로 기력이 30 아래로 떨어진 상태에서 또 일하면 —
코딩 90분
✅ 코딩 +45 XP (입력 90) · 🔋 기력 24 🟠
🟠 지침 (기력 24) — 작업 XP 50%. 휴식·놀이 추천
회복: 지쳤을 땐 쉬는 게 최고 효율
휴식 60분 낮잠
✅ 휴식 +90 XP (입력 60) · 🔋 기력 45 🟡
💚 회복 보너스 ×1.5 — 잘 쉬는 것도 성장이다
방치: 아침 점검 봇이 감쇠를 알려준다
🌅 Life RPG 아침 점검
📉 자기개발 Lv.3 → Lv.2 (12일 미활동, -4.1 XP)
감쇠는 성장 스킬별 유예(기본 5일) 후 하루 1.5%씩 적용된다. 회복 스킬은 감쇠하지 않는다 — 공포가 아니라 리마인더 수준이며, 다시 시작하면 금방 회복된다.
업무, 회의, 보고서, 세미나는 성장 XP를 주지 않는 대신 기력에 직접 반영된다. "많이 버틴 날"을 보상하지 않도록 설계한 부분이다.

04기력 시스템 — 번아웃 가드

기력은 0~100의 정신 에너지. 매일 기본 회복량이 있고, 수면 기록이 그날 회복량을 조정한다. 활동마다 오르내리며, 과거 45일 이벤트에서 하루 단위로 시뮬레이션되므로 별도 저장이 없다.

활동기력 변화 (XP당)예시
💻 코딩−0.1260분 = 기력 −7.2
🤖 AI활용−0.1060분 = −6
🧠 AI스터디−0.0760분 = −4.2
📚 독서−0.04가벼운 소모
💪 운동+0.1540분 = +6 (정신 에너지 기준 회복)
🛌 휴식+0.3560분 = +21
🎡 취미·놀이+0.1890분 = +16
상태조건효과
🟢 쾌적 / 🟡 보통기력 35 이상XP 100% 인정
🟠 지침기력 35 미만작업 XP 50% · 회복 활동은 ×1.5 보너스
🔴 과부하기력 20 미만작업 XP 25% + 경고 · 회복 보너스 유지
⚠️ 소프트캡하루 성장 활동 250 XP 초과초과분 50%만 인정 — 몰아치기 방지
밸런스 감각: 하루 6시간 작업 + 가벼운 운동 + 산책이면 현상 유지. 10시간 크런치는 3일이면 과부하 구간 진입. 수치가 안 맞으면 liferpg.config 테이블과 skills.energy_cost에서 조정하면 된다 — 몇 주 써보고 자기 체감에 맞추는 게 정석.
수면은 여기서 회복 리소스다. #기록 수면 6.5시간처럼 남기면 기력 회복과 HP 컨디션에는 반영되지만, 캐릭터 레벨이나 스트릭을 올리지는 않는다.

05레벨 공식 — 스킬은 어떻게 오르내리는가

레벨 n 도달 필요 누적 XP  =  100 × (n−1)^1.5   ·   기본 환산: 1분 = 1 XP
레벨필요 누적 XP체감 (하루 1시간 기준)
Lv.2100이틀째에 첫 레벨업
Lv.32835일째
Lv.58002주째
Lv.102,700한 달 반
Lv.208,2824개월 반
Lv.3721,6001년 꾸준히
감쇠: 성장 스킬은 기본적으로 5일(유예) 넘게 활동이 없으면 하루 1.5%씩 XP가 감소한다. 재정·글쓰기는 더 완만하고, 운동·휴식·수면·놀이 같은 회복 스킬은 감쇠하지 않는다. 감쇠 강도는 스킬별 decay_grace_days / decay_pct에서 조정한다.

06스탯 공식 — HP/MP는 어떻게 계산되는가

스탯값 = min(100,  최근 N일 (XP × 가중치) 합계 ÷ (일일목표 × N) × 100)
스탯기여하는 스킬 (가중치)창(N일)일일 목표
❤️ HP (체력)운동 1.0 · 휴식 0.7 · 놀이 0.7 · 수면 0.051440 XP
💠 MP (집중력)코딩 1.0 · AI활용 0.71490 XP
📖 WIS (지혜)독서 1.0 · 자기개발 1.0 · AI스터디 0.9 · 글쓰기 0.63040 XP
스탯은 실제 활동만 반영한다(감쇠 이벤트 제외). HP에는 수면이 약하게 반영되어 컨디션 신호를 보강하지만, 수면 자체가 레벨업 수단으로 작동하진 않는다.

07텔레그램 사용법

보내는 메시지결과
운동 40분 조깅운동 +40 XP · 기력 +6
코딩 1.5시간 리팩토링코딩 +90 XP · 기력 −10.8 (시간→분 자동 환산)
휴식 60분 낮잠휴식 +60 XP · 기력 +21 (지쳐 있으면 XP ×1.5)
수면 6.5시간수면 기록 저장 · 그날 회복량/HP 반영 (레벨·스트릭 증가는 없음)
독서 30독서 +30 XP (단위 생략 가능)
/stat기력 + 전체 스킬 레벨·진행률·미활동 표시
그 외 아무거나사용법 안내 응답

별칭 — 코딩·개발·프로그래밍 → coding / AI활용·AI·자동화·에이전트·프롬프트·홈랩·서버·인프라 → ai_use / AI스터디·AI공부·AI학습·리서치 → ai_study / 독서·책 → reading / 운동·헬스·조깅·러닝·산책·요가 → fitness / 휴식·쉼·낮잠·놀기 → rest / 취미·놀이·게임·힐링·나들이·충전 → play / 글쓰기·글·원고·초안·에세이 → create. 추가는 n8n Parse Command 노드에서.

08웹 입력 페이지 사용법

항목설명
바로 입력코딩 45분 리팩토링처럼 한 줄로 적고 바로 전송
빠른조합스킬 + 시간 버튼으로 초안을 만든 뒤 메모를 붙여 전송
특수 기록업무 8시간, 회의 1, 보고서 1, 세미나 1, 수면 6.5시간처럼 형식이 정해진 기록
PIN4자리 PIN을 브라우저에만 저장. 공유 기기에서는 기록 후 초기화 권장
상태 요약상단에 현재 레벨·기력·연속일을 함께 보여줘 기록 직후 변화를 바로 확인
웹 입력도 직접 DB에 쓰지 않는다. 모든 쓰기는 n8n을 거쳐 add_xp(), log_work(), log_drain()로만 들어간다.

09파일 구성

파일역할
00_DESIGN.md전체 설계 문서
01_schema.sql기본 스키마 — 테이블·레벨 함수·뷰·시드
06_update_energy_decay.sqlv2 마이그레이션 — 기력·과로 페널티·휴식 보너스·감쇠
09~18_*.sqlv3 스킬/스탯, 퀘스트, 업무 피로, 수면 회복, 스킬 정리, 글쓰기 전환, AI 스킬 분리
02_n8n_telegram_xp.json텔레그램 입력 봇 (기력·경고 응답 포함)
03_n8n_dashboard_api.json대시보드 JSON API (GET /webhook/liferpg-status)
07_n8n_daily_upkeep.json아침 9시 점검 — 감쇠 적용 + 기력 경고 알림
04_dashboard.html캐릭터 시트 — 기력 바·30일 추이·레이더·스킬 XP 바
05_guide.html이 문서
19_n8n_web_input.json웹 입력 webhook — PIN 검증 후 기록 함수 호출
20_web_input.html모바일 우선 웹 입력 페이지

10현재 운영 상태

  1. 라이브 입력 경로 — 텔레그램 봇, 웹 입력 페이지, OpenClaw #기록이 모두 사용 가능
  2. 라이브 조회 경로 — 대시보드, 텔레그램 /stat, OpenClaw get_status
  3. 라이브 자동화 — 아침 감쇠/기력 점검, Obsidian ToDo 완료 수확(A2), 수면 회복 기록
  4. 보류 중 — recovery dashboard 심화, GitHub/Gerrit 계열 자동수집, 주간 리포트 확장
GitHub 자동수집은 현재 제외 상태다. 업무 환경이 사내 Gerrit 중심이라 잘못 붙이면 유지비만 늘고 이득이 적기 때문이다.

11다음 단계 — 자동화 로드맵

단계내용
자동 수집 ①Obsidian ToDo 완료 수확은 이미 라이브. 중복 계산 없이 유지보수 중심으로 운영
자동 수집 ②수면 데이터 자동 연동 후보 검토 — 회복 전용 정책은 유지
입력 UX웹 입력/가이드 안정화 이후 필요하면 AI 해석 노드 또는 다중 이벤트 확인 플로우 검토
주간 리포트일요일 저녁 cron → 주간 XP·레벨업·기력 추이 요약
OpenClaw 연동#기록 기반 저장은 라이브. 이후에는 회고/질의 응답 품질 강화
Qdrant 회고주간 요약 임베딩 → "작년 이맘때 뭐에 몰두했지?" 시간축 검색
확장하더라도 모든 기록은 add_xp() 하나로 들어오고 조회는 뷰·함수로 나간다 — 이 구조만 유지하면 시스템이 커져도 꼬이지 않는다.