ct-artifact-publisher

ct-artifact-publisher is a skill for Claude Code, Codex from kryptobaseddev/cleo. It costs 124 tokens per session (1,968 once invoked), scanned A, original, MIT.

A release workflow for building and publishing packages and other release files to registries such as npm, PyPI, Cargo, Docker, and GitHub Releases. It validates the configuration, tests the build with a dry run, creates checksums, publishes the artifacts, and records their origin.

In plain words
What is it for?
Use it to release JavaScript, Python, Rust, container, GitHub, or packaged tarball artifacts as part of a larger release process.
Why use it?
It reduces the risk of publishing a broken or unverified release by checking the inputs and build before anything is uploaded. It also leaves a record of what was published.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to release JavaScript, Python, Rust, container, GitHub, or packaged tarball artifacts as part of a larger release process.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/kryptobaseddev/cleo/ct-artifact-publisher
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add kryptobaseddev/cleo --skill ct-artifact-publisher
Clone the repo
git clone --depth 1 https://github.com/kryptobaseddev/cleo

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ct-artifact-publisher

README.md
[![agentmods](https://agentmods.dev/badge/skills/kryptobaseddev/cleo/ct-artifact-publisher/github.svg)](https://agentmods.dev/skills/kryptobaseddev/cleo/ct-artifact-publisher)
Your own site
<a href="https://agentmods.dev/skills/kryptobaseddev/cleo/ct-artifact-publisher"><img src="https://agentmods.dev/badge/skills/kryptobaseddev/cleo/ct-artifact-publisher/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for ct-artifact-publisher

Your own site · 80×15
<a href="https://agentmods.dev/skills/kryptobaseddev/cleo/ct-artifact-publisher"><img src="https://agentmods.dev/badge/skills/kryptobaseddev/cleo/ct-artifact-publisher.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 124 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,968 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00124 $0.01968
Opus 5.5 $0.00050 $0.00787
Sonnet 5.5 $0.00025 $0.00394
Haiku 4.5 $0.00012 $0.00197

Measured 21d ago against content hash a75bf0d8b181, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

ct-artifact-publisher scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 21d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

packages/skills/skills/ct-artifact-publisher/SKILL.md · 155 lines

How it starts

The opening of the file, as written. The whole thing — 155 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Artifact Publisher

Overview

Sub-protocol of ct-release-orchestrator. Runs the build-then-publish pipeline for every enabled artifact in release.artifacts[]: pre-validates the config, dry-runs each build, produces SHA-256 checksums, publishes sequentially, and delegates signing plus attestation to ct-provenance-keeper. Handles nine artifact types via a uniform handler interface.

Core Principle

Every artifact gets a checksum, a dry-run, and a rollback plan.

Immutable Constraints

ID Rule Enforcement
ARTP-001 Artifact config MUST be validated before build. validate_artifact() must return 0 before build_artifact() runs; exit 86.
ARTP-002 Dry-run MUST execute before any real publish. Pipeline halts if dry-run fails; exit 86.
ARTP-003 Every handler MUST implement {prefix}_validate, {prefix}_build, {prefix}_publish. Missing handler function exits 85.
ARTP-004 SHA-256 checksums MUST be generated for every built artifact. Missing checksum blocks publish.
ARTP-005 Provenance metadata MUST be recorded via record_release() after publish. Composition handoff to ct-provenance-keeper.
ARTP-006 Multi-artifact publish MUST execute sequentially. No parallel publishes; prevents race conditions.
ARTP-007 Manifest entry MUST set agent_type: "artifact-publish". Validator rejects any other value.
ARTP-008 Credentials MUST NOT appear in config, output, or manifest. Agents declare env vars by name only; actual values stay in the environment.
ARTP-009 Pipeline MUST halt and attempt rollback on the first publish failure. Exit 88 on rollback success, exit 89 on rollback failure.

Supported Artifact Types

Nine registered handler types cover the common publishing surface. Each has a default build and publish command that the handler can override via config.

Type Build command (default) Publish command (default) Registry
npm-package (none, npm publish reads files) npm publish npmjs.org
python-wheel python -m build twine upload dist/* pypi.org
python-sdist python -m build --sdist twine upload dist/* pypi.org
go-module go mod tidy (tag push triggers proxy) proxy.golang.org
cargo-crate cargo build --release cargo publish crates.io
ruby-gem gem build *.gemspec gem push *.gem rubygems.org
docker-image docker build -t <ref> . docker push <ref> configurable (OCI)
github-release (none) gh release create github.com
generic-tarball tar czf ... (custom) configurable

Read the full file on GitHub · 155 lines

Files

What ships with it

3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 21d ago Changed · +3 lines a75bf0d8b181
  2. 22d ago Changed · +5 lines 4d9abab9db23
  3. 1mo ago First seen · 147 lines · 124 tokens per session scan A 411b0508011b

Subscribe to this mod's changes

ct-artifact-publisher is a skill published in the GitHub repository kryptobaseddev/cleo (159 stars, last pushed yesterday), licensed MIT. It adds 124 tokens to every session and 1,968 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.