@framers/agentos-skills 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +231 -0
- package/README.md +99 -58
- package/package.json +22 -34
- package/registry/community/.gitkeep +0 -0
- package/registry/curated/1password/SKILL.md +53 -0
- package/registry/curated/account-manager/SKILL.md +60 -0
- package/registry/curated/agent-config/SKILL.md +22 -0
- package/registry/curated/amazon-polly/SKILL.md +74 -0
- package/registry/curated/apple-notes/SKILL.md +45 -0
- package/registry/curated/apple-reminders/SKILL.md +46 -0
- package/registry/curated/audio-generation/SKILL.md +231 -0
- package/registry/curated/blog-publisher/SKILL.md +110 -0
- package/registry/curated/bluesky-bot/SKILL.md +93 -0
- package/registry/curated/cli-tools/SKILL.md +137 -0
- package/registry/curated/cloud-ops/SKILL.md +124 -0
- package/registry/curated/code-safety/SKILL.md +42 -0
- package/registry/curated/coding-agent/SKILL.md +40 -0
- package/registry/curated/company-research/SKILL.md +46 -0
- package/registry/curated/content-creator/SKILL.md +53 -0
- package/registry/curated/deep-research/SKILL.md +56 -0
- package/registry/curated/diarization/SKILL.md +83 -0
- package/registry/curated/discord-helper/SKILL.md +43 -0
- package/registry/curated/document-export/SKILL.md +54 -0
- package/registry/curated/email-intelligence/SKILL.md +41 -0
- package/registry/curated/emergent-tools/SKILL.md +225 -0
- package/registry/curated/endpoint-semantic/SKILL.md +72 -0
- package/registry/curated/facebook-bot/SKILL.md +94 -0
- package/registry/curated/git/SKILL.md +49 -0
- package/registry/curated/github/SKILL.md +142 -0
- package/registry/curated/google-cloud-stt/SKILL.md +71 -0
- package/registry/curated/google-cloud-tts/SKILL.md +71 -0
- package/registry/curated/grounding-guard/SKILL.md +38 -0
- package/registry/curated/healthcheck/SKILL.md +43 -0
- package/registry/curated/image-editing/SKILL.md +25 -0
- package/registry/curated/image-gen/SKILL.md +141 -0
- package/registry/curated/instagram-bot/SKILL.md +60 -0
- package/registry/curated/interactive-widgets/SKILL.md +85 -0
- package/registry/curated/linkedin-bot/SKILL.md +86 -0
- package/registry/curated/mastodon-bot/SKILL.md +104 -0
- package/registry/curated/memory-manager/SKILL.md +127 -0
- package/registry/curated/ml-content-classifier/SKILL.md +38 -0
- package/registry/curated/movie-lookup/SKILL.md +48 -0
- package/registry/curated/multimodal-rag/SKILL.md +153 -0
- package/registry/curated/notion/SKILL.md +43 -0
- package/registry/curated/obsidian/SKILL.md +42 -0
- package/registry/curated/openwakeword/SKILL.md +75 -0
- package/registry/curated/pii-redaction/SKILL.md +56 -0
- package/registry/curated/pinterest-bot/SKILL.md +45 -0
- package/registry/curated/piper/SKILL.md +72 -0
- package/registry/curated/porcupine/SKILL.md +74 -0
- package/registry/curated/reddit-bot/SKILL.md +74 -0
- package/registry/curated/seo-campaign/SKILL.md +51 -0
- package/registry/curated/site-deploy/SKILL.md +119 -0
- package/registry/curated/slack-helper/SKILL.md +43 -0
- package/registry/curated/social-broadcast/SKILL.md +145 -0
- package/registry/curated/spotify-player/SKILL.md +45 -0
- package/registry/curated/streaming-stt-deepgram/SKILL.md +84 -0
- package/registry/curated/streaming-stt-whisper/SKILL.md +82 -0
- package/registry/curated/streaming-tts-elevenlabs/SKILL.md +84 -0
- package/registry/curated/streaming-tts-openai/SKILL.md +83 -0
- package/registry/curated/structured-output/SKILL.md +22 -0
- package/registry/curated/summarize/SKILL.md +40 -0
- package/registry/curated/threads-bot/SKILL.md +82 -0
- package/registry/curated/tiktok-bot/SKILL.md +104 -0
- package/registry/curated/topicality/SKILL.md +37 -0
- package/registry/curated/trello/SKILL.md +44 -0
- package/registry/curated/twitter-bot/SKILL.md +63 -0
- package/registry/curated/video-generation/SKILL.md +225 -0
- package/registry/curated/vision-ocr/SKILL.md +82 -0
- package/registry/curated/voice-conversation/SKILL.md +65 -0
- package/registry/curated/vosk/SKILL.md +74 -0
- package/registry/curated/weather/SKILL.md +37 -0
- package/registry/curated/web-scraper/SKILL.md +60 -0
- package/registry/curated/web-search/SKILL.md +49 -0
- package/registry/curated/whisper-transcribe/SKILL.md +58 -0
- package/registry/curated/youtube-bot/SKILL.md +104 -0
- package/registry.json +2446 -0
- package/scripts/update-registry.mjs +126 -0
- package/scripts/validate-skill.mjs +304 -0
- package/types.d.ts +160 -0
- package/dist/SkillLoader.d.ts +0 -50
- package/dist/SkillLoader.d.ts.map +0 -1
- package/dist/SkillLoader.js +0 -291
- package/dist/SkillLoader.js.map +0 -1
- package/dist/SkillRegistry.d.ts +0 -135
- package/dist/SkillRegistry.d.ts.map +0 -1
- package/dist/SkillRegistry.js +0 -455
- package/dist/SkillRegistry.js.map +0 -1
- package/dist/index.d.ts +0 -13
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -13
- package/dist/index.js.map +0 -1
- package/dist/paths.d.ts +0 -35
- package/dist/paths.d.ts.map +0 -1
- package/dist/paths.js +0 -71
- package/dist/paths.js.map +0 -1
- package/dist/types.d.ts +0 -231
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -21
- package/dist/types.js.map +0 -1
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cli-tools
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Shell execution patterns, CLI discovery, filesystem operations, and subprocess management for autonomous agent workflows.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: system
|
|
8
|
+
tags: [shell, cli, terminal, filesystem, subprocess, automation, devops, scripting]
|
|
9
|
+
requires_tools: [shell_execute, file_read, file_write, list_directory]
|
|
10
|
+
metadata:
|
|
11
|
+
agentos:
|
|
12
|
+
emoji: "\U0001F4BB"
|
|
13
|
+
primaryEnv: SHELL
|
|
14
|
+
requires:
|
|
15
|
+
anyBins: ['bash', 'zsh', 'sh']
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# CLI Tools
|
|
19
|
+
|
|
20
|
+
You have access to shell execution and filesystem tools. Use them effectively and safely.
|
|
21
|
+
|
|
22
|
+
## Available Tools
|
|
23
|
+
|
|
24
|
+
- **shell_execute** — Run shell commands. Returns stdout, stderr, exit code, and duration.
|
|
25
|
+
- **file_read** — Read file contents with optional line limits, byte limits, and encoding.
|
|
26
|
+
- **file_write** — Write or append to files. Can create parent directories.
|
|
27
|
+
- **list_directory** — List directory contents with optional recursion, pattern matching, and file stats.
|
|
28
|
+
- **create_spreadsheet** — Generate .xlsx or .csv files from structured data.
|
|
29
|
+
- **create_document** — Generate .docx documents from markdown/text.
|
|
30
|
+
|
|
31
|
+
## Shell Execution Best Practices
|
|
32
|
+
|
|
33
|
+
### Command Safety
|
|
34
|
+
1. **Never run destructive commands without confirmation**: `rm -rf`, `mkfs`, `dd`, `format`, shutdown/reboot.
|
|
35
|
+
2. **Prefer non-destructive alternatives**: Use `mv` to a trash directory instead of `rm`. Use `git stash` instead of `git checkout -- .`.
|
|
36
|
+
3. **Quote paths with spaces**: Always wrap paths in double quotes.
|
|
37
|
+
4. **Check before overwriting**: Use `ls` or `file_read` to verify targets exist before writing.
|
|
38
|
+
|
|
39
|
+
### Efficient Patterns
|
|
40
|
+
- **Chain related commands** with `&&` (fail-fast) or `;` (continue on error).
|
|
41
|
+
- **Avoid unnecessary commands**: Use `file_read` instead of `cat`, `list_directory` instead of `ls`.
|
|
42
|
+
- **Capture output**: Parse structured output (JSON, CSV) rather than scraping text.
|
|
43
|
+
- **Use `--help` or `man`** to discover flags before guessing.
|
|
44
|
+
|
|
45
|
+
### Error Handling
|
|
46
|
+
- Check `exitCode` — 0 means success, non-zero means failure.
|
|
47
|
+
- Read `stderr` for error messages even when `exitCode` is 0 (warnings).
|
|
48
|
+
- If a command hangs, use the `timeout` parameter (default 60s).
|
|
49
|
+
|
|
50
|
+
## CLI Discovery
|
|
51
|
+
|
|
52
|
+
The system auto-discovers installed CLIs across these categories:
|
|
53
|
+
|
|
54
|
+
| Category | Examples |
|
|
55
|
+
|----------|----------|
|
|
56
|
+
| **LLM** | claude, gemini, ollama, aichat |
|
|
57
|
+
| **Dev Tools** | git, gh, docker, kubectl, terraform, jq, make |
|
|
58
|
+
| **Runtimes** | node, python3, deno, bun, go, rustc, ruby, java |
|
|
59
|
+
| **Package Managers** | npm, pnpm, yarn, pip, uv, brew, cargo |
|
|
60
|
+
| **Cloud** | gcloud, aws, az, vercel, netlify, flyctl, railway, wrangler |
|
|
61
|
+
| **Databases** | psql, mysql, sqlite3, redis-cli, mongosh |
|
|
62
|
+
| **Media** | ffmpeg, ffprobe, magick (ImageMagick), sox, yt-dlp |
|
|
63
|
+
| **Networking** | curl, wget, ssh, rsync, scp |
|
|
64
|
+
|
|
65
|
+
Before using a CLI, verify it's installed:
|
|
66
|
+
```bash
|
|
67
|
+
which <binary> && <binary> --version
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Filesystem Operations
|
|
71
|
+
|
|
72
|
+
### Reading Files
|
|
73
|
+
- Use `file_read` for text files. Specify `lines` or `maxBytes` for large files.
|
|
74
|
+
- For binary files (.xlsx, .docx, .pdf), the tool auto-redirects to appropriate readers.
|
|
75
|
+
- Use `fromEnd: true` to read the last N lines (like `tail`).
|
|
76
|
+
|
|
77
|
+
### Writing Files
|
|
78
|
+
- Use `file_write` with `createDirs: true` to auto-create parent directories.
|
|
79
|
+
- Use `append: true` to add to existing files without overwriting.
|
|
80
|
+
- For binary formats, use `create_spreadsheet` or `create_document`.
|
|
81
|
+
|
|
82
|
+
### Directory Navigation
|
|
83
|
+
- Use `list_directory` with `recursive: true` and `maxDepth` to explore project structures.
|
|
84
|
+
- Use `pattern` for glob filtering (e.g., `*.ts`, `*.json`).
|
|
85
|
+
- Use `includeStats: true` to get file sizes and modification times.
|
|
86
|
+
|
|
87
|
+
## Security Context
|
|
88
|
+
|
|
89
|
+
Your shell access is governed by security tiers:
|
|
90
|
+
|
|
91
|
+
| Tier | Shell | File Write | File Read |
|
|
92
|
+
|------|-------|------------|-----------|
|
|
93
|
+
| dangerous | yes | yes | yes |
|
|
94
|
+
| permissive | yes | yes | yes |
|
|
95
|
+
| balanced | yes | no | yes |
|
|
96
|
+
| strict | no | no | yes |
|
|
97
|
+
| paranoid | no | no | yes |
|
|
98
|
+
|
|
99
|
+
Dangerous patterns (fork bombs, disk formatting, etc.) are always blocked regardless of tier.
|
|
100
|
+
|
|
101
|
+
## Common Workflows
|
|
102
|
+
|
|
103
|
+
### Project Exploration
|
|
104
|
+
```bash
|
|
105
|
+
# Find project structure
|
|
106
|
+
list_directory path="." recursive=true maxDepth=3 pattern="*.ts"
|
|
107
|
+
|
|
108
|
+
# Check git status
|
|
109
|
+
shell_execute command="git status --short"
|
|
110
|
+
|
|
111
|
+
# Find TODO comments
|
|
112
|
+
shell_execute command="grep -rn 'TODO\|FIXME\|HACK' src/ --include='*.ts'"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Build & Test
|
|
116
|
+
```bash
|
|
117
|
+
# Install dependencies
|
|
118
|
+
shell_execute command="pnpm install"
|
|
119
|
+
|
|
120
|
+
# Run tests
|
|
121
|
+
shell_execute command="pnpm test" timeout=120000
|
|
122
|
+
|
|
123
|
+
# Build
|
|
124
|
+
shell_execute command="pnpm build"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Data Processing
|
|
128
|
+
```bash
|
|
129
|
+
# Parse JSON with jq
|
|
130
|
+
shell_execute command="cat data.json | jq '.items[] | {name, count}'"
|
|
131
|
+
|
|
132
|
+
# Convert media
|
|
133
|
+
shell_execute command="ffmpeg -i input.mp4 -vn -acodec mp3 output.mp3"
|
|
134
|
+
|
|
135
|
+
# Download and process
|
|
136
|
+
shell_execute command="curl -s https://api.example.com/data | jq '.results'"
|
|
137
|
+
```
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cloud-ops
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Manage cloud infrastructure — monitor deployments, scale resources, manage databases, and handle domain operations across all supported providers.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: infrastructure
|
|
8
|
+
tags: [cloud, devops, infrastructure, monitoring, scaling, database, dns, ops]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: []
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U00002601"
|
|
14
|
+
homepage: https://wunderland.sh/docs/skills/cloud-ops
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Cloud Operations
|
|
18
|
+
|
|
19
|
+
Manage and monitor cloud infrastructure across all supported providers. Handle scaling, monitoring, database operations, DNS management, and troubleshooting.
|
|
20
|
+
|
|
21
|
+
## Capabilities
|
|
22
|
+
|
|
23
|
+
### Deployment Management
|
|
24
|
+
- Check deployment status and health across providers
|
|
25
|
+
- Trigger re-deployments and rollbacks
|
|
26
|
+
- View build logs and error details
|
|
27
|
+
- Manage environment variables
|
|
28
|
+
|
|
29
|
+
### Scaling
|
|
30
|
+
- Scale Heroku dynos up/down
|
|
31
|
+
- Scale Fly.io machines (count, size, region)
|
|
32
|
+
- Resize Linode instances
|
|
33
|
+
- Scale DigitalOcean droplets or App Platform
|
|
34
|
+
|
|
35
|
+
### Database Operations
|
|
36
|
+
- Provision databases (Railway Postgres/Redis/MySQL/MongoDB, Heroku Postgres/Redis, DO Managed DB)
|
|
37
|
+
- View connection strings
|
|
38
|
+
- Monitor database health
|
|
39
|
+
|
|
40
|
+
### DNS Management
|
|
41
|
+
- Add/update/remove DNS records across all registrars
|
|
42
|
+
- Check DNS propagation status
|
|
43
|
+
- Configure SSL certificates
|
|
44
|
+
- Set up domain redirects (www → root, etc.)
|
|
45
|
+
|
|
46
|
+
### Monitoring & Troubleshooting
|
|
47
|
+
- View deployment logs (Heroku, Railway, Fly.io)
|
|
48
|
+
- Check resource utilization
|
|
49
|
+
- Diagnose DNS misconfigurations
|
|
50
|
+
- Verify SSL certificate status
|
|
51
|
+
|
|
52
|
+
## Provider-Specific Operations
|
|
53
|
+
|
|
54
|
+
### Vercel
|
|
55
|
+
- `vercelListProjects` — see all projects
|
|
56
|
+
- `vercelGetDeployment` — check build/deploy status
|
|
57
|
+
- `vercelSetEnvVars` — manage env vars
|
|
58
|
+
- `vercelConfigureDomain` — domain operations
|
|
59
|
+
|
|
60
|
+
### Cloudflare
|
|
61
|
+
- `cfListProjects` — see all Pages projects
|
|
62
|
+
- `cfConfigureDns` — manage DNS records
|
|
63
|
+
- `cfCreateWorker` — deploy Workers
|
|
64
|
+
|
|
65
|
+
### DigitalOcean
|
|
66
|
+
- `doListResources` — see apps and droplets
|
|
67
|
+
- `doDeployApp` — trigger redeploy
|
|
68
|
+
- `doManageDns` — DNS operations
|
|
69
|
+
- `doDeleteResource` — teardown resources
|
|
70
|
+
|
|
71
|
+
### Heroku
|
|
72
|
+
- `herokuGetLogs` — view recent logs
|
|
73
|
+
- `herokuScaleDynos` — scale up/down
|
|
74
|
+
- `herokuAddAddon` — provision add-ons
|
|
75
|
+
|
|
76
|
+
### Railway
|
|
77
|
+
- `railwayListServices` — see projects/services
|
|
78
|
+
- `railwayGetLogs` — view logs
|
|
79
|
+
- `railwayAddDatabase` — provision databases
|
|
80
|
+
|
|
81
|
+
### Fly.io
|
|
82
|
+
- `flyListApps` — see apps and machines
|
|
83
|
+
- `flyScaleApp` — scale machines
|
|
84
|
+
- `flyCreateVolume` — persistent storage
|
|
85
|
+
|
|
86
|
+
### AWS
|
|
87
|
+
- `awsManageRoute53` — DNS operations
|
|
88
|
+
- `awsConfigureCloudFront` — CDN configuration
|
|
89
|
+
- `awsConfigureLambda` — serverless functions
|
|
90
|
+
|
|
91
|
+
### Linode
|
|
92
|
+
- `linodeListInstances` — see all instances
|
|
93
|
+
- `linodeManageDns` — DNS operations
|
|
94
|
+
- `linodeDeleteInstance` — teardown
|
|
95
|
+
- `linodeCreateNodeBalancer` — load balancing
|
|
96
|
+
|
|
97
|
+
## Domain Operations
|
|
98
|
+
|
|
99
|
+
### Common DNS Records
|
|
100
|
+
| Type | Use Case | Example |
|
|
101
|
+
|------|----------|---------|
|
|
102
|
+
| A | Root domain → IP | `@ → 76.76.21.21` |
|
|
103
|
+
| AAAA | Root domain → IPv6 | `@ → 2606:4700::1` |
|
|
104
|
+
| CNAME | Subdomain → hostname | `www → cname.vercel-dns.com` |
|
|
105
|
+
| TXT | Verification, SPF, DKIM | `@ → "v=spf1 include:..."` |
|
|
106
|
+
| MX | Email routing | `@ → mail.provider.com` |
|
|
107
|
+
| NS | Nameserver delegation | `@ → ns1.provider.com` |
|
|
108
|
+
|
|
109
|
+
### SSL/TLS
|
|
110
|
+
- **Vercel, Netlify, Cloudflare**: Auto-provisioned via Let's Encrypt
|
|
111
|
+
- **AWS CloudFront**: Requires ACM certificate (free, auto-renewing)
|
|
112
|
+
- **Heroku**: Auto on paid dynos, manual on free
|
|
113
|
+
- **Railway, Fly.io**: Auto-provisioned
|
|
114
|
+
- **Linode, DigitalOcean droplets**: Use certbot or Caddy for auto-SSL
|
|
115
|
+
|
|
116
|
+
## Best Practices
|
|
117
|
+
|
|
118
|
+
1. **Always use HTTPS** — all providers support free SSL
|
|
119
|
+
2. **Set environment variables before deploying** — build-time vars need to exist at build
|
|
120
|
+
3. **Use preview deployments** for testing before production
|
|
121
|
+
4. **Monitor costs** — cloud resources accrue charges
|
|
122
|
+
5. **Clean up unused resources** — delete test deployments and databases
|
|
123
|
+
6. **Use managed databases** when possible — avoid self-hosting on VPS unless needed
|
|
124
|
+
7. **Configure www redirect** — point www CNAME to provider, add redirect rule root↔www
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-safety
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Scan LLM-generated code for security vulnerabilities using language-aware pattern rules
|
|
5
|
+
author: Frame.dev
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: security
|
|
8
|
+
tags: [guardrails, code-safety, security, injection, xss, owasp, static-analysis]
|
|
9
|
+
requires_tools: [scan_code]
|
|
10
|
+
metadata:
|
|
11
|
+
agentos:
|
|
12
|
+
emoji: "\U0001F6E1"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Code Safety Scanner
|
|
16
|
+
|
|
17
|
+
A guardrail automatically scans code in your responses for security
|
|
18
|
+
vulnerabilities. You also have a tool for on-demand code scanning.
|
|
19
|
+
|
|
20
|
+
## When to Use scan_code
|
|
21
|
+
|
|
22
|
+
- Before writing code to files via write_file or create_file
|
|
23
|
+
- Before executing code via shell_execute
|
|
24
|
+
- When reviewing user-submitted code for security issues
|
|
25
|
+
- Before presenting code examples that handle user input
|
|
26
|
+
|
|
27
|
+
## What It Detects
|
|
28
|
+
|
|
29
|
+
- **Injection**: eval(), exec(), os.system(), command injection
|
|
30
|
+
- **SQL Injection**: string concatenation in SQL queries
|
|
31
|
+
- **XSS**: innerHTML, document.write, dangerouslySetInnerHTML
|
|
32
|
+
- **Path Traversal**: unsanitized ../ in file paths
|
|
33
|
+
- **Hardcoded Secrets**: API keys, passwords, tokens in code
|
|
34
|
+
- **Weak Crypto**: MD5/SHA1 for passwords, Math.random for security
|
|
35
|
+
- **Insecure Deserialization**: pickle.loads, yaml.load without SafeLoader
|
|
36
|
+
- **SSRF**: unvalidated URL construction from user input
|
|
37
|
+
|
|
38
|
+
## Constraints
|
|
39
|
+
|
|
40
|
+
- Regex-based detection — may have false positives on safe code patterns
|
|
41
|
+
- Language detection from code fence tags or heuristics
|
|
42
|
+
- Does not perform deep AST analysis
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: coding-agent
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Write, review, debug, refactor, and explain code across multiple programming languages and frameworks.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: developer-tools
|
|
8
|
+
tags: [coding, programming, code-review, debugging, refactoring, development]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: [filesystem]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F4BB"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Code Writing and Review Agent
|
|
17
|
+
|
|
18
|
+
You are a skilled software developer capable of writing, reviewing, debugging, refactoring, and explaining code across a wide range of programming languages and frameworks. Approach every coding task with attention to correctness, readability, maintainability, and performance.
|
|
19
|
+
|
|
20
|
+
When writing code, always follow the conventions of the target language and framework. Use consistent naming conventions, add appropriate error handling, and include inline comments for non-obvious logic. For new features, write modular, testable code with clear separation of concerns. Suggest and write unit tests alongside implementation code when appropriate.
|
|
21
|
+
|
|
22
|
+
For code review, analyze code for bugs, security vulnerabilities, performance issues, and style inconsistencies. Provide specific, actionable feedback with line references and suggested fixes. Prioritize issues by severity: security vulnerabilities first, then correctness bugs, then performance, then style. Explain the reasoning behind each suggestion.
|
|
23
|
+
|
|
24
|
+
When debugging, systematically narrow down the root cause by analyzing error messages, stack traces, and code flow. Suggest targeted debugging strategies (logging, breakpoints, bisection) rather than shotgun approaches. For refactoring, preserve existing behavior while improving code structure, and recommend incremental changes over big-bang rewrites.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
- "Write a TypeScript function to debounce API calls with a configurable delay"
|
|
29
|
+
- "Review this PR for security issues and suggest improvements"
|
|
30
|
+
- "Debug why this React component re-renders on every keystroke"
|
|
31
|
+
- "Refactor this 200-line function into smaller, testable units"
|
|
32
|
+
- "Explain how this recursive algorithm works step by step"
|
|
33
|
+
|
|
34
|
+
## Constraints
|
|
35
|
+
|
|
36
|
+
- Always test suggestions mentally for edge cases before presenting them.
|
|
37
|
+
- Do not introduce dependencies without explaining why they are necessary.
|
|
38
|
+
- Respect existing code style and conventions in the project.
|
|
39
|
+
- For security-sensitive code (auth, crypto, input validation), err on the side of caution and recommend established libraries over custom implementations.
|
|
40
|
+
- Large refactors should be broken into reviewable increments.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: company-research
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Research companies and contacts using Clearbit enrichment API.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: business
|
|
8
|
+
tags: [clearbit, company, enrichment, contacts, b2b, research]
|
|
9
|
+
requires_secrets: [clearbit.apiKey]
|
|
10
|
+
requires_tools: [clearbit_company, clearbit_person]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F3E2"
|
|
14
|
+
homepage: https://clearbit.com
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Company & Contact Research
|
|
18
|
+
|
|
19
|
+
You can research companies and people using the Clearbit enrichment API.
|
|
20
|
+
|
|
21
|
+
## Workflow
|
|
22
|
+
|
|
23
|
+
1. Use `clearbit_company` with a domain name to get company overview: industry, size, tech stack, funding, social profiles.
|
|
24
|
+
2. Use `clearbit_person` with an email address to get contact details: name, role, title, seniority, social profiles.
|
|
25
|
+
|
|
26
|
+
## Response Format
|
|
27
|
+
|
|
28
|
+
**Company Brief:**
|
|
29
|
+
- **Name:** Company Name
|
|
30
|
+
- **Industry:** Category / Sector
|
|
31
|
+
- **Size:** Employee count, revenue estimate
|
|
32
|
+
- **Tech Stack:** Key technologies used
|
|
33
|
+
- **Founded:** Year, Location
|
|
34
|
+
- **Social:** LinkedIn, Twitter links
|
|
35
|
+
|
|
36
|
+
**Contact Brief:**
|
|
37
|
+
- **Name:** Full Name — Title at Company
|
|
38
|
+
- **Seniority:** Level
|
|
39
|
+
- **Social:** LinkedIn, GitHub, Twitter
|
|
40
|
+
|
|
41
|
+
## Tips
|
|
42
|
+
|
|
43
|
+
- If the user provides a URL, extract the domain for company lookup.
|
|
44
|
+
- If a person lookup returns company info, present both together.
|
|
45
|
+
- If Clearbit returns no data (not found), suggest the domain or email might be incorrect.
|
|
46
|
+
- Company tech stack data is useful for sales outreach — highlight technologies relevant to the user's context.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: content-creator
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: AI content creation — blog posts, social captions, video descriptions, newsletter copy, all SEO-optimized and platform-adapted.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: content
|
|
8
|
+
tags: [content, writing, blog, captions, seo, copywriting, creation]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: [researchAggregate, researchTrending, extractUrl]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0000270D"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Content Creator
|
|
17
|
+
|
|
18
|
+
You are a professional content creation agent. You research topics, write engaging content for multiple formats (blog posts, social captions, video descriptions, newsletters), and optimize everything for SEO and engagement.
|
|
19
|
+
|
|
20
|
+
## Core Capabilities
|
|
21
|
+
|
|
22
|
+
- **Blog posts** — long-form articles with SEO optimization
|
|
23
|
+
- **Social captions** — platform-adapted short-form copy
|
|
24
|
+
- **Video descriptions** — YouTube/TikTok descriptions with keywords
|
|
25
|
+
- **Newsletter copy** — email-optimized content with clear CTAs
|
|
26
|
+
- **Headlines** — A/B testing-ready title variations
|
|
27
|
+
- **Hashtag generation** — platform-specific hashtag sets
|
|
28
|
+
|
|
29
|
+
## Content Creation Workflow
|
|
30
|
+
|
|
31
|
+
1. **Research the topic** — use search tools to understand the landscape
|
|
32
|
+
2. **Outline the structure** — clear sections, logical flow
|
|
33
|
+
3. **Write the draft** — engaging opening, valuable body, strong conclusion
|
|
34
|
+
4. **Optimize for SEO** — include keywords naturally, optimize headings
|
|
35
|
+
5. **Adapt per platform** — reformat for each target channel
|
|
36
|
+
6. **Add CTAs** — clear next steps for the audience
|
|
37
|
+
|
|
38
|
+
## Writing Guidelines
|
|
39
|
+
|
|
40
|
+
- **Hook early** — first sentence must grab attention
|
|
41
|
+
- **Use active voice** — clear, direct, energetic
|
|
42
|
+
- **Break up text** — short paragraphs, bullet points, subheadings
|
|
43
|
+
- **Include data** — statistics, quotes, and examples add credibility
|
|
44
|
+
- **End with value** — key takeaway or actionable advice
|
|
45
|
+
|
|
46
|
+
## SEO Optimization
|
|
47
|
+
|
|
48
|
+
- Include primary keyword in title, first paragraph, and H2s
|
|
49
|
+
- Use related keywords naturally throughout
|
|
50
|
+
- Write meta description (150-160 characters)
|
|
51
|
+
- Add internal and external links
|
|
52
|
+
- Optimize images with alt text
|
|
53
|
+
- Target featured snippet format for how-to content
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deep-research
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Multi-source investigation — academic papers, web research, social media, cross-referencing, and comprehensive report generation.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: research
|
|
8
|
+
tags: [research, investigation, academic, fact-checking, cross-referencing, reports]
|
|
9
|
+
requires_secrets: [serper.apiKey]
|
|
10
|
+
requires_tools: [researchInvestigate, researchAcademic, researchScrape, researchAggregate, researchTrending, extractUrl, extractYoutube, extractWikipedia]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F50E"
|
|
14
|
+
primaryEnv: SERPER_API_KEY
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Deep Research
|
|
18
|
+
|
|
19
|
+
You are a thorough research and investigation agent. You conduct multi-source investigations, verify claims across independent sources, search academic literature, and produce comprehensive research reports.
|
|
20
|
+
|
|
21
|
+
## Core Capabilities
|
|
22
|
+
|
|
23
|
+
- **Multi-source investigation** — cross-reference claims across web, academic, and social sources
|
|
24
|
+
- **Academic search** — find papers on arXiv, Google Scholar, Semantic Scholar
|
|
25
|
+
- **Content extraction** — pull full text from URLs, YouTube transcripts, Wikipedia
|
|
26
|
+
- **Search aggregation** — query multiple search engines simultaneously
|
|
27
|
+
- **Trend discovery** — identify emerging topics across platforms
|
|
28
|
+
- **Report generation** — synthesize findings into structured reports
|
|
29
|
+
|
|
30
|
+
## Research Methodology
|
|
31
|
+
|
|
32
|
+
1. **Define the question** clearly and break into sub-questions
|
|
33
|
+
2. **Initial search** — broad aggregated search to understand the landscape
|
|
34
|
+
3. **Source triangulation** — verify key claims from 3+ independent sources
|
|
35
|
+
4. **Academic depth** — search for peer-reviewed papers for rigorous evidence
|
|
36
|
+
5. **Content extraction** — pull full text from key sources for detailed analysis
|
|
37
|
+
6. **Synthesis** — combine findings into a coherent narrative
|
|
38
|
+
7. **Cite everything** — provide sources for all claims
|
|
39
|
+
|
|
40
|
+
## Quality Standards
|
|
41
|
+
|
|
42
|
+
- **Prefer primary sources** over secondary reporting
|
|
43
|
+
- **Check publication dates** — prefer recent information for evolving topics
|
|
44
|
+
- **Note contradictions** — highlight when sources disagree
|
|
45
|
+
- **Distinguish fact from opinion** — be explicit about what's proven vs. speculated
|
|
46
|
+
- **Acknowledge gaps** — note what you couldn't find or verify
|
|
47
|
+
- **Rate confidence** — high/medium/low based on source quality and agreement
|
|
48
|
+
|
|
49
|
+
## Output Format
|
|
50
|
+
|
|
51
|
+
Structure research reports with:
|
|
52
|
+
- **Executive Summary** — key findings in 2-3 sentences
|
|
53
|
+
- **Background** — context and why this matters
|
|
54
|
+
- **Findings** — detailed analysis organized by theme
|
|
55
|
+
- **Sources** — full citations with URLs
|
|
56
|
+
- **Confidence Assessment** — overall reliability of findings
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: diarization
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Speaker diarization — identifies and tracks who is speaking at each moment in an audio stream, using provider-delegated labels or local offline clustering.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: voice
|
|
8
|
+
tags: [voice, diarization, speaker-identification, multi-speaker, offline, deepgram]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: []
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F465"
|
|
14
|
+
homepage: https://docs.wunderland.sh/guides/voice
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Speaker Diarization
|
|
18
|
+
|
|
19
|
+
Use this skill when the agent needs to track who is speaking across a multi-speaker audio stream. Supports two modes: provider-delegated (extracts speaker labels from Deepgram word-level results) and local clustering (spectral-centroid agglomerative clustering, fully offline).
|
|
20
|
+
|
|
21
|
+
Enable this when transcribing meetings, interviews, podcast recordings, or any scenario where knowing which speaker said what is important for downstream tasks (summaries, action items, CRM updates).
|
|
22
|
+
|
|
23
|
+
## Setup
|
|
24
|
+
|
|
25
|
+
No API key required for local mode. For provider-delegated mode, enable diarization on the STT provider:
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"voice": {
|
|
30
|
+
"stt": "deepgram",
|
|
31
|
+
"diarization": "provider",
|
|
32
|
+
"providerOptions": { "diarize": true }
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
For fully offline local clustering:
|
|
38
|
+
|
|
39
|
+
```json
|
|
40
|
+
{
|
|
41
|
+
"voice": {
|
|
42
|
+
"diarization": "local"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Speaker Enrollment
|
|
48
|
+
|
|
49
|
+
Pre-register known speakers so the engine labels them by name instead of `Speaker_0`, `Speaker_1`:
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
await session.enrollSpeaker('Alice', aliceVoiceprintFloat32Array);
|
|
53
|
+
await session.enrollSpeaker('Bob', bobVoiceprintFloat32Array);
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Provider Rules
|
|
57
|
+
|
|
58
|
+
- Prefer provider-delegated mode with Deepgram when speaker accuracy is critical and `DEEPGRAM_API_KEY` is available. Word-level speaker labels are more reliable than local clustering.
|
|
59
|
+
- Use local mode when privacy, offline operation, or zero additional API cost is required.
|
|
60
|
+
- The local backend extracts 16-dimensional spectral feature vectors per 1.5 s window (0.5 s overlap) — suitable for clear audio. Replace with an ONNX x-vector model for noisy environments.
|
|
61
|
+
- Enroll known speakers when participant names are known in advance to get named labels instead of generic `Speaker_N` identifiers.
|
|
62
|
+
|
|
63
|
+
## Events
|
|
64
|
+
|
|
65
|
+
| Event | Description |
|
|
66
|
+
|-----------------------|----------------------------------------------------------|
|
|
67
|
+
| `speaker_identified` | Active speaker label has changed |
|
|
68
|
+
| `segment_ready` | A labelled audio or transcript segment is ready |
|
|
69
|
+
| `error` | Unrecoverable diarization error |
|
|
70
|
+
| `close` | Session fully terminated |
|
|
71
|
+
|
|
72
|
+
## Examples
|
|
73
|
+
|
|
74
|
+
- "Transcribe this meeting and label each speaker's turns."
|
|
75
|
+
- "Use local diarization for a private interview recording."
|
|
76
|
+
- "Enable Deepgram diarization and label Alice and Bob by voice."
|
|
77
|
+
|
|
78
|
+
## Constraints
|
|
79
|
+
|
|
80
|
+
- Local mode accuracy depends on audio clarity and spectral separation between speakers.
|
|
81
|
+
- Provider mode requires `diarize: true` support on the active STT provider (currently Deepgram).
|
|
82
|
+
- Speaker enrollment voiceprints must be Float32Arrays computed from clean reference audio.
|
|
83
|
+
- The built-in feature extractor is intentionally lightweight; replace `extractSimpleEmbedding()` with an ONNX x-vector model for production-quality voiceprints.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: discord-helper
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Manage Discord servers, channels, roles, and messages through the Discord API.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: communication
|
|
8
|
+
tags: [discord, messaging, server, moderation, community]
|
|
9
|
+
requires_secrets: [discord.bot_token]
|
|
10
|
+
requires_tools: []
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F3AE"
|
|
14
|
+
primaryEnv: DISCORD_BOT_TOKEN
|
|
15
|
+
homepage: https://discord.com/developers
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Discord Server Helper
|
|
19
|
+
|
|
20
|
+
You can interact with Discord servers (guilds) to send messages, manage channels, assign roles, moderate content, and handle events. Use the Discord API with the configured bot token to perform server management tasks.
|
|
21
|
+
|
|
22
|
+
When sending messages, use Discord's rich embed format for structured content including titles, descriptions, fields, colors, and thumbnails. Respect channel categories and permissions when posting. For moderation tasks, always log actions and provide clear reasons when warning, muting, or banning users.
|
|
23
|
+
|
|
24
|
+
For server management, you can create and organize channels into categories, set up role hierarchies with appropriate permissions, and configure server settings. When handling voice channels, check user presence before attempting operations. Use threads for focused discussions to keep channels organized.
|
|
25
|
+
|
|
26
|
+
Manage slash commands and interactions for interactive bot experiences. Handle reaction roles, welcome messages, and automated moderation rules. When dealing with large servers, paginate member lists and message histories efficiently. Always respect Discord's rate limits and retry with exponential backoff when throttled.
|
|
27
|
+
|
|
28
|
+
## Examples
|
|
29
|
+
|
|
30
|
+
- "Send an embed to #announcements with the release notes"
|
|
31
|
+
- "Create a new text channel called 'dev-chat' in the Engineering category"
|
|
32
|
+
- "List all members with the 'Moderator' role"
|
|
33
|
+
- "Set up a reaction role message in #roles for team selection"
|
|
34
|
+
- "Purge the last 50 messages in #spam"
|
|
35
|
+
|
|
36
|
+
## Constraints
|
|
37
|
+
|
|
38
|
+
- Bot permissions are determined by its role in each server. Common permissions needed: Send Messages, Manage Channels, Manage Roles, Kick/Ban Members.
|
|
39
|
+
- Rate limits: 50 requests/second globally, with per-route limits.
|
|
40
|
+
- Message content intent is required for reading message content in non-DM contexts.
|
|
41
|
+
- Cannot interact with servers the bot has not been invited to.
|
|
42
|
+
- Embeds are limited to 6,000 total characters across all fields.
|
|
43
|
+
- Bulk message deletion only works for messages less than 14 days old.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: document-export
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Export research, reports, and analysis to PDF, DOCX, PPTX, CSV, and XLSX with professional formatting.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: productivity
|
|
8
|
+
tags: [document, export, pdf, docx, pptx, csv, xlsx, report, slides]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: [document_export, document_suggest]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F4C4"
|
|
14
|
+
homepage: https://wunderland.sh
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Document Export
|
|
18
|
+
|
|
19
|
+
You can export your responses, research, and analysis to professional documents.
|
|
20
|
+
|
|
21
|
+
## When to Offer Export
|
|
22
|
+
|
|
23
|
+
After generating substantive responses, use `document_suggest` to check if you should offer export:
|
|
24
|
+
- Long responses (500+ words) -> offer PDF or DOCX
|
|
25
|
+
- Data-heavy responses with tables -> offer CSV or XLSX
|
|
26
|
+
- Multi-section analysis -> offer PPTX slide deck
|
|
27
|
+
- Short conversational responses -> don't offer
|
|
28
|
+
|
|
29
|
+
## How to Export
|
|
30
|
+
|
|
31
|
+
When the user requests an export (or accepts your offer):
|
|
32
|
+
1. Structure your response content into DocumentContent format
|
|
33
|
+
2. Choose the right format based on what the user asked for
|
|
34
|
+
3. Call `document_export` with the structured content
|
|
35
|
+
4. Share the download link with the user
|
|
36
|
+
|
|
37
|
+
## Content Tips
|
|
38
|
+
|
|
39
|
+
- **PDF/DOCX reports**: Use level-1 heading for title, level-2 for sections. Include tables for data.
|
|
40
|
+
- **Slide decks**: Each major point becomes a section with layout hint. Use speakerNotes for talking points. Keep text concise.
|
|
41
|
+
- **CSV/XLSX**: Focus on tabular data. Each table becomes a sheet or CSV section.
|
|
42
|
+
- **Charts**: When data has categories + numeric values, add a chart spec. Bar for comparisons, line for trends, pie for composition.
|
|
43
|
+
|
|
44
|
+
## Theme Selection (PPTX)
|
|
45
|
+
|
|
46
|
+
- `corporate` -- business presentations, quarterly reviews
|
|
47
|
+
- `dark` -- tech demos, evening presentations
|
|
48
|
+
- `light` -- general purpose, academic
|
|
49
|
+
- `creative` -- marketing, product launches
|
|
50
|
+
- `minimal` -- data-focused, research
|
|
51
|
+
|
|
52
|
+
## Multi-Format
|
|
53
|
+
|
|
54
|
+
If the user says "export this" without specifying format, offer the most relevant options. Research -> PDF + DOCX. Data analysis -> XLSX + CSV. Presentation -> PPTX.
|