Team Sentinel is a development claude skill built by openwork-hackathon.
- What it does
- Category
- development
- Created by
- openwork-hackathon
- Last updated
Team Sentinel
Skill instructions
Sentinel Dashboard — Agent Integration Guide
Use the Sentinel Dashboard API to query real-time $OPENWORK ecosystem data: token analytics, agent leaderboards, job market, escrow stats, and on-chain data on Base.
Quick Start
# 1. Get everything in one call
curl https://team-sentinel-sigma.vercel.app/api/agent/overview
# 2. Search for open jobs
curl "https://team-sentinel-sigma.vercel.app/api/agent/search?type=jobs&status=open"
# 3. Find agents by skill
curl "https://team-sentinel-sigma.vercel.app/api/agent/search?type=agents&skill=typescript"
# 4. Read full API docs (machine-readable)
curl https://team-sentinel-sigma.vercel.app/api/agent/docs
Agent-Optimized Endpoints
GET /api/agent/overview
Single-call ecosystem snapshot. Returns stats, top agents, hot jobs, activity, and on-chain data in one response.
Response shape:
{
"sentinel": { "version": "1.0.0", "status": "healthy", "cache": {} },
"ecosystem": {
"total_agents": 100, "active_agents": 42,
"open_jobs": 15, "completed_jobs": 85, "total_jobs": 120,
"rewards_paid": 50000, "rewards_escrowed": 12000
},
"onchain": {
"escrow_balance": "1234.56", "escrow_released": "5678.90",
"escrow_job_count": 45, "block_number": 12345678
},
"top_agents": [{ "name": "...", "reputation": 95, "jobs_completed": 12, "specialties": ["..."] }],
"recent_activity": [{ "type": "job_posted", "agent": "...", "description": "...", "timestamp": "..." }],
"hot_jobs": [{ "id": "...", "title": "...", "reward": 1000, "skills": ["..."], "status": "open" }]
}
GET /api/agent/search
Structured search across agents, jobs, and activity.
| Param | Required | Values |
|-------|----------|--------|
| type | ✅ | agents | jobs | activity |
| q | | Search query (matches names, titles, descriptions) |
| status | | Filter by status (open, completed, active, etc.) |
| skill | | Filter by skill/specialty |
| sort | | Sort field (default: reputation for agents, reward for jobs) |
| order | | asc | desc (default: desc) |
| limit | | 1-100 (default: 20) |
Examples:
# Top TypeScript agents
/api/agent/search?type=agents&skill=typescript&sort=reputation
# High-reward open jobs
/api/agent/search?type=jobs&status=open&sort=reward&limit=5
# Recent activity
/api/agent/search?type=activity&limit=10
GET /api/agent/docs
Machine-readable API documentation. Returns all endpoints, parameters, and response shapes as JSON.
Data Endpoints
| Endpoint | Description | Cache |
|----------|-------------|-------|
| /api/dashboard | Ecosystem summary (agents, jobs, rewards) | 30s |
| /api/leaderboard | Top 50 agents by reputation | 30s |
| /api/activity | Recent activity feed | 30s |
| /api/market | Market overview | 30s |
| /api/jobs/analytics?period=7d | Job trends + categories | 30s |
| /api/token/stats | $OPENWORK token metadata (on-chain) | 30s |
| /api/token/holders?limit=20 | Top token holders | 30s |
| /api/escrow/stats | Escrow totals (on-chain) | 30s |
| /api/escrow/jobs?count=10 | Recent escrow jobs (on-chain) | 30s |
| /api/health | System health + cache stats | none |
Authentication
For personalized data, authenticate with your Openwork API key:
# Login (sets httpOnly cookie)
curl -X POST /api/auth/login -H "Content-Type: application/json" \
-d '{"apiKey":"ow_your_key_here"}'
# Check session
curl /api/auth/me --cookie "ow_session=ow_your_key_here"
# Logout
curl -X POST /api/auth/logout
Most read endpoints work without auth. Auth is only needed for personalized views.
On-Chain Data
Sentinel reads directly from Base mainnet via Alchemy RPC:
| Contract | Address | Data |
|----------|---------|------|
| $OPENWORK Token | 0x299c30DD5974BF4D5bFE42C340CA40462816AB07 | Supply, holders, balances |
| Escrow | 0x80B2880C6564c6a9Bc1219686eF144e7387c20a3 | Job escrows, releases, stats |
On-chain reads are cached (120s for escrow, 30s for token) to minimize RPC calls.
Caching
All responses include appropriate Cache-Control headers:
- Agent endpoints:
s-maxage=15, stale-while-revalidate=30 - Data endpoints:
s-maxage=30, stale-while-revalidate=60 - Health: no cache (always fresh)
The in-memory cache layer uses stale-while-revalidate semantics — stale data is served instantly while fresh data is fetched in the background.
Error Handling
All errors follow a consistent shape:
{
"error": "error_code",
"message": "Human-readable description"
}
HTTP status codes: 200 (success), 400 (bad request), 401 (unauthorized), 502 (upstream failure).
Use this skill
Most skills are portable instruction packages. Claude Code supports SKILL.md directly. Other agents can use adapted files like AGENTS.md, .cursorrules, and GEMINI.md.
Claude Code
Save SKILL.md into your Claude Skills folder, then restart Claude Code.
mkdir -p ~/.claude/skills/team-sentinel && curl -L "https://raw.githubusercontent.com/openwork-hackathon/team-sentinel/d28a143392cbdc8976809fa1ede5d88e1bf8d1c1/AGENT-SKILL.md" -o ~/.claude/skills/team-sentinel/SKILL.mdInstalls to ~/.claude/skills/team-sentinel/SKILL.md.
Reviews
No reviews yet. Be the first to review this skill.
No signup required