name: ci-cd-pipeline
description: "Load this skill when setting up or maintaining CI/CD, GitHub Actions, test pipelines, or release automation. Skip it for local dev work or code changes."
ci-cd-pipeline
Mission
Own CI workflow design, job scope, and release automation rules.
When To Load
Add or update GitHub Actions workflows.
Change CI quality gates.
Add release automation.
Review pipeline structure or caching.
When To Skip
Local development workflow.
Rust or Lua code changes.
Domain Knowledge
There is currently no GitHub Actions workflows directory in this repo. Any CI setup work must create it from scratch.
Required CI stages in this order: fmt check, clippy --deny-warnings, cargo test --all-targets for Rust tests, Lua harness test, docs validation. Only after all 5 pass should an artifact build be attempted.
Platform matrix minimum: Windows x86_64, Linux x86_64. macOS ARM is a stretch goal.
LuaJIT CI note: LuaJIT requires a C compiler and a specific build step that can fail on some CI runners. The lua54 fallback feature exists exactly for this reason.
Pin all tool versions: Rust toolchain via rust-toolchain.toml, Python version explicitly in CI config, UPX version for dist jobs. Never use latest for build tools.
Cargo dependency caching: cache ~/.cargo/registry, ~/.cargo/git, and target/ by hashing Cargo.lock. Invalidate on any Cargo.lock change.
Artifact naming convention: lurek2d-{os}-{arch}-{git-sha-short}.zip. Artifacts produced during CI must match the layout that tools/dist/dist.ps1 produces, so local and CI packaging outputs are structurally identical.
Release triggers: tag matching v*.*.* on the main branch. Pre-release triggers: tag matching v*.*.*-rc.*.
Docs generation in CI: run tools/python.cmd tools/gen_all_docs.py and fail the job if generated files differ from committed files. This enforces that contributors do not commit stale generated docs.
CI YAML should remain readably staged — each logical step is a named step in the YAML, not a long inline shell block. Prefer checked-in scripts over inline YAML logic.
1---2name: lurek2d-lurek-2d-ci-cd-pipeline3description: ---4---5---6name: ci-cd-pipeline7description: "Load this skill when setting up or maintaining CI/CD, GitHub Actions, test pipelines, or release automation. Skip it for local dev work or code changes."8---9# ci-cd-pipeline1011## Mission12- Own CI workflow design, job scope, and release automation rules.1314## When To Load15- Add or update GitHub Actions workflows.16- Change CI quality gates.17- Add release automation.18- Review pipeline structure or caching.1920## When To Skip21- Local development workflow.22- Rust or Lua code changes.2324## Domain Knowledge25- There is currently no GitHub Actions workflows directory in this repo. Any CI setup work must create it from scratch.26- Required CI stages in this order: `fmt check`, `clippy --deny-warnings`, `cargo test --all-targets` for Rust tests, Lua harness test, docs validation. Only after all 5 pass should an artifact build be attempted.27- Platform matrix minimum: Windows x86_64, Linux x86_64. macOS ARM is a stretch goal.28- LuaJIT CI note: LuaJIT requires a C compiler and a specific build step that can fail on some CI runners. The `lua54` fallback feature exists exactly for this reason.29- Pin all tool versions: Rust toolchain via `rust-toolchain.toml`, Python version explicitly in CI config, UPX version for dist jobs. Never use `latest` for build tools.30- Cargo dependency caching: cache `~/.cargo/registry`, `~/.cargo/git`, and `target/` by hashing `Cargo.lock`. Invalidate on any `Cargo.lock` change.31- Artifact naming convention: `lurek2d-{os}-{arch}-{git-sha-short}.zip`. Artifacts produced during CI must match the layout that `tools/dist/dist.ps1` produces, so local and CI packaging outputs are structurally identical.32- Release triggers: tag matching `v*.*.*` on the `main` branch. Pre-release triggers: tag matching `v*.*.*-rc.*`.33- Docs generation in CI: run `tools/python.cmd tools/gen_all_docs.py` and fail the job if generated files differ from committed files. This enforces that contributors do not commit stale generated docs.34- CI YAML should remain readably staged — each logical step is a named step in the YAML, not a long inline shell block. Prefer checked-in scripts over inline YAML logic.35## Companion File Index36- None.3738## References39- .github/40- Cargo.toml41- rust-toolchain.toml42- tools/dev/parallel_cargo.py43- tools/dist/4445---46> Source: [Lurek2D/lurek_2d](https://github.com/Lurek2D/lurek_2d) — distributed by [TomeVault](https://tomevault.io).47<!-- tomevault:4.0:skill_md:2026-06-15 -->
Run npx skillmds@latest add tomevault-io/lurek2d-lurek-2d-ci-cd-pipeline in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
--- It is listed under DevOps & Infra on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: CAUTION, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.