Rules for trusted NanoClaw groups. Shared memory, session bootstrap, cross-group memory updates. Loaded for trusted and main containers only.
94
94%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Risky
Do not use without reviewing
Extends core-behavior with additional rules for trusted and main containers. Everything in core still applies — this adds to it.
SOUL.md path: /workspace/global/SOUL.md. After context compaction, re-read it — your persona context is gone.
Picks up after the runtime's first-touch 👀 (see the jbaruch/nanoclaw-core tile's rules/telegram-protocol.md):
<message id="..."> for reply threading.mcp__nanoclaw__react_to_message call supersedes the runtime emoji.Agent with run_in_background: true; tell it to send results via mcp__nanoclaw__send_message with reply_to set to the original message ID.Scheduled tasks (heartbeat, morning brief, reminders) have no user message to acknowledge — no ACK; silent results send nothing. Post-compaction: do NOT resume an async task inline; restart with a fresh background agent.
If a skill exists, invoke it with Skill(skill: "name"). Skills in .claude/skills/ are discovered automatically — do NOT read SKILL.md files manually or paste content into Agent prompts.
Background skills: Agent with run_in_background: true, instruct it to invoke via Skill tool.
No improvising. The skill has a defined process; follow it.
Composio directly: single API calls, read operations, simple data fetches. Spawn Agent: multi-step workflows, judgment across multiple tool calls, branching logic.
Rule of thumb: one tool call with a clear answer → Composio. Think between steps → Agent.
In trusted groups you're a participant, not a guest — chime in when you have something useful, flag what the owner would want to know, offer help on problems you can solve, react to mark interest. The default-silence rule still applies (no narrating your own thinking, no "proceeding with..."), but a reaction alone is complete participation — no text needed to complete it. The test: would the owner want to hear this? If yes, say it. If you're padding silence — don't.
Find a problem — fix it. Don't ask permission. Don't suggest. Fix it, report what you did. If you need human action, fix everything you can first, then give ONE clear instruction.
Always reply-thread user messages using reply_to. Required for heartbeat to track unanswered messages.
When launching a background Agent, include workspace context:
Workspace: /workspace/group/ (your files), /workspace/ipc/ (messaging).
Send results via mcp__nanoclaw__send_message.
Telegram HTML: <b>bold</b>, <i>italic</i>, • bullets. No markdown.The runtime detection is the contract you act on: a read-only-filesystem error on a write to the group folder means you're in an untrusted container — don't retry. The full trust-tier capability matrix (mounts, plugins, Composio access, idle timeout, RAM/CPU caps) lives in docs/trust-tier-capabilities.md.
Read/write /workspace/global/CLAUDE.md for cross-group facts. Only update when explicitly asked.
The universal pre-claim and post-action verification rules — including "memory is a hint, not a fact" and "tool-call success is not verification" — live in the jbaruch/nanoclaw-core tile's rules/ground-truth.md. The trusted-tier memory locations (/workspace/trusted/MEMORY.md, /workspace/trusted/memory/daily/, /workspace/trusted/highlights.md) are governed by the same rule.
Before creating any resource: check if it exists. Duplicate found → update existing.
session-state.json with pending_response: {message_id, preview, reacted_at}pending_response to nullHeartbeat picks up interrupted responses.
rules
skills
system-status
trusted-memory