{"id":"5992ca2c-a345-458e-9ce2-fcb4930e6b46","entityType":"agent","slug":"clawhub-patello-caloric-intake-tracker","name":"Calorie Tracker","canonicalUrl":"https://www.xpersona.co/agent/clawhub-patello-caloric-intake-tracker","canonicalPath":"/agent/clawhub-patello-caloric-intake-tracker","generatedAt":"2026-10-11T15:19:23.591Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:52:42.317Z","emptyReason":null},"description":"Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s178t29f61bmma8whfnmacavhx83eknq:caloric-intake-tracker","sourceUrl":"https://clawhub.ai/patello/caloric-intake-tracker","homepage":"https://clawhub.ai/patello/skills/caloric-intake-tracker","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/patello/caloric-intake-tracker","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/patello/skills/caloric-intake-tracker","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Calorie Tracker technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:52:42.317Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:52:42.317Z","emptyReason":null},"stars":null,"forks":null,"downloads":1071,"packageName":null,"latestVersion":"1.4.4","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:52:42.241Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T11:52:42.317Z","lastCrawledAt":"2026-10-11T11:52:42.241Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T11:52:42.241Z","lastVerifiedAt":null,"highlights":[{"version":"1.4.4","createdAt":"2026-08-16T13:05:13.433Z","changelog":"- Merge pull request #2 from patello/migrate-weight-to-measure - Migrate body weight to measurement system, single source of truth","fileCount":7,"zipByteSize":24059},{"version":"1.4.3","createdAt":"2026-07-13T18:31:44.834Z","changelog":"- Require python3 for skill and update CLI reference","fileCount":7,"zipByteSize":22958},{"version":"1.4.2","createdAt":"2026-06-29T09:24:41.550Z","changelog":"- Clarify pre-seeded default measurement types in README and SKILL.md","fileCount":7,"zipByteSize":23113},{"version":"1.4.1","createdAt":"2026-06-29T09:16:14.472Z","changelog":"- Add notes field support to individual measurements","fileCount":7,"zipByteSize":22898},{"version":"1.4.0","createdAt":"2026-06-29T08:28:55.839Z","changelog":"- Implement dynamic and extensible body measurements with custom units and descriptions","fileCount":7,"zipByteSize":22607},{"version":"1.3.0","createdAt":"2026-06-21T10:16:56.939Z","changelog":"- feat: implement grouping by default for list and stats day commands, add --no-group flag","fileCount":7,"zipByteSize":19386},{"version":"1.2.0","createdAt":"2026-06-21T07:55:08.022Z","changelog":"- Simplify weekly stats averages and budgets and add --include-today flag - Sort stats chronological ascending and place diff after cm/kg value - Adjust stats weight and waist default to -N 5, supporting entries and days combinations - Add global --today CLI option to simulate dates and update stats and logging commands - ci: enable dynamic changelog generation from git history","fileCount":7,"zipByteSize":18491},{"version":"1.1.0","createdAt":"2026-06-16T18:25:25.162Z","changelog":"Automated release from git tag 1.1.0","fileCount":6,"zipByteSize":14948}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s178t29f61bmma8whfnmacavhx83eknq:caloric-intake-tracker","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s178t29f61bmma8whfnmacavhx83eknq:caloric-intake-tracker` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/patello/caloric-intake-tracker before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-patello-caloric-intake-tracker/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-patello-caloric-intake-tracker/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-patello-caloric-intake-tracker/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-patello-caloric-intake-tracker/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-patello-caloric-intake-tracker/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-patello-caloric-intake-tracker/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T15:19:23.587Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-patello-caloric-intake-tracker/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-patello-caloric-intake-tracker/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-patello-caloric-intake-tracker/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-patello-caloric-intake-tracker/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:52:42.317Z","emptyReason":null},"readme":"Skill: Calorie Tracker\n\nOwner: patello\n\nSummary: Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.\n\nTags: latest:1.4.4\n\nVersion history:\n\nv1.4.4 | 2026-08-16T13:05:13.433Z | user\n\n- Merge pull request #2 from patello/migrate-weight-to-measure\n- Migrate body weight to measurement system, single source of truth\n\nv1.4.3 | 2026-07-13T18:31:44.834Z | user\n\n- Require python3 for skill and update CLI reference\n\nv1.4.2 | 2026-06-29T09:24:41.550Z | user\n\n- Clarify pre-seeded default measurement types in README and SKILL.md\n\nv1.4.1 | 2026-06-29T09:16:14.472Z | user\n\n- Add notes field support to individual measurements\n\nv1.4.0 | 2026-06-29T08:28:55.839Z | user\n\n- Implement dynamic and extensible body measurements with custom units and descriptions\n\nv1.3.0 | 2026-06-21T10:16:56.939Z | user\n\n- feat: implement grouping by default for list and stats day commands, add --no-group flag\n\nv1.2.0 | 2026-06-21T07:55:08.022Z | user\n\n- Simplify weekly stats averages and budgets and add --include-today flag\n- Sort stats chronological ascending and place diff after cm/kg value\n- Adjust stats weight and waist default to -N 5, supporting entries and days combinations\n- Add global --today CLI option to simulate dates and update stats and logging commands\n- ci: enable dynamic changelog generation from git history\n\nv1.1.0 | 2026-06-16T18:25:25.162Z | user\n\nAutomated release from git tag 1.1.0\n\nv1.0.2 | 2026-06-15T20:04:38.087Z | user\n\nAutomated release from git tag 1.0.2\n\nArchive index:\n\nArchive v1.4.4: 7 files, 24059 bytes\n\nFiles: _meta.json (141b), changelog.txt (131b), README.md (2889b), scripts/tracker.py (54673b), skill-card.md (2198b), SKILL.md (9841b), tests/test_tracker.py (23310b)\n\nFile v1.4.4:SKILL.md\n\n---\nname: caloric-intake-tracker\ndescription: Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.\nmetadata: {\"openclaw\": {\"requires\": {\"bins\": [\"python3\"]}}}\n---\n\n# Local Calorie Tracker Skill\n\nTrack daily calorie intake, macronutrients, body weight, and waist measurements locally using a SQLite database.\n\n## Installation & Setup\n\nThis is a standalone, skill-first OpenClaw skill. It runs out-of-the-box using standard Python libraries.\n\nThe default SQLite database file is named `health_data.db` and is resolved relative to the current working directory (Cwd) of the running agent. To override the database path, pass the `--database PATH` option to any command.\n\n## Operational Instructions for the Agent\n\n1.  **No Compensatory Entries:** If a food entry was logged incorrectly (e.g. wrong calorie or protein count), do not log a new positive or negative \"balancing\" or \"corrective\" entry. Instead, identify the incorrect entry's ID using the `list` or `stats day` command, and run the `update` or `delete` command to fix it.\n2.  **No Bogus Logs:** Every logged entry's description must contain only the actual name of the food or drink consumed. Do not store summaries, calorie calculations, or meta-data in the food description (e.g., do not name an entry \"1875 kcal, 72g protein\" to force-balance a day).\n3.  **Standardized Meal Types:** Every logged food entry must have a valid `--meal` type. Allowed types are: `breakfast`, `lunch`, `dinner`, `snack`, `fika`, `drink`, `dessert`, `evening`, and `other`. Valid meal types are loaded and validated dynamically from the database.\n\n## Day Completeness Quality Levels\n\nWhen marking a day as complete using the `complete` command, use one of the following completeness quality levels:\n*   `full`: Default. All meals and drinks consumed for the target day were fully tracked.\n*   `partial`: Some meals are missing, or the day relies heavily on rough estimates.\n*   `minimal`: Only sporadic entries were logged; most of the day's intake is unknown.\n\n## Interpreting Weekly Averages & Budgets\n\nWhen reviewing weekly averages using the `stats week` command, averages and budgets are tailored dynamically to today's completion status by default (`--include-today auto`):\n*   **If Today is Incomplete:** The command excludes today's data from the active average display, showing the **Monday-to-Yesterday Average** and the **Daily Budget Starting Today** (including a dynamic helper showing remaining calories for today).\n*   **If Today is Complete:** The command includes today's data, showing the **Monday-to-Today Average** and the **Daily Budget Starting Tomorrow**.\n*   **Customizing Scope:** You can use the `--include-today` flag to force a specific behavior:\n    - `--include-today yes`: Forces inclusion of today (shows Mon-Today average and Starting Tomorrow budget).\n    - `--include-today no`: Forces exclusion of today (shows Mon-Yesterday average and Starting Today budget).\n    - `--include-today both`: Shows both sets of averages and budgets.\n\n## CLI Reference\n\nAll commands support the following global flags (which must be placed *before* the subcommand):\n*   `--database PATH`: Path to SQLite database file (defaulting to `./health_data.db`).\n*   `--today YYYY-MM-DD`: Simulates today's date context for the entire command run (overrides the system clock date, affecting default logging dates, lookbacks, weekly budgets, and rolling averages).\n\n### 1. Configuration & Logging\n\n*   **Configure Daily Goal & Height:**\n    ```bash\n    python3 scripts/tracker.py goal CALORIES [PROTEIN] [--height HEIGHT_CM]\n    ```\n    Sets target calories, optional protein goals (in grams), and optional height in cm (used dynamically by SQLite views to compute BMI and Waist-to-Height Ratio).\n    *Example:* `python3 scripts/tracker.py goal 1800 120 --height 180.0`\n\n*   **Log Food Entry:**\n    ```bash\n    python3 scripts/tracker.py add \"food description\" CALORIES [protein] [carbs] [fat] --meal TYPE [--date YYYY-MM-DD]\n    ```\n    *Example:* `python3 scripts/tracker.py add \"Oatmeal with blueberries\" 350 12 --meal breakfast`\n\n*   **List Entries by ID:**\n    ```bash\n    python3 scripts/tracker.py list [DATE] [--no-group]\n    ```\n    Lists all entries for `DATE` (defaults to today). By default, entries are grouped by meal type (combining descriptions and summing calories/protein). Pass `--no-group` to disable grouping and display raw individual entries with their database IDs and timestamps (essential for updates/deletions).\n\n*   **Update Food Entry:**\n    ```bash\n    python3 scripts/tracker.py update ID [--name NAME] [--cal CALORIES] [--p PROTEIN] [--c CARBS] [--f FAT] [--meal TYPE]\n    ```\n    Modifies an existing entry by ID. Only the specified flags are updated.\n\n*   **Delete Food Entry:**\n    ```bash\n    python3 scripts/tracker.py delete ID\n    ```\n    Permanently deletes a specific entry.\n\n*   **Mark Day as Complete:**\n    ```bash\n    python3 scripts/tracker.py complete DATE [--completeness QUALITY] [--notes NOTES]\n    ```\n    Sets the completeness status (`full` (default), `partial`, or `minimal`) and marks `completed=1` in the database.\n\n*   **Check Day Completion:**\n    ```bash\n    python3 scripts/tracker.py check-complete [DATE]\n    ```\n    Exits with code `0` if the date is fully completed (`completeness == 'full'` and `completed == 1`), otherwise exits with `1`.\n\n*   **Log Body Weight (Shortcut):**\n    ```bash\n    python3 scripts/tracker.py weight KG [DATE] [--notes NOTES]\n    ```\n    Logs weight for the specified date (defaults to today). Weight is a first-class measurement type (`weight`), so this delegates to `measure weight` — there is a single source of truth for all body data.\n\n*   **Log Waist Circumference (Shortcut):**\n    ```bash\n    python3 scripts/tracker.py waist CM [DATE] [--notes NOTES]\n    ```\n    Logs waist circumference with optional notes (delegates to `measure waist`).\n\n*   **Log Custom Body Measurement:**\n    ```bash\n    python3 scripts/tracker.py measure TYPE VALUE [DATE] [--notes NOTES]\n    ```\n    Logs a measurement value for a defined measurement type (e.g. waist, hips, neck, weight, or custom defined types) with optional notes. This is the canonical way body data is stored — short commands like `weight` and `waist` are conveniences delegating here.\n    *(Note: Default types `waist`, `hips`, and `neck` are pre-seeded automatically. The key `waist` is specifically used to compute Waist-to-Height Ratio (WHtR) and power the `waist` shortcut.)*\n    *Example:* `python3 scripts/tracker.py measure hip_upper 92.5 --notes \"Upper hip line, morning\"`\n\n*   **Define Custom Measurement Type:**\n    ```bash\n    python3 scripts/tracker.py measure-type define KEY DISPLAY_NAME UNIT [--desc DESCRIPTION]\n    ```\n    Defines a custom measurement point with display name, unit, and optional description.\n    *Example:* `python3 scripts/tracker.py measure-type define hip_upper \"Hip (Upper)\" cm --desc \"Upper hip line\"`\n\n*   **List Defined Measurement Types:**\n    ```bash\n    python3 scripts/tracker.py measure-type list\n    ```\n    Lists all defined measurement types, units, and descriptions.\n\n*   **Delete Custom Measurement Type:**\n    ```bash\n    python3 scripts/tracker.py measure-type delete KEY\n    ```\n    Deletes the type definition and all associated logs. Default types (`waist`, `hips`, `neck`) cannot be deleted.\n\n### 2. Statistics & Reports\n\n*   **Show Daily Breakdown:**\n    ```bash\n    python3 scripts/tracker.py stats day [DATE] [--no-group]\n    ```\n    Prints the chronological list of entries, meal-type breakdowns, and progress compared to daily goals. Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. By default, the daily breakdown list is grouped by meal type (combining descriptions and summing calories/protein). Pass `--no-group` to disable grouping and display raw individual entries with their database IDs and timestamps.\n\n*   **Show Weekly Summary:**\n    ```bash\n    python3 scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]\n    ```\n    Summarizes the Mon-Sun week containing `DATE` (or N preceding weeks). Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. If `--compact` is passed, it outputs a single-line summary of metrics for each week. Displays weekly averages and future daily budgets tailored dynamically to today's completion status (customizable via `--include-today`), along with a daily breakdown table.\n\n*   **Show Macronutrient Trends:**\n    ```bash\n    python3 scripts/tracker.py stats trend [--days N]\n    ```\n    Displays 7-day, 30-day, and 90-day rolling averages of calorie and protein intake (resolved dynamically from rolling trends view) up to today.\n\n*   **Show Weight logs:**\n    ```bash\n    python3 scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged weights, BMI (computed from the stored height), and weight changes up to today. Reads from the `weight` measurement type. Defaults to showing the last 5 entries (`-N 5`). Supports a positive integer or `\"all\"` for `-N`, and an integer number of days for `--days`.\n\n*   **Show Waist logs (Shortcut):**\n    ```bash\n    python3 scripts/tracker.py stats waist [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged waist measurements, WHtR, and waist changes. Defaults to showing the last 5 entries (`-N 5`).\n\n*   **Show Custom Measurement logs:**\n    ```bash\n    python3 scripts/tracker.py stats measure TYPE [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logs, unit, and calculated changes for any defined measurement type. If `TYPE` is `waist`, also prints WHtR.\n    *Example:* `python3 scripts/tracker.py stats measure chest -N 10`\n\nFile v1.4.4:README.md\n\n# Calorie Tracker OpenClaw Skill\n\nA skill-first OpenClaw skill to track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. \n\n## Features\n\n- **No Packaging Overheads:** Zero setup or pip installs required. Runs immediately using Python's standard libraries.\n- **Dynamic Meal Types:** Allowed meal types are configured and validated directly in the SQLite database.\n- **Granular Analytics:** Subcommands for daily, weekly, trend-based, and body measurement reports.\n- **Intelligent Budgets:** Computes future daily budgets and historical averages (excluding incomplete days) to aid health coaching and planning.\n\n## CLI Usage\n\nThe core script is located at `scripts/tracker.py`. \n\n### Global Options\n\nThe script supports two global options that must be placed *before* the subcommand:\n- `--database PATH`: Specifying a path to the database (defaults to `health_data.db` in current directory).\n- `--today YYYY-MM-DD`: Time-travel option to simulate the system date for all operations (logs, lists, budgets, averages).\n\n### Core Commands\n\n- **Config Goal:** `python scripts/tracker.py goal CALORIES [PROTEIN]`\n- **Log Food:** `python scripts/tracker.py add \"description\" CALORIES [protein] [carbs] [fat] --meal TYPE`\n- **List Food:** `python scripts/tracker.py list [DATE] [--no-group]` (groups by meal type by default)\n- **Update Entry:** `python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] ...`\n- **Delete Entry:** `python scripts/tracker.py delete ID`\n- **Mark Complete:** `python scripts/tracker.py complete DATE [--completeness QUALITY]`\n- **Check Complete:** `python scripts/tracker.py check-complete [DATE]`\n- **Log Weight/Waist/Measurement:** `python scripts/tracker.py weight KG` / `python scripts/tracker.py waist CM` / `python scripts/tracker.py measure TYPE VALUE`\n  *(Weight and waist are first-class measurement types; the `weight` and `waist` shortcuts delegate to `measure`. `weight` is the canonical type for body weight and powers BMI.)*\n  *(Note: Default types `waist`, `hips`, and `neck` are pre-seeded automatically. The key `waist` is specifically used to compute Waist-to-Height Ratio (WHtR) and power the legacy shortcut.)*\n\n### Reports & Statistics\n\n- **Daily Stats:** `python scripts/tracker.py stats day [DATE] [--no-group]` (groups by meal type by default)\n- **Weekly Stats:** `python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]`\n- **Rolling Trends:** `python scripts/tracker.py stats trend [--days N]`\n- **Weight History:** `python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]` (defaults to `-N 5`)\n- **Waist/Measurement History:** `python scripts/tracker.py stats waist` / `python scripts/tracker.py stats measure TYPE [-N ENTRIES] [--days DAYS]`\n\nFor detailed operational rules and specifications, see [SKILL.md](SKILL.md).\n\nFile v1.4.4:_meta.json\n\n{\n  \"ownerId\": \"kn7cxaw1m27d1fe93wbz40vqkd8309h7\",\n  \"slug\": \"caloric-intake-tracker\",\n  \"version\": \"1.4.4\",\n  \"publishedAt\": 1786885513433\n}\n\nFile v1.4.4:skill-card.md\n\n## Description:\n\nLog and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database, with daily and weekly statistics, rolling averages, and future calorie budgets.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[patello](https://clawhub.ai/user/patello)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill to record food intake, body measurements, goals, and completion status in a local tracker. It supports health coaching and personal tracking workflows by producing local CLI commands and readable reports for daily, weekly, trend, weight, waist, and custom measurement views.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill stores food, weight, waist, and related notes in a local SQLite database that may contain sensitive health data.\n\nMitigation: Choose a private database location with --database, track where health_data.db is created, and manage file permissions and backups accordingly.\n\nRisk: Generated log commands can include stored food names from the local database, which may be unsafe to copy if existing database content is untrusted or unusual.\n\nMitigation: Review generated Log command output before pasting or running it.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/patello/skills/caloric-intake-tracker)\n- [Publisher Profile](https://clawhub.ai/user/patello)\n- [Skill Documentation](artifact/SKILL.md)\n- [README](artifact/README.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, shell commands, guidance]\n\n**Output Format:** [Markdown with inline shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs are intended for a local Python CLI and local SQLite database; no external service output is produced.]\n\n## Skill Version(s):\n\n1.4.4 (source: server release evidence and artifact metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.4.4:changelog.txt\n\n- Merge pull request #2 from patello/migrate-weight-to-measure\n- Migrate body weight to measurement system, single source of truth\n\nArchive v1.4.3: 7 files, 22958 bytes\n\nFiles: _meta.json (141b), changelog.txt (53b), README.md (2710b), scripts/tracker.py (53664b), skill-card.md (1996b), SKILL.md (9457b), tests/test_tracker.py (21394b)\n\nFile v1.4.3:SKILL.md\n\n---\nname: caloric-intake-tracker\ndescription: Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.\nmetadata: {\"openclaw\": {\"requires\": {\"bins\": [\"python3\"]}}}\n---\n\n# Local Calorie Tracker Skill\n\nTrack daily calorie intake, macronutrients, body weight, and waist measurements locally using a SQLite database.\n\n## Installation & Setup\n\nThis is a standalone, skill-first OpenClaw skill. It runs out-of-the-box using standard Python libraries.\n\nThe default SQLite database file is named `health_data.db` and is resolved relative to the current working directory (Cwd) of the running agent. To override the database path, pass the `--database PATH` option to any command.\n\n## Operational Instructions for the Agent\n\n1.  **No Compensatory Entries:** If a food entry was logged incorrectly (e.g. wrong calorie or protein count), do not log a new positive or negative \"balancing\" or \"corrective\" entry. Instead, identify the incorrect entry's ID using the `list` or `stats day` command, and run the `update` or `delete` command to fix it.\n2.  **No Bogus Logs:** Every logged entry's description must contain only the actual name of the food or drink consumed. Do not store summaries, calorie calculations, or meta-data in the food description (e.g., do not name an entry \"1875 kcal, 72g protein\" to force-balance a day).\n3.  **Standardized Meal Types:** Every logged food entry must have a valid `--meal` type. Allowed types are: `breakfast`, `lunch`, `dinner`, `snack`, `fika`, `drink`, `dessert`, `evening`, and `other`. Valid meal types are loaded and validated dynamically from the database.\n\n## Day Completeness Quality Levels\n\nWhen marking a day as complete using the `complete` command, use one of the following completeness quality levels:\n*   `full`: Default. All meals and drinks consumed for the target day were fully tracked.\n*   `partial`: Some meals are missing, or the day relies heavily on rough estimates.\n*   `minimal`: Only sporadic entries were logged; most of the day's intake is unknown.\n\n## Interpreting Weekly Averages & Budgets\n\nWhen reviewing weekly averages using the `stats week` command, averages and budgets are tailored dynamically to today's completion status by default (`--include-today auto`):\n*   **If Today is Incomplete:** The command excludes today's data from the active average display, showing the **Monday-to-Yesterday Average** and the **Daily Budget Starting Today** (including a dynamic helper showing remaining calories for today).\n*   **If Today is Complete:** The command includes today's data, showing the **Monday-to-Today Average** and the **Daily Budget Starting Tomorrow**.\n*   **Customizing Scope:** You can use the `--include-today` flag to force a specific behavior:\n    - `--include-today yes`: Forces inclusion of today (shows Mon-Today average and Starting Tomorrow budget).\n    - `--include-today no`: Forces exclusion of today (shows Mon-Yesterday average and Starting Today budget).\n    - `--include-today both`: Shows both sets of averages and budgets.\n\n## CLI Reference\n\nAll commands support the following global flags (which must be placed *before* the subcommand):\n*   `--database PATH`: Path to SQLite database file (defaulting to `./health_data.db`).\n*   `--today YYYY-MM-DD`: Simulates today's date context for the entire command run (overrides the system clock date, affecting default logging dates, lookbacks, weekly budgets, and rolling averages).\n\n### 1. Configuration & Logging\n\n*   **Configure Daily Goal & Height:**\n    ```bash\n    python3 scripts/tracker.py goal CALORIES [PROTEIN] [--height HEIGHT_CM]\n    ```\n    Sets target calories, optional protein goals (in grams), and optional height in cm (used dynamically by SQLite views to compute BMI and Waist-to-Height Ratio).\n    *Example:* `python3 scripts/tracker.py goal 1800 120 --height 180.0`\n\n*   **Log Food Entry:**\n    ```bash\n    python3 scripts/tracker.py add \"food description\" CALORIES [protein] [carbs] [fat] --meal TYPE [--date YYYY-MM-DD]\n    ```\n    *Example:* `python3 scripts/tracker.py add \"Oatmeal with blueberries\" 350 12 --meal breakfast`\n\n*   **List Entries by ID:**\n    ```bash\n    python3 scripts/tracker.py list [DATE] [--no-group]\n    ```\n    Lists all entries for `DATE` (defaults to today). By default, entries are grouped by meal type (combining descriptions and summing calories/protein). Pass `--no-group` to disable grouping and display raw individual entries with their database IDs and timestamps (essential for updates/deletions).\n\n*   **Update Food Entry:**\n    ```bash\n    python3 scripts/tracker.py update ID [--name NAME] [--cal CALORIES] [--p PROTEIN] [--c CARBS] [--f FAT] [--meal TYPE]\n    ```\n    Modifies an existing entry by ID. Only the specified flags are updated.\n\n*   **Delete Food Entry:**\n    ```bash\n    python3 scripts/tracker.py delete ID\n    ```\n    Permanently deletes a specific entry.\n\n*   **Mark Day as Complete:**\n    ```bash\n    python3 scripts/tracker.py complete DATE [--completeness QUALITY] [--notes NOTES]\n    ```\n    Sets the completeness status (`full` (default), `partial`, or `minimal`) and marks `completed=1` in the database.\n\n*   **Check Day Completion:**\n    ```bash\n    python3 scripts/tracker.py check-complete [DATE]\n    ```\n    Exits with code `0` if the date is fully completed (`completeness == 'full'` and `completed == 1`), otherwise exits with `1`.\n\n*   **Log Body Weight:**\n    ```bash\n    python3 scripts/tracker.py weight KG [DATE]\n    ```\n    Logs weight for the specified date (defaults to today).\n\n*   **Log Waist Circumference (Shortcut):**\n    ```bash\n    python3 scripts/tracker.py waist CM [DATE] [--notes NOTES]\n    ```\n    Logs waist circumference with optional notes (delegates to `measure waist`).\n\n*   **Log Custom Body Measurement:**\n    ```bash\n    python3 scripts/tracker.py measure TYPE VALUE [DATE] [--notes NOTES]\n    ```\n    Logs a measurement value for a defined measurement type (e.g. waist, hips, neck, or custom defined types) with optional notes.\n    *(Note: Default types `waist`, `hips`, and `neck` are pre-seeded automatically. The key `waist` is specifically used to compute Waist-to-Height Ratio (WHtR) and power the `waist` shortcut.)*\n    *Example:* `python3 scripts/tracker.py measure hip_upper 92.5 --notes \"Upper hip line, morning\"`\n\n*   **Define Custom Measurement Type:**\n    ```bash\n    python3 scripts/tracker.py measure-type define KEY DISPLAY_NAME UNIT [--desc DESCRIPTION]\n    ```\n    Defines a custom measurement point with display name, unit, and optional description.\n    *Example:* `python3 scripts/tracker.py measure-type define hip_upper \"Hip (Upper)\" cm --desc \"Upper hip line\"`\n\n*   **List Defined Measurement Types:**\n    ```bash\n    python3 scripts/tracker.py measure-type list\n    ```\n    Lists all defined measurement types, units, and descriptions.\n\n*   **Delete Custom Measurement Type:**\n    ```bash\n    python3 scripts/tracker.py measure-type delete KEY\n    ```\n    Deletes the type definition and all associated logs. Default types (`waist`, `hips`, `neck`) cannot be deleted.\n\n### 2. Statistics & Reports\n\n*   **Show Daily Breakdown:**\n    ```bash\n    python3 scripts/tracker.py stats day [DATE] [--no-group]\n    ```\n    Prints the chronological list of entries, meal-type breakdowns, and progress compared to daily goals. Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. By default, the daily breakdown list is grouped by meal type (combining descriptions and summing calories/protein). Pass `--no-group` to disable grouping and display raw individual entries with their database IDs and timestamps.\n\n*   **Show Weekly Summary:**\n    ```bash\n    python3 scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]\n    ```\n    Summarizes the Mon-Sun week containing `DATE` (or N preceding weeks). Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. If `--compact` is passed, it outputs a single-line summary of metrics for each week. Displays weekly averages and future daily budgets tailored dynamically to today's completion status (customizable via `--include-today`), along with a daily breakdown table.\n\n*   **Show Macronutrient Trends:**\n    ```bash\n    python3 scripts/tracker.py stats trend [--days N]\n    ```\n    Displays 7-day, 30-day, and 90-day rolling averages of calorie and protein intake (resolved dynamically from rolling trends view) up to today.\n\n*   **Show Weight logs:**\n    ```bash\n    python3 scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged weights, BMI, and weight changes up to today. Defaults to showing the last 5 entries (`-N 5`). Supports a positive integer or `\"all\"` for `-N`, and an integer number of days for `--days`.\n\n*   **Show Waist logs (Shortcut):**\n    ```bash\n    python3 scripts/tracker.py stats waist [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged waist measurements, WHtR, and waist changes. Defaults to showing the last 5 entries (`-N 5`).\n\n*   **Show Custom Measurement logs:**\n    ```bash\n    python3 scripts/tracker.py stats measure TYPE [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logs, unit, and calculated changes for any defined measurement type. If `TYPE` is `waist`, also prints WHtR.\n    *Example:* `python3 scripts/tracker.py stats measure chest -N 10`\n\nFile v1.4.3:README.md\n\n# Calorie Tracker OpenClaw Skill\n\nA skill-first OpenClaw skill to track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. \n\n## Features\n\n- **No Packaging Overheads:** Zero setup or pip installs required. Runs immediately using Python's standard libraries.\n- **Dynamic Meal Types:** Allowed meal types are configured and validated directly in the SQLite database.\n- **Granular Analytics:** Subcommands for daily, weekly, trend-based, and body measurement reports.\n- **Intelligent Budgets:** Computes future daily budgets and historical averages (excluding incomplete days) to aid health coaching and planning.\n\n## CLI Usage\n\nThe core script is located at `scripts/tracker.py`. \n\n### Global Options\n\nThe script supports two global options that must be placed *before* the subcommand:\n- `--database PATH`: Specifying a path to the database (defaults to `health_data.db` in current directory).\n- `--today YYYY-MM-DD`: Time-travel option to simulate the system date for all operations (logs, lists, budgets, averages).\n\n### Core Commands\n\n- **Config Goal:** `python scripts/tracker.py goal CALORIES [PROTEIN]`\n- **Log Food:** `python scripts/tracker.py add \"description\" CALORIES [protein] [carbs] [fat] --meal TYPE`\n- **List Food:** `python scripts/tracker.py list [DATE] [--no-group]` (groups by meal type by default)\n- **Update Entry:** `python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] ...`\n- **Delete Entry:** `python scripts/tracker.py delete ID`\n- **Mark Complete:** `python scripts/tracker.py complete DATE [--completeness QUALITY]`\n- **Check Complete:** `python scripts/tracker.py check-complete [DATE]`\n- **Log Weight/Waist/Measurement:** `python scripts/tracker.py weight KG` / `python scripts/tracker.py waist CM` / `python scripts/tracker.py measure TYPE VALUE`\n  *(Note: Default types `waist`, `hips`, and `neck` are pre-seeded automatically. The key `waist` is specifically used to compute Waist-to-Height Ratio (WHtR) and power the legacy shortcut.)*\n\n### Reports & Statistics\n\n- **Daily Stats:** `python scripts/tracker.py stats day [DATE] [--no-group]` (groups by meal type by default)\n- **Weekly Stats:** `python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]`\n- **Rolling Trends:** `python scripts/tracker.py stats trend [--days N]`\n- **Weight History:** `python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]` (defaults to `-N 5`)\n- **Waist/Measurement History:** `python scripts/tracker.py stats waist` / `python scripts/tracker.py stats measure TYPE [-N ENTRIES] [--days DAYS]`\n\nFor detailed operational rules and specifications, see [SKILL.md](SKILL.md).\n\nFile v1.4.3:_meta.json\n\n{\n  \"ownerId\": \"kn7cxaw1m27d1fe93wbz40vqkd8309h7\",\n  \"slug\": \"caloric-intake-tracker\",\n  \"version\": \"1.4.3\",\n  \"publishedAt\": 1783967504834\n}\n\nFile v1.4.3:skill-card.md\n\n## Description: <br>\nLog and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[patello](https://clawhub.ai/user/patello) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nAgents and users use this skill to maintain a local food, macronutrient, weight, and body-measurement log and generate daily, weekly, and trend reports for personal tracking. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill stores personal health and nutrition data in a local SQLite database file. <br>\nMitigation: Use a protected database path, restrict access to the file, and avoid placing the database in shared or broadly synced locations unless that is intended. <br>\nRisk: Update and delete commands intentionally modify or remove local tracker records. <br>\nMitigation: Review entry IDs with list or stats commands before changing records, and keep a backup when preserving history matters. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/patello/skills/caloric-intake-tracker) <br>\n- [README.md](README.md) <br>\n- [SKILL.md](SKILL.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown with inline shell commands and plain-text CLI reports] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires python3 and uses a local SQLite database file; evidence reports no network access or hidden behavior.] <br>\n\n## Skill Version(s): <br>\n1.4.3 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.4.3:changelog.txt\n\n- Require python3 for skill and update CLI reference\n\nArchive v1.4.2: 7 files, 23113 bytes\n\nFiles: _meta.json (141b), changelog.txt (70b), README.md (2710b), scripts/tracker.py (53664b), skill-card.md (2348b), SKILL.md (9432b), tests/test_tracker.py (21394b)\n\nFile v1.4.2:SKILL.md\n\n---\nname: caloric-intake-tracker\ndescription: Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.\nmetadata: {\"openclaw\": {\"requires\": {\"bins\": [\"python\"]}}}\n---\n\n# Local Calorie Tracker Skill\n\nTrack daily calorie intake, macronutrients, body weight, and waist measurements locally using a SQLite database.\n\n## Installation & Setup\n\nThis is a standalone, skill-first OpenClaw skill. It runs out-of-the-box using standard Python libraries.\n\nThe default SQLite database file is named `health_data.db` and is resolved relative to the current working directory (Cwd) of the running agent. To override the database path, pass the `--database PATH` option to any command.\n\n## Operational Instructions for the Agent\n\n1.  **No Compensatory Entries:** If a food entry was logged incorrectly (e.g. wrong calorie or protein count), do not log a new positive or negative \"balancing\" or \"corrective\" entry. Instead, identify the incorrect entry's ID using the `list` or `stats day` command, and run the `update` or `delete` command to fix it.\n2.  **No Bogus Logs:** Every logged entry's description must contain only the actual name of the food or drink consumed. Do not store summaries, calorie calculations, or meta-data in the food description (e.g., do not name an entry \"1875 kcal, 72g protein\" to force-balance a day).\n3.  **Standardized Meal Types:** Every logged food entry must have a valid `--meal` type. Allowed types are: `breakfast`, `lunch`, `dinner`, `snack`, `fika`, `drink`, `dessert`, `evening`, and `other`. Valid meal types are loaded and validated dynamically from the database.\n\n## Day Completeness Quality Levels\n\nWhen marking a day as complete using the `complete` command, use one of the following completeness quality levels:\n*   `full`: Default. All meals and drinks consumed for the target day were fully tracked.\n*   `partial`: Some meals are missing, or the day relies heavily on rough estimates.\n*   `minimal`: Only sporadic entries were logged; most of the day's intake is unknown.\n\n## Interpreting Weekly Averages & Budgets\n\nWhen reviewing weekly averages using the `stats week` command, averages and budgets are tailored dynamically to today's completion status by default (`--include-today auto`):\n*   **If Today is Incomplete:** The command excludes today's data from the active average display, showing the **Monday-to-Yesterday Average** and the **Daily Budget Starting Today** (including a dynamic helper showing remaining calories for today).\n*   **If Today is Complete:** The command includes today's data, showing the **Monday-to-Today Average** and the **Daily Budget Starting Tomorrow**.\n*   **Customizing Scope:** You can use the `--include-today` flag to force a specific behavior:\n    - `--include-today yes`: Forces inclusion of today (shows Mon-Today average and Starting Tomorrow budget).\n    - `--include-today no`: Forces exclusion of today (shows Mon-Yesterday average and Starting Today budget).\n    - `--include-today both`: Shows both sets of averages and budgets.\n\n## CLI Reference\n\nAll commands support the following global flags (which must be placed *before* the subcommand):\n*   `--database PATH`: Path to SQLite database file (defaulting to `./health_data.db`).\n*   `--today YYYY-MM-DD`: Simulates today's date context for the entire command run (overrides the system clock date, affecting default logging dates, lookbacks, weekly budgets, and rolling averages).\n\n### 1. Configuration & Logging\n\n*   **Configure Daily Goal & Height:**\n    ```bash\n    python scripts/tracker.py goal CALORIES [PROTEIN] [--height HEIGHT_CM]\n    ```\n    Sets target calories, optional protein goals (in grams), and optional height in cm (used dynamically by SQLite views to compute BMI and Waist-to-Height Ratio).\n    *Example:* `python scripts/tracker.py goal 1800 120 --height 180.0`\n\n*   **Log Food Entry:**\n    ```bash\n    python scripts/tracker.py add \"food description\" CALORIES [protein] [carbs] [fat] --meal TYPE [--date YYYY-MM-DD]\n    ```\n    *Example:* `python scripts/tracker.py add \"Oatmeal with blueberries\" 350 12 --meal breakfast`\n\n*   **List Entries by ID:**\n    ```bash\n    python scripts/tracker.py list [DATE] [--no-group]\n    ```\n    Lists all entries for `DATE` (defaults to today). By default, entries are grouped by meal type (combining descriptions and summing calories/protein). Pass `--no-group` to disable grouping and display raw individual entries with their database IDs and timestamps (essential for updates/deletions).\n\n*   **Update Food Entry:**\n    ```bash\n    python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] [--p PROTEIN] [--c CARBS] [--f FAT] [--meal TYPE]\n    ```\n    Modifies an existing entry by ID. Only the specified flags are updated.\n\n*   **Delete Food Entry:**\n    ```bash\n    python scripts/tracker.py delete ID\n    ```\n    Permanently deletes a specific entry.\n\n*   **Mark Day as Complete:**\n    ```bash\n    python scripts/tracker.py complete DATE [--completeness QUALITY] [--notes NOTES]\n    ```\n    Sets the completeness status (`full` (default), `partial`, or `minimal`) and marks `completed=1` in the database.\n\n*   **Check Day Completion:**\n    ```bash\n    python scripts/tracker.py check-complete [DATE]\n    ```\n    Exits with code `0` if the date is fully completed (`completeness == 'full'` and `completed == 1`), otherwise exits with `1`.\n\n*   **Log Body Weight:**\n    ```bash\n    python scripts/tracker.py weight KG [DATE]\n    ```\n    Logs weight for the specified date (defaults to today).\n\n*   **Log Waist Circumference (Shortcut):**\n    ```bash\n    python scripts/tracker.py waist CM [DATE] [--notes NOTES]\n    ```\n    Logs waist circumference with optional notes (delegates to `measure waist`).\n\n*   **Log Custom Body Measurement:**\n    ```bash\n    python scripts/tracker.py measure TYPE VALUE [DATE] [--notes NOTES]\n    ```\n    Logs a measurement value for a defined measurement type (e.g. waist, hips, neck, or custom defined types) with optional notes.\n    *(Note: Default types `waist`, `hips`, and `neck` are pre-seeded automatically. The key `waist` is specifically used to compute Waist-to-Height Ratio (WHtR) and power the `waist` shortcut.)*\n    *Example:* `python scripts/tracker.py measure hip_upper 92.5 --notes \"Upper hip line, morning\"`\n\n*   **Define Custom Measurement Type:**\n    ```bash\n    python scripts/tracker.py measure-type define KEY DISPLAY_NAME UNIT [--desc DESCRIPTION]\n    ```\n    Defines a custom measurement point with display name, unit, and optional description.\n    *Example:* `python scripts/tracker.py measure-type define hip_upper \"Hip (Upper)\" cm --desc \"Upper hip line\"`\n\n*   **List Defined Measurement Types:**\n    ```bash\n    python scripts/tracker.py measure-type list\n    ```\n    Lists all defined measurement types, units, and descriptions.\n\n*   **Delete Custom Measurement Type:**\n    ```bash\n    python scripts/tracker.py measure-type delete KEY\n    ```\n    Deletes the type definition and all associated logs. Default types (`waist`, `hips`, `neck`) cannot be deleted.\n\n### 2. Statistics & Reports\n\n*   **Show Daily Breakdown:**\n    ```bash\n    python scripts/tracker.py stats day [DATE] [--no-group]\n    ```\n    Prints the chronological list of entries, meal-type breakdowns, and progress compared to daily goals. Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. By default, the daily breakdown list is grouped by meal type (combining descriptions and summing calories/protein). Pass `--no-group` to disable grouping and display raw individual entries with their database IDs and timestamps.\n\n*   **Show Weekly Summary:**\n    ```bash\n    python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]\n    ```\n    Summarizes the Mon-Sun week containing `DATE` (or N preceding weeks). Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. If `--compact` is passed, it outputs a single-line summary of metrics for each week. Displays weekly averages and future daily budgets tailored dynamically to today's completion status (customizable via `--include-today`), along with a daily breakdown table.\n\n*   **Show Macronutrient Trends:**\n    ```bash\n    python scripts/tracker.py stats trend [--days N]\n    ```\n    Displays 7-day, 30-day, and 90-day rolling averages of calorie and protein intake (resolved dynamically from rolling trends view) up to today.\n\n*   **Show Weight logs:**\n    ```bash\n    python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged weights, BMI, and weight changes up to today. Defaults to showing the last 5 entries (`-N 5`). Supports a positive integer or `\"all\"` for `-N`, and an integer number of days for `--days`.\n\n*   **Show Waist logs (Shortcut):**\n    ```bash\n    python scripts/tracker.py stats waist [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged waist measurements, WHtR, and waist changes. Defaults to showing the last 5 entries (`-N 5`).\n\n*   **Show Custom Measurement logs:**\n    ```bash\n    python scripts/tracker.py stats measure TYPE [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logs, unit, and calculated changes for any defined measurement type. If `TYPE` is `waist`, also prints WHtR.\n    *Example:* `python scripts/tracker.py stats measure chest -N 10`\n\nFile v1.4.2:README.md\n\n# Calorie Tracker OpenClaw Skill\n\nA skill-first OpenClaw skill to track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. \n\n## Features\n\n- **No Packaging Overheads:** Zero setup or pip installs required. Runs immediately using Python's standard libraries.\n- **Dynamic Meal Types:** Allowed meal types are configured and validated directly in the SQLite database.\n- **Granular Analytics:** Subcommands for daily, weekly, trend-based, and body measurement reports.\n- **Intelligent Budgets:** Computes future daily budgets and historical averages (excluding incomplete days) to aid health coaching and planning.\n\n## CLI Usage\n\nThe core script is located at `scripts/tracker.py`. \n\n### Global Options\n\nThe script supports two global options that must be placed *before* the subcommand:\n- `--database PATH`: Specifying a path to the database (defaults to `health_data.db` in current directory).\n- `--today YYYY-MM-DD`: Time-travel option to simulate the system date for all operations (logs, lists, budgets, averages).\n\n### Core Commands\n\n- **Config Goal:** `python scripts/tracker.py goal CALORIES [PROTEIN]`\n- **Log Food:** `python scripts/tracker.py add \"description\" CALORIES [protein] [carbs] [fat] --meal TYPE`\n- **List Food:** `python scripts/tracker.py list [DATE] [--no-group]` (groups by meal type by default)\n- **Update Entry:** `python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] ...`\n- **Delete Entry:** `python scripts/tracker.py delete ID`\n- **Mark Complete:** `python scripts/tracker.py complete DATE [--completeness QUALITY]`\n- **Check Complete:** `python scripts/tracker.py check-complete [DATE]`\n- **Log Weight/Waist/Measurement:** `python scripts/tracker.py weight KG` / `python scripts/tracker.py waist CM` / `python scripts/tracker.py measure TYPE VALUE`\n  *(Note: Default types `waist`, `hips`, and `neck` are pre-seeded automatically. The key `waist` is specifically used to compute Waist-to-Height Ratio (WHtR) and power the legacy shortcut.)*\n\n### Reports & Statistics\n\n- **Daily Stats:** `python scripts/tracker.py stats day [DATE] [--no-group]` (groups by meal type by default)\n- **Weekly Stats:** `python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]`\n- **Rolling Trends:** `python scripts/tracker.py stats trend [--days N]`\n- **Weight History:** `python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]` (defaults to `-N 5`)\n- **Waist/Measurement History:** `python scripts/tracker.py stats waist` / `python scripts/tracker.py stats measure TYPE [-N ENTRIES] [--days DAYS]`\n\nFor detailed operational rules and specifications, see [SKILL.md](SKILL.md).\n\nFile v1.4.2:_meta.json\n\n{\n  \"ownerId\": \"kn7cxaw1m27d1fe93wbz40vqkd8309h7\",\n  \"slug\": \"caloric-intake-tracker\",\n  \"version\": \"1.4.2\",\n  \"publishedAt\": 1782725081550\n}\n\nFile v1.4.2:skill-card.md\n\n## Description: <br>\nLog and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database with granular statistics, weekly averages, and future calorie budgets. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[patello](https://clawhub.ai/user/patello) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this skill to log meals, calorie and macronutrient targets, body weight, waist circumference, and custom measurements into a local SQLite database. They can review daily breakdowns, weekly summaries, rolling trends, body-measurement reports, and future calorie budgets. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Calorie, weight, waist, and other body measurement data is stored in a local SQLite file that may expose sensitive health information if placed in a shared or synced directory. <br>\nMitigation: Use --database to place the database in a private directory, and avoid shared or synced folders when privacy matters. <br>\nRisk: Existing health_data.db files can be changed by migrations and by update, delete, and measurement-type delete commands. <br>\nMitigation: Back up existing database files before first use or upgrades, and use list or stats day to identify entries before changing or deleting them. <br>\n\n\n## Reference(s): <br>\n- [Calorie Tracker ClawHub Skill Page](https://clawhub.ai/patello/skills/caloric-intake-tracker) <br>\n- [README.md](README.md) <br>\n- [SKILL.md](SKILL.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, shell commands, configuration, guidance] <br>\n**Output Format:** [Plain text CLI output with inline shell commands and local SQLite state changes] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Writes health_data.db by default; --database can direct storage to another local SQLite file.] <br>\n\n## Skill Version(s): <br>\n1.4.2 (source: evidence.release.version and artifact/_meta.json) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.4.2:changelog.txt\n\n- Clarify pre-seeded default measurement types in README and SKILL.md\n\nArchive v1.4.1: 7 files, 22898 bytes\n\nFiles: _meta.json (141b), changelog.txt (53b), README.md (2518b), scripts/tracker.py (53664b), skill-card.md (2368b), SKILL.md (9237b), tests/test_tracker.py (21394b)\n\nFile v1.4.1:SKILL.md\n\n---\nname: caloric-intake-tracker\ndescription: Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.\nmetadata: {\"openclaw\": {\"requires\": {\"bins\": [\"python\"]}}}\n---\n\n# Local Calorie Tracker Skill\n\nTrack daily calorie intake, macronutrients, body weight, and waist measurements locally using a SQLite database.\n\n## Installation & Setup\n\nThis is a standalone, skill-first OpenClaw skill. It runs out-of-the-box using standard Python libraries.\n\nThe default SQLite database file is named `health_data.db` and is resolved relative to the current working directory (Cwd) of the running agent. To override the database path, pass the `--database PATH` option to any command.\n\n## Operational Instructions for the Agent\n\n1.  **No Compensatory Entries:** If a food entry was logged incorrectly (e.g. wrong calorie or protein count), do not log a new positive or negative \"balancing\" or \"corrective\" entry. Instead, identify the incorrect entry's ID using the `list` or `stats day` command, and run the `update` or `delete` command to fix it.\n2.  **No Bogus Logs:** Every logged entry's description must contain only the actual name of the food or drink consumed. Do not store summaries, calorie calculations, or meta-data in the food description (e.g., do not name an entry \"1875 kcal, 72g protein\" to force-balance a day).\n3.  **Standardized Meal Types:** Every logged food entry must have a valid `--meal` type. Allowed types are: `breakfast`, `lunch`, `dinner`, `snack`, `fika`, `drink`, `dessert`, `evening`, and `other`. Valid meal types are loaded and validated dynamically from the database.\n\n## Day Completeness Quality Levels\n\nWhen marking a day as complete using the `complete` command, use one of the following completeness quality levels:\n*   `full`: Default. All meals and drinks consumed for the target day were fully tracked.\n*   `partial`: Some meals are missing, or the day relies heavily on rough estimates.\n*   `minimal`: Only sporadic entries were logged; most of the day's intake is unknown.\n\n## Interpreting Weekly Averages & Budgets\n\nWhen reviewing weekly averages using the `stats week` command, averages and budgets are tailored dynamically to today's completion status by default (`--include-today auto`):\n*   **If Today is Incomplete:** The command excludes today's data from the active average display, showing the **Monday-to-Yesterday Average** and the **Daily Budget Starting Today** (including a dynamic helper showing remaining calories for today).\n*   **If Today is Complete:** The command includes today's data, showing the **Monday-to-Today Average** and the **Daily Budget Starting Tomorrow**.\n*   **Customizing Scope:** You can use the `--include-today` flag to force a specific behavior:\n    - `--include-today yes`: Forces inclusion of today (shows Mon-Today average and Starting Tomorrow budget).\n    - `--include-today no`: Forces exclusion of today (shows Mon-Yesterday average and Starting Today budget).\n    - `--include-today both`: Shows both sets of averages and budgets.\n\n## CLI Reference\n\nAll commands support the following global flags (which must be placed *before* the subcommand):\n*   `--database PATH`: Path to SQLite database file (defaulting to `./health_data.db`).\n*   `--today YYYY-MM-DD`: Simulates today's date context for the entire command run (overrides the system clock date, affecting default logging dates, lookbacks, weekly budgets, and rolling averages).\n\n### 1. Configuration & Logging\n\n*   **Configure Daily Goal & Height:**\n    ```bash\n    python scripts/tracker.py goal CALORIES [PROTEIN] [--height HEIGHT_CM]\n    ```\n    Sets target calories, optional protein goals (in grams), and optional height in cm (used dynamically by SQLite views to compute BMI and Waist-to-Height Ratio).\n    *Example:* `python scripts/tracker.py goal 1800 120 --height 180.0`\n\n*   **Log Food Entry:**\n    ```bash\n    python scripts/tracker.py add \"food description\" CALORIES [protein] [carbs] [fat] --meal TYPE [--date YYYY-MM-DD]\n    ```\n    *Example:* `python scripts/tracker.py add \"Oatmeal with blueberries\" 350 12 --meal breakfast`\n\n*   **List Entries by ID:**\n    ```bash\n    python scripts/tracker.py list [DATE] [--no-group]\n    ```\n    Lists all entries for `DATE` (defaults to today). By default, entries are grouped by meal type (combining descriptions and summing calories/protein). Pass `--no-group` to disable grouping and display raw individual entries with their database IDs and timestamps (essential for updates/deletions).\n\n*   **Update Food Entry:**\n    ```bash\n    python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] [--p PROTEIN] [--c CARBS] [--f FAT] [--meal TYPE]\n    ```\n    Modifies an existing entry by ID. Only the specified flags are updated.\n\n*   **Delete Food Entry:**\n    ```bash\n    python scripts/tracker.py delete ID\n    ```\n    Permanently deletes a specific entry.\n\n*   **Mark Day as Complete:**\n    ```bash\n    python scripts/tracker.py complete DATE [--completeness QUALITY] [--notes NOTES]\n    ```\n    Sets the completeness status (`full` (default), `partial`, or `minimal`) and marks `completed=1` in the database.\n\n*   **Check Day Completion:**\n    ```bash\n    python scripts/tracker.py check-complete [DATE]\n    ```\n    Exits with code `0` if the date is fully completed (`completeness == 'full'` and `completed == 1`), otherwise exits with `1`.\n\n*   **Log Body Weight:**\n    ```bash\n    python scripts/tracker.py weight KG [DATE]\n    ```\n    Logs weight for the specified date (defaults to today).\n\n*   **Log Waist Circumference (Shortcut):**\n    ```bash\n    python scripts/tracker.py waist CM [DATE] [--notes NOTES]\n    ```\n    Logs waist circumference with optional notes (delegates to `measure waist`).\n\n*   **Log Custom Body Measurement:**\n    ```bash\n    python scripts/tracker.py measure TYPE VALUE [DATE] [--notes NOTES]\n    ```\n    Logs a measurement value for a defined measurement type (e.g. waist, hips, neck, or custom defined types) with optional notes.\n    *Example:* `python scripts/tracker.py measure hip_upper 92.5 --notes \"Upper hip line, morning\"`\n\n*   **Define Custom Measurement Type:**\n    ```bash\n    python scripts/tracker.py measure-type define KEY DISPLAY_NAME UNIT [--desc DESCRIPTION]\n    ```\n    Defines a custom measurement point with display name, unit, and optional description.\n    *Example:* `python scripts/tracker.py measure-type define hip_upper \"Hip (Upper)\" cm --desc \"Upper hip line\"`\n\n*   **List Defined Measurement Types:**\n    ```bash\n    python scripts/tracker.py measure-type list\n    ```\n    Lists all defined measurement types, units, and descriptions.\n\n*   **Delete Custom Measurement Type:**\n    ```bash\n    python scripts/tracker.py measure-type delete KEY\n    ```\n    Deletes the type definition and all associated logs. Default types (`waist`, `hips`, `neck`) cannot be deleted.\n\n### 2. Statistics & Reports\n\n*   **Show Daily Breakdown:**\n    ```bash\n    python scripts/tracker.py stats day [DATE] [--no-group]\n    ```\n    Prints the chronological list of entries, meal-type breakdowns, and progress compared to daily goals. Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. By default, the daily breakdown list is grouped by meal type (combining descriptions and summing calories/protein). Pass `--no-group` to disable grouping and display raw individual entries with their database IDs and timestamps.\n\n*   **Show Weekly Summary:**\n    ```bash\n    python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]\n    ```\n    Summarizes the Mon-Sun week containing `DATE` (or N preceding weeks). Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. If `--compact` is passed, it outputs a single-line summary of metrics for each week. Displays weekly averages and future daily budgets tailored dynamically to today's completion status (customizable via `--include-today`), along with a daily breakdown table.\n\n*   **Show Macronutrient Trends:**\n    ```bash\n    python scripts/tracker.py stats trend [--days N]\n    ```\n    Displays 7-day, 30-day, and 90-day rolling averages of calorie and protein intake (resolved dynamically from rolling trends view) up to today.\n\n*   **Show Weight logs:**\n    ```bash\n    python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged weights, BMI, and weight changes up to today. Defaults to showing the last 5 entries (`-N 5`). Supports a positive integer or `\"all\"` for `-N`, and an integer number of days for `--days`.\n\n*   **Show Waist logs (Shortcut):**\n    ```bash\n    python scripts/tracker.py stats waist [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged waist measurements, WHtR, and waist changes. Defaults to showing the last 5 entries (`-N 5`).\n\n*   **Show Custom Measurement logs:**\n    ```bash\n    python scripts/tracker.py stats measure TYPE [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logs, unit, and calculated changes for any defined measurement type. If `TYPE` is `waist`, also prints WHtR.\n    *Example:* `python scripts/tracker.py stats measure chest -N 10`\n\nFile v1.4.1:README.md\n\n# Calorie Tracker OpenClaw Skill\n\nA skill-first OpenClaw skill to track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. \n\n## Features\n\n- **No Packaging Overheads:** Zero setup or pip installs required. Runs immediately using Python's standard libraries.\n- **Dynamic Meal Types:** Allowed meal types are configured and validated directly in the SQLite database.\n- **Granular Analytics:** Subcommands for daily, weekly, trend-based, and body measurement reports.\n- **Intelligent Budgets:** Computes future daily budgets and historical averages (excluding incomplete days) to aid health coaching and planning.\n\n## CLI Usage\n\nThe core script is located at `scripts/tracker.py`. \n\n### Global Options\n\nThe script supports two global options that must be placed *before* the subcommand:\n- `--database PATH`: Specifying a path to the database (defaults to `health_data.db` in current directory).\n- `--today YYYY-MM-DD`: Time-travel option to simulate the system date for all operations (logs, lists, budgets, averages).\n\n### Core Commands\n\n- **Config Goal:** `python scripts/tracker.py goal CALORIES [PROTEIN]`\n- **Log Food:** `python scripts/tracker.py add \"description\" CALORIES [protein] [carbs] [fat] --meal TYPE`\n- **List Food:** `python scripts/tracker.py list [DATE] [--no-group]` (groups by meal type by default)\n- **Update Entry:** `python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] ...`\n- **Delete Entry:** `python scripts/tracker.py delete ID`\n- **Mark Complete:** `python scripts/tracker.py complete DATE [--completeness QUALITY]`\n- **Check Complete:** `python scripts/tracker.py check-complete [DATE]`\n- **Log Weight/Waist/Measurement:** `python scripts/tracker.py weight KG` / `python scripts/tracker.py waist CM` / `python scripts/tracker.py measure TYPE VALUE`\n\n### Reports & Statistics\n\n- **Daily Stats:** `python scripts/tracker.py stats day [DATE] [--no-group]` (groups by meal type by default)\n- **Weekly Stats:** `python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]`\n- **Rolling Trends:** `python scripts/tracker.py stats trend [--days N]`\n- **Weight History:** `python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]` (defaults to `-N 5`)\n- **Waist/Measurement History:** `python scripts/tracker.py stats waist` / `python scripts/tracker.py stats measure TYPE [-N ENTRIES] [--days DAYS]`\n\nFor detailed operational rules and specifications, see [SKILL.md](SKILL.md).\n\nFile v1.4.1:_meta.json\n\n{\n  \"ownerId\": \"kn7cxaw1m27d1fe93wbz40vqkd8309h7\",\n  \"slug\": \"caloric-intake-tracker\",\n  \"version\": \"1.4.1\",\n  \"publishedAt\": 1782724574472\n}\n\nFile v1.4.1:skill-card.md\n\n## Description: <br>\nLog and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database with granular statistics, weekly averages, and future calorie budgets. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[patello](https://clawhub.ai/user/patello) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nIndividuals and agents use this skill to record food intake, weight, and body measurements in a local SQLite database, then review daily, weekly, and rolling statistics for health tracking and planning. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill stores calorie, weight, and body-measurement history in a local SQLite database. <br>\nMitigation: Use the --database option to choose the storage location and apply normal local file access, backup, and retention controls. <br>\nRisk: Upgrades or first use against an existing health_data.db may modify older measurement tables. <br>\nMitigation: Back up any existing health_data.db before first use or upgrade, especially if it may contain an older body_measurements table. <br>\nRisk: Incorrect food logs can distort statistics and future calorie budgets. <br>\nMitigation: Correct mistakes with the update or delete commands and keep food descriptions limited to actual consumed items. <br>\n\n\n## Reference(s): <br>\n- [Calorie Tracker on ClawHub](https://clawhub.ai/patello/skills/caloric-intake-tracker) <br>\n- [README.md](README.md) <br>\n- [SKILL.md](SKILL.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with inline shell commands and plain-text CLI output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires Python and stores user health data locally in a SQLite database; users can choose the database path with --database.] <br>\n\n## Skill Version(s): <br>\n1.4.1 (source: server release evidence and artifact _meta.json) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.4.1:changelog.txt\n\n- Add notes field support to individual measurements\n\nArchive v1.4.0: 7 files, 22607 bytes\n\nFiles: _meta.json (141b), changelog.txt (88b), README.md (2518b), scripts/tracker.py (52963b), skill-card.md (2069b), SKILL.md (9131b), tests/test_tracker.py (21239b)\n\nFile v1.4.0:SKILL.md\n\n---\nname: caloric-intake-tracker\ndescription: Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.\nmetadata: {\"openclaw\": {\"requires\": {\"bins\": [\"python\"]}}}\n---\n\n# Local Calorie Tracker Skill\n\nTrack daily calorie intake, macronutrients, body weight, and waist measurements locally using a SQLite database.\n\n## Installation & Setup\n\nThis is a standalone, skill-first OpenClaw skill. It runs out-of-the-box using standard Python libraries.\n\nThe default SQLite database file is named `health_data.db` and is resolved relative to the current working directory (Cwd) of the running agent. To override the database path, pass the `--database PATH` option to any command.\n\n## Operational Instructions for the Agent\n\n1.  **No Compensatory Entries:** If a food entry was logged incorrectly (e.g. wrong calorie or protein count), do not log a new positive or negative \"balancing\" or \"corrective\" entry. Instead, identify the incorrect entry's ID using the `list` or `stats day` command, and run the `update` or `delete` command to fix it.\n2.  **No Bogus Logs:** Every logged entry's description must contain only the actual name of the food or drink consumed. Do not store summaries, calorie calculations, or meta-data in the food description (e.g., do not name an entry \"1875 kcal, 72g protein\" to force-balance a day).\n3.  **Standardized Meal Types:** Every logged food entry must have a valid `--meal` type. Allowed types are: `breakfast`, `lunch`, `dinner`, `snack`, `fika`, `drink`, `dessert`, `evening`, and `other`. Valid meal types are loaded and validated dynamically from the database.\n\n## Day Completeness Quality Levels\n\nWhen marking a day as complete using the `complete` command, use one of the following completeness quality levels:\n*   `full`: Default. All meals and drinks consumed for the target day were fully tracked.\n*   `partial`: Some meals are missing, or the day relies heavily on rough estimates.\n*   `minimal`: Only sporadic entries were logged; most of the day's intake is unknown.\n\n## Interpreting Weekly Averages & Budgets\n\nWhen reviewing weekly averages using the `stats week` command, averages and budgets are tailored dynamically to today's completion status by default (`--include-today auto`):\n*   **If Today is Incomplete:** The command excludes today's data from the active average display, showing the **Monday-to-Yesterday Average** and the **Daily Budget Starting Today** (including a dynamic helper showing remaining calories for today).\n*   **If Today is Complete:** The command includes today's data, showing the **Monday-to-Today Average** and the **Daily Budget Starting Tomorrow**.\n*   **Customizing Scope:** You can use the `--include-today` flag to force a specific behavior:\n    - `--include-today yes`: Forces inclusion of today (shows Mon-Today average and Starting Tomorrow budget).\n    - `--include-today no`: Forces exclusion of today (shows Mon-Yesterday average and Starting Today budget).\n    - `--include-today both`: Shows both sets of averages and budgets.\n\n## CLI Reference\n\nAll commands support the following global flags (which must be placed *before* the subcommand):\n*   `--database PATH`: Path to SQLite database file (defaulting to `./health_data.db`).\n*   `--today YYYY-MM-DD`: Simulates today's date context for the entire command run (overrides the system clock date, affecting default logging dates, lookbacks, weekly budgets, and rolling averages).\n\n### 1. Configuration & Logging\n\n*   **Configure Daily Goal & Height:**\n    ```bash\n    python scripts/tracker.py goal CALORIES [PROTEIN] [--height HEIGHT_CM]\n    ```\n    Sets target calories, optional protein goals (in grams), and optional height in cm (used dynamically by SQLite views to compute BMI and Waist-to-Height Ratio).\n    *Example:* `python scripts/tracker.py goal 1800 120 --height 180.0`\n\n*   **Log Food Entry:**\n    ```bash\n    python scripts/tracker.py add \"food description\" CALORIES [protein] [carbs] [fat] --meal TYPE [--date YYYY-MM-DD]\n    ```\n    *Example:* `python scripts/tracker.py add \"Oatmeal with blueberries\" 350 12 --meal breakfast`\n\n*   **List Entries by ID:**\n    ```bash\n    python scripts/tracker.py list [DATE] [--no-group]\n    ```\n    Lists all entries for `DATE` (defaults to today). By default, entries are grouped by meal type (combining descriptions and summing calories/protein). Pass `--no-group` to disable grouping and display raw individual entries with their database IDs and timestamps (essential for updates/deletions).\n\n*   **Update Food Entry:**\n    ```bash\n    python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] [--p PROTEIN] [--c CARBS] [--f FAT] [--meal TYPE]\n    ```\n    Modifies an existing entry by ID. Only the specified flags are updated.\n\n*   **Delete Food Entry:**\n    ```bash\n    python scripts/tracker.py delete ID\n    ```\n    Permanently deletes a specific entry.\n\n*   **Mark Day as Complete:**\n    ```bash\n    python scripts/tracker.py complete DATE [--completeness QUALITY] [--notes NOTES]\n    ```\n    Sets the completeness status (`full` (default), `partial`, or `minimal`) and marks `completed=1` in the database.\n\n*   **Check Day Completion:**\n    ```bash\n    python scripts/tracker.py check-complete [DATE]\n    ```\n    Exits with code `0` if the date is fully completed (`completeness == 'full'` and `completed == 1`), otherwise exits with `1`.\n\n*   **Log Body Weight:**\n    ```bash\n    python scripts/tracker.py weight KG [DATE]\n    ```\n    Logs weight for the specified date (defaults to today).\n\n*   **Log Waist Circumference (Shortcut):**\n    ```bash\n    python scripts/tracker.py waist CM [DATE]\n    ```\n    Logs waist circumference (delegates to `measure waist`).\n\n*   **Log Custom Body Measurement:**\n    ```bash\n    python scripts/tracker.py measure TYPE VALUE [DATE]\n    ```\n    Logs a measurement value for a defined measurement type (e.g. waist, hips, neck, or custom defined types).\n    *Example:* `python scripts/tracker.py measure hip_upper 92.5`\n\n*   **Define Custom Measurement Type:**\n    ```bash\n    python scripts/tracker.py measure-type define KEY DISPLAY_NAME UNIT [--desc DESCRIPTION]\n    ```\n    Defines a custom measurement point with display name, unit, and optional description.\n    *Example:* `python scripts/tracker.py measure-type define hip_upper \"Hip (Upper)\" cm --desc \"Upper hip line\"`\n\n*   **List Defined Measurement Types:**\n    ```bash\n    python scripts/tracker.py measure-type list\n    ```\n    Lists all defined measurement types, units, and descriptions.\n\n*   **Delete Custom Measurement Type:**\n    ```bash\n    python scripts/tracker.py measure-type delete KEY\n    ```\n    Deletes the type definition and all associated logs. Default types (`waist`, `hips`, `neck`) cannot be deleted.\n\n### 2. Statistics & Reports\n\n*   **Show Daily Breakdown:**\n    ```bash\n    python scripts/tracker.py stats day [DATE] [--no-group]\n    ```\n    Prints the chronological list of entries, meal-type breakdowns, and progress compared to daily goals. Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. By default, the daily breakdown list is grouped by meal type (combining descriptions and summing calories/protein). Pass `--no-group` to disable grouping and display raw individual entries with their database IDs and timestamps.\n\n*   **Show Weekly Summary:**\n    ```bash\n    python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]\n    ```\n    Summarizes the Mon-Sun week containing `DATE` (or N preceding weeks). Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. If `--compact` is passed, it outputs a single-line summary of metrics for each week. Displays weekly averages and future daily budgets tailored dynamically to today's completion status (customizable via `--include-today`), along with a daily breakdown table.\n\n*   **Show Macronutrient Trends:**\n    ```bash\n    python scripts/tracker.py stats trend [--days N]\n    ```\n    Displays 7-day, 30-day, and 90-day rolling averages of calorie and protein intake (resolved dynamically from rolling trends view) up to today.\n\n*   **Show Weight logs:**\n    ```bash\n    python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged weights, BMI, and weight changes up to today. Defaults to showing the last 5 entries (`-N 5`). Supports a positive integer or `\"all\"` for `-N`, and an integer number of days for `--days`.\n\n*   **Show Waist logs (Shortcut):**\n    ```bash\n    python scripts/tracker.py stats waist [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged waist measurements, WHtR, and waist changes. Defaults to showing the last 5 entries (`-N 5`).\n\n*   **Show Custom Measurement logs:**\n    ```bash\n    python scripts/tracker.py stats measure TYPE [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logs, unit, and calculated changes for any defined measurement type. If `TYPE` is `waist`, also prints WHtR.\n    *Example:* `python scripts/tracker.py stats measure chest -N 10`\n\nFile v1.4.0:README.md\n\n# Calorie Tracker OpenClaw Skill\n\nA skill-first OpenClaw skill to track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. \n\n## Features\n\n- **No Packaging Overheads:** Zero setup or pip installs required. Runs immediately using Python's standard libraries.\n- **Dynamic Meal Types:** Allowed meal types are configured and validated directly in the SQLite database.\n- **Granular Analytics:** Subcommands for daily, weekly, trend-based, and body measurement reports.\n- **Intelligent Budgets:** Computes future daily budgets and historical averages (excluding incomplete days) to aid health coaching and planning.\n\n## CLI Usage\n\nThe core script is located at `scripts/tracker.py`. \n\n### Global Options\n\nThe script supports two global options that must be placed *before* the subcommand:\n- `--database PATH`: Specifying a path to the database (defaults to `health_data.db` in current directory).\n- `--today YYYY-MM-DD`: Time-travel option to simulate the system date for all operations (logs, lists, budgets, averages).\n\n### Core Commands\n\n- **Config Goal:** `python scripts/tracker.py goal CALORIES [PROTEIN]`\n- **Log Food:** `python scripts/tracker.py add \"description\" CALORIES [protein] [carbs] [fat] --meal TYPE`\n- **List Food:** `python scripts/tracker.py list [DATE] [--no-group]` (groups by meal type by default)\n- **Update Entry:** `python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] ...`\n- **Delete Entry:** `python scripts/tracker.py delete ID`\n- **Mark Complete:** `python scripts/tracker.py complete DATE [--completeness QUALITY]`\n- **Check Complete:** `python scripts/tracker.py check-complete [DATE]`\n- **Log Weight/Waist/Measurement:** `python scripts/tracker.py weight KG` / `python scripts/tracker.py waist CM` / `python scripts/tracker.py measure TYPE VALUE`\n\n### Reports & Statistics\n\n- **Daily Stats:** `python scripts/tracker.py stats day [DATE] [--no-group]` (groups by meal type by default)\n- **Weekly Stats:** `python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]`\n- **Rolling Trends:** `python scripts/tracker.py stats trend [--days N]`\n- **Weight History:** `python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]` (defaults to `-N 5`)\n- **Waist/Measurement History:** `python scripts/tracker.py stats waist` / `python scripts/tracker.py stats measure TYPE [-N ENTRIES] [--days DAYS]`\n\nFor detailed operational rules and specifications, see [SKILL.md](SKILL.md).\n\nFile v1.4.0:_meta.json\n\n{\n  \"ownerId\": \"kn7cxaw1m27d1fe93wbz40vqkd8309h7\",\n  \"slug\": \"caloric-intake-tracker\",\n  \"version\": \"1.4.0\",\n  \"publishedAt\": 1782721735839\n}\n\nFile v1.4.0:skill-card.md\n\n## Description: <br>\nLog and track daily calorie intake, macronutrients, body weight, and body measurements locally in SQLite, with daily and weekly statistics, trend reports, and future calorie budgets. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[patello](https://clawhub.ai/user/patello) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this skill to keep local health-tracking records, update or delete logged entries, and generate calorie, macronutrient, weight, and body-measurement summaries. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill stores health-tracking data in a local SQLite database. <br>\nMitigation: Use an intended database path, control local file access, and back up the database if the history matters. <br>\nRisk: Delete commands permanently remove food entries or custom measurement data. <br>\nMitigation: List records first, confirm the exact entry ID or measurement key, and prefer update commands when correcting an incorrect log. <br>\n\n\n## Reference(s): <br>\n- [Calorie Tracker on ClawHub](https://clawhub.ai/patello/skills/caloric-intake-tracker) <br>\n- [README](README.md) <br>\n- [Skill Instructions](SKILL.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with inline shell commands and CLI output summaries] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses a local SQLite database, defaults to health_data.db in the current working directory, and requires a python binary.] <br>\n\n## Skill Version(s): <br>\n1.4.0 (source: server release metadata and artifact _meta.json) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.4.0:changelog.txt\n\n- Implement dynamic and extensible body measurements with custom units and descriptions\n\nArchive v1.3.0: 7 files, 19386 bytes\n\nFiles: _meta.json (141b), changelog.txt (91b), README.md (2416b), scripts/tracker.py (43380b), skill-card.md (2295b), SKILL.md (7845b), tests/test_tracker.py (16999b)\n\nFile v1.3.0:SKILL.md\n\n---\nname: caloric-intake-tracker\ndescription: Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.\nmetadata: {\"openclaw\": {\"requires\": {\"bins\": [\"python\"]}}}\n---\n\n# Local Calorie Tracker Skill\n\nTrack daily calorie intake, macronutrients, body weight, and waist measurements locally using a SQLite database.\n\n## Installation & Setup\n\nThis is a standalone, skill-first OpenClaw skill. It runs out-of-the-box using standard Python libraries.\n\nThe default SQLite database file is named `health_data.db` and is resolved relative to the current working directory (Cwd) of the running agent. To override the database path, pass the `--database PATH` option to any command.\n\n## Operational Instructions for the Agent\n\n1.  **No Compensatory Entries:** If a food entry was logged incorrectly (e.g. wrong calorie or protein count), do not log a new positive or negative \"balancing\" or \"corrective\" entry. Instead, identify the incorrect entry's ID using the `list` or `stats day` command, and run the `update` or `delete` command to fix it.\n2.  **No Bogus Logs:** Every logged entry's description must contain only the actual name of the food or drink consumed. Do not store summaries, calorie calculations, or meta-data in the food description (e.g., do not name an entry \"1875 kcal, 72g protein\" to force-balance a day).\n3.  **Standardized Meal Types:** Every logged food entry must have a valid `--meal` type. Allowed types are: `breakfast`, `lunch`, `dinner`, `snack`, `fika`, `drink`, `dessert`, `evening`, and `other`. Valid meal types are loaded and validated dynamically from the database.\n\n## Day Completeness Quality Levels\n\nWhen marking a day as complete using the `complete` command, use one of the following completeness quality levels:\n*   `full`: Default. All meals and drinks consumed for the target day were fully tracked.\n*   `partial`: Some meals are missing, or the day relies heavily on rough estimates.\n*   `minimal`: Only sporadic entries were logged; most of the day's intake is unknown.\n\n## Interpreting Weekly Averages & Budgets\n\nWhen reviewing weekly averages using the `stats week` command, averages and budgets are tailored dynamically to today's completion status by default (`--include-today auto`):\n*   **If Today is Incomplete:** The command excludes today's data from the active average display, showing the **Monday-to-Yesterday Average** and the **Daily Budget Starting Today** (including a dynamic helper showing remaining calories for today).\n*   **If Today is Complete:** The command includes today's data, showing the **Monday-to-Today Average** and the **Daily Budget Starting Tomorrow**.\n*   **Customizing Scope:** You can use the `--include-today` flag to force a specific behavior:\n    - `--include-today yes`: Forces inclusion of today (shows Mon-Today average and Starting Tomorrow budget).\n    - `--include-today no`: Forces exclusion of today (shows Mon-Yesterday average and Starting Today budget).\n    - `--include-today both`: Shows both sets of averages and budgets.\n\n## CLI Reference\n\nAll commands support the following global flags (which must be placed *before* the subcommand):\n*   `--database PATH`: Path to SQLite database file (defaulting to `./health_data.db`).\n*   `--today YYYY-MM-DD`: Simulates today's date context for the entire command run (overrides the system clock date, affecting default logging dates, lookbacks, weekly budgets, and rolling averages).\n\n### 1. Configuration & Logging\n\n*   **Configure Daily Goal & Height:**\n    ```bash\n    python scripts/tracker.py goal CALORIES [PROTEIN] [--height HEIGHT_CM]\n    ```\n    Sets target calories, optional protein goals (in grams), and optional height in cm (used dynamically by SQLite views to compute BMI and Waist-to-Height Ratio).\n    *Example:* `python scripts/tracker.py goal 1800 120 --height 180.0`\n\n*   **Log Food Entry:**\n    ```bash\n    python scripts/tracker.py add \"food description\" CALORIES [protein] [carbs] [fat] --meal TYPE [--date YYYY-MM-DD]\n    ```\n    *Example:* `python scripts/tracker.py add \"Oatmeal with blueberries\" 350 12 --meal breakfast`\n\n*   **List Entries by ID:**\n    ```bash\n    python scripts/tracker.py list [DATE] [--no-group]\n    ```\n    Lists all entries for `DATE` (defaults to today). By default, entries are grouped by meal type (combining descriptions and summing calories/protein). Pass `--no-group` to disable grouping and display raw individual entries with their database IDs and timestamps (essential for updates/deletions).\n\n*   **Update Food Entry:**\n    ```bash\n    python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] [--p PROTEIN] [--c CARBS] [--f FAT] [--meal TYPE]\n    ```\n    Modifies an existing entry by ID. Only the specified flags are updated.\n\n*   **Delete Food Entry:**\n    ```bash\n    python scripts/tracker.py delete ID\n    ```\n    Permanently deletes a specific entry.\n\n*   **Mark Day as Complete:**\n    ```bash\n    python scripts/tracker.py complete DATE [--completeness QUALITY] [--notes NOTES]\n    ```\n    Sets the completeness status (`full` (default), `partial`, or `minimal`) and marks `completed=1` in the database.\n\n*   **Check Day Completion:**\n    ```bash\n    python scripts/tracker.py check-complete [DATE]\n    ```\n    Exits with code `0` if the date is fully completed (`completeness == 'full'` and `completed == 1`), otherwise exits with `1`.\n\n*   **Log Body Weight:**\n    ```bash\n    python scripts/tracker.py weight KG [DATE]\n    ```\n    Logs weight for the specified date (defaults to today).\n\n*   **Log Waist Circumference:**\n    ```bash\n    python scripts/tracker.py waist CM [DATE]\n    ```\n    Logs waist circumference for the specified date (defaults to today).\n\n### 2. Statistics & Reports\n\n*   **Show Daily Breakdown:**\n    ```bash\n    python scripts/tracker.py stats day [DATE] [--no-group]\n    ```\n    Prints the chronological list of entries, meal-type breakdowns, and progress compared to daily goals. Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. By default, the daily breakdown list is grouped by meal type (combining descriptions and summing calories/protein). Pass `--no-group` to disable grouping and display raw individual entries with their database IDs and timestamps.\n\n*   **Show Weekly Summary:**\n    ```bash\n    python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]\n    ```\n    Summarizes the Mon-Sun week containing `DATE` (or N preceding weeks). Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. If `--compact` is passed, it outputs a single-line summary of metrics for each week. Displays weekly averages and future daily budgets tailored dynamically to today's completion status (customizable via `--include-today`), along with a daily breakdown table.\n\n*   **Show Macronutrient Trends:**\n    ```bash\n    python scripts/tracker.py stats trend [--days N]\n    ```\n    Displays 7-day, 30-day, and 90-day rolling averages of calorie and protein intake (resolved dynamically from rolling trends view) up to today.\n\n*   **Show Weight logs:**\n    ```bash\n    python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged weights, BMI, and weight changes up to today. Defaults to showing the last 5 entries (`-N 5`). Supports a positive integer or `\"all\"` for `-N`, and an integer number of days for `--days`.\n\n*   **Show Waist logs:**\n    ```bash\n    python scripts/tracker.py stats waist [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged waist measurements, WHtR, and waist changes up to today. Defaults to showing the last 5 entries (`-N 5`). Supports a positive integer or `\"all\"` for `-N`, and an integer number of days for `--days`.\n\nFile v1.3.0:README.md\n\n# Calorie Tracker OpenClaw Skill\n\nA skill-first OpenClaw skill to track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. \n\n## Features\n\n- **No Packaging Overheads:** Zero setup or pip installs required. Runs immediately using Python's standard libraries.\n- **Dynamic Meal Types:** Allowed meal types are configured and validated directly in the SQLite database.\n- **Granular Analytics:** Subcommands for daily, weekly, trend-based, and body measurement reports.\n- **Intelligent Budgets:** Computes future daily budgets and historical averages (excluding incomplete days) to aid health coaching and planning.\n\n## CLI Usage\n\nThe core script is located at `scripts/tracker.py`. \n\n### Global Options\n\nThe script supports two global options that must be placed *before* the subcommand:\n- `--database PATH`: Specifying a path to the database (defaults to `health_data.db` in current directory).\n- `--today YYYY-MM-DD`: Time-travel option to simulate the system date for all operations (logs, lists, budgets, averages).\n\n### Core Commands\n\n- **Config Goal:** `python scripts/tracker.py goal CALORIES [PROTEIN]`\n- **Log Food:** `python scripts/tracker.py add \"description\" CALORIES [protein] [carbs] [fat] --meal TYPE`\n- **List Food:** `python scripts/tracker.py list [DATE] [--no-group]` (groups by meal type by default)\n- **Update Entry:** `python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] ...`\n- **Delete Entry:** `python scripts/tracker.py delete ID`\n- **Mark Complete:** `python scripts/tracker.py complete DATE [--completeness QUALITY]`\n- **Check Complete:** `python scripts/tracker.py check-complete [DATE]`\n- **Log Weight/Waist:** `python scripts/tracker.py weight KG` / `python scripts/tracker.py waist CM`\n\n### Reports & Statistics\n\n- **Daily Stats:** `python scripts/tracker.py stats day [DATE] [--no-group]` (groups by meal type by default)\n- **Weekly Stats:** `python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]`\n- **Rolling Trends:** `python scripts/tracker.py stats trend [--days N]`\n- **Weight History:** `python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]` (defaults to `-N 5`)\n- **Waist History:** `python scripts/tracker.py stats waist [-N ENTRIES] [--days DAYS]` (defaults to `-N 5`)\n\nFor detailed operational rules and specifications, see [SKILL.md](SKILL.md).\n\nFile v1.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn7cxaw1m27d1fe93wbz40vqkd8309h7\",\n  \"slug\": \"caloric-intake-tracker\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1782037016939\n}\n\nFile v1.3.0:skill-card.md\n\n## Description: <br>\nLog and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database with granular statistics, weekly averages, and future calorie budgets. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[patello](https://clawhub.ai/user/patello) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this skill to log calorie, macronutrient, weight, and waist data in a local SQLite database and generate daily, weekly, trend, and body-measurement reports. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: User-entered calorie, macro, weight, and waist records are stored in a local SQLite file. <br>\nMitigation: Use --database to choose where health_data.db lives, protect and back up the file according to sensitivity, and avoid committing personal health records. <br>\nRisk: Delete permanently removes entries from the local database. <br>\nMitigation: List entries by ID before changing records, use update for corrections when possible, and keep backups if the records matter. <br>\nRisk: Incomplete or rough daily logs can affect weekly averages and future calorie budgets. <br>\nMitigation: Use the complete command's full, partial, and minimal quality levels so reports reflect tracking completeness. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/patello/caloric-intake-tracker) <br>\n- [README.md](README.md) <br>\n- [SKILL.md](SKILL.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, shell commands, configuration, guidance] <br>\n**Output Format:** [Plain text CLI output and SQLite database records, with Markdown documentation for agent guidance.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Creates or updates a local SQLite database file; no network output.] <br>\n\n## Skill Version(s): <br>\n1.3.0 (source: release evidence and artifact _meta.json) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.3.0:changelog.txt\n\n- feat: implement grouping by default for list and stats day commands, add --no-group flag\n\nArchive v1.2.0: 7 files, 18491 bytes\n\nFiles: _meta.json (141b), changelog.txt (381b), README.md (2324b), scripts/tracker.py (41125b), skill-card.md (2161b), SKILL.md (7422b), tests/test_tracker.py (13769b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: caloric-intake-tracker\ndescription: Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.\nmetadata: {\"openclaw\": {\"requires\": {\"bins\": [\"python\"]}}}\n---\n\n# Local Calorie Tracker Skill\n\nTrack daily calorie intake, macronutrients, body weight, and waist measurements locally using a SQLite database.\n\n## Installation & Setup\n\nThis is a standalone, skill-first OpenClaw skill. It runs out-of-the-box using standard Python libraries.\n\nThe default SQLite database file is named `health_data.db` and is resolved relative to the current working directory (Cwd) of the running agent. To override the database path, pass the `--database PATH` option to any command.\n\n## Operational Instructions for the Agent\n\n1.  **No Compensatory Entries:** If a food entry was logged incorrectly (e.g. wrong calorie or protein count), do not log a new positive or negative \"balancing\" or \"corrective\" entry. Instead, identify the incorrect entry's ID using the `list` or `stats day` command, and run the `update` or `delete` command to fix it.\n2.  **No Bogus Logs:** Every logged entry's description must contain only the actual name of the food or drink consumed. Do not store summaries, calorie calculations, or meta-data in the food description (e.g., do not name an entry \"1875 kcal, 72g protein\" to force-balance a day).\n3.  **Standardized Meal Types:** Every logged food entry must have a valid `--meal` type. Allowed types are: `breakfast`, `lunch`, `dinner`, `snack`, `fika`, `drink`, `dessert`, `evening`, and `other`. Valid meal types are loaded and validated dynamically from the database.\n\n## Day Completeness Quality Levels\n\nWhen marking a day as complete using the `complete` command, use one of the following completeness quality levels:\n*   `full`: Default. All meals and drinks consumed for the target day were fully tracked.\n*   `partial`: Some meals are missing, or the day relies heavily on rough estimates.\n*   `minimal`: Only sporadic entries were logged; most of the day's intake is unknown.\n\n## Interpreting Weekly Averages & Budgets\n\nWhen reviewing weekly averages using the `stats week` command, averages and budgets are tailored dynamically to today's completion status by default (`--include-today auto`):\n*   **If Today is Incomplete:** The command excludes today's data from the active average display, showing the **Monday-to-Yesterday Average** and the **Daily Budget Starting Today** (including a dynamic helper showing remaining calories for today).\n*   **If Today is Complete:** The command includes today's data, showing the **Monday-to-Today Average** and the **Daily Budget Starting Tomorrow**.\n*   **Customizing Scope:** You can use the `--include-today` flag to force a specific behavior:\n    - `--include-today yes`: Forces inclusion of today (shows Mon-Today average and Starting Tomorrow budget).\n    - `--include-today no`: Forces exclusion of today (shows Mon-Yesterday average and Starting Today budget).\n    - `--include-today both`: Shows both sets of averages and budgets.\n\n## CLI Reference\n\nAll commands support the following global flags (which must be placed *before* the subcommand):\n*   `--database PATH`: Path to SQLite database file (defaulting to `./health_data.db`).\n*   `--today YYYY-MM-DD`: Simulates today's date context for the entire command run (overrides the system clock date, affecting default logging dates, lookbacks, weekly budgets, and rolling averages).\n\n### 1. Configuration & Logging\n\n*   **Configure Daily Goal & Height:**\n    ```bash\n    python scripts/tracker.py goal CALORIES [PROTEIN] [--height HEIGHT_CM]\n    ```\n    Sets target calories, optional protein goals (in grams), and optional height in cm (used dynamically by SQLite views to compute BMI and Waist-to-Height Ratio).\n    *Example:* `python scripts/tracker.py goal 1800 120 --height 180.0`\n\n*   **Log Food Entry:**\n    ```bash\n    python scripts/tracker.py add \"food description\" CALORIES [protein] [carbs] [fat] --meal TYPE [--date YYYY-MM-DD]\n    ```\n    *Example:* `python scripts/tracker.py add \"Oatmeal with blueberries\" 350 12 --meal breakfast`\n\n*   **List Entries by ID:**\n    ```bash\n    python scripts/tracker.py list [DATE]\n    ```\n    Lists all entries for `DATE` (defaults to today) with their database IDs. Use this to find IDs for updates/deletions.\n\n*   **Update Food Entry:**\n    ```bash\n    python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] [--p PROTEIN] [--c CARBS] [--f FAT] [--meal TYPE]\n    ```\n    Modifies an existing entry by ID. Only the specified flags are updated.\n\n*   **Delete Food Entry:**\n    ```bash\n    python scripts/tracker.py delete ID\n    ```\n    Permanently deletes a specific entry.\n\n*   **Mark Day as Complete:**\n    ```bash\n    python scripts/tracker.py complete DATE [--completeness QUALITY] [--notes NOTES]\n    ```\n    Sets the completeness status (`full` (default), `partial`, or `minimal`) and marks `completed=1` in the database.\n\n*   **Check Day Completion:**\n    ```bash\n    python scripts/tracker.py check-complete [DATE]\n    ```\n    Exits with code `0` if the date is fully completed (`completeness == 'full'` and `completed == 1`), otherwise exits with `1`.\n\n*   **Log Body Weight:**\n    ```bash\n    python scripts/tracker.py weight KG [DATE]\n    ```\n    Logs weight for the specified date (defaults to today).\n\n*   **Log Waist Circumference:**\n    ```bash\n    python scripts/tracker.py waist CM [DATE]\n    ```\n    Logs waist circumference for the specified date (defaults to today).\n\n### 2. Statistics & Reports\n\n*   **Show Daily Breakdown:**\n    ```bash\n    python scripts/tracker.py stats day [DATE]\n    ```\n    Prints the chronological list of entries (with IDs), meal-type breakdowns, and progress compared to daily goals. Defaults to today's date (or simulated `--today` date) if `DATE` is omitted.\n\n*   **Show Weekly Summary:**\n    ```bash\n    python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]\n    ```\n    Summarizes the Mon-Sun week containing `DATE` (or N preceding weeks). Defaults to today's date (or simulated `--today` date) if `DATE` is omitted. If `--compact` is passed, it outputs a single-line summary of metrics for each week. Displays weekly averages and future daily budgets tailored dynamically to today's completion status (customizable via `--include-today`), along with a daily breakdown table.\n\n*   **Show Macronutrient Trends:**\n    ```bash\n    python scripts/tracker.py stats trend [--days N]\n    ```\n    Displays 7-day, 30-day, and 90-day rolling averages of calorie and protein intake (resolved dynamically from rolling trends view) up to today.\n\n*   **Show Weight logs:**\n    ```bash\n    python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged weights, BMI, and weight changes up to today. Defaults to showing the last 5 entries (`-N 5`). Supports a positive integer or `\"all\"` for `-N`, and an integer number of days for `--days`.\n\n*   **Show Waist logs:**\n    ```bash\n    python scripts/tracker.py stats waist [-N ENTRIES] [--days DAYS]\n    ```\n    Displays logged waist measurements, WHtR, and waist changes up to today. Defaults to showing the last 5 entries (`-N 5`). Supports a positive integer or `\"all\"` for `-N`, and an integer number of days for `--days`.\n\nFile v1.2.0:README.md\n\n# Calorie Tracker OpenClaw Skill\n\nA skill-first OpenClaw skill to track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. \n\n## Features\n\n- **No Packaging Overheads:** Zero setup or pip installs required. Runs immediately using Python's standard libraries.\n- **Dynamic Meal Types:** Allowed meal types are configured and validated directly in the SQLite database.\n- **Granular Analytics:** Subcommands for daily, weekly, trend-based, and body measurement reports.\n- **Intelligent Budgets:** Computes future daily budgets and historical averages (excluding incomplete days) to aid health coaching and planning.\n\n## CLI Usage\n\nThe core script is located at `scripts/tracker.py`. \n\n### Global Options\n\nThe script supports two global options that must be placed *before* the subcommand:\n- `--database PATH`: Specifying a path to the database (defaults to `health_data.db` in current directory).\n- `--today YYYY-MM-DD`: Time-travel option to simulate the system date for all operations (logs, lists, budgets, averages).\n\n### Core Commands\n\n- **Config Goal:** `python scripts/tracker.py goal CALORIES [PROTEIN]`\n- **Log Food:** `python scripts/tracker.py add \"description\" CALORIES [protein] [carbs] [fat] --meal TYPE`\n- **List Food:** `python scripts/tracker.py list [DATE]`\n- **Update Entry:** `python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] ...`\n- **Delete Entry:** `python scripts/tracker.py delete ID`\n- **Mark Complete:** `python scripts/tracker.py complete DATE [--completeness QUALITY]`\n- **Check Complete:** `python scripts/tracker.py check-complete [DATE]`\n- **Log Weight/Waist:** `python scripts/tracker.py weight KG` / `python scripts/tracker.py waist CM`\n\n### Reports & Statistics\n\n- **Daily Stats:** `python scripts/tracker.py stats day [DATE]`\n- **Weekly Stats:** `python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]`\n- **Rolling Trends:** `python scripts/tracker.py stats trend [--days N]`\n- **Weight History:** `python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]` (defaults to `-N 5`)\n- **Waist History:** `python scripts/tracker.py stats waist [-N ENTRIES] [--days DAYS]` (defaults to `-N 5`)\n\nFor detailed operational rules and specifications, see [SKILL.md](SKILL.md).\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7cxaw1m27d1fe93wbz40vqkd8309h7\",\n  \"slug\": \"caloric-intake-tracker\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1782028508022\n}\n\nFile v1.2.0:skill-card.md\n\n## Description: <br>\nLog and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database, with statistics, weekly averages, and future calorie budgets. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[patello](https://clawhub.ai/user/patello) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nIndividuals and agents supporting personal nutrition tracking use this skill to log meals, calories, macronutrients, weight, waist measurements, and completion status, then review daily, weekly, and trend-based summaries from a local database. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Food logs, calorie and macro data, body measurements, goals, and tracking status may be sensitive personal health information stored in a local SQLite file. <br>\nMitigation: Use the --database option to place health_data.db in a private or encrypted location and restrict access to the file. <br>\nRisk: Update and delete commands intentionally mutate the local tracking database. <br>\nMitigation: Review entry IDs with list or stats day before changing or deleting records, and keep backups if record recovery matters. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/patello/caloric-intake-tracker) <br>\n- [README.md](artifact/README.md) <br>\n- [SKILL.md](artifact/SKILL.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with Python CLI commands and plain-text report output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires a Python runtime and writes user-entered tracking data to a local SQLite database.] <br>\n\n## Skill Version(s): <br>\n1.2.0 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.2.0:changelog.txt\n\n- Simplify weekly stats averages and budgets and add --include-today flag\n- Sort stats chronological ascending and place diff after cm/kg value\n- Adjust stats weight and waist default to -N 5, supporting entries and days combinations\n- Add global --today CLI option to simulate dates and update stats and logging commands\n- ci: enable dynamic changelog generation from git history\n\nArchive v1.1.0: 6 files, 14948 bytes\n\nFiles: _meta.json (141b), README.md (1997b), scripts/tracker.py (34652b), skill-card.md (1971b), SKILL.md (6431b), tests/test_tracker.py (5959b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: caloric-intake-tracker\ndescription: Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.\nmetadata: {\"openclaw\": {\"requires\": {\"bins\": [\"python\"]}}}\n---\n\n# Local Calorie Tracker Skill\n\nTrack daily calorie intake, macronutrients, body weight, and waist measurements locally using a SQLite database.\n\n## Installation & Setup\n\nThis is a standalone, skill-first OpenClaw skill. It runs out-of-the-box using standard Python libraries.\n\nThe default SQLite database file is named `health_data.db` and is resolved relative to the current working directory (Cwd) of the running agent. To override the database path, pass the `--database PATH` option to any command.\n\n## Operational Instructions for the Agent\n\n1.  **No Compensatory Entries:** If a food entry was logged incorrectly (e.g. wrong calorie or protein count), do not log a new positive or negative \"balancing\" or \"corrective\" entry. Instead, identify the incorrect entry's ID using the `list` or `stats day` command, and run the `update` or `delete` command to fix it.\n2.  **No Bogus Logs:** Every logged entry's description must contain only the actual name of the food or drink consumed. Do not store summaries, calorie calculations, or meta-data in the food description (e.g., do not name an entry \"1875 kcal, 72g protein\" to force-balance a day).\n3.  **Standardized Meal Types:** Every logged food entry must have a valid `--meal` type. Allowed types are: `breakfast`, `lunch`, `dinner`, `snack`, `fika`, `drink`, `dessert`, `evening`, and `other`. Valid meal types are loaded and validated dynamically from the database.\n\n## Day Completeness Quality Levels\n\nWhen marking a day as complete using the `complete` command, use one of the following completeness quality levels:\n*   `full`: Default. All meals and drinks consumed for the target day were fully tracked.\n*   `partial`: Some meals are missing, or the day relies heavily on rough estimates.\n*   `minimal`: Only sporadic entries were logged; most of the day's intake is unknown.\n\n## Interpreting Weekly Averages & Budgets\n\nWhen reviewing weekly averages using the `stats week` command, use these rules to guide the user:\n*   **If Today is Incomplete:** Ignore the Monday-to-Today average (as it will be skewed downwards by today's missing meals). Instead, look at the **Monday-to-Yesterday Average** for a true picture of progress, and use the **Daily Budget Remaining (Starting Tomorrow)** to plan subsequent days.\n*   **If Today is Complete:** Focus on the **Monday-to-Today Average** and use the **Daily Budget Remaining (Starting Now)** for any remaining snack/beverage limits.\n\n## CLI Reference\n\nAll commands support a global `--database PATH` flag (defaulting to `./health_data.db`).\n\n### 1. Configuration & Logging\n\n*   **Configure Daily Goal & Height:**\n    ```bash\n    python scripts/tracker.py goal CALORIES [PROTEIN] [--height HEIGHT_CM]\n    ```\n    Sets target calories, optional protein goals (in grams), and optional height in cm (used dynamically by SQLite views to compute BMI and Waist-to-Height Ratio).\n    *Example:* `python scripts/tracker.py goal 1800 120 --height 180.0`\n\n*   **Log Food Entry:**\n    ```bash\n    python scripts/tracker.py add \"food description\" CALORIES [protein] [carbs] [fat] --meal TYPE [--date YYYY-MM-DD]\n    ```\n    *Example:* `python scripts/tracker.py add \"Oatmeal with blueberries\" 350 12 --meal breakfast`\n\n*   **List Entries by ID:**\n    ```bash\n    python scripts/tracker.py list [DATE]\n    ```\n    Lists all entries for `DATE` (defaults to today) with their database IDs. Use this to find IDs for updates/deletions.\n\n*   **Update Food Entry:**\n    ```bash\n    python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] [--p PROTEIN] [--c CARBS] [--f FAT] [--meal TYPE]\n    ```\n    Modifies an existing entry by ID. Only the specified flags are updated.\n\n*   **Delete Food Entry:**\n    ```bash\n    python scripts/tracker.py delete ID\n    ```\n    Permanently deletes a specific entry.\n\n*   **Mark Day as Complete:**\n    ```bash\n    python scripts/tracker.py complete DATE [--completeness QUALITY] [--notes NOTES]\n    ```\n    Sets the completeness status (`full` (default), `partial`, or `minimal`) and marks `completed=1` in the database.\n\n*   **Check Day Completion:**\n    ```bash\n    python scripts/tracker.py check-complete [DATE]\n    ```\n    Exits with code `0` if the date is fully completed (`completeness == 'full'` and `completed == 1`), otherwise exits with `1`.\n\n*   **Log Body Weight:**\n    ```bash\n    python scripts/tracker.py weight KG [DATE]\n    ```\n    Logs weight for the specified date (defaults to today).\n\n*   **Log Waist Circumference:**\n    ```bash\n    python scripts/tracker.py waist CM [DATE]\n    ```\n    Logs waist circumference for the specified date (defaults to today).\n\n### 2. Statistics & Reports\n\n*   **Show Daily Breakdown:**\n    ```bash\n    python scripts/tracker.py stats day [DATE]\n    ```\n    Prints the chronological list of entries (with IDs), meal-type breakdowns, and progress compared to daily goals.\n\n*   **Show Weekly Summary:**\n    ```bash\n    python scripts/tracker.py stats week [DATE] [--weeks N] [--compact]\n    ```\n    Summarizes the Mon-Sun week containing `DATE` (or N preceding weeks). If `--compact` is passed, it outputs a single-line summary of metrics for each week (including weekly totals and daily averages) instead of printing a daily breakdown table. Displays the completed-day average, Mon-yesterday average, Mon-today average, future daily budget limits, and a breakdown table:\n    `Day | Date | Kcal | Protein | Target Diff | Completeness`\n\n*   **Show Macronutrient Trends:**\n    ```bash\n    python scripts/tracker.py stats trend [--days N]\n    ```\n    Displays 7-day, 30-day, and 90-day rolling averages of calorie and protein intake (resolved dynamically from rolling trends view).\n\n*   **Show Weight logs:**\n    ```bash\n    python scripts/tracker.py stats weight [--days N]\n    ```\n    Displays logged weights, calculates current BMI dynamically using height, and shows weight change from the previous log.\n\n*   **Show Waist logs:**\n    ```bash\n    python scripts/tracker.py stats waist [--days N]\n    ```\n    Displays logged waist measurements, calculates Waist-to-Height Ratio (WHtR) dynamically, and shows waist change from the previous log.\n\nFile v1.1.0:README.md\n\n# Calorie Tracker OpenClaw Skill\n\nA skill-first OpenClaw skill to track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. \n\n## Features\n\n- **No Packaging Overheads:** Zero setup or pip installs required. Runs immediately using Python's standard libraries.\n- **Dynamic Meal Types:** Allowed meal types are configured and validated directly in the SQLite database.\n- **Granular Analytics:** Subcommands for daily, weekly, trend-based, and body measurement reports.\n- **Intelligent Budgets:** Computes future daily budgets and historical averages (excluding incomplete days) to aid health coaching and planning.\n\n## CLI Usage\n\nThe core script is located at `scripts/tracker.py`. It looks for `health_data.db` in your current working directory by default, or you can specify a database path via `--database PATH`.\n\n### Core Commands\n\n- **Config Goal:** `python scripts/tracker.py goal CALORIES [PROTEIN]`\n- **Log Food:** `python scripts/tracker.py add \"description\" CALORIES [protein] [carbs] [fat] --meal TYPE`\n- **List Food:** `python scripts/tracker.py list [DATE]`\n- **Update Entry:** `python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] ...`\n- **Delete Entry:** `python scripts/tracker.py delete ID`\n- **Mark Complete:** `python scripts/tracker.py complete DATE [--completeness QUALITY]`\n- **Check Complete:** `python scripts/tracker.py check-complete [DATE]`\n- **Log Weight/Waist:** `python scripts/tracker.py weight KG` / `python scripts/tracker.py waist CM`\n\n### Reports & Statistics\n\n- **Daily Stats:** `python scripts/tracker.py stats day [DATE]`\n- **Weekly Stats:** `python scripts/tracker.py stats week [DATE] [--weeks N]`\n- **Rolling Trends:** `python scripts/tracker.py stats trend [--days N]`\n- **Weight History:** `python scripts/tracker.py stats weight [--days N]`\n- **Waist History:** `python scripts/tracker.py stats waist [--days N]`\n\nFor detailed operational rules and specifications, see [SKILL.md](SKILL.md).\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7cxaw1m27d1fe93wbz40vqkd8309h7\",\n  \"slug\": \"caloric-intake-tracker\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1781634325162\n}\n\nFile v1.1.0:skill-card.md\n\n## Description: <br>\nLogs and tracks daily calorie intake, macronutrients, body weight, and waist measurements in a local SQLite database with daily, weekly, trend, and budget reports. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[patello](https://clawhub.ai/user/patello) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nAgents assisting a user with personal tracking use this skill to record calorie, macronutrient, weight, and waist entries locally and report daily or weekly progress against configured goals. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill stores calorie, macronutrient, weight, waist, and notes data in a local SQLite database. <br>\nMitigation: Use the --database option to choose an intended storage location and manage access to that local file according to the user's privacy needs. <br>\nRisk: Delete commands permanently remove records from the local database. <br>\nMitigation: List entries and confirm the target record ID before updating or deleting logged data. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/patello/caloric-intake-tracker) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown or plain text with inline Python CLI commands and report summaries] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Can create or update a local SQLite database file when the generated commands are run.] <br>\n\n## Skill Version(s): <br>\n1.1.0 (source: server release metadata and artifact _meta.json) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.2: 6 files, 13578 bytes\n\nFiles: _meta.json (141b), README.md (1997b), scripts/tracker.py (30992b), skill-card.md (2126b), SKILL.md (6431b), tests/test_tracker.py (3599b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: caloric-intake-tracker\ndescription: Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.\nmetadata: {\"openclaw\": {\"requires\": {\"bins\": [\"python\"]}}}\n---\n\n# Local Calorie Tracker Skill\n\nTrack daily calorie intake, macronutrients, body weight, and waist measurements locally using a SQLite database.\n\n## Installation & Setup\n\nThis is a standalone, skill-first OpenClaw skill. It runs out-of-the-box using standard Python libraries.\n\nThe default SQLite database file is named `health_data.db` and is resolved relative to the current working directory (Cwd) of the running agent. To override the database path, pass the `--database PATH` option to any command.\n\n## Operational Instructions for the Agent\n\n1.  **No Compensatory Entries:** If a food entry was logged incorrectly (e.g. wrong calorie or protein count), do not log a new positive or negative \"balancing\" or \"corrective\" entry. Instead, identify the incorrect entry's ID using the `list` or `stats day` command, and run the `update` or `delete` command to fix it.\n2.  **No Bogus Logs:** Every logged entry's description must contain only the actual name of the food or drink consumed. Do not store summaries, calorie calculations, or meta-data in the food description (e.g., do not name an entry \"1875 kcal, 72g protein\" to force-balance a day).\n3.  **Standardized Meal Types:** Every logged food entry must have a valid `--meal` type. Allowed types are: `breakfast`, `lunch`, `dinner`, `snack`, `fika`, `drink`, `dessert`, `evening`, and `other`. Valid meal types are loaded and validated dynamically from the database.\n\n## Day Completeness Quality Levels\n\nWhen marking a day as complete using the `complete` command, use one of the following completeness quality levels:\n*   `full`: Default. All meals and drinks consumed for the target day were fully tracked.\n*   `partial`: Some meals are missing, or the day relies heavily on rough estimates.\n*   `minimal`: Only sporadic entries were logged; most of the day's intake is unknown.\n\n## Interpreting Weekly Averages & Budgets\n\nWhen reviewing weekly averages using the `stats week` command, use these rules to guide the user:\n*   **If Today is Incomplete:** Ignore the Monday-to-Today average (as it will be skewed downwards by today's missing meals). Instead, look at the **Monday-to-Yesterday Average** for a true picture of progress, and use the **Daily Budget Remaining (Starting Tomorrow)** to plan subsequent days.\n*   **If Today is Complete:** Focus on the **Monday-to-Today Average** and use the **Daily Budget Remaining (Starting Now)** for any remaining snack/beverage limits.\n\n## CLI Reference\n\nAll commands support a global `--database PATH` flag (defaulting to `./health_data.db`).\n\n### 1. Configuration & Logging\n\n*   **Configure Daily Goal & Height:**\n    ```bash\n    python scripts/tracker.py goal CALORIES [PROTEIN] [--height HEIGHT_CM]\n    ```\n    Sets target calories, optional protein goals (in grams), and optional height in cm (used dynamically by SQLite views to compute BMI and Waist-to-Height Ratio).\n    *Example:* `python scripts/tracker.py goal 1800 120 --height 180.0`\n\n*   **Log Food Entry:**\n    ```bash\n    python scripts/tracker.py add \"food description\" CALORIES [protein] [carbs] [fat] --meal TYPE [--date YYYY-MM-DD]\n    ```\n    *Example:* `python scripts/tracker.py add \"Oatmeal with blueberries\" 350 12 --meal breakfast`\n\n*   **List Entries by ID:**\n    ```bash\n    python scripts/tracker.py list [DATE]\n    ```\n    Lists all entries for `DATE` (defaults to today) with their database IDs. Use this to find IDs for updates/deletions.\n\n*   **Update Food Entry:**\n    ```bash\n    python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] [--p PROTEIN] [--c CARBS] [--f FAT] [--meal TYPE]\n    ```\n    Modifies an existing entry by ID. Only the specified flags are updated.\n\n*   **Delete Food Entry:**\n    ```bash\n    python scripts/tracker.py delete ID\n    ```\n    Permanently deletes a specific entry.\n\n*   **Mark Day as Complete:**\n    ```bash\n    python scripts/tracker.py complete DATE [--completeness QUALITY] [--notes NOTES]\n    ```\n    Sets the completeness status (`full` (default), `partial`, or `minimal`) and marks `completed=1` in the database.\n\n*   **Check Day Completion:**\n    ```bash\n    python scripts/tracker.py check-complete [DATE]\n    ```\n    Exits with code `0` if the date is fully completed (`completeness == 'full'` and `completed == 1`), otherwise exits with `1`.\n\n*   **Log Body Weight:**\n    ```bash\n    python scripts/tracker.py weight KG [DATE]\n    ```\n    Logs weight for the specified date (defaults to today).\n\n*   **Log Waist Circumference:**\n    ```bash\n    python scripts/tracker.py waist CM [DATE]\n    ```\n    Logs waist circumference for the specified date (defaults to today).\n\n### 2. Statistics & Reports\n\n*   **Show Daily Breakdown:**\n    ```bash\n    python scripts/tracker.py stats day [DATE]\n    ```\n    Prints the chronological list of entries (with IDs), meal-type breakdowns, and progress compared to daily goals.\n\n*   **Show Weekly Summary:**\n    ```bash\n    python scripts/tracker.py stats week [DATE] [--weeks N] [--compact]\n    ```\n    Summarizes the Mon-Sun week containing `DATE` (or N preceding weeks). If `--compact` is passed, it outputs a single-line summary of metrics for each week (including weekly totals and daily averages) instead of printing a daily breakdown table. Displays the completed-day average, Mon-yesterday average, Mon-today average, future daily budget limits, and a breakdown table:\n    `Day | Date | Kcal | Protein | Target Diff | Completeness`\n\n*   **Show Macronutrient Trends:**\n    ```bash\n    python scripts/tracker.py stats trend [--days N]\n    ```\n    Displays 7-day, 30-day, and 90-day rolling averages of calorie and protein intake (resolved dynamically from rolling trends view).\n\n*   **Show Weight logs:**\n    ```bash\n    python scripts/tracker.py stats weight [--days N]\n    ```\n    Displays logged weights, calculates current BMI dynamically using height, and shows weight change from the previous log.\n\n*   **Show Waist logs:**\n    ```bash\n    python scripts/tracker.py stats waist [--days N]\n    ```\n    Displays logged waist measurements, calculates Waist-to-Height Ratio (WHtR) dynamically, and shows waist change from the previous log.\n\nFile v1.0.2:README.md\n\n# Calorie Tracker OpenClaw Skill\n\nA skill-first OpenClaw skill to track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. \n\n## Features\n\n- **No Packaging Overheads:** Zero setup or pip installs required. Runs immediately using Python's standard libraries.\n- **Dynamic Meal Types:** Allowed meal types are configured and validated directly in the SQLite database.\n- **Granular Analytics:** Subcommands for daily, weekly, trend-based, and body measurement reports.\n- **Intelligent Budgets:** Computes future daily budgets and historical averages (excluding incomplete days) to aid health coaching and planning.\n\n## CLI Usage\n\nThe core script is located at `scripts/tracker.py`. It looks for `health_data.db` in your current working directory by default, or you can specify a database path via `--database PATH`.\n\n### Core Commands\n\n- **Config Goal:** `python scripts/tracker.py goal CALORIES [PROTEIN]`\n- **Log Food:** `python scripts/tracker.py add \"description\" CALORIES [protein] [carbs] [fat] --meal TYPE`\n- **List Food:** `python scripts/tracker.py list [DATE]`\n- **Update Entry:** `python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] ...`\n- **Delete Entry:** `python scripts/tracker.py delete ID`\n- **Mark Complete:** `python scripts/tracker.py complete DATE [--completeness QUALITY]`\n- **Check Complete:** `python scripts/tracker.py check-complete [DATE]`\n- **Log Weight/Waist:** `python scripts/tracker.py weight KG` / `python scripts/tracker.py waist CM`\n\n### Reports & Statistics\n\n- **Daily Stats:** `python scripts/tracker.py stats day [DATE]`\n- **Weekly Stats:** `python scripts/tracker.py stats week [DATE] [--weeks N]`\n- **Rolling Trends:** `python scripts/tracker.py stats trend [--days N]`\n- **Weight History:** `python scripts/tracker.py stats weight [--days N]`\n- **Waist History:** `python scripts/tracker.py stats waist [--days N]`\n\nFor detailed operational rules and specifications, see [SKILL.md](SKILL.md).\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7cxaw1m27d1fe93wbz40vqkd8309h7\",\n  \"slug\": \"caloric-intake-tracker\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1781553878087\n}\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nLog and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database with daily, weekly, trend, weight, and waist reports. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[patello](https://clawhub.ai/user/patello) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this skill to maintain a local food, macronutrient, weight, and waist tracking database and generate progress summaries for health planning. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill stores calorie, weight, waist, and notes data in a local SQLite database, which may be sensitive health-related information. <br>\nMitigation: Use --database PATH to choose a controlled storage location, manage backups deliberately, and delete the database when it is no longer needed. <br>\nRisk: The delete command removes entries immediately. <br>\nMitigation: List entries by ID before deleting and review the target entry before running the delete command. <br>\n\n\n## Reference(s): <br>\n- [Calorie Tracker ClawHub Page](https://clawhub.ai/patello/caloric-intake-tracker) <br>\n- [Calorie Tracker README](artifact/README.md) <br>\n- [Calorie Tracker Skill Instructions](artifact/SKILL.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with CLI command examples and plain-text report output from the tracker script] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses a local SQLite database named health_data.db by default, unless the agent supplies --database PATH.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: Calorie Tracker Owner: patello Summary: Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets. Tags: latest:1.4.4 Version history: v1.4.4 | 2026-08-16T13:05:13.433Z | user - Merge pull request #2 from patello/migrate-weight-to-measure - Migrate body weight to measurement sys","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python3 scripts/tracker.py goal CALORIES [PROTEIN] [--height HEIGHT_CM]"},{"language":"bash","snippet":"python3 scripts/tracker.py add \"food description\" CALORIES [protein] [carbs] [fat] --meal TYPE [--date YYYY-MM-DD]"},{"language":"bash","snippet":"python3 scripts/tracker.py list [DATE] [--no-group]"},{"language":"bash","snippet":"python3 scripts/tracker.py update ID [--name NAME] [--cal CALORIES] [--p PROTEIN] [--c CARBS] [--f FAT] [--meal TYPE]"},{"language":"bash","snippet":"python3 scripts/tracker.py delete ID"},{"language":"bash","snippet":"python3 scripts/tracker.py complete DATE [--completeness QUALITY] [--notes NOTES]"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: caloric-intake-tracker\ndescription: Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.\nmetadata: {\"openclaw\": {\"requires\": {\"bins\": [\"python3\"]}}}\n---\n\n# Local Calorie Tracker Skill\n\nTrack daily calorie intake, macronutrients, body weight, and waist measurements locally using a SQLite database.\n\n## Installation & Setup\n\nThis is a standalone, skill-first OpenClaw skill. It runs out-of-the-box using standard Python libraries.\n\nThe default SQLite database file is named `health_data.db` and is resolved relative to the current working directory (Cwd) of the running agent. To override the database path, pass the `--database PATH` option to any command.\n\n## Operational Instructions for the Agent\n\n1.  **No Compensatory Entries:** If a food entry was logged incorrectly (e.g. wrong calorie or protein count), do not log a new positive or negative \"balancing\" or \"corrective\" entry. Instead, identify the incorrect entry's ID using the `list` or `stats day` command, and run the `update` or `delete` command to fix it.\n2.  **No Bogus Logs:** Every logged entry's description must contain only the actual name of the food or drink consumed. Do not store summaries, calorie calculations, or meta-data in the food description (e.g., do not name an entry \"1875 kcal, 72g protein\" to force-balance a day).\n3.  **Standardized Meal Types:** Every logged food entry must have a valid `--meal` type. Allowed types are: `breakfast`, `lunch`, `dinner`, `snack`, `fika`, `drink`, `dessert`, `evening`, and `other`. Valid meal types are loaded and validated dynamically from the database.\n\n## Day Completeness Quality Levels\n\nWhen marking a day as complete using the `complete` command, use one of the following completeness quality levels:\n*   `full`: Default. All meals and drinks consumed for the target day were fully tracked.\n*   `partial`: Some meals are missing, or the day relies heavily on rough estimates.\n*   `minimal`: Only sporadic entries were logged; most of the day's intake is unknown.\n\n## Interpreting Weekly Averages & Budgets\n\nWhen reviewing weekly averages using the `stats week` command, averages and budgets are tailored dynamically to today's completion status by default (`--include-today auto`):\n*   **If Today is Incomplete:** The command excludes today's data from the active average display, showing the **Monday-to-Yesterday Average** and the **Daily Budget Starting Today** (including a dynamic helper showing remaining calories for today).\n*   **If Today is Complete:** The command includes today's data, showing the **Monday-to-Today Average** and the **Daily Budget Starting Tomorrow**.\n*   **Customizing Scope:** You can use the `--include-today` flag to force a specific behavior:\n    - `--include-today yes`: Forces inclusion of today (shows Mon-Today average and Starting Tomorrow budget).\n    - `--include-today no`: Force"},{"path":"README.md","content":"# Calorie Tracker OpenClaw Skill\n\nA skill-first OpenClaw skill to track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. \n\n## Features\n\n- **No Packaging Overheads:** Zero setup or pip installs required. Runs immediately using Python's standard libraries.\n- **Dynamic Meal Types:** Allowed meal types are configured and validated directly in the SQLite database.\n- **Granular Analytics:** Subcommands for daily, weekly, trend-based, and body measurement reports.\n- **Intelligent Budgets:** Computes future daily budgets and historical averages (excluding incomplete days) to aid health coaching and planning.\n\n## CLI Usage\n\nThe core script is located at `scripts/tracker.py`. \n\n### Global Options\n\nThe script supports two global options that must be placed *before* the subcommand:\n- `--database PATH`: Specifying a path to the database (defaults to `health_data.db` in current directory).\n- `--today YYYY-MM-DD`: Time-travel option to simulate the system date for all operations (logs, lists, budgets, averages).\n\n### Core Commands\n\n- **Config Goal:** `python scripts/tracker.py goal CALORIES [PROTEIN]`\n- **Log Food:** `python scripts/tracker.py add \"description\" CALORIES [protein] [carbs] [fat] --meal TYPE`\n- **List Food:** `python scripts/tracker.py list [DATE] [--no-group]` (groups by meal type by default)\n- **Update Entry:** `python scripts/tracker.py update ID [--name NAME] [--cal CALORIES] ...`\n- **Delete Entry:** `python scripts/tracker.py delete ID`\n- **Mark Complete:** `python scripts/tracker.py complete DATE [--completeness QUALITY]`\n- **Check Complete:** `python scripts/tracker.py check-complete [DATE]`\n- **Log Weight/Waist/Measurement:** `python scripts/tracker.py weight KG` / `python scripts/tracker.py waist CM` / `python scripts/tracker.py measure TYPE VALUE`\n  *(Weight and waist are first-class measurement types; the `weight` and `waist` shortcuts delegate to `measure`. `weight` is the canonical type for body weight and powers BMI.)*\n  *(Note: Default types `waist`, `hips`, and `neck` are pre-seeded automatically. The key `waist` is specifically used to compute Waist-to-Height Ratio (WHtR) and power the legacy shortcut.)*\n\n### Reports & Statistics\n\n- **Daily Stats:** `python scripts/tracker.py stats day [DATE] [--no-group]` (groups by meal type by default)\n- **Weekly Stats:** `python scripts/tracker.py stats week [DATE] [--weeks N] [--compact] [--include-today {auto,yes,no,both}]`\n- **Rolling Trends:** `python scripts/tracker.py stats trend [--days N]`\n- **Weight History:** `python scripts/tracker.py stats weight [-N ENTRIES] [--days DAYS]` (defaults to `-N 5`)\n- **Waist/Measurement History:** `python scripts/tracker.py stats waist` / `python scripts/tracker.py stats measure TYPE [-N ENTRIES] [--days DAYS]`\n\nFor detailed operational rules and specifications, see [SKILL.md](SKILL.md)."},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7cxaw1m27d1fe93wbz40vqkd8309h7\",\n  \"slug\": \"caloric-intake-tracker\",\n  \"version\": \"1.4.4\",\n  \"publishedAt\": 1786885513433\n}"},{"path":"skill-card.md","content":"## Description:\n\nLog and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database, with daily and weekly statistics, rolling averages, and future calorie budgets.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[patello](https://clawhub.ai/user/patello)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill to record food intake, body measurements, goals, and completion status in a local tracker. It supports health coaching and personal tracking workflows by producing local CLI commands and readable reports for daily, weekly, trend, weight, waist, and custom measurement views.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill stores food, weight, waist, and related notes in a local SQLite database that may contain sensitive health data.\n\nMitigation: Choose a private database location with --database, track where health_data.db is created, and manage file permissions and backups accordingly.\n\nRisk: Generated log commands can include stored food names from the local database, which may be unsafe to copy if existing database content is untrusted or unusual.\n\nMitigation: Review generated Log command output before pasting or running it.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/patello/skills/caloric-intake-tracker)\n- [Publisher Profile](https://clawhub.ai/user/patello)\n- [Skill Documentation](artifact/SKILL.md)\n- [README](artifact/README.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, shell commands, guidance]\n\n**Output Format:** [Markdown with inline shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs are intended for a local Python CLI and local SQLite database; no external service output is produced.]\n\n## Skill Version(s):\n\n1.4.4 (source: server release evidence and artifact metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"changelog.txt","content":"- Merge pull request #2 from patello/migrate-weight-to-measure\n- Migrate body weight to measurement system, single source of truth"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1635,"uniquenessScore":43,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T11:52:42.317Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T11:52:42.317Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T15:19:23.591Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}