aireg with the Atlan adapter to publish the skills whose files changed. Use it when a team maintains several skills in one repository and wants every published version to come from a reviewed merge. To publish one skill from your own terminal instead, see Publish skills with aireg.
The example pins
aireg and the Atlan adapter independently. Check both versions when upgrading an existing SkillSync workflow.Before you begin
Before you start, make sure you have:- Repository: A GitHub repository with Actions enabled and a protected publish branch, normally
main. - Skill folders: One or more folders, each with a case-sensitive
SKILL.mdfile at its root. - Workspace administration: Permission to administer the destination workspace, so you can grant an API key access to it.
1
Find destination workspace
The workflow names the destination workspace by its name, as
aireg registry show atlan lists it.To find it from a script instead, list the workspaces your identity can see with GET /registry/v1/workspaces, or client.workspaces.list() in the Workspaces. To copy a workspace’s ID, open the workspace in Atlan Trident desktop app, open its More actions (⋯) menu at the top of the page, and select Copy workspace ID.In GitHub, protect the branch the workflow will name. Require reviewed pull requests and prevent direct pushes. Protect changes to .github/workflows/** through the repository’s normal code-ownership process.2
Add publish credential
Create a dedicated API key in Atlan Trident:Creating an Environment without the job-level
- Open Settings, then select API keys.
- Select New API key to create a key, or select an existing key.
- Grant the key access to the destination workspace. When creating a key, select the workspace; for an existing key, add the workspace access before using it.
- Copy the key value. It is shown only when the key is created. The dialog stays open until you select I’ve stored the API key somewhere safe, then Done. The same dialog shows the date the key expires. Before then, select Rotate on the key and save the new value as the
ATLAN_API_KEYsecret.
ATLAN_API_KEY with the key value. Do not put the key in the workflow file, logs, or screenshots. The workflow hands it to aireg as AIREG_TOKEN_ATLAN, a variable named AIREG_TOKEN_ followed by the registry’s name in capitals. aireg uses it for that run and never stores it; an API key works this way, not with aireg auth login.To add an approval gate, create a GitHub Environment such as atlan-publish, store ATLAN_API_KEY as an Environment secret, configure its required reviewers and allowed branches, and bind the publish job to it:environment setting does not gate the workflow or expose its Environment secret to the job.3
Add publish workflow
Create Replace
.github/workflows/atlan-skill-sync.yml:main with the exact branch your branch protection protects, and release-tools with the workspace’s name. An ID also works, but aireg then lists every skill as add. Keep the paths filter and the aireg publish glob aligned with your skill folders, and repeat the aireg publish line once per workspace to publish to more than one.On the first push to a branch there is no previous commit, so the workflow publishes every skill. The workflow pins aireg 0.1.3 and Atlan adapter 0.1.5, verifies the binary checksum before execution, and disables automatic update checks for that run. When upgrading, update the version and checksum together. The install step gets no credential; only the publish step reads the secret. For how globs and --changed-since work, and why the checkout needs fetch-depth: 0, see aireg publish in the aireg CLI reference.4
Review changes in pull requests
Review the full pull request diff, including references, templates, scripts, and assets inside each skill folder, before you merge. An automated pull request report (preflight) is not available with
aireg yet. Do not give the publish credential to a workflow that runs on pull requests.5
Verify publishing
Merge the pull request into the protected branch, open the Sync skills to Atlan workflow run, and confirm that it:
- Installs
airegand the Atlan adapter. - Lists each skill whose files changed as
addorupdate, orsamewhen Atlan already serves those files. - Prints
Published …. It fails if Atlan Trident refuses a skill, for exampleblocked <name>: its security scan rejected this skill, so it was not published.
aireg does not wait for or report the security scan, and a new version stays unavailable until its scan and any review pass. Open the skill in Atlan Trident and inspect Source. When the checkout has an origin remote, aireg records the repository and the skill’s folder with each version. If the run failed, see Skill errors.Recording a source repository does not archive a skill when its folder is deleted from Git. Review deleted skills and Archive skill when they should no longer be served.6
Run same publish locally (optional)
With
aireg set up for Atlan (see Use aireg with Atlan), preview and run the same publish from a checkout:Keep an agent in sync too
An agent can live under the same source of truth. Its definition is a folder with anAGENT.md file — front matter with name and description, and the prompt as the body — plus the files beside it that it needs; a repository that already defines an agent as a single file under .claude/agents/ keeps that shape. Set the sync up with /atlan-link-skill: it exports the folder in the repository manifest .registry/manifest.yml, with depends_on naming the skills the agent uses, and CI publishes the agent and its files on every merge, at the same paths. Publishing an agent this way needs Atlan adapter 0.1.17 or later. The pull request’s preview shows what each merge publishes.
What the folder does not hold, CI leaves as it is: the model, tools, framework, provider, step limit, and public URL. Set those once after the first publish. An edit in Atlan Trident to the agent’s instructions, files, or skill pins does not last: the next merge publishes the repository’s version over them. See Atlan commands and skills for coding agents for what /atlan-link-skill and /atlan-link-agent do.
Troubleshooting
If the workflow cannot find a commit, fails to authenticate, publishes to the wrong workspace, fails to installaireg, or reports a blocked scan, see Skill errors.
Next steps
- Release skill version: Choose which published version a channel serves.
See also
- Publish skills with aireg: Publish one skill from a terminal.
- Atlan CLI errors: Every error
airegreports for Atlan.