Install
openclaw skills install ovulation-trackingAI-powered fertility tracking with personalized temperature pattern detection and multi-signal fusion. Learns YOUR unique ovulation pattern over 2-3 cycles for accurate predictions.
openclaw skills install ovulation-trackingAI-powered fertility tracking with personalized pattern detection and multi-signal fusion.
Automatically learns YOUR unique temperature rise pattern:
Why it matters: Generic advice assumes Type A. If you're Type B/C, you'll miss ovulation!
Combines 5 data sources for 80-90% accuracy:
Automatically detects temperature dips ≥0.2°C → alerts "Ovulation in 12-24h"
Gets smarter over time:
# Via ClaHub CLI
npx clawhub@latest install fertility-tracker
# Or clone from GitHub
git clone https://github.com/mayi12345/fertility-tracker.git
cd fertility-tracker/v2
npm install
Create config.json:
{
"cycleStart": "2026-04-10",
"oura": {
"token": "YOUR_OURA_TOKEN"
},
"partner": {
"email": "partner@example.com"
},
"alerts": {
"telegram": false,
"email": true
}
}
# Run daily check
node v2/index.js check
# Record LH test
node v2/index.js lh positive
# Start new cycle
node v2/index.js new-cycle 2026-05-12
# View learned pattern
node v2/index.js pattern
Validated with real user data (March 2026):
const tracker = new FertilityTracker('./config.json');
await tracker.initialize();
const pattern = tracker.getUserPattern();
// { type: 'B', name: 'Delayed Rise', confidence: 0.85 }
const result = await tracker.dailyCheck();
// {
// cycleDay: 16,
// prediction: {
// mostLikelyDay: 15,
// confidence: 0.87,
// signalsUsed: ['temperature', 'HRV', 'LH']
// }
// }
Automatically emails partner when LH surge detected:
Analyzes temperature data from multiple cycles:
Combines signals with weighted likelihoods:
Posterior probability = Prior × Combined Likelihood
Baseline = average(Days 1-14)
For each day:
if temp ≤ baseline - 0.2°C AND sustained:
Alert: "Ovulation in 12-24h"
const FertilityTracker = require('@openclaw/fertility-tracker/v2');
const tracker = new FertilityTracker('./config.json');
// Initialize (loads config + learned patterns)
await tracker.initialize();
// Daily monitoring
const result = await tracker.dailyCheck();
// Record data
await tracker.recordLHTest('positive');
await tracker.recordMucus('peak');
await tracker.recordSymptoms({
cramping: 'sharp',
pain: 'ovulatory'
});
// Cycle management
await tracker.startNewCycle('2026-05-12');
// Get learned pattern
const pattern = tracker.getUserPattern();
// {
// type: 'B',
// name: 'Delayed Rise',
// daysToRise: 2,
// confidence: 0.85,
// cyclesAnalyzed: 3
// }
Day 14: Ovulation
Day 15: Temp +0.3°C ⬆️ (immediate)
Day 26: Ovulation
Day 28: Temp +0.32°C ⬆️ (2-day delay)
Implication: Temperature alone shows wrong ovulation day!
Day 15: Ovulation
Day 18: Temp +0.3°C ⬆️ (gradual)
No sustained rise detected
Recommendation: Use LH + mucus only
// In your agent's heartbeat or daily routine
const fertility = require('./skills/fertility-tracker/v2');
const tracker = new fertility.FertilityTracker();
await tracker.dailyCheck();
// Automatically fetch temp + HRV
const ouraData = await ouraSkill.getDailySleep(startDate, endDate);
tracker.currentCycle.temperatures = ouraData.temperatures;
tracker.currentCycle.hrv = ouraData.hrv;
fertility-tracker/
├── v2/
│ ├── index.js # Main module
│ ├── pattern-detector.js # Pattern detection
│ ├── multi-signal-fusion.js # Bayesian fusion
│ ├── README.md # Full documentation
│ └── package.json
├── SKILL.md # This file
├── README.md # Project overview
├── LICENSE # MIT
└── config.example.json # Config template
GitHub: https://github.com/mayi12345/fertility-tracker
Priority features:
MIT License - see LICENSE
If this helped you, please star: ⭐ https://github.com/mayi12345/fertility-tracker
Install now:
npx clawhub@latest install fertility-tracker