
Claude Skills by philipyaz
github.com/philipyazBuild a NEW optional vertical (an "add-on") in the Cos repo the framework-native way — one four-layer slice (nav + API + data + MCP) gated by ONE Settings.addons.[id] flag, with all data folded onto cases.json. Use when adding a whole new feature area (a "health" dashboard, a "finance" tracker, a "reading list", etc.), when reviewing/refactoring a feature that was built OUTSIDE the framework (its own *-store.ts, its own data/*.json, hardcoded nav, an unregistered route prefix), or whenever yo...
Set up and operate the encrypted off-site backup for the chief-of-staff live data (board, guard, config, vault). Daily AES-256-GCM snapshots are pushed to a PRIVATE GitHub repo (immutable git history); the recovery key lives in the macOS Keychain. Use when bootstrapping the app on a new machine, when you need to RESTORE after data loss/corruption, to take an on-demand backup before a risky/bulk operation on live data, to verify backups are healthy, or when rotating the recovery key. This is a...
Stand up the `body` MCP for the foundational "Body" add-on on a new machine and wire it into both Claude clients — an in-repo thin fetch-wrapper over the board's /api/body/* routes (like the nutrition/fitness servers). Body is the single owner of body identity, the weight + body-composition series, and the free-text objective that Nutrition + Fitness read. Its writes are add-on-gated (attributed to the agent via `x-actor`) and its reads are open. It is exposed to Claude Code via a supergatewa...
The single first-run entry point that stands up the WHOLE Cos system, sequencing the four component setup skills in dependency order — setup-vault → guard-setup → mcp-bridge-setup → backup-recovery — then finishes with the automation step, installing the operator skill bundles into Cowork and creating the scheduled tasks the generated catalog lists. Use when setting up the chief of staff system, doing a first-run setup, onboarding a new machine, or asking for the full setup; also when you're ...
Upgrade an EXISTING Cos install to the latest code — the post-pull runbook for a machine that already ran cos-setup (a hub) or spoke-setup (a spoke). It takes an on-demand backup, pulls, runs scripts/upgrade-check.mjs (the diff → checklist planner), applies every automatable step in order (npm install, gen-launchd --install, kickstart -k of exactly the bridges/sidecars whose code moved, the production board rebuild), and hands you the manual residue — Cowork bundle uploads, scheduled tasks to...
Diagnose and fix a Cos MCP server that is failing in Claude Cowork Desktop (or in Claude Code) — "board not responding", a server missing from the tool list, a tool call erroring, vault 401, openwhispr can't open its DB, whatsapp dead, or a server that dies after a while. Walks the escalation ladder (relaunch → read Cowork's per-server logs → reproduce the spawn outside Cowork → apply the known fix → regenerate config) and knows the two distinct wiring paths (Cowork = direct stdio from claude...
Stand up the `fitness` MCP for the "Fitness" add-on on a new machine and wire it into both Claude clients — an in-repo thin fetch-wrapper over the board's /api/fitness/* routes (like the nutrition/calendar servers). Its writes are add-on-gated (attributed to the agent via `x-actor`) and its reads are open. It is exposed to Claude Code via a supergateway + launchd BRIDGE on $FITNESS_BRIDGE_PORT/:8011 and to Claude Cowork Desktop as a direct stdio command, and the add-on must be ENABLED (Settin...
Set up the prompt-injection Guard classifier model end-to-end — pick a named model preset (default the gated Meta Llama-Prompt-Guard-2-86M), accept the Llama license + authenticate with the current `hf` CLI, prefetch the gated model, configure COS_GUARD_MODEL/THRESHOLD/CLASSIFIER in config/cos.env, install/reload the guardsvc launchd plist via gen-launchd.mjs, and verify the sidecar (:8009) + guard MCP (:8004) report the real model and not the heuristic fallback. Use when setting up Guard on ...
Move the HUB role from one machine to another — promote a new machine to hub and demote the old one to a browser viewer, a spoke, or retire it. The ceremony that makes the swap DATA-SAFE — it freezes the source board BEFORE the final backup (so no write is stranded), enforces a schema precondition on the promoting machine, restores the LEASE-HOLDER's newest snapshot producer-aware, verifies the archived store's digest against the final snapshot after demotion, and prints the non-automatable r...
Wire this repo's CORE stdio MCP servers (board, calendar, guard, vault) into Claude Cowork Desktop and Claude Code. (The optional openwhispr voice add-on and the whatsapp add-on each have their OWN setup skill — /openwhispr-mcp-setup, /whatsapp-mcp-setup — so they're out of scope here.) Cowork uses direct stdio `command` entries in claude_desktop_config.json (validated — it does NOT accept HTTP `url` entries); Claude Code uses .mcp.json over the supergateway + launchd HTTP bridge. Use when se...
Stand up the `nutrition` MCP for the "Nutrition & Chef" add-on on a new machine and wire it into both Claude clients — the simplest of the optional add-ons (a pure thin fetch-wrapper over the board's /api/nutrition/* routes, like the calendar server; NO sidecar, NO external repo, all in-repo at mcp/nutrition-server). It is exposed to Claude Code via a supergateway + launchd BRIDGE on $NUTRITION_BRIDGE_PORT/:8007 and to Claude Cowork Desktop as a direct stdio command, and the add-on must be EN...
Stand up the `openwhispr` voice-notes MCP on a new machine and wire it into both Claude clients — the OpenWhispr add-on alongside mcp-bridge-setup (like whatsapp-mcp-setup). It exposes the external OpenWhispr desktop app's local transcript store (a SQLite DB + `.webm` recordings under `~/Library/Application Support/open-whispr/`) as a stdio MCP, fronted by a supergateway + launchd bridge on $OPENWHISPR_BRIDGE_PORT/:8002 for Claude Code and a direct stdio command for Cowork, and owns the water...
Bootstrap a NEW private vault instance from the committed example-vault template — copy the template to vault/[name], point the vault MCP bridge (:8005) at it via COS_VAULT_DIR, register it with Obsidian + capture its unique vault ID into settings.json (so the board's obsidian:// deep-links open the in-repo vault unambiguously), register it with backup, and confirm it is gitignored. Use when the user says "set up a new vault", "create my vault", "spin up a new knowledge base", wants a fresh p...
Add this machine to an EXISTING Cos as a SPOKE — a stateless client of the hub. It flips COS_DEVICE_ROLE=spoke, points BOARD_URL at the hub's tailnet URL, and wires ONLY the board-facing MCP wrappers (board, calendar, and any enabled add-on wrappers) so Claude Code + Cowork on this machine drive the hub's board over Tailscale. A spoke runs NO local board, NO store, NO backups (the hub owns all of that); its local store guard refuses writes by construction. Use when adding a second (or third) ...
Drive the `openwhispr` MCP — read OpenWhispr voice transcripts (text + `.webm` audio) and own the idempotency watermark. `list_transcripts` returns only UNPROCESSED notes; `mark_processed` (LAST, after a note is fully handled) advances the watermark so it is never re-emitted. Use for any voice-note read, audio fetch, or processing loop.
Stand up WhatsApp on a new machine and wire the `whatsapp` MCP into both Claude clients — the WhatsApp add-on alongside mcp-bridge-setup. It builds the external whatsapp-mcp repo's TWO processes (the Go whatsmeow bridge, run as a launchd SIDECAR like search/guard on $WHATSAPP_GO_PORT/:8010; the Python stdio MCP, exposed to Claude Code via a supergateway bridge on $WHATSAPP_MCP_BRIDGE_PORT/:8006 and to Cowork as a direct stdio command), does the one-time QR pairing against your phone's Linked ...
The board's housekeeper — a periodic maintenance sweep that REORGANIZES the case tree into a clean Initiative ▸ Workstream ▸ Case hierarchy. It clusters orphans under Initiatives, splits grown ones into Workstreams, and renames and describes its own containers — ALWAYS grounded in the user's stated priorities (starred nodes, P0/P1, priority notes) and NEVER renaming, re-homing, or archiving anything a human placed or named by hand. It does not triage messages, move lanes, set labels, or send ...
Manage the BODY add-on — the single owner of your body identity, your weight + body-composition history, and your GOAL. It drives the `body` MCP: set/read your FREE-TEXT objective (what you're after in your own words — fat loss, muscle gain, recomposition — plus an optional target weight) via set_body_objective / get_body_objective; set/read your identity (sex, date of birth, height, training status, whether you lift) via set_body_profile / get_body_profile; log weigh-ins + body composition (...
Manage the ATHLETE PROFILE — the Fitness add-on's TRAINING-FOCUS singleton that the AI coaching skills (training plan, weekly review, pre-workout brief) read to personalise their output. It SETS / UPDATES / READS the one profile per board via the `fitness` MCP's `get_athlete_profile` / `set_athlete_profile` tools: the training-focus goal + goal date, weekly availability (days/week, max session minutes), the sports trained, and the equipment on hand. It maps free-text ("5 days a week, 90 min m...
The Fitness add-on OVERVIEW / router — the index that fires on GENERIC or ambiguous fitness requests and points you at the right FOCUSED skill. Use it when the user gestures at fitness without a specific ask — "help me with my fitness", "what can the fitness add-on do", "I want to get fit / train better", "set me up for fitness", "where do I start with the fitness coach" — i.e. when the intent is clear (fitness) but the JOB is not. Do NOT use it when the request already names a job — those be...
Surface and INTERPRET the sleep ↔ performance CORRELATIONS the board computes from the logged Apple-Watch + workout data — the deterministic stats twin of the Fitness add-on. The board computes (and persists) the Pearson r and the linear regression deterministically; YOU (the agent) trigger that compute via the `fitness` MCP and then read the numbers back in plain language — strength + direction of the correlation, what the regression slope implies, and ACTIONABLE training guidance (e.g. "you...
The Fitness DATA-PLANE operator — ingests, queries, and maintains Apple Watch health data on the Cos board via the `fitness` MCP, and pushes a health report to the vault. It INGESTS canonical health entries (workout / sleep / HRV / resting-HR / steps / VO2max, dedup by id, 90-day auto-purge), READS the data back (raw entries, per-type summaries, multi-day trends, a daily health + nutrition summary), FIXES bad rows (hard-delete by id or date range), and persists a HEALTH REPORT to the vault. I...
Prepare and persist TODAY'S pre-workout / training-readiness brief — the daily "should I train today?" call. It reads the board's deterministic FORM SCORE (0–100, with its hrv / sleep / resting-HR / load breakdown), folds in last night's sleep + this morning's metrics + recent training load + the athlete profile + today's PLANNED session, then YOU author a short brief — readiness (ready / caution / rest), the recommended session (the plan, adjusted to recovery), the warnings, the green lights...
The Fitness coach's HEADLINE skill — generate a personalised WEEKLY TRAINING PLAN for the athlete with deliberate VARIETY / ROTATION (rotate sports and intensity; alternate hard/easy; progressive overload toward the goal date), then PERSIST it via `save_training_plan` so it lands on the /fitness/training-plan history feed. It reads the athlete profile (focus, goal date, availability, sports, equipment), the body add-on (training status, weight, the body goal), the last ~4 weeks of actual work...
Generate and persist the WEEKLY REVIEW — the look-BACK over a training week on the Cos board via the `fitness` MCP. A focused sub-skill of fitness-coach: it FETCHES the week's health (summary + trends: sleep, HRV, resting HR, steps, workouts), the workouts actually done, the week's training plan (to compare planned vs done), and the daily form scores across the week, then YOU (the agent) author the review — an overall 0–100 score, a prose summary, and structured training / sleep / recovery / ...
Sweep Gmail — BOTH received AND sent mail — and reconcile every thread onto the Cos board: link the message onto the matching case, advance or close tasks, move the lane, set catalog labels, dedup against existing cases so one matter is one card, and — the headline guardrail — NEVER undo the user's manual board edits. Use when the user says "go through my email and update the board", "sync my inbox / sent mail to the board", "reconcile email with my cases", "update the board from my mail", or...
The Nutrition & Chef operator — turns a plain-language food/kitchen request into structured writes on the Cos board via the `nutrition` MCP. Every invocation FIRST reconciles the meal plan, then LOGS what you ate (calories, macros, a health flag), maintains the PANTRY (add / read / update / remove, or a whole shop or receipt photo in one confirmed write), keeps the persistent SHOPPING LIST (non-food too), PLANS meals from what's on hand (honoring ALLERGIES + diet, onto the calendar by default...
The reminder janitor — a periodic sweep that reviews every OPEN reminder on the board and CLOSES the ones whose job is already done or whose moment has passed, so the reminders list stays a live to-do surface instead of a graveyard of stale nudges. It reads each reminder's full context via the `board` MCP, then sorts it into CLOSE (done), DISMISS (no longer relevant / superseded), KEEP-OPEN (still live, or pinned by a star / priority), or NEEDS-YOU (a passed deadline it can't prove is settled...
Scan WhatsApp + Gmail for messages still awaiting MY reply — the ones that need nothing more than an answer, so they spin off no case, reminder, or event and get forgotten — record each on the board as an unanswered message, and mark it answered the moment I reply (so it leaves the view). Use when the user says "what haven't I answered", "show my unanswered messages", "go through my messages for unreplied ones", "what do I still owe a reply to", or when the scheduled unanswered-messages sweep...
Drive the `vault` MCP — `ingest` is async (submit, then poll `ingest_status` to a terminal state; never re-submit an in-flight job); `query` is synchronous, and a query answer is knowledge-as-recorded — verify any board claim in it against the `board` MCP before repeating or acting on it. Use for any vault ingest or query, e.g. "ingest this into my vault", "save this to my knowledge base", or "ask my vault about X", and when reading a vault answer that mentions board cases.
Sweep WhatsApp — BOTH inbound AND the user's own sent messages, across DMs AND group chats with recent activity — and reconcile every chat onto the Cos board: link the message onto the matching case, advance or close tasks, move the lane, set catalog labels, dedup against existing cases so one matter is one card, and — the headline guardrail — NEVER undo the user's manual board edits. Use when the user says "go through my WhatsApp and update the board", "sync my chats to the board", "reconcil...
Ingests an item (inline text and/or attached on-device files) into the domain-split knowledge wiki. Classifies the item's domain (work | life), writes a factual source page, copies attached artifacts into raw/assets, re-synthesizes the affected entity and concept pages, resolves entities to canonical [[wikilinks]] via aliases.md, and maintains the strong per-domain index and log. Knowledge-only — no tasks, no board, no channel polling. Invoked headlessly by the vault Agent SDK client via the ...
Scheduled integrity pass over the domain-split knowledge wiki. Runs over work/wiki, life/wiki, and shared/wiki independently and flags: filename != H1, broken [[wikilinks]], orphan pages, strong-index integrity gaps, cross-domain leaks, stray task checkboxes (knowledge-only violations), and legacy priorities.md / reminders/ that should not exist. Read-only health check — it FLAGS, it does not write the board. Use when the user says "audit", "health check", "lint", "find problems", or on a sch...
Answer questions against the domain-split knowledge wiki. Read-only. Determine the domain (work | life | both), enter through the strong per-domain index, follow [[wikilinks]], and answer with [[wikilink]] citations. Also surface any associated artifacts (files under raw/assets linked from the cited pages). Use when the user asks what they know about something, wants to explore connections between topics, or says "what do I know about X". The vault has no board access: decline pure open-work ...