OpenClaw Skills
Tools
What worked
The stateless MCP server pattern proved highly replicable — once Practic established the architecture, Meds followed with minimal friction. Using Obsidian vault markdown as the sole persistence layer eliminated all database complexity while keeping data human-readable and editable offline. The heartbeat integration was the key design win: the AI reaches out at practice time or medication windows instead of waiting to be asked, which matters enormously for ADHD users.
What broke
Two of three plugins are incomplete. Meds has only foundation logging — the most time-sensitive features (dose reminders, doctor reports) are unbuilt. Haven has zero source code despite the growing season being underway. The stateless per-request pattern means every tool call re-reads from disk, which is fine now but won't scale. All plugins share one vault mount with no isolation beyond directory convention.
Roles
I defined the executive function prosthetic philosophy — shame-safe skip handling, energy-aware modes, heartbeat-driven nudges. Claude Code wrote the MCP server implementations, Zod schemas, vault I/O layer, spaced repetition integration, and K8s deployment manifests.
OpenClaw Skills (Household AI MCP Plugins)
Overview
OpenClaw Skills is a family of MCP server plugins that extend the OpenClaw household AI agent running on a TuringPi K3s cluster. Each plugin adds domain-specific capabilities — practice accountability, medication tracking, garden operations — while sharing a common architecture: stateless TypeScript MCP servers backed by an Obsidian vault.
Core philosophy: Executive function prosthetics. Each plugin reduces the cognitive load of recurring life tasks for a household with ADHD/neurodivergent members. Low friction, shame-safe design, proactive nudges instead of requiring users to remember to ask.
Interaction model: All plugins are accessed through OpenClaw via Telegram chat or voice (Wyoming/Twilio voice pipeline on TuringPi). Users never interact with the MCP servers directly.
What It Does
- Practic — Scaffolded daily practice sessions (warmup, main work, cool-down) for guitar and Danish with FSRS spaced repetition, energy-aware modes, and shame-safe skip handling
- Meds — Medication protocol tracking for a neurodivergent child with adherence windows, protocol change history, and multi-parent logging via Telegram
- Haven — Garden operations for a 30-week growing season (planned): daily check-ins, task tracking, weekly summaries with drift warnings
- Heartbeat integration — All plugins register for proactive, time-triggered nudges rather than waiting for users to initiate
- Obsidian vault persistence — Markdown + YAML frontmatter as sole data store; human-readable, version-controllable, editable offline
- Zero cloud dependency — Everything runs on local hardware (TuringPi cluster + Mac Mini for Ollama)
How It Fits Together
All three plugins are stateless TypeScript MCP servers using Express, Zod validation at I/O boundaries, and gray-matter for frontmatter parsing. They deploy as Docker containers to K3s via Kustomize manifests and share a single Obsidian vault (persistent volume) with separate directories per plugin. Practic uses Ollama (qwen3.6:27b) for weekly reflection synthesis.
Architecture Decisions
- Stateless per-request MCP servers — No in-memory state between calls. Simpler deployment, easier horizontal scaling, but trades off caching.
- Obsidian vault as sole persistence — Chose markdown over a database because the data needs to be human-readable, editable offline, and version-controllable. The tradeoff is no query language and O(N) file reads.
- Shame-safe design as a hard requirement — No streaks, no guilt mechanics. Skipping is a first-class action. Energy-aware modes acknowledge that not every day is a full-effort day. This shaped every interaction pattern.
- Heartbeat-driven nudges over user-initiated queries — For ADHD users, "remember to ask the AI" is the same failure mode as "remember to practice." The AI must reach out.
Iteration and Lessons
Practic went through five phases and landed on a stable pattern. The key iteration was discovering that the plugin architecture was replicable — Meds followed the same template with minimal friction, validating the shared-architecture bet.
The most honest lesson: Haven should have been built before the growing season started. The garden data is embedded and the plugin is scaffolded, but zero source code exists. Sequencing the plugins by personal interest (music practice first) rather than calendar urgency (garden season) was a mistake.
The weekly reflection synthesis (routing practice logs through a local LLM) was an experiment that worked — it surfaces patterns a user wouldn't notice across weeks of daily logs.
Weaknesses & Open Questions
- Two of three plugins incomplete — Meds is 25% done; Haven is 0% done despite the season being underway
- No offline fallback — If K3s or OpenClaw is down, all functionality is unavailable
- Single vault, no isolation — All plugins share one mount; a bug in one could corrupt another's data
- Stateless overhead at scale — Every tool call re-reads from disk; fine for an SSD-backed vault, but there's no caching layer if datasets grow
- Open question: Should Haven be a separate tool or does it belong in the OpenClaw family? The garden context is seasonal and child-engagement-focused — different enough from the other plugins to warrant its own UX.
Ecosystem Role
These plugins are the domain-specific layer of the OpenClaw household AI system, which runs on TuringPi. Practic shares design DNA with Evolver's ADHD-first learning framework. Reflection synthesis could route through Roughneck for queue management instead of calling Ollama directly.