Agent skill

Deploying To Staging Environment

by AgentWorkforce in AgentWorkforce/relay

A skill your agent uses when deploying changes to staging across relay, relay-dashboard, and relay-cloud repos - coordinates multi-repo branch syncing using git worktrees, automatically triggers…

Apache-2.0Auto-check passedDevOps & Cloud

Install Deploying To Staging Environment

skills CLI
$ npx skills add AgentWorkforce/relay --skill deploying-to-staging-environment -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install AgentWorkforce/relay deploying-to-staging-environment --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/AgentWorkforce/relay.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/deploying-to-staging-environment .claude/skills/deploying-to-staging-environment && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
deploying-to-staging-environment
GitHub stars
866
Token cost
~3.2k tokens
SKILL.md length
815 words
Files
1
Skills in repo
14
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when deploying changes to staging across relay, relay-dashboard, and relay-cloud repos - coordinates multi-repo branch syncing using git worktrees, automatically triggers…

  • Works in 4 steps: Isolation - Work on staging without… → Safety - Feature branch checked out in… → Cleanliness - No lingering state changes… → …
  • Deploying changes to staging across relay
  • SKILL.md covers Overview, When to Use, Architecture and Quick Reference, plus 6 more sections
  • Calls git, curl and flyctl; reaches github.com and agent-relay-staging.fly.dev; needs CROSS_REPO_TOKEN and FLY_API_TOKEN

What it does

Deploying To Staging Environment is an agent skill from AgentWorkforce/relay. Use when deploying changes to staging across relay, relay-dashboard, and relay-cloud repos - coordinates multi-repo branch syncing using git worktrees, automatically triggers staging deployments via GitHub Actions

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering Deployment, Git worktrees and CI/CD. It works with GitHub Actions. The repository describes itself as: Infrastructure for coding agents. The licence is Apache-2.0.

When your agent uses it

  • Deploying changes to staging across relay
  • Relay-dashboard
  • Relay-cloud repos - coordinates multi-repo branch syncing using git worktrees
  • Automatically triggers staging deployments via GitHub Actions

Example prompts

  • “/deploying-to-staging-environment”

Requirements

  • Docker

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Isolation - Work on staging without changing main working directory state
  2. Safety - Feature branch checked out in worktree won't affect your current work
  3. Cleanliness - No lingering state changes after pushing
  4. Best practice - Standard DevOps approach for multi-branch operations

What it can do on your machine

Read from SKILL.md and the folder at commit 20ae3e3. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • curl
    • flyctl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • agent-relay-staging.fly.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • CROSS_REPO_TOKEN
    • FLY_API_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Deploying To Staging Environment loads about 3.2k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 815 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from AgentWorkforce/relay at commit 20ae3e3, republished under its Apache-2.0 licence (© AgentWorkforce). 815 words, ~3,246 tokens.

