CI Pipeline Synthesizer
kajisho5/ffmpeg-skill
Generate GitHub Actions CI/CD pipeline configurations for automated building and testing of library and package projects.
Walks through releasing a GAIA sidecar agent as a frozen binary plus npm client through the tag-triggered Agent Hub CI pipeline, with a human gate before publishing.
$ npx skills add amd/gaia --skill agent-hub-release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install amd/gaia agent-hub-release --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/agent-hub-release .claude/skills/agent-hub-release && rm -rf skills-srcUse ~/.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/
Install the "agent-hub-release" agent skill from https://github.com/amd/gaia/tree/main/.claude/skills/agent-hub-release into .claude/skills/agent-hub-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-hub-release", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/amd/gaia/tree/main/.claude/skills/agent-hub-releaseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add amd/gaia --skill agent-hub-release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install amd/gaia agent-hub-release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/agent-hub-release .agents/skills/agent-hub-release && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "agent-hub-release" agent skill from https://github.com/amd/gaia/tree/main/.claude/skills/agent-hub-release into .agents/skills/agent-hub-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-hub-release", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add amd/gaia --skill agent-hub-release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install amd/gaia agent-hub-release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/agent-hub-release .cursor/skills/agent-hub-release && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "agent-hub-release" agent skill from https://github.com/amd/gaia/tree/main/.claude/skills/agent-hub-release into .cursor/skills/agent-hub-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-hub-release", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/amd/gaia.git --path .claude/skills/agent-hub-release--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add amd/gaia --skill agent-hub-release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install amd/gaia agent-hub-release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/agent-hub-release .gemini/skills/agent-hub-release && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "agent-hub-release" agent skill from https://github.com/amd/gaia/tree/main/.claude/skills/agent-hub-release into .gemini/skills/agent-hub-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-hub-release", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install amd/gaia agent-hub-releaseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add amd/gaia --skill agent-hub-release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/agent-hub-release .github/skills/agent-hub-release && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "agent-hub-release" agent skill from https://github.com/amd/gaia/tree/main/.claude/skills/agent-hub-release into .github/skills/agent-hub-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-hub-release", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add amd/gaia --skill agent-hub-release -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install amd/gaia agent-hub-release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/agent-hub-release .opencode/skills/agent-hub-release && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "agent-hub-release" agent skill from https://github.com/amd/gaia/tree/main/.claude/skills/agent-hub-release into .opencode/skills/agent-hub-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-hub-release", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
agent-hub-releaseWalks through releasing a GAIA sidecar agent as a frozen binary plus npm client through the tag-triggered Agent Hub CI pipeline, with a human gate before publishing.
This skill walks through releasing a GAIA sidecar agent: a frozen, Python-free REST binary plus a thin npm client, shipped to the GAIA Agent Hub and to npm through a tag-triggered CI release. The email agent is the reference implementation, with its Python and npm folders and release_agent_email.yml. The pipeline freezes the binary with PyInstaller per operating system, publishes through the Agent Hub Worker and releases the npm package through OIDC.
It is a phased process with one hard human gate, the agent-publish environment, and the agent is told to stop and confirm before anything irreversible such as pushing a release tag or approving the publish. Publishes are immutable per filename, so a bad release is fixed with a new version. The skill says the email pipeline has not yet cut a real release and its lock file still holds placeholder hashes, so it describes a design rather than a proven path. It defers to docs/guides/hub-publishing.mdx for the standard wheel and PyPI route.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 05fb50b. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npmgitghFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
hub.amd-gaia.aiFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GAIA_HUB_TOKENAGENT_HUB_PUBLISH_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
GAIA Sidecar Agent Release loads about 3.6k tokens when it runs. Until then it costs about 106 tokens; SKILL.md has 1,623 words of instructions outside code blocks.
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.
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.
The full file from amd/gaia at commit 05fb50b, republished under its MIT licence (© amd). 1,623 words, ~3,644 tokens.
.claude/skills/agent-hub-release/SKILL.md (or your agent's skills folder).How to ship a sidecar agent — a frozen, no-Python REST binary plus a thin npm
client — to the GAIA Agent Hub and npm, via the tag-triggered CI release. The
email agent is the reference: hub/agents/email/python/ +
hub/agents/email/npm/ + .github/workflows/release_agent_email.yml.
This is a phased process with one hard human gate (the agent-publish
environment). Stop and confirm before anything irreversible — pushing a release
tag, approving the publish gate. Publishes are immutable per filename: a bad
release is fixed by a new version, never an overwrite.
Status — the email pipeline has not yet cut a real release.
hub/agents/email/npm/binaries.lock.jsonstill carries placeholderPENDING-1648hashes and #1648 is open, so the freeze→publish→fetch-verify path has never run end-to-end. Treat this skill as the design of record, not a paved road, until the first real release lands and fills the lock. Likewise theagent-publishenvironment +GAIA_HUB_TOKEN+ hub vars are maintainer setup (workflow header) — verify they exist before relying on them.
docs/guides/hub-publishing.mdx is the
author-facing guide for the standard distribution: a Python wheel published
to the Hub + PyPI via gaia agent publish (or the no-token PR route). It owns the
authoritative rules for the manifest, versioning, immutability, and the two
publish routes — don't restate or contradict them here.
This skill covers the additional channel an agent like email layers on top: a
frozen native binary + an @amd-gaia/agent-<id> npm client, released through
release_agent_<id>.yml. An agent can ship one or both channels. Where the two
overlap (manifest, version rules), the guide is the source of truth.
Releasing an agent that has never shipped before? Cutting the release is the
last phase. An agent is not release-ready because its code runs — it needs a
capability-truth audit, a real scorecard, the doc bundle, and a day-one usability
check first. Use porting-agent-to-hub for
that flow, then come back here for the lane itself.
freeze.py (PyInstaller, native per-OS, no cross-compile)
└─ email-agent-<platform>[.exe] ← one-file binary, boots a FastAPI REST sidecar
└─ POST /publish → Agent Hub Worker (workers/agent-hub/) ── R2 bucket "gaia-hub"
• stores each object IMMUTABLY under agents/<id>/<ver>/<file>
• computes SHA-256 server-side
• rebuilds index.json (the catalog the website reads)
download = plain public GET at hub.amd-gaia.ai/agents/<id>/<ver>/<file>
└─ @amd-gaia/agent-<id> (npm) ← typed client + fetch CLI + sidecar lifecycle
• binaries.lock.json maps platform → {filename, sha256, size}; the SHA-256
is the integrity gate the fetch CLI enforces on download
• published via npm OIDC trusted publishing (provenance, NO npm token)The Worker fronts the bucket; CI never touches R2 directly — it POSTs to
/publish so uploads are server-checksummed and the catalog is rebuilt atomically.
The manifest + README ride along inside the publish.
On top of the normal agent package (manifest + code + README + pyproject.toml,
per the guide), a sidecar agent adds:
| Path | Role |
|---|---|
hub/agents/<id>/python/packaging/ | freeze.py, smoke_test.py, server.py, gen_binaries_lock.py, publish_to_r2.py, HUB-UPLOAD.md (manual fallback) |
hub/agents/<id>/npm/package.json | ESM-only client; exports . (Node) and ./client (browser-safe, client-only — landed in #1773) |
hub/agents/<id>/npm/binaries.lock.json | platform → artifact + sha256 + size + baseUrl (placeholders until the first release) |
hub/agents/<id>/npm/README.md (+ CHANGELOG.md) | client docs; CHANGELOG is recommended (Keep a Changelog), not required by publish |
hub/agents/<id>/npm/src/ | client.ts, client-entry.ts (browser entry, landed in #1773), fetch.ts, lifecycle, types.ts, errors.ts, cli.ts |
.github/workflows/release_agent_<id>.yml | the tag-triggered release (copy of release_agent_email.yml) |
Notes:
"type": "module"). Node consumers use the .
entry (fetch + spawn); browser/Electron renderers use ./client (client-only,
zero Node built-ins) — landed in #1773, documented by #1776.binaries.lock.json ships placeholder hashes until the first real release.
While a hash is a placeholder the fetch CLI is fail-loud — a bad binary can
never be fetched. For local dev, point the lifecycle helpers at a locally-frozen
binary instead of fetchBinary.gaia agent test --lint. Do not validate gaia-agent.yaml against
workers/agent-hub/schemas/manifest.schema.json — that is the Hub's server-side
aggregate schema and requires fields you never hand-write (versions,
latest_version, deprecated, security_tier, permissions).requirements.platforms uses
win-x64; binaries.lock.json + the CI matrix use win32-x64. Same agent, two
spellings — don't copy one into the other.The Resolve + validate release version step fails loudly unless all three are
identical:
workflow_dispatch input) — agent-pkg-<id>-v<version> → <version>hub/agents/<id>/npm/package.json → .versionhub/agents/<id>/python/gaia-agent.yaml → versionBump the Python side with gaia agent version patch|minor|major (it rewrites
gaia-agent.yaml + pyproject.toml + __init__.py together — bumping from the
gaia-agent.yaml value, ignoring whatever the npm package.json currently says),
then manually set the npm package.json to that same version — the release
tooling checks all three agree. (Heads up: they can already be out of sync — e.g. a
package.json ahead of gaia-agent.yaml — so a blind patch bumps the yaml base, not
the npm value; the manual npm sync is what actually reconciles them.) Add the
matching CHANGELOG.md entry too if the agent keeps one (recommended, not required by publish). binaries.lock.json's agentVersion
baseUrl are regenerated by CI — don't hand-edit them for a release.gaia agent version <bump>, sync the npm
package.json, add the CHANGELOG entry, merge to main (the workflow asserts the
release commit is a main ancestor — publishing is allowed only from main).hub/agents/<id>/npm/: npm ci && npm run build && npm test, and npm pack --dry-run to confirm README.md ships (and CHANGELOG.md, if you keep one).workflow_dispatch with the version):git tag agent-pkg-<id>-v<version> && git push origin --tagsagent-pkg-<id>-* (NOT v*) — it deliberately does not fire the
core publish.yml.win32-x64, darwin-arm64, linux-x64
required; darwin-x64 (Intel) best-effort — smoke-tests each, hashes it.
(The smoke test proves the binary boots and the REST route answers; with no
Lemonade in CI it does not exercise real LLM triage — a 502/timeout passes.)publish job pauses on the agent-publish environment
until a maintainer approves; the publish token isn't readable until then./publish → regenerate
binaries.lock.json with the real hashes → fetch-verify every published
object against the lock → npm publish via OIDC (provenance) → trigger
deploy_website.yml so the new catalog entry appears.Monitor with gh run watch. npm publish skips if that exact version already
exists; /publish is a verified 409 no-op for identical bytes.
gaia agent init, per the guide), then add
packaging/ and the hub/agents/<id>/npm/ client. Mirror email.freeze.py (its NAME = "email-agent" constant)
and publish_to_r2.py (the executable name + the email-agent- filename prefix it
parses) hardcode email-agent — copy + parameterize them for <id>.
gen_binaries_lock.py is already generic (driven by published.json + manifest
id); the agents/email hub prefix lives in the workflow's HUB_PREFIX env, not a
script.release_agent_email.yml → release_agent_<id>.yml and
change: PKG_DIR, MANIFEST, README, FREEZE_DIST, HUB_PREFIX
(agents/<id>), the tag trigger (agent-pkg-<id>-*), the artifact/frozen names,
and the npm package name in the verify/publish steps.@amd-gaia/agent-<id> against the
exact filename release_agent_<id>.yml. ⚠️ The OIDC subject is tied to the
filename — renaming the workflow later breaks publish.workflow_call release
workflow + scripts parameterized by <id>; the per-agent copy is interim.Per the workflow header (release_agent_email.yml), these are maintainer setup
— confirm each before the first release:
agent-publish with required reviewers; restrict its
deployment branches/tags to main and the agent-pkg-* tag pattern (a
main-only rule blocks the tag-triggered gate).GAIA_HUB_TOKEN — Agent Hub Bearer token matching an entry in the
Worker's PUBLISH_TOKENS, scoped to the agent's author. Define it as an
environment secret on agent-publish (not a repo secret) so it's unreadable
until the gate is approved. (The workflow maps it into the publish script's
AGENT_HUB_PUBLISH_TOKEN env var — same token, different name inside the script.)GAIA_HUB_BASE_URL — public Worker origin for downloads + the lock
baseUrl (default https://hub.amd-gaia.ai).GAIA_HUB_PUBLISH_URL — the Worker's workers.dev URL for uploads. The
free-plan WAF on the proxied hub.amd-gaia.ai custom domain blocks large binary
uploads (but not GETs). Required — the release fails loudly if it is unset (no
silent fallback to the custom domain).HUB_CATALOG_URL=https://hub.amd-gaia.ai so the website rebuild
reflects the new entry.409s on any re-POST of an existing
filename (it keys on the filename via head(), not a byte-compare). The publish
script then re-fetches and hashes the stored object: identical bytes → idempotent
no-op, a hash mismatch → fail loudly. Fix a bad release with a new version —
never an overwrite. (Same immutability the guide describes for id@version.)main.SCHEMA_VERSION MAJOR is the compat gate. Client and binary must agree on the
wire-contract MAJOR or startSidecar throws VersionMismatchError. Bump the npm
package and re-publish the binary together.darwin-x64 builds on macos-26-intel, then is verified on
macos-15-intel. If it fails/absent it's dropped (3-platform release) with a
loud ::warning::; Intel users get a clear "no binary for darwin-x64" install
error, never a placeholder one.publish_to_r2.py hashes each binary locally and the Worker
hashes it server-side; the script asserts they match on the 201 before that
(local, server-verified) hash is written to binaries.lock.json. The lock hash is
then the gate the npm fetch CLI enforces on download (PlatformError on a
placeholder, IntegrityError on a mismatch)./publish, CI re-fetches every object via
the npm fetch CLI and checks bytes-hash-to-lock (bounded retry for Cloudflare
edge propagation) before npm publish.index.json; the
publish job triggers deploy_website.yml on main. (A generic per-agent
auto-redeploy is still being wired — see the guide's Verify step.)hub/agents/<id>/python/packaging/HUB-UPLOAD.md documents the
by-hand rclone path to the gaia-hub bucket — identical objects + lock as CI..github/workflows/release_agent_email.yml — the canonical release workflow (its
header comments document the whole contract).docs/guides/hub-publishing.mdx — the author guide (manifest, versioning, wheel +
PR publish routes). The overlap's source of truth.hub/agents/email/python/gaia-agent.yaml — manifest reference.hub/agents/email/npm/{package.json,binaries.lock.json,README.md} —
client package reference.hub/agents/email/python/packaging/{freeze,smoke_test,publish_to_r2,gen_binaries_lock}.py,
HUB-UPLOAD.md — packaging + publish tooling.workers/agent-hub/{README.md,schemas/manifest.schema.json,src/} — the Worker, the
/publish contract, and the server-side aggregate schema.© amd, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/agent-hub-release of amd/gaia.
Open the folder on GitHubat commit 05fb50b
GAIA Sidecar Agent Release 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| GAIA Sidecar Agent Release this skillamd/gaia | 1.6k | — | ~3.6k | Automated safety check: Pass | MIT | |
| CI Pipeline Synthesizerkajisho5/ffmpeg-skill | 1.9k | 1 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Publish UI Package Releasecline/cline | 70k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| DDNS Build and Release MaintenanceNewFuture/DDNS | 4.7k | — | ~444 | Automated safety check: Pass | MIT | |
| Google Agents CLI Deploypifferologo/cloud-agents-cli | 129 | 1 repos | ~6k | Automated safety check: Pass | Apache-2.0 | |
| ClickUp CLI Release Processkrodak/clickup-cli | 121 | — | ~906 | Automated safety check: Warn | MIT |
kajisho5/ffmpeg-skill
Generate GitHub Actions CI/CD pipeline configurations for automated building and testing of library and package projects.
cline/cline
Validates and publishes the standalone @cline/ui npm package through its own release workflow, separate from the Cline SDK runtime packages.
NewFuture/DDNS
Maintains the DDNS project's GitHub Actions, Docker and Nuitka builds, packaging and release preparation without touching publishing credentials.
pifferologo/cloud-agents-cli
This skill should be used when the user wants to "deploy an agent", "deploy my ADK agent", "set up CI/CD", "configure secrets", "troubleshoot a deployment", or needs guidance on Agent Runtime, Cloud…
krodak/clickup-cli
Walks through releasing a new version of clickup-cli: pre-release checks, version bump, tagging, CI watch, release notes and the Homebrew update.
PEZ/epupp
Babashka scripting conventions for the Epupp project. An agent skill from PEZ/epupp.
amd/gaia
Adds a release eval scorecard to a GAIA hub agent by writing a harness adapter, running a real eval, and wiring the result into the agent's README and release gate.
amd/gaia
Mines local Claude Code session transcripts with a deterministic Python pipeline to show what the agent is actually used for, how often it fails and what it costs.
amd/gaia
Benchmarks AMD's GAIA agent against Claude Code and across models on quality, honesty, steps, tokens, time and real cost, using gaia eval tasks.
amd/gaia
Guides safe code changes by finding the right file with grep or semantic search, reading before editing, reproducing bugs first, and proving a fix with a real test run.
amd/gaia
Walks through scaffolding, writing and testing a new GAIA agent as a Python class with the SDK, from the base Agent subclass to registered tool methods.
amd/gaia
Turns a source document such as a README or spec into an executive slide deck as one self-contained HTML file that prints to PDF, one slide per page.
Categories
Walks through releasing a GAIA sidecar agent as a frozen binary plus npm client through the tag-triggered Agent Hub CI pipeline, with a human gate before publishing. This skill walks through releasing a GAIA sidecar agent: a frozen, Python-free REST binary plus a thin npm client, shipped to the GAIA Agent Hub and to npm through a tag-triggered CI release.yml.
GAIA Sidecar Agent Release fits situations like: releasing a sidecar agent under hub/agents/ to the Agent Hub and npm; onboarding a new sidecar agent to the release pipeline; authoring a release workflow file named after the agent; deciding what must be confirmed before pushing a release tag.
Run `npx skills add amd/gaia --skill agent-hub-release -a claude-code`. Or copy the skill folder (.claude/skills/agent-hub-release in amd/gaia) into .claude/skills/agent-hub-release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add amd/gaia --skill agent-hub-release -a codex`. Or copy the skill folder (.claude/skills/agent-hub-release in amd/gaia) into .agents/skills/agent-hub-release in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add amd/gaia --skill agent-hub-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agent-hub-release, .gemini/skills/agent-hub-release, .github/skills/agent-hub-release and .opencode/skills/agent-hub-release in your project.
Going by SKILL.md and its folder, GAIA Sidecar Agent Release needs the command-line tools its instructions call (npm, git and gh) and credentials named GAIA_HUB_TOKEN and AGENT_HUB_PUBLISH_TOKEN. Our summary lists: Maintainer setup of the agent-publish environment and GAIA_HUB_TOKEN.
SKILL.md names 1 domain. In commands or code: hub.amd-gaia.ai; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
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.
GAIA Sidecar Agent Release is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with GAIA Sidecar Agent Release: CI Pipeline Synthesizer (kajisho5/ffmpeg-skill, 1.9k stars), Publish UI Package Release (cline/cline, 70k stars), DDNS Build and Release Maintenance (NewFuture/DDNS, 4.7k stars) and Google Agents CLI Deploy (pifferologo/cloud-agents-cli, 129 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
amd (a GitHub organization) maintains it in amd/gaia, which has 1,580 GitHub stars. The repository holds 44 skills in this directory. The repository was last updated on October 8, 2026.
Source: amd/gaia on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.