skills/linear-release-setup/SKILL.md
Generate CI/CD configuration for Linear Release. Use when setting up release tracking, configuring CI pipelines for Linear, or integrating deployments with Linear releases. Supports GitHub Actions, GitLab CI, CircleCI, and other platforms.
npx skillsauth add linear/linear-release linear-release-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The linear-release README is the source of truth for commands, flags, installation, environment variables, path filtering, and troubleshooting. Fetch it before generating any config — this skill focuses on the interactive setup workflow and the pipeline modeling decisions the README cannot make for the user.
Before generating config, confirm:
.github/workflows/*.yml (GitHub Actions), .gitlab-ci.yml (GitLab CI), .circleci/config.yml (CircleCI), or other CI config.git symbolic-ref refs/remotes/origin/HEAD or the CI config. Don't assume main.Start by listing every build the user ships independently — each becomes its own Linear pipeline. Pipeline-vs-stage confusion is the single most common setup mistake, so whenever a split isn't obvious, apply the test in "Stages vs Pipelines" below.
Ask, in order:
CI platform — if not auto-detected.
What do you ship, and to whom? Prompt explicitly about common split candidates: production vs. beta or TestFlight, nightly or dogfood builds, staging, per-platform builds (iOS, Android, web), per-service in a monorepo. For each candidate, apply the test: can these hold different commits at the same time? Yes → separate pipelines. No (same immutable build moving through gates) → one pipeline with stages.
For each pipeline: continuous or scheduled?
The test: does the team need to track a release before it ships — naming it, seeing what's queued in it, or moving it through phases (code freeze, QA, etc.)?
For each scheduled pipeline, ask explicitly:
main, or main + release branches (release/*)?2026.05), semver (1.2.0), or commit SHA? Derived from branch name, CI variable, file, or git tag?workflow_dispatch, or automated (e.g. cutting a release branch auto-promotes it)?Monorepo paths — if multiple pipelines share one repo, note which paths belong to each and wire up path filters in Linear pipeline settings or via --include-paths.
Fetch the README first for the current commands, flags, install snippet, and command-targeting rules. For GitHub Actions, prefer the official action (linear/linear-release-action@v0); for other platforms, use the CLI binary per the README's Installation section.
The image running the linear-release job must provide:
debian:bookworm-slim, ubuntu:24.04, buildpack-deps:bookworm). Avoid alpine, any *-alpine tag, and curlimages/curl — on musl, the binary fails with an opaque "not found" error because the glibc dynamic loader is absent.git. Slim images do not include it. Install it explicitly: apt-get update && apt-get install -y git.curl (or wget). Needed to download the CLI binary.If .gitlab-ci.yml already exists, inspect any default variables: block. The linear-release job needs a full clone, so override at the job level when project defaults would prevent that:
GIT_STRATEGY: clone — required if the project default is none or empty (both skip cloning entirely).GIT_DEPTH: 0 — set this on the linear-release job regardless. New GitLab projects default to a shallow clone of depth 20, and projects often lower it further.Pick the matching example template, adapt it (branch patterns, stage names, paths, version format), and add it to an existing workflow or create a new one. Multiple pipelines mean multiple workflows or jobs, each calling the CLI with its own access key — one secret per pipeline (e.g. LINEAR_ACCESS_KEY_IOS, LINEAR_ACCESS_KEY_WEB).
| Platform | Pipeline Type | Example |
| -------------- | ------------- | --------------------------------------------------------------------------------------------------------------------- |
| GitHub Actions | Continuous | github-actions-continuous/ |
| GitHub Actions | Scheduled | github-actions-scheduled/ |
| GitLab CI | Continuous | gitlab-ci-continuous/ |
| GitLab CI | Scheduled | gitlab-ci-scheduled/ |
| CircleCI | Continuous | circleci-continuous/ |
| CircleCI | Scheduled | circleci-scheduled/ |
Each scheduled example includes a monorepo note in the header explaining how to split workflows for path filtering per platform.
Tell the user to add the LINEAR_ACCESS_KEY secret to their CI environment:
The access key is created in Linear from the pipeline's settings page. Each pipeline has its own access key.
A Linear release pipeline is one independent stream of releases, with its own version history, current release, and access key. This is not a CI pipeline; it is the unit Linear uses to track releases, and your CI config calls the CLI to update it. Different products, environments, or distribution channels that ship independently are different pipelines.
Pipelines come in two types — continuous and scheduled. See the README's Pipeline Types section for the canonical description of each.
A pipeline is one stream of releases. A stage is one phase inside a release on that pipeline. Confusing the two is the single most common setup mistake — work through the test below before writing any config.
The test: can two things be in-flight at the same time, holding different commits?
HEAD while production ships 1.2 from a release branch. Web staging auto-deploying from main while prod lags behind. A hotfix landing in one stream but not the other.Stages are process gates: "code freeze", "in qa", "in review", "rc soak". They only exist on scheduled pipelines.
Ambiguous cases — apply the test:
main (or runs hotfixes prod doesn't have) → separate pipeline. Staging that holds the exact same build as prod, just earlier in the promotion path → stage.Stages can also be frozen in Linear. A frozen stage makes sync (without --release-version) skip that release and land commits on the next one — a safety net for code freezes. This is a process tool, not a way to squeeze two pipelines into one.
Everything about commands, flags, environment variables, command targeting, path filtering, JSON output, and troubleshooting lives in the linear-release README. For GitHub Action inputs and how they map to CLI flags, see the action README. Always fetch these rather than relying on memory — they move ahead of this skill.
fetch-depth: 0 (GitLab: GIT_DEPTH: 0, and GIT_STRATEGY not none)LINEAR_ACCESS_KEY set as a secret (one per pipeline)linux-x64, darwin-arm64, or darwin-x64)git and curl availablemain for continuous; main + release/* for scheduled)--include-paths), and separate workflows if using release branchestesting
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".
testing
Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).
testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".
testing
Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).