Download SKILL.mdSave it as .claude/skills/deploying-to-staging-environment/SKILL.md (or your agent's skills folder).
name
deploying-to-staging-environment
description
Use when deploying changes to staging across relay, relay-dashboard, and relay-cloud repos - coordinates multi-repo branch syncing using git worktrees, automatically triggers staging deployments via GitHub Actions

Deploying to Staging Environment

Overview

The staging environment deployment is a coordinated multi-repo process that synchronizes code across three repositories (relay, relay-dashboard, relay-cloud) and automatically triggers deployment via GitHub Actions. Staging deployments ensure feature verification before production while keeping main branch clean during development.

When to Use

  • Integrating features across repos - Multiple components depend on changes in different repos
  • Testing feature branches together - Verify feature branch changes don't break integration
  • Promoting main to staging - Standard sync to keep staging up-to-date with latest main
  • Verifying deployment readiness - Test infrastructure changes or deployment workflows
  • Cross-team coordination - Share feature branches for integration testing

When NOT to use:

  • Emergency hotfixes (use production deployment instead)
  • Single-repo changes only (push directly if not blocking other repos)
  • Testing without intent to deploy (use local environment instead)

Architecture

The staging deployment system consists of:

Three Repos (relay, relay-dashboard, relay-cloud)
    ↓
Staging Branches (synced via git push)
    ↓
relay-cloud staging push triggers GitHub Actions
    ↓
Deploy-Staging Workflow (deploy-staging.yml)
    ↓
Fly.io Staging Environment (agent-relay-staging)
    ↓
Automatic health check verification

Key details:

  • Each repo has independent staging branch
  • relay-cloud staging branch push triggers automatic deployment
  • Workflow accepts optional relay/dashboard branch overrides
  • Falls back to main if specified branch doesn't exist
  • Workspace image builds in parallel with API deployment

Quick Reference

Standard Workflow (All Repos)
bash
# 1. Create git worktree for staging work (BEST PRACTICE)
cd /data/repos/relay
git worktree add .worktrees/staging-push main
cd .worktrees/staging-push

# 2. Push latest main to staging (fetch fresh)
git fetch origin main:main
git push origin main:staging

# 3. Or push current feature branch to staging (if desired)
git fetch origin feature/your-branch:feature/your-branch
git push origin feature/your-branch:staging

# 4. Clean up worktree
cd /data/repos/relay
git worktree remove .worktrees/staging-push
Relay-Dashboard
bash
cd /data/repos/relay-dashboard
git worktree add .worktrees/staging-push main
cd .worktrees/staging-push
git fetch origin main:main
git push origin main:staging
cd /data/repos/relay-dashboard
git worktree remove .worktrees/staging-push
Relay-Cloud (Triggers Deployment)
bash
cd /data/repos/relay-cloud
git worktree add .worktrees/staging-push main
cd .worktrees/staging-push
git fetch origin main:main
git push origin main:staging
# ⚠️ This push triggers deploy-staging.yml workflow
cd /data/repos/relay-cloud
git worktree remove .worktrees/staging-push

Implementation

Why Git Worktrees?

Git worktrees provide several benefits for staging workflows:

  1. Isolation - Work on staging without changing main working directory state
  2. Safety - Feature branch checked out in worktree won't affect your current work
  3. Cleanliness - No lingering state changes after pushing
  4. Best practice - Standard DevOps approach for multi-branch operations
Step-by-Step Deployment Process
Prerequisites
  • Access to all three repos with push permission
  • Current working directory: one of the repos
  • No uncommitted changes blocking worktree creation
Execute Staging Push Across All Repos

Step 1: Relay

bash
cd /data/repos/relay
git worktree add .worktrees/staging-push main
cd .worktrees/staging-push
git fetch origin main:main
git push origin main:staging
cd /data/repos/relay
git worktree remove .worktrees/staging-push

Expected output:

Updated 'main' to 'origin/main'
remote: Create pull request for staging...
To github.com:AgentWorkforce/relay.git
 [new branch]      main -> staging
or
 * [up-to-date]    main -> staging

Step 2: Relay-Dashboard

bash
cd /data/repos/relay-dashboard
git worktree add .worktrees/staging-push main
cd .worktrees/staging-push
git fetch origin main:main
git push origin main:staging
cd /data/repos/relay-dashboard
git worktree remove .worktrees/staging-push

Step 3: Relay-Cloud (Triggers Deployment)

bash
cd /data/repos/relay-cloud
git worktree add .worktrees/staging-push main
cd .worktrees/staging-push
git fetch origin main:main
git push origin main:staging
# Deployment starts automatically!
cd /data/repos/relay-cloud
git worktree remove .worktrees/staging-push
Verify Deployment

After pushing relay-cloud, GitHub Actions starts automatically:

  1. Watch workflow progress:

  2. Verify health check:

    • Workflow runs curl https://agent-relay-staging.fly.dev/health
    • Expected: 200 response within 150 seconds
    • Retries 30 times with 5-second intervals
  3. Check deployment summary:

    • Click workflow run
    • View "Deployment Summary" in step summary
    • Confirms deployment to agent-relay-staging
Pushing Feature Branches to Staging

Instead of main, push a specific feature branch:

bash
cd /data/repos/relay
git worktree add .worktrees/staging-push main
cd .worktrees/staging-push
git fetch origin feature/your-feature:feature/your-feature
git push origin feature/your-feature:staging
cd /data/repos/relay
git worktree remove .worktrees/staging-push

For relay-cloud with custom relay/dashboard branches:

The deploy-staging.yml workflow accepts optional inputs to specify exact branches:

bash
# Push relay-cloud staging (will trigger GitHub Actions with inputs)
cd /data/repos/relay-cloud
git worktree add .worktrees/staging-push main
cd .worktrees/staging-push
git fetch origin feature/custom-branch:feature/custom-branch
git push origin feature/custom-branch:staging
cd /data/repos/relay-cloud
git worktree remove .worktrees/staging-push

Then manually trigger with specific branches:

Common Mistakes

MistakeProblemFix
Pushing from dirty working treeWorktree creation fails with errorCommit or stash changes before creating worktree
Forgetting to remove worktreeAccumulates worktree directoriesAlways run git worktree remove .worktrees/staging-push after pushing
Pushing staging without relay/dashboardDeployment uses outdated relay/dashboardCoordinate all three repos or use GitHub Actions inputs to override
Not fetching fresh refPushes stale local branch stateAlways git fetch origin branch:branch before pushing
Confusing staging branch directionPush main→staging, not staging→mainRemember: feature work → staging branch, for promotion/testing
Assuming all repos auto-syncrelay/dashboard changes don't auto-triggerOnly relay-cloud staging push triggers deployment
Not checking health statusDeployment may fail silentlyAlways verify workflow completes and health check passes
Creating worktrees in wrong directoryPath confusion for multiple reposEach repo is separate; create worktrees within that repo's .worktrees/
Show full SKILL.md (274 more words)Show less

Workflow Details

deploy-staging.yml Behavior

Triggers:

  • Manual push to staging branch (automatic)
  • GitHub Actions workflow_dispatch (manual with optional inputs)

Optional Workflow Inputs:

  • relay_branch - Override which relay branch to deploy (defaults to current staging branch)
  • dashboard_branch - Override which relay-dashboard branch to deploy (defaults to current staging branch)
  • Falls back to main if specified branch doesn't exist in remote

Deployment Steps:

  1. Checkout relay-cloud repository
  2. Determine relay branch (input or current, fallback to main)
  3. Determine dashboard branch (input or current, fallback to main)
  4. Setup Fly CLI
  5. Deploy to Fly.io with flyctl deploy
  6. Verify health check endpoint
  7. Create deployment summary

Environment: staging (requires GitHub Actions environment secrets)

Deployment Success Criteria

✅ All checks passed:

  • "Deploy to Staging" job completes
  • "Build Staging Workspace" job completes
  • Health check succeeds (HTTP 200 from /health endpoint)
  • Deployment summary shows all expected values

❌ Deployment failed:

  • Workflow run shows red X
  • Check step that failed in workflow logs
  • Common failures: auth (secrets), health check timeout, Docker build error

Real-World Workflow

Scenario: Feature across all three repos ready for integration testing

bash
# 1. Ensure local main branches are up-to-date
cd /data/repos/relay
git fetch origin main

cd /data/repos/relay-dashboard
git fetch origin main

cd /data/repos/relay-cloud
git fetch origin main

# 2. Push relay main to staging (using worktree)
cd /data/repos/relay
git worktree add .worktrees/staging-push main
cd .worktrees/staging-push
git push origin main:staging
cd ..
git worktree remove .worktrees/staging-push

# 3. Push relay-dashboard main to staging
cd /data/repos/relay-dashboard
git worktree add .worktrees/staging-push main
cd .worktrees/staging-push
git push origin main:staging
cd ..
git worktree remove .worktrees/staging-push

# 4. Push relay-cloud main to staging (triggers deployment)
cd /data/repos/relay-cloud
git worktree add .worktrees/staging-push main
cd .worktrees/staging-push
git push origin main:staging
cd ..
git worktree remove .worktrees/staging-push

# 5. Monitor deployment
echo "Check: https://github.com/AgentWorkforce/relay-cloud/actions"
# Wait for "Deploy (Staging)" workflow to complete
# Verify health check passes
# Access staging at: https://agent-relay-staging.fly.dev

Troubleshooting

Worktree Errors

Error: "fatal: 'main' already exists"

Solution: git worktree remove .worktrees/staging-push
         (if worktree from previous run still exists)

Error: "fatal: cannot checkout branch into locked working tree"

Solution: Ensure main branch isn't checked out in primary working tree
         git status (confirm different branch is checked out)
Deployment Failures

Health check timeout after 150s

Problem: Staging environment took too long to become healthy
Solution: - Check Fly.io logs: flyctl logs --app agent-relay-staging
         - Restart app: flyctl restart --app agent-relay-staging
         - Check for build errors in workflow logs
         - Look for startup errors in deployment step

Docker build fails

Problem: "Build Staging Workspace" job failed
Solution: - Check docker-staging.yml workflow logs
         - Verify Dockerfile exists and is valid
         - Check for resource/dependency issues
         - Rebuild locally to verify docker configuration

Branch not found fallback to main

Problem: Workflow says "using main" for your custom branch
Reason: Specified branch doesn't exist in relay/relay-dashboard
Solution: - Verify branch name is exact (case-sensitive)
         - Ensure branch exists in remote (git ls-remote origin)
         - Use GitHub Actions workflow_dispatch with correct inputs

Dependencies & Requirements

Git: Worktree feature (Git 2.5+, standard on all modern systems)

Permissions: Push access to all three repos:

  • github.com:AgentWorkforce/relay
  • github.com:AgentWorkforce/relay-dashboard
  • github.com:AgentWorkforce/relay-cloud

GitHub Secrets (relay-cloud):

  • CROSS_REPO_TOKEN - PAT with repo access across all three repos
  • FLY_API_TOKEN or FLY_API_TOKEN_STAGING - Fly.io deployment token

Environment: staging (configured in relay-cloud)


Key Principle: Use git worktrees for clean, isolated branch operations. Push coordination across repos, with relay-cloud staging push triggering automatic deployment.

© AgentWorkforce, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/deploying-to-staging-environment of AgentWorkforce/relay.

Open the folder on GitHubat commit 20ae3e3

Compare with similar skills

Deploying To Staging Environment next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Deploying To Staging Environment compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Deploying To Staging Environment this skillAgentWorkforce/relay866—~3.2kAutomated safety check: PassApache-2.0
Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit2606 repos~1.1kAutomated safety check: NotesCustom licence
AI News RadarLearnPrompt/ai-news-radar1.8k—~2.5kAutomated safety check: NotesMIT
Use Vercel Actionamondnet/vercel-action764—~2.7kAutomated safety check: PassMIT
NGINX Ingress CI Pipelinesnginx/kubernetes-ingress5.1k—~5kAutomated safety check: PassApache-2.0
Prepare Cloudflare Production DeploymentLubomirGeorgiev/cloudflare-workers-nextjs-saas-template786—~5.9kAutomated safety check: NotesMIT

Similar skills

  • Senior DevOps Toolkit

    maslennikov-ig/claude-code-orchestrator-kit

    Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…

    260 GitHub starsUsed in 6 repos~1.1k tokens
    DevOps & CloudAuto-check: notes
  • AI News Radar

    LearnPrompt/ai-news-radar

    A skill your agent uses when working on AI News Radar, 24 小时 AI 更新雷达, AI 更新雷达, 伯乐Skill, or Scout Skill: finding high-signal AI/tech sources, adding RSS/OPML/GitHub feeds, checking source health…

    1.8k GitHub stars~2.5k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Use Vercel Action

    amondnet/vercel-action

    Wire amondnet/vercel-action into a GitHub Actions workflow to deploy Vercel projects from CI.

    764 GitHub stars~2.7k tokensUpdated 2 mo ago
    DevOps & CloudAuto-check passed
  • NGINX Ingress CI Pipelines

    nginx/kubernetes-ingress

    Explains how the NGINX Ingress Controller's GitHub Actions workflows, reusable workflows, build matrices and release pipeline fit together across two repositories.

    5.1k GitHub stars~5k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Prepare Cloudflare Production Deployment

    LubomirGeorgiev/cloudflare-workers-nextjs-saas-template

    Source-of-truth runbook for preparing this Vinext Cloudflare Workers SaaS template for production deployment.

    786 GitHub stars~5.9k tokensUpdated yesterday
    DevOps & CloudAuto-check: notes
  • Deployments Cicd

    vercel/vercel-plugin

    Official

    Vercel deployment and CI/CD expert guidance. An agent skill from vercel/vercel-plugin.

    301 GitHub starsUsed in 1 repo~3k tokens
    DevOps & CloudAuto-check passed

More from AgentWorkforce/relay

All 14 skills in this repo
  • A skill your agent uses when testing web applications with visual verification - automates Chrome browser interactions, element selection, and screenshot capture for confirming UI functionality

    866 GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed
  • Agent Relay

    AgentWorkforce/relay

    A skill your agent uses when you need Codex to coordinate multiple agents through Agent Relay for peer-to-peer messaging, lead/worker handoffs, or shared status tracking across sub-agents and…

    866 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Debugging Websocket Issues

    AgentWorkforce/relay

    A skill your agent uses when seeing WebSocket errors like "Invalid frame header", "RSV1 must be clear", or "WSERRUNEXPECTEDRSV1" - covers multiple WebSocketServer conflicts, compression issues, and…

    866 GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed
  • GitHub OAuth Nango Integration

    AgentWorkforce/relay

    A skill your agent uses when implementing GitHub OAuth + GitHub App authentication with Nango - provides two-connection pattern for user login and repo access with webhook handling

    866 GitHub starsUsed in 1 repo~3.4k tokens
    Auto-check passed
  • Implementing Command Palettes

    AgentWorkforce/relay

    A skill your agent uses when building Cmd+K command palettes in React - covers keyboard navigation with arrow keys, keeping selected items in view with scrollIntoView, filtering with shortcut…

    866 GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Setting Up Relayfile

    AgentWorkforce/relay

    A skill your agent uses when an agent or human needs to set up relayfile end-to-end so agents can read and write provider files through a local mount.

    866 GitHub starsUsed in 1 repo~3.3k tokens
    Auto-check passed

Works with

Categories

Questions about Deploying To Staging Environment

What does Deploying To Staging Environment do?

A skill your agent uses when deploying changes to staging across relay, relay-dashboard, and relay-cloud repos - coordinates multi-repo branch syncing using git worktrees, automatically triggers…. Deploying To Staging Environment is an agent skill from AgentWorkforce/relay.

When should I use Deploying To Staging Environment?

Deploying To Staging Environment fits situations like: deploying changes to staging across relay; relay-dashboard; relay-cloud repos - coordinates multi-repo branch syncing using git worktrees; automatically triggers staging deployments via GitHub Actions.

How do I install Deploying To Staging Environment in Claude Code?

Run `npx skills add AgentWorkforce/relay --skill deploying-to-staging-environment -a claude-code`. Or copy the skill folder (.claude/skills/deploying-to-staging-environment in AgentWorkforce/relay) into .claude/skills/deploying-to-staging-environment in your project. Claude Code loads it when a task matches its description.

How do I install Deploying To Staging Environment in Codex?

Run `npx skills add AgentWorkforce/relay --skill deploying-to-staging-environment -a codex`. Or copy the skill folder (.claude/skills/deploying-to-staging-environment in AgentWorkforce/relay) into .agents/skills/deploying-to-staging-environment in your project. Codex loads it when a task matches its description.

Can I use Deploying To Staging Environment in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgentWorkforce/relay --skill deploying-to-staging-environment -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/deploying-to-staging-environment, .gemini/skills/deploying-to-staging-environment, .github/skills/deploying-to-staging-environment and .opencode/skills/deploying-to-staging-environment in your project.

What does Deploying To Staging Environment need to run?

Going by SKILL.md and its folder, Deploying To Staging Environment needs the command-line tools its instructions call (git, curl and flyctl) and credentials named CROSS_REPO_TOKEN and FLY_API_TOKEN. Our summary lists: Docker.

Does Deploying To Staging Environment access the network?

SKILL.md names 2 domains. In commands or code: github.com and agent-relay-staging.fly.dev; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Deploying To Staging Environment safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Deploying To Staging Environment use?

Deploying To Staging Environment is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Deploying To Staging Environment use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Deploying To Staging Environment?

Skills that share tags, products or a category with Deploying To Staging Environment: Senior DevOps Toolkit (maslennikov-ig/claude-code-orchestrator-kit, 260 stars), AI News Radar (LearnPrompt/ai-news-radar, 1.8k stars), Use Vercel Action (amondnet/vercel-action, 764 stars) and NGINX Ingress CI Pipelines (nginx/kubernetes-ingress, 5.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Deploying To Staging Environment?

AgentWorkforce (a GitHub organization) maintains it in AgentWorkforce/relay, which has 866 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 8, 2026.

Source: AgentWorkforce/relay on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.