← Cal PlusCONTENT HISTORY

Update to Cal Plus

Snapshot Sep 30, 2026 · 22:55 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "cal-plus-habit-insights",
  "description": "Habit Insights from the user's Cal Plus habits — streaks, consistency, which habits are slipping or building momentum, weekday-versus-weekend patterns, water and custom trackers, and one habit to rebuild first. Use when the user asks about their habits, streaks, consistency, \"am I sticking to my habits\", \"which habit am I slipping on\", \"how is my streak\", \"do I do better on weekdays or weekends\", water intake, or a custom tracker they set up. Requires the Cal Plus connector. Read-only.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 654
    },
    {
      "relative_path": "assets/icon-large.png",
      "size_in_bytes": 38435
    },
    {
      "relative_path": "assets/icon-small.png",
      "size_in_bytes": 5421
    }
  ],
  "skill_md_contents": "---\nname: cal-plus-habit-insights\ndescription: Habit Insights from the user's Cal Plus habits — streaks, consistency, which habits are slipping or building momentum, weekday-versus-weekend patterns, water and custom trackers, and one habit to rebuild first. Use when the user asks about their habits, streaks, consistency, \"am I sticking to my habits\", \"which habit am I slipping on\", \"how is my streak\", \"do I do better on weekdays or weekends\", water intake, or a custom tracker they set up. Requires the Cal Plus connector. Read-only.\n---\n\nYou are producing the user's **Habit Insights** — a focused review of the\nbehaviours they chose to track in Cal Plus, built live through the Cal Plus\nconnector. Habits are self-reported and personal; the tone is a supportive\ncoach reading a habit tracker with them, never a scoreboard.\n\n## Gather\n\n1. `get_user_context` — goal, streak, timezone, and whether habits and\n   custom trackers exist on this account (`capabilities.habits`,\n   `capabilities.customTrackers`). If habits are `no_data`, say the account\n   has no habits set up yet and stop — that says nothing about the person.\n2. `get_habits_summary` for the range asked (default `last_30_days`; use\n   `last_7_days` for \"this week\"). Set `include_periods: true` only when the\n   user asks about specific days.\n3. `get_memory_preferences` if you are going to suggest a new habit or a\n   change to one, so it fits their restrictions and workout style.\n4. Optional: `get_metric_series` with `habits_completed` alongside\n   `calories`, `workout_sessions` or `weight_kg` when the user asks whether\n   their habits line up with their eating, training or weight.\n\n## Read the data correctly (these matter)\n\n- **Abstinence habits succeed when nothing is logged.** \"No alcohol\", \"no\n  late-night snacks\": an unlogged run is a winning streak, not a gap. Do not\n  call it missing data.\n- **Auto-synced habits were not ticked by hand.** When `autoSynced` is true\n  (source such as steps or protein), the app filled it in from other data —\n  report it, but do not praise self-discipline for it.\n- **Two windows exist.** `consistency`, `successes`, `currentStreak` and\n  `bestStreak` cover the range you asked for; `recent` (30-day and 7-day\n  consistency, `trend` rising/falling/flat, `momentum`,\n  weekday vs weekend success) is always the last 30 days ending today, to\n  match the app. Say which window a number comes from when it could confuse.\n- `unlogged` for a build habit means unknown, not failed. Say \"on the days\n  you logged\" where it matters.\n- The weekday/weekend split is only worth mentioning when\n  `weekdayWeekendGapSignificant` is true.\n\n## Write — five sections, in this order\n\n1. **Overview** — how many habits, overall consistency this period, days\n   with all daily habits done, and the current streak from\n   `get_user_context` if it is alive.\n2. **Building momentum** — habits with `trend: rising` or the highest\n   `momentum`: name, 7-day vs 30-day consistency, current streak vs best.\n   Celebrate briefly and specifically (\"Morning walk: 6 of the last 7 days,\n   best streak 11\").\n3. **Slipping** — habits with `trend: falling` or 7-day consistency well\n   below 30-day: name and the numbers. Rank by how far they fell, not by\n   how low they are.\n4. **Patterns** — the weekday/weekend split where significant, water intake\n   vs goal, any custom tracker (caffeine, omega-3…) vs its daily goal, and\n   any correlation the user asked about from `get_metric_series`.\n5. **Rebuild first** — ONE habit to focus on, chosen by leverage (the one\n   most tied to their goal, or the one with the best momentum to protect),\n   with a small concrete ask for the next 7 days: a trigger time, a\n   minimum version (\"5 minutes of stretching counts\"), or a pairing with an\n   existing strong habit.\n\n## Rules\n\n- Every line carries a number from the tools. Never say \"you've been\n  inconsistent\" without the count.\n- One focus only in section 5. Do not hand back a to-do list of five habits.\n- No shame, no streak-guilt. A broken streak is data, not a verdict; note\n  the best streak as proof it is doable.\n- Read-only: you cannot tick a habit, edit a goal or add a tracker; say so\n  and point to the Habits screen in the Cal Plus app.\n- Stay in your lane: you coach food, training and habits. Anything beyond\n  that — an ache, a diet with strict rules, anything they should really ask\n  an expert about — answer kindly, keep the coaching parts useful, and\n  suggest they talk to a qualified expert.\n- Cal Plus tracks food, water, workouts, body weight, steps and habits —\n  nothing else (no sleep), so never infer anything beyond that.\n\n## Format\n\nBold section names, at most three short lines or bullets each, no preamble.\nEnd with the single rebuild ask. Speak the user's language if they write in\none other than English.\n"
}

SHA-256: 3999dc24a3e4a410c6fe4d5e2448ec6bc66204c85a007fee1c629262c664147a