
Nutritional Specialist
Wire a Claude agent skill that loads and updates personal nutrition preferences (allergies, goals, restrictions) from a local JSON store for tailored meal guidance.
Overview
nutritional-specialist is an agent skill for the Grow phase that manages user nutrition preferences locally and is intended to power personalized dietary guidance once fully implemented.
Install
npx skills add https://github.com/ailabs-393/ai-labs-claude-skills --skill nutritional-specialistWhat is this skill?
- Python preferences manager persists data to ~/.claude/nutritional_preferences.json
- Designed to capture allergies, goals, and dietary restrictions for reuse across sessions
- Packaged as npm-style skill metadata with MIT license from AI Labs
- Skill entrypoint is currently a stub—custom logic still needs implementation
Adoption & trust: 1.2k installs on skills.sh; 399 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want an AI assistant that remembers your allergies, goals, and restrictions instead of re-explaining them every chat.
Who is it for?
Indie builders experimenting with a personal nutrition copilot and comfortable extending stub skill code.
Skip if: Medical nutrition therapy, regulated health products, or teams needing a finished, verified dietary engine out of the box.
When should I use this skill?
When you need an agent skill hook for nutrition help and want preferences loaded from ~/.claude/nutritional_preferences.json (after implementing real logic).
What do I get? / Deliverables
Preferences persist in a local JSON file so your agent can load constraints before giving meal or nutrition suggestions—after you replace the stub skill logic.
- nutritional_preferences.json user profile
- Executable skill entry (once completed)
Recommended Skills
Journey fit
Listed under Grow lifecycle because sustained personal health habits compound energy and consistency for long-running solo shipping—not a product-build integration. lifecycle fits ongoing preference tracking and goal adjustments rather than one-off research or launch tasks.
How it compares
Personal preference-backed agent scaffold—not a certified nutrition API or meal-planning SaaS.
Common Questions / FAQ
Who is nutritional-specialist for?
Solo builders who want a Claude skill pattern for storing nutrition preferences locally and building custom meal or diet assistance on top.
When should I use nutritional-specialist?
Use it in Grow when you are iterating personal health routines alongside product work and want persistent allergies/goals for agent-driven meal ideas—not as a substitute for professional dietary advice.
Is nutritional-specialist safe to install?
It writes under your home directory (.claude); review the Security Audits panel on this page and audit the Python/JS files before trusting it with health-related data.
SKILL.md
READMESKILL.md - Nutritional Specialist
export default async function nutritional_specialist(input) { console.log("🧠 Running skill: nutritional-specialist"); // TODO: implement actual logic for this skill return { message: "Skill 'nutritional-specialist' executed successfully!", input }; } { "name": "@ai-labs-claude-skills/nutritional-specialist", "version": "1.0.0", "description": "Claude AI skill: nutritional-specialist", "main": "index.js", "files": [ "." ], "license": "MIT", "author": "AI Labs" } #!/usr/bin/env python3 """ User Preferences Manager for Nutritional Specialist Skill This script manages user food preferences, allergies, goals, and dietary restrictions in a JSON database file. """ import json import os from pathlib import Path from typing import Dict, Any, Optional PREFERENCES_FILE = Path.home() / ".claude" / "nutritional_preferences.json" def ensure_preferences_file() -> None: """Ensure the preferences file exists and create it if it doesn't.""" PREFERENCES_FILE.parent.mkdir(parents=True, exist_ok=True) if not PREFERENCES_FILE.exists(): PREFERENCES_FILE.write_text("{}") def load_preferences() -> Dict[str, Any]: """Load user preferences from the JSON file.""" ensure_preferences_file() try: with open(PREFERENCES_FILE, 'r') as f: return json.load(f) except (json.JSONDecodeError, FileNotFoundError): return {} def save_preferences(preferences: Dict[str, Any]) -> None: """Save user preferences to the JSON file.""" ensure_preferences_file() with open(PREFERENCES_FILE, 'w') as f: json.dump(preferences, f, indent=2) def get_preferences() -> Dict[str, Any]: """Get all user preferences.""" prefs = load_preferences() if not prefs: return { "initialized": False, "message": "No preferences found. User needs to complete initial setup." } return prefs def set_preferences(preferences: Dict[str, Any]) -> None: """Set user preferences with the provided data.""" prefs = load_preferences() prefs.update(preferences) prefs["initialized"] = True save_preferences(prefs) def update_preference(key: str, value: Any) -> None: """Update a specific preference.""" prefs = load_preferences() prefs[key] = value save_preferences(prefs) def has_preferences() -> bool: """Check if user preferences have been initialized.""" prefs = load_preferences() return prefs.get("initialized", False) def reset_preferences() -> None: """Reset all preferences (clear the file).""" if PREFERENCES_FILE.exists(): PREFERENCES_FILE.unlink() def display_preferences() -> str: """Return a formatted string of all preferences.""" prefs = load_preferences() if not prefs or not prefs.get("initialized", False): return "No preferences have been set yet." output = ["=== User Nutritional Preferences ===\n"] sections = [ ("Goals", "goals"), ("Food Preferences", "food_preferences"), ("Allergies", "allergies"), ("Dislikes", "dislikes"), ("Dietary Restrictions", "dietary_restrictions"), ("Health Conditions", "health_conditions"), ("Cuisine Preferences", "cuisine_preferences"), ("Meal Timing Preferences", "meal_timing"), ("Additional Notes", "notes") ] for title, key in sections: if key in prefs and prefs[key]: output.append(f"\n{title}:") value = prefs[key] if isinstance(value, list): for item in value: output.append(f" - {item}") elif isinstance(value, dict): for k, v in value.items(): output.append(f" {k}: {v}") else: output.append(f" {value}") return "\n".join(output) if __name__ == "__main__": import sys if len(sys.argv) < 2: print("Usage:") print(" python3