ct-release-orchestrator

Orchestrates the full release pipeline: version bump, then changelog, then commit, then tag, then conditionally forks to artifact-publish and provenance based on release config. Parent protocol that composes ct-artifact-publisher and ct-provenance-keeper as sub-protocols: not every release publishes artifacts (source-only releases skip it), and artifact publishers delegate signing and attestation to provenance. Use when shipping a new version, running cleo release ship, or promoting a completed epic to released status.

141 stars

Best use case

ct-release-orchestrator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Orchestrates the full release pipeline: version bump, then changelog, then commit, then tag, then conditionally forks to artifact-publish and provenance based on release config. Parent protocol that composes ct-artifact-publisher and ct-provenance-keeper as sub-protocols: not every release publishes artifacts (source-only releases skip it), and artifact publishers delegate signing and attestation to provenance. Use when shipping a new version, running cleo release ship, or promoting a completed epic to released status.

Teams using ct-release-orchestrator should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ct-release-orchestrator/SKILL.md --create-dirs "https://raw.githubusercontent.com/kryptobaseddev/cleo/main/packages/skills/skills/ct-release-orchestrator/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ct-release-orchestrator/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ct-release-orchestrator Compares

Feature / Agentct-release-orchestratorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Orchestrates the full release pipeline: version bump, then changelog, then commit, then tag, then conditionally forks to artifact-publish and provenance based on release config. Parent protocol that composes ct-artifact-publisher and ct-provenance-keeper as sub-protocols: not every release publishes artifacts (source-only releases skip it), and artifact publishers delegate signing and attestation to provenance. Use when shipping a new version, running cleo release ship, or promoting a completed epic to released status.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Release Orchestrator

## Overview

Owns the top of the release pipeline: semver bump, changelog, release commit, and git tag. Composes two sub-protocols conditionally — ct-artifact-publisher when the release config has enabled artifacts, and ct-provenance-keeper when signing or attestation is required. Source-only releases (docs, spec changes) stop after the tag and skip both sub-protocols.

## Core Principle

> Release is the parent protocol; artifact-publish and provenance are conditional sub-protocols.

## Immutable Constraints

| ID | Rule | Enforcement |
|----|------|-------------|
| RLSE-001 | Version MUST follow semantic versioning (`v{major}.{minor}.{patch}`). | `validateReleaseProtocol` rejects non-semver strings; exit 53. |
| RLSE-002 | Changelog MUST be updated with all changes before the tag. | `hasChangelog: false` fails validation unless `--no-changelog` is explicit. |
| RLSE-003 | All validation gates MUST pass before the release proceeds. | Ship halts on any gate failure; exit 54. |
| RLSE-004 | Release MUST be tagged in version control. | Missing tag fails validation; exit 56. |
| RLSE-005 | Breaking changes MUST be documented with a migration path. | Required section in the changelog entry. |
| RLSE-006 | Version MUST be consistent across all files listed in `release.versionBump`. | Mismatched files fail validation; exit 55. |
| RLSE-007 | Manifest entry MUST set `agent_type: "documentation"`. | Validator rejects any other value. |
| RLSE-008 | Parent protocol MUST hand off to artifact-publish when `release.artifacts` is non-empty. | Composition invariant from ARTP-005. |
| RLSE-009 | Provenance chain MUST be recorded for every signed release. | Composition invariant from PROV-005. |

## Composition Pipeline

The release parent protocol composes with the artifact-publish and provenance sub-protocols via explicit handoffs:

```
Release Protocol                        Artifact Publish Protocol
---                                     ---
1.  Version bump
2.  Changelog generation
3.  Validation gates
4.  Git commit + tag
5.  ---- HANDOFF ------------------> 6.  Load artifact config
                                     7.  Pre-validate all artifacts
                                     8.  Build all artifacts
                                     9.  ---- HANDOFF ----> Provenance Protocol
                                                             10. Compute digests
                                                             11. Generate in-toto attestation
                                                             12. Sign (sigstore keyless)
                                                             13. Record chain in releases.json
                                     14. <--- RETURN ----
                                     15. Publish signed artifacts
                                     16. Record provenance to releases.json
17. <--- RETURN ---------------------- 
18. Push to remote
19. Update release status to "released"
```

Each handoff uses a distinct exit code:

