overnight-on

Enable Kuma overnight autonomous mode and keep plans updated while the user is away.

/kuma:overnight-on β€” πŸŒ™ μ•Όκ·Όλͺ¨λ“œ ON

쿠마λ₯Ό μ•Όκ·Ό 자율λͺ¨λ“œλ‘œ μ „ν™˜ν•œλ‹€. μœ μ €κ°€ μžκ±°λ‚˜ 자리λ₯Ό λΉ„μš΄ λ™μ•ˆ μΏ λ§ˆκ°€ 혼자 κ²°μ • β†’ μ‹€ν–‰ β†’ κ²€μ¦κΉŒμ§€ λŒλ¦¬λŠ” λͺ¨λ“œ.

무엇을 ν•˜λŠ”κ°€

  1. kuma-studio μ•Όκ·Όλͺ¨λ“œ ν† κΈ€ ON
    • POST http://127.0.0.1:4312/studio/nightmode {"enabled": true}
    • 성곡 μ‹œ ~/.kuma/runtime/nightmode.flag 파일 생성 (packages/server/src/studio/nightmode-store.mjs)
    • GUI μ˜€ν”ΌμŠ€ μ„€μ •νŒ¨λ„ 토글도 동기화됨
  2. 쿠마 행동 λͺ¨λ“œ λ³€κ²½ β€” μœ μ € 응닡 λŒ€κΈ° 없이 자율 μ§„ν–‰
  3. μž‘μ—… μ§„ν–‰ 상황을 .kuma/plans/ 체크리슀트둜 μ‹€μ‹œκ°„ κ°±μ‹ 

ν™œμ„±ν™” 방법

  • μŠ¬λž˜μ‹œ: /kuma:overnight-on
  • μžμ—°μ–΄: "μ•Όκ·Όλͺ¨λ“œ 온", "μ•Όκ·Ό λͺ¨λ“œ 켜쀘", "overnight on"

ν™œμ„±ν™” μ‹œ μΏ λ§ˆκ°€ μ¦‰μ‹œ μˆ˜ν–‰ν•˜λŠ” 것

Step 0. Preflight β€” νŒŒλž€ ν”Œλžœ μŠ€μΊ” (ν•„μˆ˜)

μ•Όκ·Όλͺ¨λ“œ ON 전에 전체 active ν”Œλžœμ˜ frontmatter status λ₯Ό μŠ€μΊ”ν•œλ‹€. 색상은 ν”Œλžœ frontmatter status 둜만 결정됨 (μ½”λ“œ κ·Όκ±°: packages/server/src/studio/plan-store.mjs:13-19 β€” active/in_progress=νŒŒλž‘, hold=λ…Έλž‘, blocked=μ£Όν™©, completed=초둝, failed=λΉ¨κ°•).

# ν˜„μž¬ active μƒνƒœμΈ ν”Œλžœ 확인
find "${KUMA_PLANS_DIR:-.kuma/plans}" -name '*.md' -exec grep -l 'status: active' {} +

νŒŒλž€(active) ν”Œλžœμ΄ μ•Όκ·Ό scope 외에 λ‚¨μ•„μžˆμœΌλ©΄ 처리:

  1. μœ μ €μ—κ²Œ 리슀트 μ œμ‹œ (ν”Œλžœ 파일 경둜 + 제λͺ© + λ―Έμ™„λ£Œ ν•­λͺ© μš”μ•½)
  2. 각 ν”Œλžœμ˜ 처리 λ°©μ•ˆμ„ μœ μ €μ—κ²Œ 확인:
    • μ•Όκ·Ό scope 포함 β†’ status: active μœ μ§€, λ‹΄λ‹Ή μ›Œμ»€ 슀폰 μ€€λΉ„
    • HOLD (λ…Έλž€μƒ‰) β†’ frontmatter status: hold + status_reason: "μœ μ € HOLD YYYY-MM-DD β€” <μ‚¬μœ >"
    • BLOCKED (주황색) β†’ frontmatter status: blocked + status_reason: "μœ μ € νŒλ‹¨ ν•„μš” β€” <질문>"
    • μ™„λ£Œ μ „ν™˜ β†’ status: completed (이미 λλ‚¬λŠ”λ° μƒνƒœ κ°±μ‹  λˆ„λ½)
  3. μ•Όκ·Ό scope λ°– active ν”Œλžœ 0개 확인 ν›„ μ•Όκ·Όλͺ¨λ“œ ON μ§„ν–‰

