agentleFS
GoogleKnown publishergoogle/capsem/skills/release-process/SKILL.md

release-process

Skill179 starsChanged 12 days agoApache-2.0View on GitHub

Capsem's release process: orthogonal binary/runtime CI, signing, notarization, channel deployment. Use for release commands, failures, manifests, or anything affecting what ships.

14 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

14 rules. 0 are common, 2 are distinctive, and 12 are very specific to this project.

  • 0

    Common

    Most of the 14 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 12

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read the manifest model in RELEASE.md, then use references/release-graph.md for concrete paths, authoring tools, retirement, and …

    line 10
  2. Very specific:

    Read root RELEASE.md before changing release commands, manifests, workflows, test composition, artifact publication, or update behavior.

    line 17
  3. Very specific:

    Read references/qualification-and-test-composition.md before changing public release commands, source guards, sandbox/egress, …

    line 24
  4. Very specific:

    Read references/lane-workflows.md before changing channel locking, preview deployment, runtime/binary ownership, nightly sequencing, staged …

    line 28
  5. Very specific:

    Read references/release-graph.md before changing graph generation, channel membership, manifest authoring, immutable identity, or public …

    line 31
  6. Very specific:

    Read references/installation-verification-and-retry.md before changing evidence/integrity rules, native package acceptance, installed …

    line 33
  7. Very specific:

    Read references/ci-invariants.md before editing release workflows, platform/toolchain/scanner setup, Docker/storage behavior, package …

    line 37
  8. Very specific:

    Read references/apple-signing.md before touching signing, notarization, certificates, Tauri keys, Apple agreements, or release CI secrets.

    line 40
  9. Very specific:

    Read references/post-release-verification.md after any public deployment and before changing the public installer, transition, or glow-up …

    line 42
  10. Very specific:

    Read references/versions-and-commit-discipline.md before changing release notes, binary/runtime versions, compatibility bounds, runtime …

    line 44
  11. Very specific:

    Use the public command forms defined by RELEASE.md:

    line 50
  12. Distinctive:

    Do not dispatch downstream workflows or author source manifests by hand.

    line 57
  13. Distinctive:

    Use focused tests during ordinary development.

    line 79
  14. Very specific:

    Read references/versions-and-commit-discipline.md for release-note, versioning, compatibility, and commit mechanics.

    line 108

“Common” is measured: kept by at least 6 in 10 of the 14 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Release Process

Manifest handling

Read the manifest model in RELEASE.md, then use references/release-graph.md for concrete paths, authoring tools, retirement, and verification mechanics. Do not infer a selection from ambient cache or workflow state while diagnosing a release.

Release authority

Read root RELEASE.md before changing release commands, manifests, workflows, test composition, artifact publication, or update behavior. This skill routes implementation work and preserves operational lessons; it does not restate product policy.

Reference routing

  • Read references/qualification-and-test-composition.md before changing public release commands, source guards, sandbox/egress, execution-envelope or workflow/shell parity, test composition, artifact staging, RuntimeContent, or --force (explicit operator override of clean-tree and local-journal checks).
  • Read references/lane-workflows.md before changing channel locking, preview deployment, runtime/binary ownership, nightly sequencing, staged activation, base-image materialization, or corporate authoring.
  • Read references/release-graph.md before changing graph generation, channel membership, manifest authoring, immutable identity, or public activation.
  • Read references/installation-verification-and-retry.md before changing evidence/integrity rules, native package acceptance, installed status, artifact retention, live validation, retry, diagnostic continuation, or Cloudflare deployment checks.
  • Read references/ci-invariants.md before editing release workflows, platform/toolchain/scanner setup, Docker/storage behavior, package rails, or hosted-runner capacity. It contains the hard-won parity lessons.
  • Read references/apple-signing.md before touching signing, notarization, certificates, Tauri keys, Apple agreements, or release CI secrets.
  • Read references/post-release-verification.md after any public deployment and before changing the public installer, transition, or glow-up proof.
  • Read references/versions-and-commit-discipline.md before changing release notes, binary/runtime versions, compatibility bounds, runtime revision identity, release-set identities, or release commit practice.

Operational entrypoints

Use the public command forms defined by RELEASE.md:

just release-binaries <channel> <source-commit>
just release-assets <channel> <source-commit>

Do not dispatch downstream workflows or author source manifests by hand. Run just test <source-commit> to success first: both commands refuse a source without a complete, passing journal on this machine, because a hosted attempt takes hours to find what the local glow-up and functional lanes find in minutes. The hosted lane still qualifies what it publishes. Only the unattended nightly scheduler ([release].unattended_channels) is exempt by default. An explicitly authorized release force can instead follow focused verification of a test-only deadline or fixture fix; it retains Citadel, release contracts, fresh advisory audits and complete hosted qualification. Record the earlier proof and delta honestly. Failed or interrupted runs never count as complete proof.

The proof is matched by source identity, the Git tree (every tracked byte, lockfile, and submodule pin), so the intended flow is: fix on a branch, run just test <branch-head> there, then get it onto main one of two ways:

  1. fast-forward main to the tested commit, and release that commit; or
  2. merge the PR, and release the merge commit only when its tree equals the tested tree (git rev-parse <merge>^{tree} <tested>^{tree} prints one hash twice). A merge that brought in anything else has a different tree and is refused; test the merge commit itself.

Use focused tests during ordinary development. The release commands and complete local test own their sandbox, egress, machine lock, journal, and teardown, so do not nest or wrap them.

For failures, select the reference matching the affected boundary above. Diagnostic continuation, CI-only --force, graph retirement, signing, Cloudflare recovery, and installed transition checks all have narrower rules in those references. When a reference appears to change product behavior, reconcile it against RELEASE.md and the executable contract tests first.

Tested operational handoffs

Runtime assets travel as one RuntimeContent root. Package construction, Debian proof, macOS Tart/physical-VZ proof, and final install/glow-up must derive the assets path from that one value and validate it before Docker or Colima. Release CI stages raw manifest inputs into that root on the host; the sealed proof never rematerializes them or falls back to the checkout's assets selector.

Linux package replacement embeds deb-preinst.sh as DEBIAN/preinst. Ordinary replacement uses systemctl --user stop capsem.service and retires the stale helper cohort before package replacement. When /proc/self/cgroup proves that the old service owns the update, preinstall preserves the old cohort and postinstall defers manifest hydration, status refresh, service registration, and readiness so that service can activate the verified candidate and request its managed restart.

Version and commit essentials

Read references/versions-and-commit-discipline.md for release-note, versioning, compatibility, and commit mechanics. Stage explicitly with a conventional subject and never stage release secrets.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.