| Edge | Exit code | Meaning |
|------|-----------|---------|
| Release → artifact-publish | 65 (`HANDOFF_REQUIRED`) | Parent yields control to the sub-protocol |
| artifact-publish → provenance | 65 (`HANDOFF_REQUIRED`) | Sub-protocol delegates signing |
| provenance → artifact-publish | 0 on success | Return to parent sub-protocol |
| artifact-publish → release | 0 on success, 88 on publish fail | Return to parent with result |
| release → tag push | 0 on success, 56 on tag fail | Final commit |

Partial-failure rollback semantics are documented in [references/composition.md](references/composition.md).

## Conditional Trigger Matrix

Not every release needs both sub-protocols. The parent decides based on `release.artifacts` and `release.security.provenance.enabled`:

| Release type | Needs artifact-publish | Needs provenance |
|--------------|:---------------------:|:----------------:|
| `source-only` (docs, spec changes, code-only merges without a package) | no | no |
| `npm-package` | yes | yes (SLSA L3 via npm `--provenance`) |
| `docker-image` | yes | yes (cosign keyless attestation) |
| `cargo-crate` | yes | yes (GPG or sigstore) |
| `github-tarball` | yes | optional (MAY sign via cosign) |
| `multi-artifact` (npm + docker + tarball combo) | yes | yes |

The parent skill inspects `.cleo/config.json#release.artifacts[]`. If the array is empty or all entries are disabled, the release is `source-only` and the pipeline stops after the tag.

## CI Integration

The existing `.github/workflows/release.yml` uses `npm publish --provenance` with the repository's OIDC trust configuration, producing SLSA L3 keyless attestations automatically. This skill's responsibility is to ensure the resulting chain is recorded in the manifest entry and in `.cleo/releases.json`, not to re-implement the signing step. When CI has already produced an attestation, the skill MUST read its reference from the workflow output and record it verbatim.

## Integration

Invoke the parent pipeline via `cleo release ship`, then validate with `cleo check protocol`:

```bash
# Kick off the release pipeline.
cleo release ship v2026.4.5 \
  --epic T260 \
  --bump-version \
  --create-tag \
  --push

# Validate the parent protocol entry.
cleo check protocol \
  --protocolType release \
  --taskId T4900 \
  --version v2026.4.5 \
  --hasChangelog true
```

Exit code 0 = release complete. Exit code 50 = release not found. Exit code 54 = validation gate failed. Exit code 55 = version bump failed. Exit code 56 = tag creation failed. Exit code 88 = artifact publish failed (bubbled from sub-protocol). Exit code 94 = attestation invalid (bubbled from provenance).

For source-only releases, pass `--no-artifacts` to skip the artifact-publish handoff. Every other release type leaves the default behavior alone.

## Anti-Patterns

| Pattern | Problem | Solution |
|---------|---------|----------|
| Publishing artifacts before running validation gates | Can't roll back a successful publish on a failed build | Follow the pipeline order: gates → commit → tag → publish |
| Pushing the git tag before publishing artifacts | Tag points to a commit whose packages never shipped | Push the tag after artifacts are live, or use the same job |
| Skipping the dry-run phase | Irreversible registry state on first real attempt | ARTP-002 requires dry-run; the parent skill refuses to skip it |
| Source-only releases triggering artifact-publish | Wasted CI time, false SLSA attestations | Check `release.artifacts` before handoff; skip if empty |
| Not recording the provenance chain in releases.json | Canon loses the commit → build → artifact → attestation link | Parent MUST record even when CI generated the attestation |
| Overusing `--force` to bypass epic completeness | Ships partial epics without review | Use the guard mode `warn` and address gaps explicitly |
| Mutating a `released` entry after the fact | Canon must be immutable once shipped | Create a new release entry for the hotfix |
| Running ship on a dirty worktree | Commits scoop up unrelated changes | Require a clean worktree before step 1 |

## Critical Rules Summary

1. Version MUST be valid semver; the parent skill refuses non-semver strings.
2. The changelog MUST be updated before the tag — no exceptions beyond explicit `--no-changelog`.
3. All validation gates MUST pass before the commit step.
4. The pipeline composes with artifact-publish and provenance only when the release config calls for it.
5. Exit codes bubble up unchanged: 88 from artifact-publish and 94 from provenance surface at the parent.
6. `released` entries are immutable; hotfixes go into new entries.
7. Manifest entry MUST set `agent_type: "documentation"` and record the full chain via `record_release()`.
8. Always validate via `cleo check protocol --protocolType release` before declaring the release done.

Related Skills

ct-orchestrator

141
from kryptobaseddev/cleo