Why: μ•Όκ·Όλͺ¨λ“œ 쀑 scope λ°– νŒŒλž€ ν”Œλžœμ΄ λ‚¨μœΌλ©΄ (1) 미처리 방치 λ˜λŠ” (2) 쿠마 자체 νŒλ‹¨ 처리둜 μœ μ € μ˜λ„μ™€ μ–΄κΈ‹λ‚  μœ„ν—˜. μœ μ € 원칙 (2026-04-09 ν™•μ •): "μ•Όκ·Όλͺ¨λ“œν• λ•Œ νŒŒλž€μƒ‰ μ•ˆλ‚¨κ²Œ ν•˜λž¬μžλ‚˜. μ—†κ²Œν•˜λŠ” 방법은 λ‚΄κ°€ holdλ₯Ό μ§€μ‹œν–ˆμœΌλ©΄ hold(λ…Έλž€μƒ‰). 그리고 λ‹ˆκ°€ λ‚΄ νŒλ‹¨μ΄ ν•„μš”ν•˜λ‹€λŠ”κ²ƒ request? block? (주황색)". νŒŒλž€μƒ‰ = μ§€κΈˆ μž‘μ—…μ€‘μΈ μ•Όκ·Ό scope 만 ν•΄λ‹Ή.

Step 1. μ•Όκ·Όλͺ¨λ“œ ν† κΈ€ ON

  1. μ­ˆλ‹ˆμ—κ²Œ curl μœ„μž„ (λ˜λŠ” μΏ λ§ˆκ°€ 직접):
    curl -sS -X POST http://127.0.0.1:4312/studio/nightmode \
      -H 'Content-Type: application/json' \
      -d '{"enabled":true}'
    
  2. ~/.kuma/runtime/nightmode.flag 쑴재 확인 (flag μ—†μœΌλ©΄ μ‹€νŒ¨λ‘œ κ°„μ£Ό)
  3. ν˜„μž¬ Active ν”Œλžœ (.kuma/plans/index.md) μ—μ„œ λ―Έμ™„λ£Œ 체크리슀트 μ „μˆ˜ νŒŒμ•…
  4. κ°€μš© μ›Œμ»€ 전원에 병렬 λ°°λΆ„ (idle μ›Œμ»€ μ—†κ²Œ)
  5. λ””μŠ€μ½”λ“œμ— "μ•Όκ·Όλͺ¨λ“œ ON. 였늘 ν•  일: [μš”μ•½]. 잘 자." ν•œ 쀄 보고
  6. 이후 μž‘μ—… μ™„λ£Œ / λΈ”λ‘œμ»€ λ°œμƒ / 아침에 μœ μ € 볡귀 κΉŒμ§€ 자율 μ§„ν–‰

행동 κ·œμΉ™ (λͺ¨λ“œ ON λ™μ•ˆ)

μ›λž˜ κ·œμΉ™μ•Όκ·Όλͺ¨λ“œ μ˜€λ²„λΌμ΄λ“œ
섀계 결정은 μœ μ €μ—κ²Œ λ¬Όμ–΄λΌμ΅œμ„ μ˜ νŒλ‹¨μœΌλ‘œ μ§„ν–‰. 이유λ₯Ό 디코와 ν”Œλžœ νŒŒμΌμ— 남긴닀
"λ‚΄κ°€ κ²°μ •ν•΄μ€˜μ•Ό ν•  사항 μžˆμ–΄?" μ§ˆλ¬ΈκΈˆμ§€. κ²°μ • ν•„μš”ν•˜λ©΄ μΏ λ§ˆκ°€ 합리적 선택 ν›„ 기둝
리슀크 μžˆλŠ” μž‘μ—…μ€ ν™•μΈλ°›κΈ°νŒŒμΌ λ‹€μˆ˜ μˆ˜μ • λ¦¬νŒ©ν† λ§/λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μ§„ν–‰ OK
μœ μ € 응닡 λŒ€κΈ°μ‘λ‹΅ μ—†μœΌλ©΄ μ­‰ μ§„ν–‰
μ›Œμ»€ μ—λŸ¬ μ‹œ λ©ˆμΆ€μ—λŸ¬ μ‹œ λ””μ½” 보고 + λŒ€μ•ˆ μ‹œλ„ + 계속 μ§„ν–‰ (침묡 κΈˆμ§€)
μ™„λ£Œ 보고 μ „ λͺ¨λ“  체크리슀트 ν†΅κ³Όμ™„λ£Œ λͺ» ν•œ μ²΄ν¬λ¦¬μŠ€νŠΈλŠ” ν”Œλžœμ— 이유 남기고 λ‹€μŒ λΈ”λ‘œμ»€λ‘œ 이월

