Publishing
SkillAI & modelsLets your agent publish agent profiles to a registry and manage their versions, visibility, tags, and source recovery.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Publishing skill
About this skill
Publish a profile to the registry, manage its versions, visibility and tags, and recover its source. Use when the user is ready to push, wants to unpublish or re-scope a profile, or lost the local source of one they own.
What this skill tells your AI
The instructions your AI receives, as published by nota-america/forgecat-agent-profiles in profiles/forgecat/forgecat-profile-manager/for-forgecat/skills/forgecat-publish/SKILL.md and read by ahel’s review.
1. push is the first real test
A local path can't be installed — the CLI answers "Only registry sources are supported." So the first time anyone sees where the files actually land is after publishing. Plan for that:
push private → view → install it yourself → then flip to public
That way a wrong layout costs a version number, not a public release.
2. Before
forgecat whoami # right account, right scope
forgecat validate && forgecat plan # schema clean, layout as intended
The scope in name: must be one the account owns.
3. push
forgecat push --bump minor
forgecat push --set-version 1.0.0
forgecat push --visibility private --tags "skills,review"
push assigns the version — don't write one into profile.yml (deprecated and
ignored). --visibility is required to publish public non-interactively, --tags
only seeds on the first push, --json is for automation, and -y is auto-detected
when there is no TTY.
Before uploading it prints the file list and a tarball summary — count, size, integrity hash. That's the last honest look at what you're shipping; read it.
It also runs a local pre-flight scan (Security scan passed). Don't confuse that
with the registry's evaluation — the local one gates your upload, the registry's runs
afterwards and gates everyone's install.
4. After
Evaluation is asynchronous and typically finishes in well under a minute. Poll
forgecat view <profile> until the four risk axes replace
pending (not yet evaluated), then install it for real. Until then installs are
refused, and --force does nothing about it — that gate answers only to
--allow-unevaluated.
5. Recovering source (owner-only)
forgecat clone @scope/name --out ./work # first time
forgecat pull --out ./work # refresh to the registry's latest
clone drops a .forgecat-source.json beside the files recording the profile, the
version you took, and the file list. pull reads it to know what to refresh, and
always fetches latest by name — it is a one-way re-fetch, not a merge. --force
overwrites your local edits and nothing reconciles them.
Both work non-interactively with -y.
6. Taking it back
forgecat unpublish @scope/name@0.2.0 # one version
forgecat unpublish @scope/name # everything — types the name to confirm
forgecat visibility @scope/name private
forgecat tag add|remove|list @scope/name <tags...>
Unpublishing the last remaining version archives the whole profile in the same transaction. Already-installed copies keep working — this pulls it from the Vault, it doesn't reach into anyone's forge.
Verify
forgecat view @scope/name
🐾 Marked. name@version is in the Vault.
Signals
- GitHub stars
- 85
- Forks
- 5
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
forgecat-publish- Source
- github.com/nota-america/forgecat-agent-profiles