Pipeline-aware orchestration skill for managing complex workflows through subagent delegation. Use when the user asks to "orchestrate", "orchestrator mode", "run as orchestrator", "delegate to subagents", "coordinate agents", "spawn subagents", "multi-agent workflow", "context-protected workflow", "agent farm", "HITL orchestration", "pipeline management", or needs to manage complex workflows by delegating work to subagents while protecting the main context window. Enforces ORC-001 through ORC-009 constraints. Provider-neutral — works with any AI agent runtime.

signaldock-connect

141
from kryptobaseddev/cleo

Connect any AI agent to SignalDock for agent-to-agent messaging. Use when an agent needs to: (1) register on api.signaldock.io, (2) install the signaldock runtime CLI, (3) send/receive messages to other agents, (4) set up SSE real-time streaming, (5) poll for messages, (6) check inbox, or (7) connect to the SignalDock platform. Triggers on: "connect to signaldock", "register agent", "send message to agent", "agent messaging", "signaldock setup", "install signaldock", "agent-to-agent".

ct-validator

141
from kryptobaseddev/cleo

Compliance validation for verifying systems, documents, or code against requirements, schemas, or standards. Performs schema validation, code compliance checks, document validation, and protocol compliance verification with detailed pass/fail reporting. Use when validating compliance, checking schemas, verifying code standards, or auditing protocol implementations. Triggers on validation tasks, compliance checks, or quality verification needs.

ct-task-executor

141
from kryptobaseddev/cleo

General implementation task execution for completing assigned CLEO tasks by following instructions and producing concrete deliverables. Handles coding, configuration, documentation work with quality verification against acceptance criteria and progress reporting. Use when executing implementation tasks, completing assigned work, or producing task deliverables. Triggers on implementation tasks, general execution needs, or task completion work.

ct-stickynote

141
from kryptobaseddev/cleo

Quick ephemeral sticky notes for project-wide capture before formal classification

ct-spec-writer

141
from kryptobaseddev/cleo

Technical specification writing using RFC 2119 language for clear, unambiguous requirements. Creates protocol specifications, technical requirements, API specifications, and architecture documents with testable requirements and compliance criteria. Use when writing specifications, defining protocols, documenting requirements, or creating API contracts. Triggers on specification tasks, protocol definition needs, or requirement documentation.

ct-skill-validator

141
from kryptobaseddev/cleo

Validates an existing skill folder against the full CLEO standard and ecosystem. Use when auditing skills for structural compliance, verifying a skill fits into the CLEO ecosystem and constitution, running quality A/B evals, or preparing a skill for distribution. Runs a 3-phase validation loop — structural, ecosystem fit, and quality eval — then presents all findings as an HTML report opened in the user's browser. Iterates until all required phases pass.

ct-skill-creator

141
from kryptobaseddev/cleo

Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.

ct-research-agent

141
from kryptobaseddev/cleo

Multi-source research and investigation combining web search, documentation lookup via Context7, and codebase analysis. Synthesizes findings into actionable recommendations with proper citation and task traceability. Use when conducting research, investigating best practices, gathering technical information, or analyzing existing implementations. Triggers on research tasks, investigation needs, or information discovery requests.

ct-provenance-keeper

141
from kryptobaseddev/cleo

Generates in-toto v1 attestations, SLSA-level provenance records, SBOMs (CycloneDX or SPDX), and sigstore/cosign signatures for published artifacts. Invoked by ct-artifact-publisher as a delegation for signing and attestation. Records the full commit, then build, then artifact, then attestation, then registry chain in .cleo/releases.json and rejects publishes whose digest does not match the attestation. Triggers when artifact-publish reaches the provenance step or when a release needs SLSA L2+ attestation.

ct-memory

141
from kryptobaseddev/cleo

Brain memory protocol with progressive disclosure for anti-hallucination and context recall

ct-master-tac

141
from kryptobaseddev/cleo

Master Tactical Bundle for CleoOS autonomous execution. Installs the complete primitive library needed to run the full agentic execution layer on a fresh CleoOS install: 12 CANT protocol files (research, consensus, architecture-decision, specification, decomposition, implementation, validation, testing, contribution, release, artifact-publish, provenance), the canonical platform team definition, and the skills manifest entry. Use when bootstrapping a new CleoOS project, verifying that all protocol primitives are present, or recovering a broken protocol tree. Triggers on: "install master tac", "bootstrap protocols", "tools.skill.install ct-master-tac", "verify protocol bundle", "repair protocol files", "fresh CleoOS install".