Cline Desktop App Release
cline/cline
Covers preparing, tagging and publishing a Cline desktop app release on the stable, beta or nightly channel through the desktop-publish GitHub workflow.
Agent skill
by christian-schlichtherle in christian-schlichtherle/truelicense
Documents how TrueLicense is published to Maven Central from a version tag, the plugin constraints behind it and how to rehearse a release locally.
$ npx skills add christian-schlichtherle/truelicense --skill release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install christian-schlichtherle/truelicense release --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/christian-schlichtherle/truelicense.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/release .claude/skills/release && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "release" agent skill from https://github.com/christian-schlichtherle/truelicense/tree/develop/.claude/skills/release into .claude/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/christian-schlichtherle/truelicense/tree/develop/.claude/skills/releaseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add christian-schlichtherle/truelicense --skill release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install christian-schlichtherle/truelicense release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/christian-schlichtherle/truelicense.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/release .agents/skills/release && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "release" agent skill from https://github.com/christian-schlichtherle/truelicense/tree/develop/.claude/skills/release into .agents/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add christian-schlichtherle/truelicense --skill release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install christian-schlichtherle/truelicense release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/christian-schlichtherle/truelicense.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/release .cursor/skills/release && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "release" agent skill from https://github.com/christian-schlichtherle/truelicense/tree/develop/.claude/skills/release into .cursor/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/christian-schlichtherle/truelicense.git --path .claude/skills/release--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add christian-schlichtherle/truelicense --skill release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install christian-schlichtherle/truelicense release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/christian-schlichtherle/truelicense.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/release .gemini/skills/release && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "release" agent skill from https://github.com/christian-schlichtherle/truelicense/tree/develop/.claude/skills/release into .gemini/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install christian-schlichtherle/truelicense releaseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add christian-schlichtherle/truelicense --skill release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/christian-schlichtherle/truelicense.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/release .github/skills/release && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "release" agent skill from https://github.com/christian-schlichtherle/truelicense/tree/develop/.claude/skills/release into .github/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add christian-schlichtherle/truelicense --skill release -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install christian-schlichtherle/truelicense release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/christian-schlichtherle/truelicense.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/release .opencode/skills/release && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "release" agent skill from https://github.com/christian-schlichtherle/truelicense/tree/develop/.claude/skills/release into .opencode/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
releaseDocuments how TrueLicense is published to Maven Central from a version tag, the plugin constraints behind it and how to rehearse a release locally.
Pushing a tag that starts with v triggers the release workflow, which takes the version from the tag, runs the full build on JDK 8 and publishes to the Central Publisher Portal. Nothing is committed back, so the pom stays on a snapshot version. The skill records the constraints around the central-publishing Maven plugin so the agent does not break this setup.
Key points: the plugin loads on every build that activates the sonatype-oss-release profile, replaces the deploy plugin and adds a publish goal to each module, so the usual deploy-skip property has no effect. An empty tests jar plus an exclude-artifacts setting keep the integration-test module out of the bundle. The profile also turns on javadoc, sources, signing and the obfuscation check, and publishing without it ships unobfuscated artifacts, which has happened for two earlier versions.
Since no CI covers the release path before a tag, the skill describes a local dry run: set a throwaway pre-release version, deploy with the profile against an unreachable endpoint with invalid credentials, and expect a failure at the last module. You then inspect the bundle for jar, sources, javadoc, pom and signature files across all 15 published modules plus the root POM.
Read from SKILL.md and the folder at commit 697ff98. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
TrueLicense Maven Central Release loads about 846 tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 383 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from christian-schlichtherle/truelicense at commit 697ff98, republished under its Apache-2.0 licence (© christian-schlichtherle). 383 words, ~846 tokens.
.claude/skills/release/SKILL.md (or your agent's skills folder).Pushing a v* tag triggers .github/workflows/release.yml, which derives the version from the tag, runs the full
build on JDK 8 and publishes to the Central Publisher Portal. Nothing is committed back; pom.xml stays a snapshot.
See README.md for the secrets it needs.
Constraints worth knowing before changing any of this:
central-publishing-maven-plugin declares <extensions>true</extensions>, so its lifecycle participant loads on
every build that activates sonatype-oss-release — including the JDK 8 compile job, not just deploy. Any
replacement has to stay Java 8 compatible.maven-deploy-plugin and injects a publish goal into every module's deploy phase.
maven.deploy.skip is therefore inert, and there is no per-module opt-out: it declines to install itself only if
some module declares the plugin with its own executions, and that decision is global. skipPublishing is
evaluated after staging, so it does not spare a module whose artifact has no file.tests builds an empty jar, and excludeArtifacts keeps it out of the bundle. Both are needed:
the first so the release does not abort on the last module, the second so an integration-test module never
reaches Central.sonatype-oss-release is what enables javadoc, sources, signing and verify-obfuscate-main-classes. Only the two
workflows activate it. Anything that publishes without it publishes unobfuscated artifacts — which is how 4.0.1
and 4.0.3 shipped.The release path has no CI coverage until a tag is pushed, so rehearse it locally before a first release or after changing the wiring. An unreachable endpoint and a throwaway settings file make publishing impossible:
./mvnw versions:set -DnewVersion=4.1.0-PORTALTEST # the bundle path only runs for a non-SNAPSHOT version
./mvnw -s /tmp/dryrun-settings.xml clean deploy -P sonatype-oss-release \
-DskipTests -DcentralBaseUrl=http://127.0.0.1:1
unzip -l target/central-publishing/central-bundle.zip
./mvnw versions:revertwhere /tmp/dryrun-settings.xml holds a <server><id>central</id> with deliberately invalid credentials. Failing at
the last module with Deployment failed while publishing is the expected outcome — that is the upload hitting the
dead endpoint. Check the bundle rather than the log: .jar, -sources.jar, -javadoc.jar, .pom and a .asc for
each, across all 15 published modules plus the root POM, and no truelicense-tests. Signing needs the passphrase
cached in the gpg-agent, or pinentry blocks the build; add -Dgpg.keyname=<fingerprint> if your keyring holds
more than one usable key.
Nothing local covers the Portal's own validation of the bundle.
Bump the truelicense-maven-plugin pin in the root POM's <pluginManagement> to the version just published — the
project builds itself with its own previously released plugin — and re-run the JDK 8 / 17 / 25 builds. See
Bootstrapping gotcha in CLAUDE.md.
© christian-schlichtherle, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/release of christian-schlichtherle/truelicense.
Open the folder on GitHubat commit 697ff98
TrueLicense Maven Central Release next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| TrueLicense Maven Central Release this skillchristian-schlichtherle/truelicense | 399 | — | ~846 | Automated safety check: Pass | Apache-2.0 | |
| Cline Desktop App Releasecline/cline | 70k | — | ~4.5k | Automated safety check: Pass | Apache-2.0 | |
| EverOS Release WorkflowEverMind-AI/EverOS | 13k | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Cline CLI Release Publishercline/cline | 70k | — | ~3.4k | Automated safety check: Warn | Apache-2.0 | |
| Release Lithoxylmahmoud/lithoxyl | 146 | — | ~1.3k | Automated safety check: Pass | BSD-3-Clause | |
| LobeHub Version Releaselobehub/lobehub | 83k | — | ~1.2k | Automated safety check: Pass | Custom licence |
cline/cline
Covers preparing, tagging and publishing a Cline desktop app release on the stable, beta or nightly channel through the desktop-publish GitHub workflow.
EverMind-AI/EverOS
Walks through cutting a versioned everos release: bump the version, update the changelog, tag it, and review the drafted GitHub Release page before publishing.
cline/cline
Walks through releasing the Cline CLI package to npm: release notes, version bump, matching git tag, and either the GitHub workflow or a local publish.
mahmoud/lithoxyl
Walks through releasing the lithoxyl Python package to PyPI: CalVer version bump, tagging, pushing and checking the published release.
lobehub/lobehub
Guides the release PR flow, the CI rules that tag a release and the writing of GitHub Release notes for a repo that develops on a canary branch.
macalbert/envilder
Unified release coherence workflow for any component (CLI, GHA, or SDK).
christian-schlichtherle/truelicense
Verifies that a pom.xml change did not silently alter Maven build behavior by diffing the effective POMs before and after.
Works with
Categories
Documents how TrueLicense is published to Maven Central from a version tag, the plugin constraints behind it and how to rehearse a release locally. Pushing a tag that starts with v triggers the release workflow, which takes the version from the tag, runs the full build on JDK 8 and publishes to the Central Publisher Portal. Nothing is committed back, so the pom stays on a snapshot version.
TrueLicense Maven Central Release fits situations like: cutting a TrueLicense release by pushing a version tag; changing the sonatype-oss-release profile or the publishing setup; debugging why an artifact did or did not reach Maven Central; rehearsing the release locally after changing the publishing wiring.
Run `npx skills add christian-schlichtherle/truelicense --skill release -a claude-code`. Or copy the skill folder (.claude/skills/release in christian-schlichtherle/truelicense) into .claude/skills/release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add christian-schlichtherle/truelicense --skill release -a codex`. Or copy the skill folder (.claude/skills/release in christian-schlichtherle/truelicense) into .agents/skills/release in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add christian-schlichtherle/truelicense --skill release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.
SKILL.md names no scripts, command-line tools or credentials: TrueLicense Maven Central Release is instructions for the agent only. Our summary lists: JDK 8 and the Maven wrapper in the repository; Central Publisher Portal credentials and signing secrets, listed in the repo README.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
TrueLicense Maven Central Release is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 846 tokens (SKILL.md is roughly 3.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with TrueLicense Maven Central Release: Cline Desktop App Release (cline/cline, 70k stars), EverOS Release Workflow (EverMind-AI/EverOS, 13k stars), Cline CLI Release Publisher (cline/cline, 70k stars) and Release Lithoxyl (mahmoud/lithoxyl, 146 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
christian-schlichtherle (a GitHub user) maintains it in christian-schlichtherle/truelicense, which has 399 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on August 10, 2026.
Source: christian-schlichtherle/truelicense on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.