Skills and rules for the NanoClaw host agent (Claude Code on Mac). Tile promotion, container management, staging checks, repo chain safety, and public sync.
99
99%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Export scrubbed snapshot from jbaruch/nanoclaw (private) to jbaruch/nanoclaw-public.
~/Projects/nanoclaw-publicpublic remote configured in private repo (already set up)./scripts/sync-to-public.sh --dry-runReview the output:
cd ~/Projects/nanoclaw-public && git diff for the actual changesAfter dry run, check that NO private content leaked:
cd ~/Projects/nanoclaw-public
# Private integrations
grep -rn 'hubitat\|smart_home\|sync_tripit\|fetch_trakt\|sessionize\|audible_backup\|reclaim-tripit' src/ container/ --include='*.ts' | grep -v sync-to-public.sh
# Secrets and personal content
ls dist/ groups/main/ groups/telegram_* scripts/trakt-auth.py scripts/audible-backup.sh src/hubitat-listener.ts docs/OPERATIONS.md 2>&1
# All should be "No such file or directory"If anything leaks, update scripts/sync-to-public.sh scrub patterns before proceeding.
./scripts/sync-to-public.shThis creates a sync/YYYY-MM-DD branch in the public repo and pushes it.
CRITICAL: Always use --repo to avoid posting to upstream.
cd ~/Projects/nanoclaw-public
gh pr create --repo jbaruch/nanoclaw-public --base main --head sync/YYYY-MM-DD \
--title "sync: scrubbed export from private (YYYY-MM-DD)" \
--body "Scrubbed export from private. [describe what's new]"Request review (Copilot, manual, or both). Add a comment explaining what to watch for — use --repo jbaruch/nanoclaw-public explicitly.
gh pr merge NUMBER --repo jbaruch/nanoclaw-public --mergeRemoved files: hubitat-listener.ts, trakt-auth.py, audible-backup.sh, SOUL.md, SOUL-untrusted.md (replaced with generic), HEARTBEAT.md, groups/main/, groups/telegram_*/, research/, maintenance/, blog-notes.md, OPERATIONS.md, dist/
In-file scrubs: Private IPC handlers and MCP tools (sync_tripit, fetch_trakt_history, sessionize_*, audible_backup), Hubitat config/DB/index, reclaim-tripit Dockerfile dep, private tile deps from tessl.json, private integration names from comments and promote scripts
Sanitized: CLAUDE.md kept as upstream generic version, SOUL-untrusted.md replaced with generic template
When you add a new private integration to the private repo, also update scripts/sync-to-public.sh:
skills