CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/nanoclaw-trusted

Rules for trusted NanoClaw groups. Shared memory, session bootstrap, cross-group memory updates. Loaded for trusted and main containers only.

77

Quality

96%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Risky

Do not use without reviewing

This version of the tile failed moderation
Failed moderation (intent review) in rules/session-bootstrap.md: This is a prompt injection attack disguised as a cursor/IDE rule file. It instructs an AI agent to unconditionally execute a bash command and invoke an external skill ('tessl__trusted-memory') at the start of every session before processing any user input. This is a social engineering/prompt injection technique designed to: 1) Force the AI to execute arbitrary commands without user consent, 2) Potentially load malicious instructions from an external 'trusted-memory' skill/plugin, 3) Establish persistence via a sentinel file (/tmp/session_bootstrapped) to track execution. The authoritative tone ('MANDATORY', 'not optional', 'violating this rule') is a classic prompt injection pattern to override the AI's safety boundaries.
Overview
Quality
Evals
Security
Files

local-context-anchoring.mdrules/

alwaysApply:
Yes

Local-context anchoring

Before answering, anchor to the user's local frame. The orchestrator injects this in the <context> tag at the start of each agent invocation:

  • local_datetime, local_date, weekday — the user's local clock and calendar.
  • timezone (+ timezone_source showing how it was resolved).
  • location_lat, location_lng, location_age_minutes — current physical position when a recent shared location exists.

Anchor relative phrasings to the local frame

All relative phrasings — today, yesterday, tomorrow, now, сегодня, вчера, завтра, сейчас, here, where, etc. — refer to the user's local frame, not the server clock and not UTC.

When the calendar / email / scheduled-task data carries UTC or another zone, convert before phrasing. Examples:

  • Event 2026-05-15T17:00:00+02:00 while <context> says local_date="2026-05-16" → call it "yesterday", never "сегодня".
  • Reminder next_run="2026-05-17T05:00:00Z" while <context> says weekday="Saturday" → "tomorrow morning your local", not "Sunday at 5 UTC".

Surface uncertainty when the anchor is weak

When timezone_source="container_default" (no location pin AND no itinerary-derived timezone was available, so the orchestrator fell back to the container's TZ env), say so — the answer's date frame may be wrong, and the user should know to correct.

Don't pretend to know here if location_* attrs are absent — the <context> tag only emits location_lat / location_lng / location_age_minutes when timezone_source="location" (a fresh shared-location pin drove the resolution). Any other timezone_source value means the agent has no physical-position signal and here is unknown.

Trumps inline data formats

This rule is universal. If the agent text uses a relative-time word, the local frame controls — regardless of how the source data is shaped.

rules

async-tasks-extended.md

compaction-aware-summaries.md

composio-vs-agents.md

container-trust-levels.md

context-bootstrap-bg-agents.md

daily-discoveries-rule.md

duplicate-prevention.md

github-data-via-gh.md

global-memory.md

ground-truth-trusted.md

identity-compaction-recovery.md

identity-dual-handle.md

installed-content-immutable.md

local-context-anchoring.md

memory-file-locations.md

messages-db-schema.md

no-orphan-tasks.md

no-silent-defer.md

pending-response-tracking.md

proactive-fact-saving.md

proactive-participation.md

reply-threading.md

session-bootstrap.md

skills-policy.md

verification-protocol.md

wiki-awareness.md

README.md

tile.json