Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Design and generate .envelope.json AI agent team definitions — the open standard for multi-agent teams with hierarchy, access policies, human-in-the-loop gates, and cron schedules.
.claude/skills/davepoon-envelope-team/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 45% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 78% | 0% |
Design and generate .envelope.json AI agent team definition files — the open standard for building and deploying multi-agent teams on Envelope.
.envelope.json file for deployment.envelope.json fileBuild me an Envelope team for customer support triage — one supervisor,
two agents that read Zendesk tickets, and a Slack notifier for escalations.Create an Envelope team definition for outbound sales — an SDR manager
overseeing two SDRs who work HubSpot leads and a RevOps analyst.Build an Envelope team that drafts marketing emails and pauses for
human approval before sending.User: "Build me an Envelope team for content moderation — a supervisor and two reviewer agents that check posts against community guidelines."
Output:
json{ "$schema": "https://schema.openenvelope.org/team/v1.json", "name": "Content Moderation Team", "slug": "content-moderation", "version": "1.0.0", "description": "A supervisor and two reviewer agents that check posts against community guidelines.", "visibility": "team", "category": "ops", "requiredVariables": ["companyName"], "requiredSecrets": ["MODERATION_API_KEY"], "metadata": { "generatedBy": "Claude Code · openenvelope.org" }, "agents": [ { "key": "supervisor", "name": "Moderation Supervisor", "role": "supervisor", "capabilities": ["Route content to reviewer agents", "Aggregate decisions", "Escalate edge cases"], "model": "anthropic:claude-sonnet-4-5", "systemPrompt": "You supervise the content moderation team at {{companyName}}. Delegate each item to a reviewer and consolidate their verdicts." }, { "key": "policy-reviewer", "name": "Policy Reviewer", "role": "reviewer", "capabilities": ["Check content against community guidelines", "Flag policy violations"], "model": "anthropic:claude-haiku-3-5", "systemPrompt": "You review content for policy violations at {{companyName}}. Return a verdict of approve, flag, or remove with a reason.", "reportsToKey": "supervisor", "accessPolicy": { "accessPolicyVersion": "1", "rules": [ { "host": "api.moderation-service.com", "action": "allow" }, { "host": "*", "action": "deny" } ] } }, { "key": "spam-reviewer", "name": "Spam Reviewer", "role": "reviewer", "capabilities": ["Detect spam, bot activity, and duplicate content"], "model": "anthropic:claude-haiku-3-5", "systemPrompt": "You detect spam and bot activity at {{companyName}}. Return a verdict of approve, flag, or remove with a confidence score.", "reportsToKey": "supervisor" } ] }
| Field | Required | Description | |---|---|---| | $schema | yes | Always https://schema.openenvelope.org/team/v1.json | | name | yes | Human-readable team name | | slug | yes | URL-safe, lowercase, hyphens only | | version | yes | Semver e.g. "1.0.0" | | description | yes | What this team does | | visibility | yes | "public" · "team" · "private" | | requiredVariables | no | Non-sensitive config, interpolated via {{varName}} | | requiredSecrets | no | API keys, stored encrypted, injected as ${SECRET_NAME} | | schedule | no | Cron schedule { cron, timezone, task } | | agents | yes | Agent definitions | | gates | no | Human-in-the-loop checkpoints |
| Field | Required | Description | |---|---|---| | key | yes | Unique identifier within this file | | name | yes | Display name | | role | yes | Free-form e.g. "supervisor", "analyst", "sdr" | | capabilities | yes | What this agent can do — used for delegation routing | | model | yes | e.g. anthropic:claude-sonnet-4-5, anthropic:claude-haiku-3-5 | | systemPrompt | yes | Agent instructions. Use {{varName}} and ${SECRET_NAME} | | reportsToKey | no | key of manager agent. Omit for the top-level supervisor | | accessPolicy | no | Outbound HTTP allowlist |
Exactly one agent should have no reportsToKey — this is the supervisor that receives the initial task. All others reference their manager's key.
json"accessPolicy": { "accessPolicyVersion": "1", "rules": [ { "host": "api.example.com", "action": "allow" }, { "host": "*", "action": "deny" } ] }
json"gates": [ { "name": "approval-check", "type": "approval", "trigger": { "afterAgent": "drafter" }, "onApprove": "continue", "onReject": "halt" } ]
anthropic:claude-sonnet-4-5 for supervisors and managers; anthropic:claude-haiku-3-5 for leaf agents doing repetitive workrequiredVariables{ "host": "*", "action": "deny" } for a strict allowlistnpx @openenvelope/schema validate ./team.envelope.json| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-09 | fail→pass | 12,412 | 10,113 | -19% | 1 | 1 | 0% | 2,738 | 3,976 | +45% | 0 | 0 | — |
case-14 | fail→pass | 14,910 | 12,005 | -19% | 1 | 1 | 0% | 2,780 | 4,139 | +49% | 0 | 0 | — |
case-01 | fail→fail | 22,838 | 12,925 | -43% | 1 | 1 | 0% | 4,075 | 4,227 | +4% | 0 | 0 | — |
case-02 | fail→pass | 14,284 | 11,577 | -19% | 1 | 1 | 0% | 2,729 | 3,972 | +46% | 0 | 0 | — |
case-03 | fail→pass | 15,899 | 9,072 | -43% | 1 | 1 | 0% | 3,257 | 3,765 | +16% | 0 | 0 | — |
case-04 | fail→pass | 11,944 | 10,815 | -9% | 1 | 1 | 0% | 2,255 | 4,005 | +78% | 0 | 0 | — |
case-05 | fail→pass | 9,258 | 11,687 | +26% | 1 | 1 | 0% | 1,781 | 4,086 | +129% | 0 | 0 | — |
case-06 | fail→pass | 8,319 | 8,598 | +3% | 1 | 1 | 0% | 1,665 | 3,321 | +99% | 0 | 0 | — |
case-07 | fail→pass | 9,936 | 12,327 | +24% | 1 | 1 | 0% | 1,557 | 4,045 | +160% | 0 | 0 | — |
case-08 | fail→pass | 11,616 | 7,767 | -33% | 1 | 1 | 0% | 2,391 | 3,289 | +38% | 0 | 0 | — |
case-10 | fail→pass | 6,383 | 8,736 | +37% | 1 | 1 | 0% | 1,343 | 3,748 | +179% | 0 | 0 | — |
case-11 | fail→pass | 17,477 | 8,344 | -52% | 1 | 1 | 0% | 3,297 | 3,378 | +2% | 0 | 0 | — |
case-12 | fail→pass | 16,090 | 10,114 | -37% | 1 | 1 | 0% | 3,038 | 3,716 | +22% | 0 | 0 | — |
case-13 | pass→pass | 12,382 | 14,462 | +17% | 1 | 1 | 0% | 2,054 | 4,539 | +121% | 0 | 0 | — |
case-15 | fail→pass | 14,727 | 11,119 | -24% | 1 | 1 | 0% | 2,906 | 3,868 | +33% | 0 | 0 | — |
case-16 | fail→pass | 17,167 | 12,049 | -30% | 1 | 1 | 0% | 3,107 | 4,130 | +33% | 0 | 0 | — |
case-17 | fail→pass | 9,599 | 9,121 | -5% | 1 | 1 | 0% | 1,814 | 3,678 | +103% | 0 | 0 | — |
case-18 | fail→pass | 5,968 | 8,836 | +48% | 1 | 1 | 0% | 1,146 | 3,373 | +194% | 0 | 0 | — |
case-19 | fail→pass | 12,369 | 8,448 | -32% | 1 | 1 | 0% | 2,603 | 3,643 | +40% | 0 | 0 | — |
case-20 | fail→pass | 10,986 | 2,807 | -74% | 1 | 1 | 0% | 1,795 | 2,231 | +24% | 0 | 0 | — |
case-21 | pass→pass | 12,333 | 9,223 | -25% | 1 | 1 | 0% | 2,344 | 3,625 | +55% | 0 | 0 | — |
case-22 | pass→pass | 15,789 | 10,096 | -36% | 1 | 1 | 0% | 3,260 | 3,903 | +20% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +82 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.