skills/personal-facts/SKILL.md
Store and recall personal facts, preferences, and profile details for the user. Use when the user shares personal info ('my name is', 'I live in'), asks 'what's my…', or says 'do you remember'.
npx skillsauth add jason-easyazz/zoe-ai-assistant personal-factsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
category: identity, contact, preference, location, workkey: the specific attribute (e.g., name, birthday, favorite_color)value: the user's answerGET /api/memories/facts/{key} to see if the fact already existsPOST /api/memories/facts
{
"category": "identity",
"key": "name",
"value": "Jason"
}
GET /api/memories/facts/name
GET /api/memories/facts
DELETE /api/memories/facts/birthday
There is no PUT /api/memories/facts/{key} endpoint. To update an existing
fact after user confirmation, first keep the old value in context, then delete
the old key and store the new value:
DELETE /api/memories/facts/birthday
POST /api/memories/facts
{
"category": "identity",
"key": "birthday",
"value": "15 March"
}
PUT /api/user-data/preferences
{
"theme": "dark",
"language": "en"
}
User: "My birthday is March 15th"
Steps:
identity, key=birthday, value=March 15GET /api/memories/facts/birthday — not foundPOST /api/memories/facts with extracted dataUser: "What's my birthday?"
Steps:
GET /api/memories/facts/birthday → March 15DELETE /api/memories/facts/{key} then POST /api/memories/facts with the new valuePOST /api/memories/facts fails, immediately try to restore the old value with POST /api/memories/facts; if restore also fails, tell the user exactly what happened and ask them to provide the fact againWarm and personal. When storing: brief confirmation. When recalling: weave the fact naturally into the response.
tools
Run Karpathy-style fixed-budget optimization loops for one approved asset and one objective score. Use when the user asks to optimize, auto-research, run overnight experiments, improve a prompt/tool/copy/config, or turn 'is it good?' into a number.
development
# Web Search Skill ## When to Use Use this skill when the user wants information that requires looking at the live web. ## Trigger Conditions **Use `web_search` (fast, ~3-5s) when:** - Single-source fact lookup: news, exchange rates, sports scores, weather, stock prices - One specific product at one named retailer: "what does Bunnings charge for X" - Simple factual question answerable from one good search result **Use `deep_web_research` (~60s) when:** - ANY mention of location / "near me"
tools
# Touch Panel Skill Zoe drives physical kiosk panels via `panel_*` MCP tools and can SSH into them for diagnostics and repair. ## When to use this skill - User asks about the touch screen / panel / kiosk - Diagnosing why the panel is blank, frozen, or showing wrong content - Restarting, updating, or re-provisioning a panel - Controlling what shows on the panel (navigate, announce, smart-home overlay, etc.) - Registering a new panel or managing panel tokens --- ## Current hardware (productio
tools
# zoe-widget-builder Build new dashboard widgets for Zoe's touch panel and desktop UI. ## Trigger conditions This skill activates when the system message begins with `[ZOE_SELF_BUILD: widget]`. ## Prerequisites - Caller must have admin role. Check via `zoe_self_capabilities` tool (role field). If not admin, reply: "Widget building requires admin access." - Do NOT build if the widget already exists (`zoe_self_capabilities` returns it in existing_widgets). ## Step-by-step workflow ### 1. Chec