
Control Nest thermostats, check home climate status, view temperature history, and check outdoor weather. Use when asked about home temperature, thermostat settings, heating, cooling, room climate, temperature history or trends, or outdoor weather.
Handle Reachy/iMessage handoffs, selective durable memory, forgetting, and diagnostics; automatic context comes from the gateway plugin.
Control Bluetooth devices and audio routing on the Mac Mini. Use when asked about Bluetooth, connecting speakers, headphones, audio output, switching audio, or listing paired devices.
Control Google Nest/Cast speakers. Use when asked about speakers, announcements, volume, playing music, or TTS.
Control Philips Hue smart lights. Use when asked about lights, lighting, brightness, room lighting, or turning lights on/off.
Safely plan or execute a canonical standing-authorized restaurant cron scope across both Resy and OpenTable. Use only for the tracked date-night, double-date, and quarterly-dinner jobs; use the provider skills for attended ad-hoc work and restaurant-snipe for bounded monitoring.
Inspect and safely control location-specific Petlibro feeders and fountains at Crosstown or Cabin. Use for Petlibro device status, feeding schedules, water intake, or an explicit request to dispense a bounded amount of food. Require an exact location and device selector for every device-specific command. Do not use for Litter-Robot devices.
Safely use exact 1Password fields during attended interactive work and maintain the protected OpenClaw secrets cache. Use for passwords, API keys, credentials, payment data, cache refreshes, or diagnosing credential access. Never use `op` from a LaunchAgent or any child process it starts.
Access the Crosstown residence local network via the MacBook Pro. Use when needing to reach Crosstown LAN devices, run commands at Crosstown, scan the local network, interact with the AmpliFi router, Hue Bridge, Ring Doorbell, or any device on the 192.168.165.x subnet. Also use for presence detection at Crosstown.
Control the iRobot Roombas at Crosstown (Boston — Crosstown residence). Two robots available. Use when asked to vacuum, mop, start/stop/dock the Roomba at Crosstown, clean the house, or anything about the Roombas at Crosstown. NOT for Cabin Roombas (use roomba skill for Floomba/Philly).
Search, browse, and purchase products on Amazon using saved account details and explicit approval. Use when asked to buy something, find a product on Amazon, check prices, compare products, track orders, or manage the Amazon cart. Stop for attended payment entry when saved checkout details are unavailable.
Control the EchoNest collaborative music queue and manage the EchoNest server. Use when asked about music, queue, now playing, adding songs, searching for music, skipping songs, deploying EchoNest, checking server health, or viewing logs.
Check Potato's Fi collar GPS location, battery, and connection status. Use when asked where Potato is, collar battery level, or whether Potato is at Crosstown or the Cabin.
Privately locate Dylan, Julia, the Mac Mini account, or both people through Apple Find My using exact accessibility-name verification. Use only for an explicit location request in a one-to-one conversation with the authorized direct user. Never run or disclose results in group chats, shared channels, or for a third party. Report only a coarse area by default; provide precise location only when the direct user explicitly requests it.
View, create, and manage Google Calendar events for Dylan, Julia, or other accounts. Use when asked about schedule, appointments, meetings, calendar, what's coming up, free time, conflicts, or availability.
Create one simple, non-recurring Google Calendar event with the gws helper. Use when the user asks to add an event with an explicit title and start/end time; use gws-calendar for recurring events, conference links, updates, or deletions.
Search, upload, download, share, and manage Google Drive files and folders for Dylan, Julia, or other accounts. Use when asked about Drive files, documents, sharing, uploads, downloads, storage, or finding files.
Show a concise, read-only Google Calendar agenda with the gws helper. Use when the user specifically asks what is scheduled today, tomorrow, this week, or over a short date range; use gws-calendar instead for event details or modifications.
Upload one local file to Google Drive with the gws helper. Use when the user asks to place a specific file in Drive with an optional destination folder or target filename; use gws-drive for sharing, moving, copying, or permission changes.
Read and manage Google Tasks task lists and tasks through the gws CLI. Use when the user asks to list, create, complete, move, update, clear, or delete Google Tasks or task lists; do not use for unrelated project-management systems.
Show a concise, read-only Gmail inbox summary with the gws helper. Use when the user asks to review unread or query-matching messages by sender, subject, date, or label without changing mailbox state.
Read, search, send, and manage Gmail messages for Dylan, Julia, or other accounts. Use when asked about email, inbox, unread messages, sending emails, checking mail, or Julia's email.
Run Crosstown (Boston) routines like goodnight, away, and welcome home. Use when the user says goodnight, good night, bedtime, going to bed, leaving, heading out, we're home, or asks to run a routine AND they are at Crosstown (Boston).
Configure or disable Gmail's vacation responder with an exact subject, message, audience, and optional date range. Use when the user asks to enable, change, inspect, or turn off an out-of-office automatic reply.
Stage tightly scoped background reservation monitoring for OpenTable or Resy after explicit bounded preauthorization. Resy may auto-book after approval; OpenTable remains notification-only until this runtime adapter integrates the deployed live reservations reader. Not for one-shot search, attended booking, or cancellation.
Create a Gmail filter that automatically labels, stars, archives, forwards, or categorizes future matching messages. Use when the user asks for a persistent Gmail rule, not for a one-time change to existing mail.
Draft and send one plain-text Gmail message with the gws helper. Use when the user wants a simple email with one recipient, subject, and plain-text body; use gws-gmail for replies, drafts, HTML, attachments, CC, or BCC.
Search Resy, inspect availability, and handle attended ad-hoc Resy booking. Route canonical recurring date-night, double-date, and quarterly-dinner jobs to restaurant-book, and use restaurant-snipe only for bounded cancellation monitoring. Never use this skill for unattended cancellation.
Compare Google Calendar free/busy data for multiple calendars and propose overlapping meeting slots. Use when the user asks to find mutual availability; create an event only if the user separately asks to schedule one and confirms the final details.
Control Samsung The Frame TV. Use when asked about TV, television, art mode, Samsung Frame, turning on/off the TV, or changing TV input/volume/apps.
Read upcoming OpenTable reservations or handle attended ad-hoc OpenTable availability and exact-approval booking. Use for OpenTable account reads, attended restaurant searches, or a user-confirmed one-off reservation; route canonical recurring date-night, double-date, and quarterly-group jobs to the restaurant-book skill instead.
<Describe what this skill does and the specific requests that should trigger it. Include nearby cases that should use another skill.>
Extract selected Gmail attachments and upload them to a specified Google Drive folder. Use when the user asks to copy attachments from identified messages into Drive; do not use for arbitrary mailbox-wide exports.
Search the web for current information, news, facts, and answers. Use when asked questions about current events, needing to look something up, finding websites, researching topics, or when you need up-to-date information beyond your training data.
Apply a Gmail label to a reviewed set of existing messages and remove them from the inbox in one batch. Use when the user asks for a one-time label-and-archive cleanup; use recipe-create-gmail-filter for an ongoing rule.
Read Mysa baseboard heater thermostat status at Crosstown. Use when asked about baseboard heaters, electric heat, Mysa thermostats, or room temperature at Crosstown (for baseboard heaters specifically).
Check Ring doorbell and driveway-camera status, battery, events, and wifi health. Use when asked about a front door, doorbell ring, driveway or front-yard motion, or Ring device status. NOT for locks or alarm (Ring Alarm not supported).
Fetch upcoming events from Red Apple Farm and Brew Barn (near the cabin in Phillipston, MA), then sync them to the clawdbotbochman calendar. Use when asked about farm events, Brew Barn events, or cabin-area happenings.
Automated dog walk detection and Roomba control. Detects departures via Fi GPS collar, starts Roombas, and monitors return via Ring motion + WiFi + Fi GPS. Use when asked about dog walks, Roomba automation during walks, or walk tracking.
Safely control and verify the August smart lock at Crosstown. Lock, explicitly confirm unlocks, check status (locked/unlocked, door open/closed, battery), and diagnose sanitized read-only observation availability. Use when asked to operate the lock, check its state or battery, or explain an August observer outage.
Control Mr Cool / Cielo Home minisplit AC units. Use when asked about AC, air conditioning, minisplit, heating, cooling, room temperature, thermostat (for minisplits specifically), turning heat on/off, setting temperature on a minisplit, fan speed, or swing position.
Privately manage Dylan and Julia's household plant inventory and care history by physical location, bed, and exact Flower Cam view. Use for confirmed plant onboarding from camera conversations, camera- or bed-filtered inventory, record corrections, individual or whole-bed care, and private filtered exports. Pair with reolink-camera when an owner asks about plants visible in Flower Cam images.
Create new OpenClaw skills, modify and improve existing skills, and measure skill performance with evals. Use when users want to create a skill from scratch, update or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy. Also use when asked to "make a skill", "turn this into a skill", "improve this skill", or "test this skill".
Inspect and control the physically secured Reachy Mini at Crosstown through ClawBody. Use for requests to check Reachy, look around, express an emotion, play any official emotion or dance preset, speak proactively, mute or unmute its microphone, stop movement, or describe what its camera sees.
Check who is home at the cabin (Philly) or Crosstown (Boston). Use when the user asks "is anyone home", "who's home", "is Julia/Dylan home", "is anyone at the cabin", or presence detection. Cached reporting is read-only; strict network observation is allowed only after the deployed scanner contract check passes, and scheduled state-refresh scans can trigger separate vacancy automation.
Review durable normalized household activity and explain site-scoped incidents at the Cabin or Crosstown. Use when asked what happened, what activity was seen, who arrived at or left a residence, whether an incident is open, why the home-event correlator shadowed or suppressed activity, or whether the home-event system is healthy. For a current camera image, combine an explicit trusted-owner request with nest-camera. Use presence for a simple who-is-home check and ring-doorbell for raw Ring device status. Never use this skill to change presence, locks, adapters, delivery policy, or camera mode.
Control the Eight Sleep Pods at Crosstown and the Cabin. Defaults to Crosstown; pass `--location cabin` for the Cabin Pod. Use when asked about bed temperature, sleep tracking, sleep score, Eight Sleep, Pod, bed cooling/heating, or anything about the smart bed. Supports both sides — Dylan (left) and Julia (right). NOT for room thermostat (use nest-thermostat for that).
Use exact configured Reolink cameras through the local Home Hub for availability and power status, fresh stills, visual commentary, protected Dylan/Julia/household sharing, and reversible spotlight control. Supports trusted owner tasks and explicitly scoped proactive automations; not for Nest or Ring cameras, arbitrary recipients, recordings, account changes, or raw camera APIs.
Capture and privately deliver fresh still images or short live video clips from protected Nest cameras. Use only when Dylan or Julia explicitly asks to see a current image, snapshot, view, video, or clip from Kitchen, Living Room, or Living Room Wired.
Fix duplicate state updates when using dnd-kit for drag-and-drop. Use when: (1) State changes fire multiple times during a single drag operation, (2) History/audit entries are duplicated for intermediate positions, (3) handleDragOver is updating state that should only change on drop. Covers the difference between onDragOver (continuous) and onDragEnd (final).
Debug unexplained analytics traffic from CI/CD pipelines hitting production. Use when: (1) Analytics show traffic to URLs that match test patterns like /this-page-does-not-exist, /test-route, or 404 test paths, (2) Traffic has near 1:1 session-to-user ratio suggesting automated hits, (3) Traffic correlates with deploy frequency, (4) HeadlessChrome or Playwright appears in user agents. Covers Playwright, Cypress, and other e2e test frameworks running against production URLs.
Infrastructure health monitoring and recovery for the Mac Mini. Use when asked about system health, disk usage, memory, DNS, service status, infrastructure diagnostics, or "is everything running okay". Also use proactively when troubleshooting service outages (gateway, native iMessage, or cron failures).
Fix Pinchtab/headless browser JavaScript .click() not triggering React event handlers. Use when: (1) pinchtab eval element.click() runs but React app doesn't respond, (2) clicking links/buttons on React SPAs via headless browser automation has no effect, (3) OpenTable or other React sites ignore programmatic clicks but work with real user clicks. Solution: use dispatchEvent with full MouseEvent sequence (mousedown/mouseup/click) with real coordinates from getBoundingClientRect().
Qualifies and prioritizes Salesforce leads for SDRs. Queries leads by status, checks for duplicates, identifies stale leads. Use when reviewing lead queues, triaging new leads, checking for duplicate accounts, or prioritizing outreach.
Configure OpenAI Codex CLI to use custom model providers like Groq, OpenRouter, or other OpenAI-compatible APIs. Use when: (1) Getting 401 errors when trying custom providers, (2) Codex profiles not loading correctly, (3) Need to route Codex to non-OpenAI endpoints, (4) wire_api errors or "responses" endpoint not found. Covers env_key auth, wire_api selection, and the -c flag workaround for profiles.
Fix UTF-8 double-encoding corruption where special characters like arrows (→, ↔) become garbled sequences like "âÂÂ" or "â†Â". Use when: (1) Non-ASCII characters display as mojibake after migration/serialization, (2) Arrows, emojis, or accented characters become Ã-prefixed garbage, (3) Content looks correct in source but corrupted after processing through gray-matter, YAML, or text pipelines. Covers detection via hex inspection and fix via latin-1 decode chain.
Tracks Salesforce marketing campaign performance and attribution. Analyzes lead generation, conversion rates, ROI metrics. Use when reviewing campaign effectiveness, checking lead sources, preparing marketing reports, or analyzing GTC/webinar performance.
Fix Samsung Frame TV showing a connection notification on the panel every time a samsungtvws WebSocket is opened, even with a saved token. Use when: (1) polling a Samsung Frame TV for status from a dashboard/cron and the panel briefly wakes or shows "[App] is connecting" each poll, (2) using samsungtvws / SamsungTVWS.open() against a Frame TV, (3) art-mode or app_list calls cause a visible popup. Solution: do REST-only polling (rest_device_info, rest_app_status) and reserve WebSocket calls for user-initiated commands.
Speak text aloud using ElevenLabs TTS voices. Use when asked to say something out loud, announce something, read text aloud, speak a message, or use text-to-speech. Like the macOS say command but with high-quality AI voices.
Fix Chrome --remote-debugging-port silently failing to open any port. Use when: (1) Chrome launches with --remote-debugging-port=9222 but curl to 127.0.0.1:9222 returns "exit code 7" (connection refused), (2) lsof shows no LISTEN on the debugging port despite Chrome having the flag in its process args, (3) Setting up chrome-devtools-mcp or any CDP-based tool with a real Chrome instance. The root cause is that Chrome requires --user-data-dir when --remote-debugging-port is used, and silently ignores the port flag without it (error only visible on stderr).
Researches NVIDIA Inception program startups, VCs, and accelerators. Searches companies by industry, location, funding, finds investor connections, analyzes membership status. Use when exploring Inception portfolio, researching startups, finding VC relationships, or preparing for startup engagements.
Fix 1Password CLI (op read) hanging indefinitely in macOS launchd/headless contexts, and fix incessant TCC "op would like to access data" popups on macOS Tahoe. Use when: (1) A LaunchAgent wrapper script calls `op read` and the service never starts, (2) `op read` works over SSH but hangs when run by launchd, (3) Setting OP_BIOMETRIC_UNLOCK_ENABLED=true or OP_SERVICE_ACCOUNT_TOKEN doesn't help under launchd, (4) Wrapper script appears to "exit silently" because op read blocks forever, (5) Repeated "op would like to access data from other apps" TCC popups on macOS Tahoe that don't persist after clicking Allow. Covers the cache-only pattern (recommended) and probe-timeout-cache pattern for reliable secret loading in headless services.
Query and explore Salesforce CRM data including accounts, leads, opportunities, contacts, cases, campaigns, and products. Use when users mention salesforce, CRM, accounts, leads, opportunities, pipeline, contacts, cases, support tickets, campaigns, or need to search/query customer data.
Fix Prisma "Too many connections" and connection pool exhaustion errors in serverless environments (Vercel, AWS Lambda, Netlify). Use when: (1) Error "P2024: Timed out fetching a new connection from the pool", (2) PostgreSQL "too many connections for role", (3) Database works locally but fails in production serverless, (4) Intermittent database timeouts under load.
Fix polling loops that repeat finalization actions instead of exiting after a trigger. Use when: (1) a return/completion signal is detected but the loop keeps running and re-triggering the same action, (2) "resilient" try/except blocks inside a polling loop cause the loop to continue after a finalization error, (3) repeated dock/stop/ cleanup commands are sent when only one was expected. The pattern: inner finalization steps are individually try/excepted for resilience, but an outer except catches unexpected errors and doesn't exit, causing the loop to re-detect the trigger.
Fix OpenClaw gateway crash-looping after npm upgrade overwrites LaunchAgent plist. Use when: (1) Gateway exits with code 1 after `npm install -g openclaw`, (2) gateway.err.log shows MissingEnvVarError for BLUEBUBBLES_PASSWORD or other secrets, (3) LaunchAgent plist ProgramArguments changed from wrapper script to direct node execution, (4) `openclaw install --service` ran as post-install hook and replaced the plist. Covers diagnosis, fix, and safeguard for future upgrades.
Fix OpenClaw SSRF guard blocking channel plugins (BlueBubbles, etc.) from reaching localhost or private/LAN IP servers. Use when: (1) gateway.err.log shows "blocked URL fetch (bluebubbles-api) reason=Blocked hostname or private/internal/special-use IP address", (2) `openclaw health` reports BlueBubbles as "failed (unknown)", (3) after upgrading OpenClaw to 2026.3.28+ or 2026.4.x. The SSRF guard doesn't distinguish between agent-initiated web_fetch and plugin internal HTTP calls.
Fix OpenClaw skills showing "needs setup" or "Missing requirements (bins)" even though the CLI wrapper exists in ~/.openclaw/bin/. Use when: (1) `openclaw skills list` shows skills as "needs setup" despite the binary being at ~/.openclaw/bin/<name>, (2) `openclaw skills check` lists custom skills under "Missing requirements", (3) the gateway runtime uses the skill fine but the CLI check fails. Root cause: the skill `requires.bins` check uses the system PATH (not the gateway's configured PATH), so binaries in ~/.openclaw/bin/ are invisible to it.
Debug getServerSideProps and getStaticProps errors in Next.js. Use when: (1) Page shows generic error but browser console is empty, (2) API routes return 500 with no details, (3) Server-side code fails silently, (4) Error only occurs on refresh not client navigation. Check terminal/server logs instead of browser for actual error messages.
Manage Microsoft Outlook email via CLI. Search, read, open, triage, archive, flag, and organize inbox messages. Use when working with email, checking unread messages, searching mail, or organizing inbox.
Manage customers, initiatives, and capacity allocations in Navigator. Lists customers, service providers, initiatives, node allocations, contracts, and block deliverables. Use when checking who has capacity, viewing customer allocations, tracking initiatives, or managing supply contracts.
Manage Microsoft Outlook calendar via CLI. View schedule, create events, open events, respond to invites, update meetings. Use when working with calendar, scheduling meetings, checking availability, or managing events.
iRobot Roomba MQTT dock command is silently ignored during active cleaning (run phase). Use when: (1) dock commands return ok but robot keeps cleaning, (2) repeated dock calls have no effect, (3) dorita980 dock not working. Must send stop first, wait 2s, then dock.
Fix for Python requests returning 500 "Internal Server Error" when calling APIs protected by Imperva/Incapsula WAF, while the same request works with curl. Use when: (1) API call works with curl but fails with Python requests, (2) response headers contain "X-CDN: Imperva" or Incapsula cookies, (3) API returns 500 with no JSON body, just "Internal Server Error" plain text, (4) response contains Set-Cookie with visid_incap_ or nlbi_ prefixes. Solves bot detection issues with Imperva-protected APIs like Resy, and other services using Imperva/Incapsula CDN.
Search for places, get directions, find nearby businesses, and look up place details using Google Places API. Use when asked about restaurants, stores, businesses, directions, travel time, or finding places.
Manage Confluence pages, spaces, and content via CLI. Creates, reads, updates, searches, and exports documentation. Use when working with Confluence wiki pages, searching documentation, managing page content, or exporting pages to markdown.
Merge a PR and update documentation in one workflow. Use when: (1) Ready to merge a PR and want to update roadmap/changelog, (2) Need to verify merge success before documenting, (3) Want atomic merge + doc commits. Handles gh pr merge, verification, kanban updates, and session notes in sequence.
Fix OpenClaw cron jobs delivering messages multiple times (2x or 3x) to the recipient. Use when: (1) recipient reports receiving the same cron job output multiple times, (2) cron job shows status "error" with "Message failed" but delivery shows "delivered", (3) agent prompt instructs the agent to send messages directly (via message tool, imsg, or similar) AND the job has a delivery config — causing both the agent AND the cron delivery system to send separately, (4) gateway logs show "Unknown channel: bluebubbles" or "Unknown channel: imessage" errors from agent tool calls during cron execution.
Access Microsoft Teams meeting transcripts via CLI. Read transcripts from calendar events, extract speaker dialogue, summarize discussions. Use when reading meeting notes, reviewing what was said, extracting action items, or analyzing meeting participation.
Fix React Router setSearchParams overwriting existing query parameters. Use when: (1) URL query params disappear after navigation, (2) deep links with ?card=X or similar params stop working after board/page switch, (3) setSearchParams({ key: value }) is erasing other params. Covers the functional update pattern to preserve existing params.
Control iRobot Roomba vacuums at the Cabin (Philly). Use when asked to vacuum, start/stop/dock the Roomba, clean the house, or anything about Floomba or Philly (the two Roombas).
Fix broken redirects on GitHub Pages SPAs when renaming routes. Use when: (1) Old URLs return 404 instead of redirecting after a route rename/rebrand, (2) React Router <Navigate> redirects only work after clicking a link but not on direct URL access, (3) GitHub Pages serves raw 404 for old routes because no prerendered HTML exists. Covers prerendering redirect routes and handling trailing-slash variants.
Send file attachments (audio, images, documents) via BlueBubbles iMessage API. Use when: (1) Need to send an MP3, image, or file via iMessage through BlueBubbles, (2) "Chat does not exist!" error when sending attachments via curl -F (semicolons in chatGuid get mangled by curl multipart form parsing), (3) /api/v1/message/text endpoint ignores the attachment field in multipart mode, (4) Building TTS audio briefings or voice messages for iMessage delivery, (5) Need to know the correct BB API endpoint for attachments (/api/v1/message/attachment). Covers the correct endpoint, required fields, and the curl semicolon bug workaround.
Cielo Home / Mr Cool minisplit smart AC API details and CLI tool. Use when: (1) Controlling Mr Cool or Cielo Home minisplit AC units programmatically, (2) Building integrations with Cielo Home API (api.smartcielo.com), (3) Token expired and need to refresh credentials for cielo-cli, (4) Need to understand Cielo Home WebSocket command format for device control. Covers API endpoints, authentication flow, HAR-based token extraction, and the Chrome CORS header stripping workaround.
Fix "Too many subrequests" error in Cloudflare Workers. Use when: (1) Worker returns 500 with message "Too many subrequests", (2) Making multiple fetch calls in a loop (e.g., creating blobs for each file), (3) Processing batches of items that each require an API call. Covers the 50 subrequest limit and strategies to work around it.
Fix UTF-8 encoding corruption when Cloudflare Workers send content to GitHub API. Use when: (1) Non-ASCII characters like arrows (→), emojis, or accented letters become corrupted (e.g., → becomes â or â), (2) YAML parsing fails with "non-printable characters" error, (3) Content looks correct locally but corrupted after GitHub commit. Covers charset header and YAML string quoting.
Continuous learning system that monitors all user requests and interactions to identify learning opportunities. Active during: (1) Every user request and task, (2) All coding sessions and problem-solving activities, (3) When discovering solutions, patterns, or techniques, (4) During /retrospective sessions. Automatically evaluates whether current work contains valuable, reusable knowledge and creates new Claude Code skills when appropriate.
Detect and resolve TypeScript/JavaScript circular import dependencies. Use when: (1) "Cannot access 'X' before initialization" at runtime, (2) Import returns undefined unexpectedly, (3) "ReferenceError: Cannot access X before initialization", (4) Type errors that disappear when you change import order, (5) Jest/Vitest tests fail with undefined imports that work in browser.
Explore Oracle Cloud Infrastructure resources in Navigator. Lists HPC islands, regions, availability domains, compartments, shapes, and tenants. Use when investigating OCI infrastructure, finding HPC islands, checking regional capacity, or understanding OCI topology.
Debug "Connection to github.com closed by remote host" errors during git push. Use when: (1) Push fails with SSH connection closed error, (2) Pre-push hooks run slow API calls (Codex, OpenAI, external services), (3) Push works with --no-verify but fails normally. The SSH connection times out (~60s) while hooks run synchronously. Fix by removing redundant hooks (if CI covers it), making hooks async, or adding timeouts.
Fix Homebrew Python formula builds failing or taking 10+ minutes when dependencies have native C extensions (pillow, pyobjc, pyyaml, charset-normalizer). Use when: (1) `brew install` compiles cmake/pillow/pyobjc from source taking forever, (2) "Directory is not installable. Neither setup.py nor pyproject.toml found" error when using .whl resources, (3) `venv.pip_install` fails with platform-specific wheels (cp312-macosx), (4) `system pip install` fails silently during brew build due to network sandbox. Covers the split-resource pattern for Homebrew Python virtualenv formulas.
Handle gray-matter's automatic Date parsing in YAML frontmatter. Use when: (1) Zod validation fails with "expected string, received Date" on date fields, (2) Building content collection systems with markdown frontmatter, (3) Dates in frontmatter become Date objects instead of strings, (4) Migration/precompile scripts process YAML with date fields. Covers z.preprocess coercion and ensuring dates are written as strings.
Fix AppleScript hanging indefinitely when automating macOS apps (Messages, Mail, etc.) due to stale TCC (Transparency, Consent, and Control) Automation entries. Use when: (1) `osascript` hangs on `tell application "Messages"` operations like sending, counting chats, or accessing accounts, (2) Simple AppleScript like `tell app "Messages" to name` works but any operation touching accounts/chats/participants hangs forever, (3) AppleScript returns "AppleEvent timed out (-1712)" after ~2 minutes, (4) Automation that previously worked stops working after macOS update or system changes, (5) Rebooting doesn't fix the hang. The fix is `tccutil reset AppleEvents` followed by re-approving permission popups.
Grant Full Disk Access (FDA) to headless CLI binaries on macOS Tahoe (26.x) when they need to access TCC-protected paths like ~/Library/Messages/chat.db. Use when: (1) A Mach-O binary hangs or returns "authorization denied (code: 23)" accessing ~/Library/Messages, ~/Library/Mail, or similar TCC-protected directories, (2) `tccutil reset SystemPolicyAllFiles` was run and now nothing can access protected paths, (3) The System Settings FDA picker won't show a bare CLI binary after clicking "+", (4) A LaunchAgent-spawned process that previously had FDA stops working after a service restart or npm/brew upgrade, (5) `ls ~/Library/Messages/` returns "Interrupted system call" over SSH. Covers the .app wrapper trick to make bare binaries visible in the FDA picker.
Analyzes Salesforce opportunity pipeline for AEs and sales managers. Tracks deals by stage, identifies at-risk opportunities, finds stalled deals. Use when reviewing pipeline, preparing forecasts, finding deals needing attention, or analyzing win/loss.
Configure OpenAI Codex CLI (@openai/codex) for automated PR reviews in GitHub Actions. Use when: (1) Getting "401 Missing bearer or basic authentication" errors, (2) Error "the argument '--base <BRANCH>' cannot be used with '[PROMPT]'", (3) Error "--commit cannot be used with --base", (4) Codex review not authenticating despite OPENAI_API_KEY secret being set. Covers the required login step and correct argument combinations.
Correct usage patterns for OpenAI Codex CLI (@openai/codex). Use when: (1) Need to run Codex for plan/doc review (use exec not review), (2) Getting "config profile not found" errors from -p flag, (3) Want non-interactive Codex execution, (4) Need to understand the difference between codex review and codex exec commands, (5) Need structured JSON output from Codex, (6) Want web search in exec mode.
Fix OpenClaw browser service "Failed to start Chrome CDP on port 18800" error. Use when: (1) OpenClaw agent can't use browser tool, (2) gateway logs show "Failed to start Chrome CDP on port 18800 for profile openclaw", (3) browser crashes with Trace/BPT trap or SIGTRAP, (4) Chrome exits within 1-2 seconds of starting. Covers stale SingletonLock files, corrupted profiles with encrypted Keychain tokens, and orphaned Chrome processes.
Fix OpenClaw cron jobs running after being removed from jobs.json. Use when: (1) A cron job keeps executing even though it was deleted from jobs.json, (2) Duplicate deliveries (e.g., Julia gets morning briefing twice), (3) Old/legacy jobs firing alongside their replacements after a migration. Root cause is orphan run state files in ~/.openclaw/cron/runs/ that persist nextRunAtMs independently of the job definition.
Create and debug OpenClaw cron jobs by editing jobs.json directly. Use when: (1) gateway/cron subsystem fails with "TypeError: Cannot read properties of undefined (reading 'trim')" after adding jobs, (2) creating recurring cron schedule jobs (not one-shot "at" jobs), (3) openclaw cron CLI commands fail with missing env vars, (4) need to manually run/test a cron job. Covers the correct jobs.json schema, schedule field naming (expr NOT cron), env var requirements, and gateway restart.
Configure OpenClaw iMessage reactions/tapbacks. Use when: (1) want OpenClaw agent to react to iMessage messages with a tapback (love, like, laugh, etc.), (2) ackReaction config in openclaw.json doesn't produce iMessage tapbacks, (3) need to understand which reaction types iMessage supports. As of v2026.3.2, the agent can send native iMessage tapbacks via the `message` tool with `action: "react"`. The `ackReactionScope` config remains a no-op for iMessage (only wired for Slack/Discord/Telegram in the gateway).
Fix OpenClaw cron delivery failing with "gateway closed (1008): pairing required" after an OpenClaw npm upgrade. Use when: (1) cron jobs complete their work but "cron announce delivery failed" on the iMessage/delivery step, (2) gateway logs show "pairing required" or code 1008 on WebSocket connections from cron subagents, (3) security audit logs show "scope-upgrade requested" with reason=scope-upgrade, (4) pending.json has an unresolved repair request. Root cause: new OpenClaw versions may require additional device scopes (e.g., operator.write) not present in existing paired device configs.
Fix OpenClaw agent repeatedly claiming a Google account "isn't authenticated" or failing with auth errors even though GWS tokens are valid. Use when: (1) GWS CLI works manually (`gws gmail users messages list --account X`) but OpenClaw agent says auth is missing, (2) Agent uses wrong email format (e.g., missing dots in Gmail address), (3) Agent keeps repeating stale beliefs about auth status despite fixes. Covers identity mismatch across config files and stale session cache clearing.
Capture authentication tokens from reCAPTCHA-protected websites using pinchtab + Chrome DevTools Protocol (CDP). Use when: (1) need to automate token refresh for sites with reCAPTCHA login, (2) need to find Chrome's CDP port when pinchtab uses --remote-debugging-port=0, (3) lsof not working in LaunchAgent context on macOS, (4) need to click inside cross-origin iframes via CDP Input.dispatchMouseEvent, (5) Chrome cookies not persisting between pinchtab restarts, (6) Network.getResponseBody returns empty for fetch() API responses (use Fetch.enable + Fetch.getResponseBody instead), (7) need to capture tokens from login responses by monitoring CDP network traffic passively during browser form submission, (8) API response body structure nests tokens in unexpected locations (e.g., data.user.X not data.X).
Query Microsoft 365 distribution lists and group memberships via CLI. Lists groups, views members, and checks user memberships. Use when checking group membership, finding distribution list members, listing groups a user belongs to, or querying Azure AD groups.
Query NVIDIA employee directory via Helios LDAP API. Retrieves user profiles, org charts, manager chains, group memberships, and team structures. Use when looking up employees, finding reporting relationships, checking group membership, or analyzing org structure at NVIDIA.
Query GPU capacity across OCI, Azure, GCP, AWS, CoreWeave, and Forge via Navigator CLI. Lists reservations, clusters, GPU status, and availability by region. Use when checking GPU availability, viewing capacity reservations, monitoring cloud resources, or comparing capacity across providers.
<When to use this skill. Be specific about trigger words, device names, and what it controls. Include "NOT for X" disambiguation if needed.>
Triages and prioritizes Salesforce support cases. Queries by priority, status, product, finds related cases, tracks SLA. Use when reviewing case queues, escalating P1 issues, finding similar cases, or analyzing support patterns.
Cancel in-progress GitHub Actions workflows when a PR is merged or closed. Use when: (1) Slow CI jobs (like Codex reviews) waste minutes after PR merges, (2) You have `cancel-in-progress: true` but workflows still run after merge, (3) You want to save CI minutes by stopping obsolete workflow runs. Covers the `closed` event type pattern with concurrency groups.
Control macOS system functions via AppleScript. Use when asked about system volume, notifications, app control, display brightness, or Do Not Disturb.
Run cabin routines like goodnight, away, and welcome home. Use when the user says goodnight, good night, bedtime, going to bed, leaving, heading out, we're home, or asks to run a routine.
Reorder groceries from Star Market by replaying the most recent order. Adds items to cart but does NOT checkout. Use when asked to reorder groceries, restock the kitchen, or place a Star Market order.
Explores Salesforce account data with 360-degree views including contacts, opportunities, and cases. Use when researching accounts, preparing for customer meetings, onboarding to a territory, or analyzing account health.
Control the Litter-Robot 4 at Crosstown (West Roxbury). Use when asked about the litter box, cat litter, waste level, cleaning the litter box, cat weight, Sopaipilla, Burrito, or anything about the Litter-Robot. NOT for Petlibro feeder/fountain (use petlibro skill for those).
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
macOS GUI automation via Peekaboo. Use when asked to interact with the Mac Mini desktop, click buttons, type text, take screenshots, control windows/apps, navigate menus, or perform any visual UI automation.
Manage Apple Reminders — create, view, complete, edit, and delete reminders and lists. Use when asked to set a reminder, check what's due, mark tasks done, manage to-do lists, or anything involving Apple Reminders.
Run Apple Shortcuts for HomeKit scenes, automations, and system actions. Use when asked about home scenes, automations, fireplace, or triggering shortcuts.
Play music via Spotify and control Google Home speakers. Use when asked to play music, songs, artists, playlists, podcasts, or control speakers/volume/audio.
Summarize any URL, YouTube video, podcast, PDF, or file into concise text. Use when asked to read an article, summarize a link, get the gist of a video or podcast, extract content from a URL, or when you need to understand what a web page or document contains.
gws CLI: Shared patterns for authentication, global flags, and output formatting.