원클릭으로
focus-timer
인생OS 포커스 타이머 - 25분 집중 세션 시작/종료 + CSV 자동 기록. 하루 5개 의사결정 추적.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
인생OS 포커스 타이머 - 25분 집중 세션 시작/종료 + CSV 자동 기록. 하루 5개 의사결정 추적.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
인생OS AI 참모(에이전트) 설정 - 나만의 AI 참모 페르소나(이름·호칭·톤·역할)를 대화형으로 정의해 볼트 CLAUDE.md에 안전하게 기록. 기존 설정은 덮어쓰기 전 반드시 확인(비파괴적). 첫 설정 또는 업데이트 시 선택 실행.
인생OS 콘트롤타워 - home.md 대시보드 자동 생성/갱신. 북극성 준수율·포커스 누적·데일리·에세이·활성스킬을 한 화면에. 주 1회+수시 실행.
인생OS 에세이 자동발행(볼트 내부) - 데일리 에세이를 수집해 월별 모음집 + 명장면 인덱스로 정리. 외부 발송 없음. 주 1회 또는 월말 실행.
인생OS 월간 마감 - 지난달 데일리 노트를 월별 폴더로 정리 + 월간 리포트(작성일수·집중시간·북극성·핵심성과) 자동 생성. 매달 1일 실행.
인생OS 주간 마감 - 지난 7일 데일리+포커스 분석, 북극성 준수율 산출, 미완료 이월, 주간 리포트 자동 생성. 매주 일요일 저녁 실행.
인생OS 하루 마감 - 데일리 노트 회고 + 포커스 타이머 CSV 결산 + 에세이 자동 정리. 매일 저녁 22~23시 실행.
SOC 직업 분류 기준
| name | focus-timer |
| description | 인생OS 포커스 타이머 - 25분 집중 세션 시작/종료 + CSV 자동 기록. 하루 5개 의사결정 추적. |
인생OS 17개 스킬 중 #3 (Tier 1: 일일 루틴) W1부터 사용 가능 · 매일 수시 실행
하루 5개의 큰 결정을 25분 세션으로 추적하는 스킬. 의도(예상) vs 실제 시간을 기록하여 의사결정 패턴을 시각화합니다.
/focus-timer start "북극성 정의"
→ 타이머 시작 시간 기록, 활동명 저장
/focus-timer stop
→ 종료 시간 + 실제 소요 시간 자동 계산 → CSV에 추가
/focus-timer log
→ 오늘 CSV 읽어서 표로 출력
저장 위치: ~/lifeOS_[name]/01_daily/focus_timer_YYYYMMDD.csv
session_no,start_time,end_time,duration_min,activity,intent
1,08:00,08:25,25,북극성 정의,오늘 시작 전 가치 3개 확정
2,10:00,10:42,42,이메일 정리,30분 예상이었으나 12분 초과
3,14:00,14:25,25,회의 준비,
4,16:00,16:30,30,블로그 초안,
5,21:00,21:25,25,close-day,
#!/bin/bash
# 볼트 자동 탐색 (환경변수 LIFEOS_VAULT 우선)
if [ -n "$LIFEOS_VAULT" ] && [ -d "$LIFEOS_VAULT" ]; then
VAULT="$LIFEOS_VAULT"
else
VAULT_LIST=$(find "$HOME" -maxdepth 1 -type d -name "lifeOS_*" 2>/dev/null)
if [ -z "$VAULT_LIST" ]; then
echo "❌ 인생OS 볼트를 찾을 수 없습니다."
echo " 먼저 /lifeOS-init 을 실행하세요."
exit 1
fi
VAULT_COUNT=$(echo "$VAULT_LIST" | wc -l | tr -d ' ')
VAULT=$(echo "$VAULT_LIST" | head -1)
if [ "$VAULT_COUNT" -gt 1 ]; then
echo "⚠️ 여러 볼트 발견 (현재: $(basename $VAULT)):" >&2
echo "$VAULT_LIST" | sed 's|^| |' >&2
echo " 특정 볼트 지정: export LIFEOS_VAULT=~/lifeOS_[name]" >&2
echo "" >&2
fi
fi
TODAY=$(date +%Y%m%d)
TODAY_ISO=$(date +%Y-%m-%d)
CSV="$VAULT/01_daily/focus_timer_$TODAY.csv"
STATE="$VAULT/01_daily/.focus_timer_state"
# CSV 헤더 초기화 (오늘 첫 실행)
if [ ! -f "$CSV" ]; then
echo "session_no,start_time,end_time,duration_min,activity,intent" > "$CSV"
fi
ACTION="${1:-status}"
ACTIVITY="${2:-(미입력)}"
case "$ACTION" in
start)
if [ -f "$STATE" ]; then
echo "⚠️ 이미 진행 중인 세션이 있습니다."
echo " 먼저 /focus-timer stop 으로 종료하세요."
cat "$STATE"
exit 1
fi
NOW=$(date +%H:%M)
SESSION_NO=$(($(wc -l < "$CSV") - 0)) # 헤더 제외하면 다음 번호
echo "$SESSION_NO|$NOW|$ACTIVITY" > "$STATE"
echo "▶️ 세션 #$SESSION_NO 시작 ($NOW)"
echo " 활동: $ACTIVITY"
echo " 25분 후 /focus-timer stop 으로 종료하세요."
;;
stop)
if [ ! -f "$STATE" ]; then
echo "❌ 진행 중인 세션이 없습니다."
echo " /focus-timer start \"활동명\" 으로 시작하세요."
exit 1
fi
IFS='|' read -r SESSION_NO START_TIME ACTIVITY < "$STATE"
END_TIME=$(date +%H:%M)
# 분 단위 차이 계산
START_MIN=$(( $(echo "$START_TIME" | cut -d: -f1) * 60 + $(echo "$START_TIME" | cut -d: -f2) ))
END_MIN=$(( $(echo "$END_TIME" | cut -d: -f1) * 60 + $(echo "$END_TIME" | cut -d: -f2) ))
DURATION=$((END_MIN - START_MIN))
[ $DURATION -lt 0 ] && DURATION=$((DURATION + 1440)) # 자정 넘김 보정
echo "$SESSION_NO,$START_TIME,$END_TIME,$DURATION,$ACTIVITY," >> "$CSV"
rm "$STATE"
echo "⏹️ 세션 #$SESSION_NO 종료 ($END_TIME)"
echo " 소요: ${DURATION}분"
echo " 활동: $ACTIVITY"
echo " CSV 저장: $CSV"
;;
log|status)
if [ ! -s "$CSV" ] || [ $(wc -l < "$CSV") -le 1 ]; then
echo "📋 오늘($TODAY_ISO) 기록된 세션이 없습니다."
if [ -f "$STATE" ]; then
echo ""
echo "▶️ 진행 중인 세션:"
cat "$STATE"
fi
exit 0
fi
echo "📋 오늘($TODAY_ISO) 포커스 타이머"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
column -t -s, "$CSV"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
TOTAL=$(awk -F, 'NR>1 {sum+=$4} END {print sum}' "$CSV")
COUNT=$(($(wc -l < "$CSV") - 1))
echo "총 ${COUNT}개 세션, ${TOTAL}분 (${TOTAL} min ≈ $((TOTAL/60))h $((TOTAL%60))m)"
if [ -f "$STATE" ]; then
echo ""
echo "▶️ 진행 중: $(cat $STATE)"
fi
;;
*)
echo "사용법:"
echo " /focus-timer start \"활동명\" 세션 시작"
echo " /focus-timer stop 세션 종료"
echo " /focus-timer log 오늘 결산 보기"
;;
esac
07:30 /today ← 오늘 우선순위 확인
08:00 /focus-timer start "북극성 점검"
08:25 /focus-timer stop
10:00 /focus-timer start "이메일 정리"
...
21:00 /focus-timer log ← 하루 결산 미리보기
22:00 /close-day ← 데일리 노트에 CSV 자동 반영
| ❌ 모호함 | ✅ 명확함 |
|---|---|
| "일" | "고객 미팅 자료 준비" |
| "공부" | "Claude Code 17스킬 가이드 정독" |
| "회의" | "팀 주간 회의 (마케팅 안건)" |
하루 25분 세션 5개 = 하루의 핵심 결정 5개입니다. 잡일이 아니라 의도적으로 한 큰 결정만 기록하세요.
저녁에 /close-day 실행하면 이 CSV가 자동으로 데일리 노트의 ## 포커스 타이머 섹션에 표로 정리됩니다.
| 시간대 | 세션 | 분 | 활동 |
|--------|------|----|------|
| 오전 | 2 | 67 | 북극성 정의, 이메일 정리 |
| 오후 | 2 | 55 | 회의 준비, 블로그 초안 |
| 저녁 | 1 | 25 | close-day |
| 합계 | 5 | 147 | |
Q: 세션이 25분보다 길어졌어요. 어떻게 하나요? A: 그대로 stop하세요. 실제 시간이 자동 기록됩니다. 예상 vs 실제의 차이가 가장 중요한 데이터입니다.
Q: 활동을 잊고 stop을 안 했어요.
A: 다음 날에는 state 파일이 그대로 남아있을 수 있습니다. ~/lifeOS_*/01_daily/.focus_timer_state 파일을 수동 삭제하면 초기화됩니다.
Q: CSV를 직접 편집해도 되나요? A: 네. 메모 컬럼(intent)을 나중에 채우는 것이 일반적입니다.
Q: 5개를 못 채우면 실패인가요? A: 아닙니다. 1~2개라도 의도적으로 기록하면 충분합니다. 꾸준함이 핵심입니다.
/today — 아침 우선순위 (포커스 타이머 활동 선정에 참조)/close-day — 저녁 마감 (포커스 타이머 CSV → 데일리 노트 자동 반영)/decision-log — 의사결정 로그 (W2 출시 예정)GPTers 22기 부트캠프 W1 핵심 실습 스킬 2026-05-20 폴라 작성