self-extend
Define the protocol Iris follows when creating new reusable skills.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Define the protocol Iris follows when creating new reusable skills.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Create a new sub-agent — no Terraform, no Docker by default. Starts as a systemd service, patched into the bridge immediately so @agent works right away.
Commit and push repo changes to GitHub using the standard Iris workflow.
Search the web using Perplexity AI API. Returns sourced, up-to-date information.
Send an email via Resend API from ${IRIS_EMAIL_FROM:-iris@example.com}. Use when human escalation is needed or to deliver results outside Slack/Telegram.
Transcribe an audio file (m4a, mp3, wav, ogg, webm) to text using OpenAI Whisper API. Use when a user shares a voice note or audio attachment.
Add, remove, and test MCP (Model Context Protocol) servers by editing meta/mcp.json. Tools from connected servers appear automatically as mcp__<server>__<tool>.
| name | self-extend |
| description | Define the protocol Iris follows when creating new reusable skills. |
Protocol for writing new skills. Follow this every time you add a capability.
skills/<skill-name>/SKILL.md# Skill: <name>
One sentence: what does this skill do and why does it exist.
## Usage
<how to invoke it>
## Implementation
```bash
#!/usr/bin/env bash
# <name> — <description>
set -euo pipefail
# implementation here
## Rules for skills
1. **One skill = one responsibility.** Don't build a swiss army knife.
2. **Skills are bash scripts or instructions.** Keep them simple.
3. **Skills must work inside Docker sandbox.** Assume clean environment.
4. **Secrets are always fetched via `get-secret`.** Never hardcoded.
5. **Files are always stored via `store-file`.** Never raw paths.
6. **Cloud calls use abstraction skills.** Never call Azure/AWS/GCP directly.
7. **Test with a safe case before relying on it.** Invoke the skill once with harmless inputs; confirm no hardcoded secrets, a descriptive kebab-case name, and that it is committed before use.
## Example: writing a new skill for sending a Slack message
```bash
# 1. Write the skill
mkdir -p /iris/repo/skills/slack-notify
cat > /iris/repo/skills/slack-notify/SKILL.md << 'EOF'
# Skill: slack-notify
...
EOF
# 2. Commit
github-commit "skills/slack-notify/SKILL.md" "feat: add slack-notify skill"
# 3. Test (iris-runtime reloads skills automatically)
slack-notify "#iris-dev" "test message from iris"