Interactive skill: setup
The/setup skill guides users through initial NanoClaw installation. It’s a pure interactive skill with no code packages.
Key characteristics
- Multi-phase workflow (11 distinct steps)
- Heavy error recovery and troubleshooting
- Platform detection (macOS vs Linux vs WSL)
- User authentication flows
- Service management
Structure
Pattern: Status block parsing
The skill runs scripts and parses structured output:Pattern: Conditional flows
Different platforms require different commands:Pattern: Error recovery
Comprehensive troubleshooting for each failure mode:Deterministic skill: add-telegram
The/add-telegram skill adds Telegram channel support using the skills engine for code changes.
Package structure
manifest.yaml
SKILL.md phases
Phase 2: Apply code changes
The skill applies deterministic code changes:Initialize skills system (if needed):Apply the skill:This deterministically:
- Adds
src/channels/telegram.ts(TelegramChannel class) - Adds
src/channels/telegram.test.ts(46 unit tests) - Three-way merges Telegram support into
src/index.ts - Three-way merges Telegram config into
src/config.ts - Installs the
grammynpm dependency - Records application in
.nanoclaw/state.yaml
Phase 3: Setup
Create Telegram Bot (if needed):If the user doesn’t have a bot token, tell them:Sync to container environment:
- Open Telegram and search for
@BotFather - Send
/newbotand follow prompts - Copy the bot token
.env:Phase 4: Registration
Get the Chat ID:Tell the user:
- Open your bot in Telegram
- Send
/chatid— it will reply with the chat ID - For groups: add the bot first, then send
/chatid
Intent file example
Frommodify/src/index.ts.intent.md:
Interactive skill: customize
The/customize skill is an interactive guide for common customizations.
Key patterns
Pattern: Guided workflows
For each customization type, provide:- Questions to ask - What information do you need?
- Implementation pattern - How to make the changes
- Verification - How to test it works
Deterministic skill: add-slack
The/add-slack skill shows a complete channel integration with detailed setup documentation.
Supplementary documentation
The skill includes a separateSLACK_SETUP.md file:
SKILL.md:
Known limitations
The skill documents limitations clearly:Advanced skill: add-parallel
The/add-parallel skill adds an MCP integration with non-blocking async operations.
Key techniques
- Environment passing
- Usage instructions
- Use the Parallel Task MCP to check the task status
- If status is ‘completed’, extract the results
- Send results with mcp__nanoclaw__send_message
- Use mcp__nanoclaw__complete_scheduled_task
Pattern summary
All skills follow these principles from the NanoClaw philosophy:
- Fix problems automatically when possible
- Use
AskUserQuestionfor all user input - Provide comprehensive troubleshooting
- Handle platform differences (macOS/Linux)
- Verify changes with tests and logs
Common patterns
| Pattern | Used in | Purpose |
|---|---|---|
| Status block parsing | /setup | Parse structured command output |
| Three-way merge | /add-telegram, /add-slack | Apply code changes preserving customizations |
| Intent files | All deterministic skills | Document merge strategy |
| AskUserQuestion | All skills | Get user input consistently |
| Multi-phase structure | Most skills | Organize complex workflows |
| Platform detection | /setup | Handle macOS/Linux differences |
| Verification steps | All skills | Confirm changes worked |
| Troubleshooting section | All skills | Help users fix common issues |
Next steps
- Start Creating skills for your use case
- Understand Skill structure in depth
- Browse the NanoClaw skills directory
- Contribute your own skills via pull request