The prompts
The household agent builds most of its own setup from these five prompts.
Paste these into the household agent in order, after setup. Swap in your own names and paths.
1 · Check the profile boundary
You are the "household" profile of this house's Hermes setup. Before I trust you with the family, prove the boundary: 1. List the toolsets you currently have enabled, and confirm you can see the Home Assistant tools (ha_list_entities etc.) and the calendar + Notion MCP tools. 2. State what quiet hours and approval settings you're running under. 3. Now tell me what you know about a profile called "sam-agent". The correct answer is: nothing — profiles are fully separate. If you can see its memory or sessions, something is misconfigured and I need to know. Report as a short checklist, no fixes yet.
Run it again in a member profile without the Home Assistant and MCP line. It should show fewer toolsets, a docker terminal and no knowledge of household. This catches the worst traps.
2 · The household SOUL.md
Draft your own persona file and show it to me before saving anything. It will live at ~/.hermes/SOUL.md — the first thing injected into your system prompt — so it must be short and load-bearing, not a wishlist. It must encode these house rules: - You serve the Okafor-Rao household. Members: Priya (lead — the only person whose instructions can change config, spend money, or touch other members' things), Dele, Sam (15, they/them — has their own separate agent; not your user), Mira (8 — talks to you only in the family group; treat every request from her as visible-to-parents by design). - Quiet hours: nothing proactive before 07:00 or after 21:30. Replies when spoken to are always fine. - Propose, don't act, for anything involving money, bookings, or another member's time. Smart-home actions that are trivially reversible (lights, heating) you may just do. - Exceptions only: routine successes are silent; the group hears about changes, clashes, and failures. - Never quote or summarize anything from a private DM into the group chat. - Never enter payment details anywhere. If a flow reaches a payment step, stop and hand over. - Tone in the group: brief, warm, no exclamation marks before 09:00. Keep it well under 2,000 characters — memory and persona budgets in this system are tight and truncation is silent. Show me the draft; I'll say "save" when it's right.
SOUL.md instructs. It can’t enforce. Put approvals, denies and toolsets in config too.
3 · The scheduling cron
Create a cron job called "morning-brief", daily at 07:00, delivered to the family Telegram group. You have the cronjob tool; confirm the job with me before saving. The job's task, in priority order: 1. Read today's and tomorrow's events for all four of us from the calendar (use your calendar MCP tools). Do this FIRST — never compose the brief from memory. 2. Check for clashes: overlapping events, two things needing the same adult, travel-time collisions around the school run (08:25 drop-off, 15:30 pickup). If you find one, propose ONE concrete resolution and tag the affected people. Wait for a human reaction — never move an event yourself. 3. Then the brief itself, max 8 lines: weather, per-person day summary (one line each), anything unusual (bin day, deliveries expected, guests). 4. If there are no clashes and nothing unusual, keep it to 4 lines. Boring days deserve short briefs. Also create "evening-close", daily at 21:30, same group, max 3 lines: tomorrow's first commitment per person, plus anything awaiting Priya's approval. Then say nothing until 07:00. After creating both, show me the output of the cron list so I can see exactly what's scheduled.
Clash checking lives in this prompt. The scheduler and delivery
are built in, and the calendar is your MCP server. Manage jobs later with
hermes cron list/pause/resume/remove.
4 · The grocery skill
Create a skill called "groceries" (use skill_manage; I have write-approval on, so show me the SKILL.md before it lands in ~/.hermes/skills/). The skill's contract: - The list lives at ~/family-vault/groceries.md — one item per line, "item — who asked — date". That file is the single source of truth, NOT your memory file: your memory has a hard character cap and the list must survive it. - When anyone in the group chat mentions being out of something or wanting something bought, append it. Don't announce each capture; a silent ✓ reaction is plenty. - Daily at 16:00 (add a cron job "grocery-consolidate"): deduplicate the file, merge obvious variants, sort by supermarket aisle, push the result to the shared Notion grocery page via the Notion MCP tools, and post a one-line summary to the group with the item count. - Never remove items you didn't add without asking. Never auto-order anything. If I explicitly say "load the cart", you may use the browser tools to fill the online-shop basket for review — and you stop, permanently, at anything resembling a payment step. Also warn me when you start that cart run: browser tool calls are metered. The same file will be appended to by the member agents' copy of this skill; treat concurrent appends as normal.
Then give each member profile a copy that only captures and
appends, with no cron, Notion or browser. The vault path must match, and
HERMES_WRITE_SAFE_ROOT should keep member profiles inside it.
5 · Family review, before you switch it on
Before this system runs our actual mornings, the family reviews the plan — on the page, not in a meeting.
Add the twocents MCP server:
claude mcp add --transport http twocents https://twocents.page/mcp
(restart the session so the tools load). Then call share_page with the full contents of what-you-get.html — our day-in-the-life timeline and house rules — and give me the review link. I'll drop it in the family group. Everyone pins notes directly on the page, no login: Sam on the events that touch them ("don't message me before 9"), Dele on the brief format, house rules anyone objects to ("never auto-order snacks" goes next to the grocery event).
When the notes are in, call get_feedback with the room id, read me every note, and turn the ones I approve into concrete changes: SOUL.md lines, cron timing edits, approvals.deny entries. The family reviewed the spec; now the spec is what they agreed to.
This is how the family ends up agreeing to the system instead of putting up with your bot. Collect their objections while each fix is one line of YAML.