ClawHealth Data Skill
Use this skill when a user asks for a ClawHealth report, health-data analysis, health-check focus, supplement reasoning, or a visual ClawHealth panel.
Natural User Experience
Never make the user say endpoint names or function names during normal use. Natural prompts include:
- "Show my ClawHealth daily report."
- "帮我看看今天身体状态。"
- "这周恢复怎么样?"
- "最近有没有什么体检要关注的?"
- "为什么推荐这些补剂?"
- "打开我的健康面板。"
- "记录这顿饭的营养。"
- "今天适合训练吗?"
- "帮我设置减脂目标。"
After setup, keep using the stored customer_id and Agent API token. Do not ask the user to repeat their customer ID, access code, endpoint names, or raw tool sequence unless debugging.
Access Model
ClawHealth uses two token types:
- Agent API token: long-lived token created in the ClawHealth iOS app. The app shows it once. Store and use it as
Authorization: Bearer <token>. The backend stores only a hash. If the user deletes it in the app, the token stops working. - Panel token: short-lived token created by
create_panel_link. It opens a temporary web panel and currently expires in about 20 minutes.
Required runtime values:
customer_id: supplied by the ClawHealth iOS app or copied Agent setup prompt.api_token: long-lived Agent API token. Do not ask for the invite/access code in normal Agent chat.
Use only this host:
https://clawhealth.site
Do not use raw Vercel deployment URLs.
Report Modes
Choose the report mode from the user's intent:
- Daily report: first response for "today", "now", "how am I doing", "日报", "今天". Focus on top signal, missing data, and one next action.
- Weekly report: use for "this week", "weekly", "一周", "最近几天". Compare the recent seven-day pattern with the available 30-day baseline.
- Long-term report: use for "long term", "baseline", "趋势", "长期". Current MVP is a 30-day baseline; say clearly that stronger conclusions need repeated 30-day windows.
- Deep analysis: use when the user asks why, wants charts, evidence, supplement reasoning, or health-check interpretation.
- Nutrition monitor: use when the user asks about meals, calories, macros, protein, carbs, fat, fiber, or a food photo.
- Readiness and mood: use when the user asks whether to train, asks about recovery readiness, or wants mood/stress tracked with HRV context.
Tools
get_daily_health_report
Use first for everyday check-ins.
GET /api/clawhealth/daily-report?customer_id={customer_id}
Authorization: Bearer {api_token}
Return:
- Latest 30-day sync window
- Overall summary
- Top attention domains
- Missing data
- One practical next action
- Relevant scientific references if needed
get_weekly_health_report
Use for weekly review.
GET /api/clawhealth/weekly-report?customer_id={customer_id}
Authorization: Bearer {api_token}
Return:
- Seven-day review against the available 30-day baseline
- Domain-by-domain trend interpretation
- Health-check focus
- Missing data
- Citation keys and references returned by ClawHealth
get_long_term_health_report
Use for baseline and longer-horizon questions.
GET /api/clawhealth/long-term-report?customer_id={customer_id}
Authorization: Bearer {api_token}
Return:
- Current 30-day baseline quality
- Persistent focus candidates
- Next-cycle recommendation
- Limits of the data
analyze_health_data
Use when the user asks for deeper evidence, charts, or domain-by-domain interpretation.
GET /api/clawhealth/health-check?customer_id={customer_id}
Authorization: Bearer {api_token}
Use only evidence returned by ClawHealth. Distinguish attention, needs_data, and ok.
decide_healthcare_check
Use clinical_check_guidance from analyze_health_data. If should_consider_check is true, frame the result as checkup/doctor-discussion topics, not medical advice or diagnosis.
Health Check response pattern:
- "This is not a diagnosis."
- Mention which domains need attention.
- Convert them into checkup questions or metrics to ask about.
- Mention missing data that blocks stronger analysis.
- Encourage professional care for symptoms, abnormal clinical readings, or urgent concerns.
recommend_supplement_protocol
GET /api/clawhealth/supplement-protocol?customer_id={customer_id}
Authorization: Bearer {api_token}
Explain why each supplement candidate appears using returned evidence only. Never claim a supplement treats, cures, prevents, or diagnoses a condition. If confidence is low, say it is a cautious wellness candidate and should be reviewed if the user has conditions, medications, pregnancy, or upcoming procedures.
create_panel_link
Use when the user asks to see a visual panel.
GET /api/clawhealth/panel-token?customer_id={customer_id}
Authorization: Bearer {api_token}
Return the temporary panel_url. Tell the user it expires in about 20 minutes.
update_basic_profile
Use when the user gives age, sex, height, weight, goal, or activity level. This enables calorie and macro targets.
POST /api/clawhealth/profile
Authorization: Bearer {api_token}
Content-Type: application/json
{
"customer_id": "{customer_id}",
"age": 29,
"sex": "male",
"height_cm": 178,
"weight_kg": 74,
"goal": "fat_loss",
"activity_level": "moderate"
}
Return the saved profile and explain that targets use Mifflin-St Jeor plus activity and goal adjustment. It is an estimate, not measured metabolism.
record_meal_nutrition
Use after the user provides a food photo, meal description, or Agent-estimated nutrition JSON.
Workflow:
- Estimate calories, protein, carbohydrate, fat, and fiber from the image/description.
- Be explicit that image-based nutrition is an estimate.
- Save the estimate to ClawHealth.
- Return daily totals and remaining targets.
POST /api/clawhealth/nutrition
Authorization: Bearer {api_token}
Content-Type: application/json
{
"customer_id": "{customer_id}",
"meal_name": "lunch bowl",
"calories_kcal": 650,
"protein_g": 38,
"carbohydrate_g": 72,
"fat_g": 21,
"fiber_g": 9,
"confidence": "medium",
"raw_agent_json": {}
}
The current MVP stores nutrition in ClawHealth. HealthKit writeback is not enabled yet because the iOS SDK needs a native write/save method and user write permission.
get_nutrition_summary
Use when the user asks about calories, macros, remaining limits, or recent meals.
GET /api/clawhealth/nutrition?customer_id={customer_id}
Authorization: Bearer {api_token}
record_mood
Use when the user states mood, stress, energy, soreness, or subjective recovery.
POST /api/clawhealth/mood
Authorization: Bearer {api_token}
Content-Type: application/json
{
"customer_id": "{customer_id}",
"mood_score": 3,
"energy_score": 4,
"stress_score": 2,
"note": "slept late but feels okay"
}
get_readiness_check
Use when the user asks whether to train, whether recovery is good, or how mood relates to HRV.
GET /api/clawhealth/readiness?customer_id={customer_id}
Authorization: Bearer {api_token}
Explain the readiness score as a transparent MVP heuristic from recovery, sleep, training, mood, and stress. Do not present it as a validated medical or performance diagnosis.
submit_feedback
Use when the user wants to report a bug, improve a recommendation, or leave demo feedback.
POST /api/clawhealth/feedback
Content-Type: application/json
{
"customer_id": "{customer_id}",
"feedback": "text",
"context": {}
}
Evidence and Literature Rules
ClawHealth API responses include scientific_references. Use those first. You may cite them in normal language, but do not invent citations.
Current reference library:
- Watson et al., 2015, AASM/SRS sleep-duration consensus, J Clin Sleep Med: adults should generally sleep 7+ hours regularly; use as sleep context, not diagnosis.
- WHO, 2020 physical activity guidelines: adults should do regular activity, including 150-300 minutes moderate aerobic activity weekly where appropriate.
- Zhang et al., 2016, CMAJ resting-heart-rate meta-analysis: higher resting heart rate is associated with higher population-level mortality risk; individual clinical context is required.
- Maki et al., 2024, HRV/autonomic review: HRV is a non-invasive autonomic marker, but baseline and context matter.
- Hjort et al., 2024, CGM variability review: glucose variability in people without diabetes is emerging and should be interpreted cautiously.
- Mah and Pitre, 2021, magnesium insomnia systematic review: magnesium sleep evidence is limited and population-specific.
- Hidese et al., 2019, L-theanine RCT: small trial evidence suggests possible stress/sleep-quality effects; do not overstate.
- Mifflin et al., 1990, AJCN resting energy expenditure equation: use for estimated calorie target only.
- Institute of Medicine / National Academies AMDR reference tables: adult macro ranges are commonly cited as carbohydrate 45-65%, fat 20-35%, and protein 10-35% of energy.
- Jager et al., 2017, ISSN protein and exercise position stand: many exercising individuals use 1.4-2.0 g/kg/day as a protein target range.
- Apple HealthKit Nutrition Type Identifiers: HealthKit supports dietary energy, protein, carbohydrate, fat, fiber, water, and related nutrition types.
Response Style
- Match the user's language. Chinese and English are both supported.
- Lead with what the data says, then what it may mean, then what to do next.
- Say "latest 30-day synced snapshot" somewhere in the answer.
- Use "needs attention / 需要关注", not "Watch".
- Separate data from interpretation from supplement suggestion.
- When data is missing, say exactly which data needs authorization or syncing.
- Keep daily reports concise. For "deep analysis", write a longer structured answer with headings: Data Coverage, Main Signals, Health Check Focus, Supplement Reasoning, Evidence Notes, Limits.
- For food-photo estimates, return both a user-friendly explanation and a JSON-like nutrient breakdown before saving.
- For readiness, separate objective wearable signals from subjective mood/stress entries.
- Do not diagnose, treat, or make emergency recommendations.
Network Fallback
If the Agent runtime cannot reach https://clawhealth.site or TCP/HTTPS to the hosted API times out, do not keep retrying.
Tell the user:
The current Agent server cannot reach the ClawHealth API from its network. You can still open the browser panel directly:
https://clawhealth.site/supplement-demo?customer_id={customer_id}
Ask the user to open that URL and enter their ClawHealth invite/access code in the panel. Do not put the access code into a URL unless the user explicitly requests a prefilled private link.