# Streak Tracker

> >

- **Type:** Skill
- **Install:** `agentstack add skill-nanorhino-weight-loss-skill-streak-tracker`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [NanoRhino](https://agentstack.voostack.com/s/nanorhino)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [NanoRhino](https://github.com/NanoRhino)
- **Source:** https://github.com/NanoRhino/weight-loss-skill/tree/main/streak-tracker
- **Website:** https://nanorhino.com/

## Install

```sh
agentstack add skill-nanorhino-weight-loss-skill-streak-tracker
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Streak Tracker

> ⚠️ **SILENT OPERATION:** Never narrate internal actions or tool calls.

## Philosophy

1. **Celebrate presence, never punish absence.** Streak alive → amplify. Breaks → say nothing.
2. **Name the effort, not the number.** Connect milestones to what it took, not just the count.
3. **One celebration, then move on.** Don't revisit past milestones as motivation.
4. **Never compare.** Never reference longest streak or previous streaks.

## What Counts as a "Logged Day"

`data/meals/YYYY-MM-DD.json` contains at least one meal with actual food data (`items` or `foods` array non-empty).

## Script

```bash
# Get streak info (also persists to data/streak.json)
python3 {baseDir}/scripts/streak-calc.py info \
  --data-dir {workspaceDir}/data/meals \
  --workspace-dir {workspaceDir} \
  --tz-offset {tz_offset}

# Mark milestone as celebrated
python3 {baseDir}/scripts/streak-calc.py celebrate \
  --data-dir {workspaceDir}/data/meals \
  --workspace-dir {workspaceDir} \
  --tz-offset {tz_offset} \
  --milestone 
```

### `info` output

```json
{
  "current_streak": 7,
  "longest_streak": 14,
  "streak_start_date": "2026-03-26",
  "last_logged_date": "2026-04-01",
  "today": "2026-04-02",
  "pending_milestone": 7,
  "milestones_celebrated": [3]
}
```

- `pending_milestone`: highest uncelebrated milestone reached. `null` if none.
- On streak break (current = 2` and `pending_milestone` is null:

- State count as `current_streak - 1` (today's meal not logged yet).
- Add a free half about getting to know the user's eating habits. One sentence. Vary daily.
- Themes: learning their taste, noticing patterns, feeling closer. Always food-related.

### Milestone celebration

When `pending_milestone` is not null, **replace** the daily line with a bigger celebration. After sending, call `streak-calc.py celebrate --milestone `.

**Milestones and examples → `references/streak-milestones.md`**

### No streak line

When `current_streak < 2`: compose the opening normally. No streak mention.

## Break Handling

- Script resets `milestones_celebrated` automatically on new streak.
- **Say nothing.** Never mention a broken streak or compare to previous.
- New streak day 1 starts silently. Milestone 3 re-celebrates as if first time.

## User Asks About Streak

Run `streak-calc.py info` and respond naturally:
- Active: state count and start date.
- None: frame as invitation ("Log a meal and that's day one.").

## Data Schema — `data/streak.json`

Persisted on every `streak-calc.py info` run. Other skills can read directly.

```json
{
  "current_streak": 7,
  "longest_streak": 14,
  "streak_start_date": "2026-03-26",
  "last_logged_date": "2026-04-01",
  "milestones_celebrated": [3, 7]
}
```

`longest_streak` preserved across streak resets.

---

## Skill Routing

**Priority Tier: P4 (Reporting).** Data utility — doesn't own conversations.
See `SKILL-ROUTING.md` for conflict resolution.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [NanoRhino](https://github.com/NanoRhino)
- **Source:** [NanoRhino/weight-loss-skill](https://github.com/NanoRhino/weight-loss-skill)
- **License:** MIT
- **Homepage:** https://nanorhino.com/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-nanorhino-weight-loss-skill-streak-tracker
- Seller: https://agentstack.voostack.com/s/nanorhino
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
