pre-release-checks
Use when about to cut a release, tag a version, publish to PyPI, or the user says "/pre-release", "before I cut a release", "verify release readiness"…
Skill by artemVeduta
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/artemveduta-pre-release-checks
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/pre-release-checks
What's inside
- Skill name
pre-release-checks- Description
- Use when about to cut a release, tag a version, publish to PyPI, or the user says "/pre-release", "before I cut a release", "verify release readiness", "pre-release checks", or "is this ready to ship" — runs a read-only PASS/FAIL audit of repo state, build, tests, lint, types, and coverage before tagging.
- License
- MIT
- Instructions
- 126 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- files: referenced but missing: scripts/build-check.sh
Files (1)
- SKILL.md
SKILL.md (first lines)
# Pre-Release Checks
## Overview
Read-only gate that verifies the repo is safe to tag and publish. Runs a fixed
checklist and prints a PASS/FAIL table. Does **not** mutate the repo: no
commits, tags, pushes, or version bumps. If any check FAILs, the release is
blocked until the blocker is fixed by the human (or a separate skill).
## Trigger
- Slash form: `/pre-release` or `/pre-release X.Y.Z`
- Natural language: "before I cut a release", "pre-release checks",
"verify release readiness", "is this ready to ship".
## Inputs
| Input | Required | Default |
|-------|----------|---------|
| `version` (X.Y.Z) | no | next patch bump from `pyproject.toml [project].version` |
The version is informational — used to compute the tag name `vX.Y.Z` for the
"tag does not exist" check. No file is rewritten.
## Checks
All must PASS. Run in this order; keep going after a FAIL so the final table
shows every blocker, not just the first.
| # | Check | Command | PASS condition |
|---|-------|---------|----------------|
| 1 | Working tree clean | `git status --porcelain` | empty output |
| 2 | On `main` | `git rev-parse --abbrev-ref HEAD` | equals `main` |
| 3 | Up-to-date with `origin/main` | `git fetch origin main` then compare `git rev-parse HEAD` vs `git rev-parse origin/main` | equal |
| 4 | `CHANGELOG.md` `[Unreleased]` non-empty | parse `CHANGELOG.md` | `[Unreleased]` section contains at least one subsection (`### Added/Changed/Fixed/...`) with at least one non-blank bullet |
| 5 | Tag `vX.Y.Z` unused | `git rev-parse -q --verify "refs/tags/vX.Y.Z"` and `git ls-remote --tags origin "vX.Y.Z"` | both empty / non-zero exit |
| 6 | Build + metadata | `bash scripts/build-check.sh` | exit 0 |
| 7 | Tests green | `uv run pytest` | exit 0 |
| 8 | Lint clean | `uv run ruff check` | exit 0 |
| 9 | Types clean | `uv run pyright` | exit 0 |
| 10 | Coverage gate | covered by check 7 (`--cov-fail-under` configured in `pyproject.toml [tool.pytest.ini_options].addopts`) | pytest exit 0 satisfies it |
**Delegate build + metadata to the script.** Do not inline `uv build` or
`twine check` — call `bash scripts/build-check.sh` so the logic stays in one
place.
## Workflow
1. Resolve `version`: use the user-supplied value if given, else read
`[project].version` from `pyproject.toml` and bump patch.
2. Run checks 1–5 (cheap, no side effects in the working tree).
3. Run check 6 (`scripts/build-check.sh`); it writes to `dist/` but does not
touch tracked files. Capture exit code; do not abort the suite on failure.
4. Run checks 7–9 sequentially. Capture each exit code.
5. Print the PASS/FAIL table (see below).
6. If any row is FAIL, exit the skill with a clear "BLOCKED" verdict. Do not
propose tagging, pushing, or editing files.
## Output Format
Print exactly one table, then a verdict line, then per-FAIL remediation.
```
Pre-release checks for v0.2.0
| # | Check | Result |
|----|--------------------------------|--------|
| 1 | Working tree clean | PASS |
| 2 | On main | PASS |
| 3 | Up-to-date with origin/main | FAIL |
| 4 | CHANGELOG [Unreleased] populated| PASS |
| 5 | Tag v0.2.0 unused | PASS |
| 6 | uv build + twine check | PASS |
| 7 | pytest (incl. coverage gate) | PASS |
| 8 | ruff check | PASS |
| 9 | pyright | PASS |
Verdict: BLOCKED (1 failure)
Blockers:
- #3 Up-to-date with origin/main — local main is 2 commits behind. Fix:
`git pull --ff-only origin main`, then re-run /pre-release.
```
On full pass:
```
Verdict: READY to tag v0.2.0
```
## Remediation Hints (per check)
| Check | Typical fix |
|-------|-------------|
| 1 | Commit, stash, or revert pending changes. |
| 2 | `git switch main`. |
| 3 | `git pull --ff-only origin main`; resolve divergence before retrying. |
| 4 | Add entries under `## [Unreleased]` in `CHANGELOG.md`. |
| 5 | Pick a different version, or delete the stale tag (only if intentional). |
| 6 | Read `dist/` and `twine check` output; fix packaging metadata in `pyproject.toml`. |
| 7 | Fix failing tests or raise coverage above the configured `--cov-fail-under` gate. |
| 8 | `uv run ruff check --fix` for autofixable items; otherwise fix manually. |
| 9 | Resolve type errors reported by `pyright`. |
## Constraints (Iron Rules)
- **Read-only.** No `git add`, no `git commit`, no `git tag`, no `git push`,
no edits to `pyproject.toml` / `CHANGELOG.md`. The only writes allowed are
build artifacts under `dist/` (produced by `scripts/build-check.sh`).
- **No partial verdicts.** Always print the full table covering every check,
even if an early check fails.
- **Delegate, don't duplicate.** Build + metadata validation lives in
`scripts/build-check.sh`. Do not re-implement it in markdown or in the
shell session.
- **Don't auto-fix.** Suggest fixes in the remediation section; let the human
(or a different skill) apply them.
## Red Flags — STOPFrom artemVeduta/lingo-loop, MIT.
More from artemVeduta/lingo-loop
- 0.479score
tutor-progress
artemVeduta
Use when learner wants progress, exportable progress reports, next focus, due counts, weak patterns, maturity, local status, or cost status.
SkillCFreshness: CClaude Code +9 - 0.474score
docs-validate
artemVeduta
Validate the docs/ OKF bundle for conformance (parseable frontmatter + non-empty type) and report soft warnings.
SkillCFreshness: CClaude Code +9 - 0.474score
feature-flow
artemVeduta
Use when the user says "/feature <slug> '<intent>'", "start a feature", "new feature with spec", "feature flow", "spec-then-implement a feature", or otherwise…
SkillCFreshness: CClaude Code +9 - 0.474score
hotfix
artemVeduta
Use when patching a bug in an already-released production version, hotfixing a shipped release, applying an emergency fix off the latest production tag, or…
SkillCFreshness: CClaude Code +9 - 0.474score
docs-add
artemVeduta
Scaffold a new OKF concept in the docs/ bundle (Decision, Specification, Convention, Glossary, Reference) or a subsystem index node, with conformant…
SkillCFreshness: CClaude Code +9 - 0.474score
tutor-book
artemVeduta
Use when the learner has their OWN book or text in front of them and wants on-the-spot lookups of words, sentences, or passages they don't understand, or to…
SkillCFreshness: CClaude Code +9 - 0.474score
tutor-lesson
artemVeduta
Use when the learner wants a guided micro-lesson on one weak tag or one chosen topic (one explanation plus one practice step).
SkillCFreshness: CClaude Code +9 - 0.474score
tutor-reading
artemVeduta
Use when the learner wants to read a passage and answer comprehension questions, or reconstruct a text transcript drill (text-only, no audio).
SkillCFreshness: CClaude Code +9 - 0.470score
tutor-writing
artemVeduta
Free writing prompt and structured feedback orchestration.
SkillCFreshness: CClaude Code +9 - 0.470score
release-cut
artemVeduta
Use when the user says "cut release X.Y.Z", "/release-cut X.Y.Z", "open release PR", "prepare release branch", or otherwise asks to start a release of…
SkillCFreshness: CClaude Code +9 - 0.470score
tutor-vocab
artemVeduta
Practice due vocabulary through the local tutor CLI.
SkillCFreshness: CClaude Code +9 - 0.464score
tutor-setup
artemVeduta
Onboard or edit local language tutor profile and preferences.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jun 22, 2026 (4 months ago)
- Last release
- Jun 22, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/artemVeduta/lingo-loop
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from artemVeduta
- 0.479score
tutor-progress
artemVeduta
Use when learner wants progress, exportable progress reports, next focus, due counts, weak patterns, maturity, local status, or cost status.
SkillCFreshness: CClaude Code +9 - 0.474score
tutor-book
artemVeduta
Use when the learner has their OWN book or text in front of them and wants on-the-spot lookups of words, sentences, or passages they don't understand, or to…
SkillCFreshness: CClaude Code +9 - 0.474score
feature-flow
artemVeduta
Use when the user says "/feature <slug> '<intent>'", "start a feature", "new feature with spec", "feature flow", "spec-then-implement a feature", or otherwise…
SkillCFreshness: CClaude Code +9 - 0.474score
hotfix
artemVeduta
Use when patching a bug in an already-released production version, hotfixing a shipped release, applying an emergency fix off the latest production tag, or…
SkillCFreshness: CClaude Code +9 - 0.474score
docs-validate
artemVeduta
Validate the docs/ OKF bundle for conformance (parseable frontmatter + non-empty type) and report soft warnings.
SkillCFreshness: CClaude Code +9 - 0.474score
docs-add
artemVeduta
Scaffold a new OKF concept in the docs/ bundle (Decision, Specification, Convention, Glossary, Reference) or a subsystem index node, with conformant…
SkillCFreshness: CClaude Code +9
Cite this page
pre-release-checks skill. Agent Mart. https://agentmart.dev/skills/artemveduta-pre-release-checks (last updated 2026-10-24)