μ•Όκ·Όλͺ¨λ“œμ—μ„œλ„ μ—¬μ „νžˆ κΈˆμ§€λ˜λŠ” 것 (μ•ˆμ „ κ°€λ“œ)

λ‹€μŒμ€ μ•Όκ·Όλͺ¨λ“œμ—μ„œλ„ λ°˜λ“œμ‹œ μœ μ € 확인 없이 μ‹€ν–‰ κΈˆμ§€:

  • git push --force 특히 main/master
  • git reset --hard 곡개 브랜치
  • rm -rf λŒ€λŸ‰ μ‚­μ œ
  • DB drop / truncate / migration down
  • production deploy / release
  • μ™ΈλΆ€ μ„œλΉ„μŠ€ 결제/과금 트리거
  • 3rd party λΉ„κ³΅κ°œ 자료 μ—…λ‘œλ“œ

μ•Όκ·Όλͺ¨λ“œλŠ” μžμœ¨μ„± ν™•μž₯이지 μ•ˆμ „ κ°€λ“œ ν•΄μ œκ°€ μ•„λ‹ˆλ‹€. μœ„ μž‘μ—…μ€ μœ μ €κ°€ μžλ”λΌλ„ 디코에 λΈ”λ‘œμ»€λ‘œ 남기고 λ‹€μŒ μž‘μ—…μœΌλ‘œ λ„˜μ–΄κ°„λ‹€.

λΈ”λ‘œμ»€ λ°œμƒ μ‹œ

  1. λΈ”λ‘œμ»€ λ‚΄μš©μ„ ν”Œλžœ 파일 μ²΄ν¬λ¦¬μŠ€νŠΈμ— - [ ] (BLOCKED) <이유> 둜 기둝
  2. λ””μŠ€μ½”λ“œμ— ν•œ 쀄 보고 (λ‹΅λ³€ κΈ°λŒ€ν•˜μ§€ 말 것)
  3. λ‹€μŒ λΈ”λ‘œμ»€λ‘œ μ§„ν–‰
  4. 아침에 μœ μ € 볡귀 μ‹œ λΈ”λ‘œμ»€ 전체λ₯Ό μš”μ•½ 보고

μ•„μΉ¨ 볡귀 μ‹œ μˆ˜ν–‰ν•  루틴

μœ μ €μ˜ 첫 λ©”μ‹œμ§€κ°€ κ°μ§€λ˜λ©΄ μžλ™μœΌλ‘œ:

  1. μ•Όκ·Όλͺ¨λ“œ λ™μ•ˆ μ™„λ£Œλœ μž‘μ—… μš”μ•½ (plan κΈ°μ€€)
  2. λΈ”λ‘œμ»€ 리슀트
  3. μœ μ €κ°€ 결정해쀄 사항 리슀트
  4. λ””μŠ€μ½”λ“œμ— 보고

μ•Όκ·Όλͺ¨λ“œ OFF

  • μŠ¬λž˜μ‹œ: /kuma:overnight-off (별도 μŠ€ν‚¬)
  • μžμ—°μ–΄: "μ•Όκ·Όλͺ¨λ“œ 끄기", "μ•Όκ·Ό λͺ¨λ“œ μ’…λ£Œ", "overnight off"
  • API: POST /studio/nightmode {"enabled": false} β†’ flag 파일 μ‚­μ œ

Related

  • kuma-studio GUI μ˜€ν”ΌμŠ€ μ„€μ •νŒ¨λ„ β€” μ•Όκ·Όλͺ¨λ“œ ν† κΈ€
  • packages/server/src/studio/nightmode-store.mjs β€” flag 파일 store
  • packages/server/src/studio/studio-routes.mjs 644-677 β€” /studio/nightmode GET/POST
  • ~/.kuma/runtime/nightmode.flag β€” ν™œμ„±ν™” μƒνƒœ flag 파일