customize — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited customize (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill helps users add capabilities or modify behavior. Use AskUserQuestion to understand what they want before making changes.
| File | Purpose |
|---|---|
src/index.ts | Orchestrator: state, message loop, agent invocation |
src/channels/whatsapp.ts | WhatsApp connection, auth, send/receive |
src/ipc.ts | IPC watcher and task processing |
src/router.ts | Message formatting and outbound routing |
src/types.ts | TypeScript interfaces (includes Channel) |
src/config.ts | Assistant name, trigger pattern, directories |
src/db.ts | Database initialization and queries |
src/whatsapp-auth.ts | Standalone WhatsApp authentication script |
groups/CLAUDE.md | Global memory/persona |
Questions to ask:
Implementation pattern:
src/channels/{name}.ts implementing the Channel interface from src/types.ts (see src/channels/whatsapp.ts for reference)main() in src/index.ts and wire callbacks (onMessage, onChatMetadata)onMessage callback; routing is automatic via ownsJid()Questions to ask:
Implementation:
src/container-runner.ts for how MCP servers are mounted)groups/CLAUDE.mdQuestions to ask:
Simple changes → edit src/config.ts Persona changes → edit groups/CLAUDE.md Per-group behavior → edit specific group's CLAUDE.md
Questions to ask:
Implementation:
groups/CLAUDE.md or the group's CLAUDE.mdprocessGroupMessages() in src/index.tsQuestions to ask:
Implementation:
Always tell the user:
# Rebuild and restart
npm run build
launchctl unload ~/Library/LaunchAgents/com.nanoclaw.plist
launchctl load ~/Library/LaunchAgents/com.nanoclaw.plistUser: "Add Telegram as an input channel"
src/channels/telegram.ts implementing the Channel interface (see src/channels/whatsapp.ts)main() in src/index.ts~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.