Install
openclaw skills install @voronindenis5/baby-nap-navigatorUse when a caregiver asks about infant/ toddler nap timing, 'wake windows', overtiredness, nap transitions, or building a daily sleep schedule from wake times. Computes age-banded wake windows, projects the next 24h of naps and bedtime, detects nap drift and late-day overtiredness, and prints a day-plan — without ever giving medical or sleep-training advice.
openclaw skills install @voronindenis5/baby-nap-navigatorEvery new parent eventually asks the same 3AM question: "the baby woke up at 2:05 — when is the next nap?" The answer lives in wake windows: the age-dependent stretch of awake time after which an infant's sleep pressure tips from "easy to settle" into "second wind cortisol spiral". Nailing the window is the difference between a 12-minute rock-to-sleep and a 45-minute scream-lullaby marathon.
This skill turns a log of wake-up times into:
It is deliberately a timing instrument, not a sleep-training method. It never tells you to let a baby cry, never overrides a pediatrician, and bakes the safe-sleep rules (AAP: back-to-sleep, bare crib, no weighted blankets) into every printed plan.
Don't use for: medical sleep problems (apnea, reflux pain, failure-to-thrive sleep disruption → pediatrician), sleep-training method selection (Ferber/Chair/whatever — out of scope by design), or night-waking feed plans for young infants (hunger-driven, not clock-driven).
log does this automatically) and timezone-free clock times (works with any local HH:MM).now: given the last wake time, print the current window (earliest–latest nap start) and the ideal start (window midpoint).projections: simulate the rest of the day — each wake → window midpoint → age-typical nap length → next window — through a bedtime window, flagging any wake window that exceeds the band (⚠️ OVERTIRED RISK).drift weekly: linear regression of nap-start times over the last 7–14 days per nap slot; >10 min/week creep in the morning nap + shortening second nap = transition brewing.report for the weekly picture and hand it to whoever covers the next shift.| Age band | Wake window (min–max) | Naps/day | Typical nap | Bedtime window |
|---|---|---|---|---|
| 0–6 wks | 45–70 min | 5–6 (chaotic) | 40–90 min | 20:30–22:00 |
| 6–12 wks | 60–90 min | 4–5 | 45–105 min | 19:30–20:30 |
| 3–5 mo | 75–120 min | 4→3 | 45–120 min | 19:00–20:00 |
| 5–7 mo | 2.0–2.75 h | 3 | 45–90 min | 18:30–19:30 |
| 7–10 mo | 2.5–3.0 h | 3→2 | 45 min–2 h | 18:30–19:30 |
| 10–14 mo | 2.75–3.5 h | 2 | 1–2 h | 18:30–19:30 |
| 14–18 mo | 3.0–4.0 h | 2→1 | 1.5–2.5 h | 19:00–20:00 |
| 18 mo–2 y | 4.5–5.5 h | 1 | 1.5–2.5 h | 19:00–20:00 |
| 2–3 y | 5.0–6.0 h | 1 (or none) | 1–2 h | 19:00–20:30 |
Read the full rationale, transition signals, and the "watch the baby, not the clock" caveats in references/wake-window-science.md.
# one-time: age in weeks at first log
python3 scripts/nap_navigator.py log --age-weeks 22 --wake 06:50
python3 scripts/nap_navigator.py log --wake 09:35 # woke from nap 1
python3 scripts/nap_navigator.py log --wake 12:40
# what's happening right now
python3 scripts/nap_navigator.py now # last wake + age → current window
# full day projection from the last wake
python3 scripts/nap_navigator.py projections # next 24h schedule + OT flags
# weekly analytics
python3 scripts/nap_navigator.py drift # nap-creep regression
python3 scripts/nap_navigator.py report # 7-day summary
State lives in nap_state.json next to the script (override with --state /path/x.json). Times are your local clock; the script never fetches anything — pure offline stdlib.
14:12–15:12 means: earlier edge = drowsy-cue zone (best settle odds), later edge = cortisol risk zone. The midpoint is the default suggestion.STABLE, CREPING (n min/wk) — watch for 2→1 transition, REGRESSION (later bedtime pressure).drift uses 7+ data points for exactly this reason.log --age-weeks N --wake HH:MM wrote nap_state.json (cat it)now prints a window consistent with the age band tableprojections lists ≥2 future events and flags any window over the band maxdrift prints a verdict (needs ≥3 logged days for slope; says so otherwise)report covers each logged day with nap counts and lengthsrequests|urllib|socket — must be empty)"She woke at 6:50, it's 8:55 and she's rubbing eyes — nap now or push?"
python3 scripts/nap_navigator.py log --age-weeks 22 --wake 06:50
python3 scripts/nap_navigator.py now
# window 08:50–09:40 → 8:55 is inside the drowsy zone: go now.
Handoff sheet for the grandmother:
python3 scripts/nap_navigator.py log --age-weeks 30 --wake 07:05
python3 scripts/nap_navigator.py projections
# print the output; it includes cues-to-watch and the safe-sleep footer.
"Is the morning nap creeping late?"
python3 scripts/nap_navigator.py drift # after ≥7 days of logs
MIT. Informational scheduling aid for caregivers; not medical advice, not a sleep-training program. Safe sleep per AAP guidance: infant on back, firm flat sleep surface, no loose bedding, no weighted items, room-sharing for at least the first 6 months. When in doubt about any sleep problem — call your pediatrician.