release-check
Use when preparing for a release, verifying release readiness, or running pre-release checks on the jackin project
How do I install this agent skill?
npx skills add https://github.com/jackin-project/jackin-dev --skill release-checkIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill performs standard pre-release validation for the project, including CI checks, Rust tests, linting, and documentation validation. It utilizes standard development tools like git, cargo, and the GitHub CLI. No malicious patterns or security risks were identified.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
Release Check
Pre-release validation for the jackin project. Runs a series of checks and produces a readiness report.
When to Use
- Before running
/release - When you want to verify the project is ready to release
- After fixing issues found in a previous release check
Process
Run each check in order. Collect results into a readiness report.
Check 1: CI Status
Verify the latest CI run on main is green:
gh run list --workflow=ci.yml --branch=main --limit=1 --json status,conclusion --jq '.[0]'
If conclusion is not success, report FAIL and stop.
Also check path-specific workflows if their paths changed since the last tag:
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
# Check if docker/construct/** changed since last tag
if [ -n "$LAST_TAG" ] && [ -n "$(git diff --name-only "$LAST_TAG"..HEAD -- docker/construct/)" ]; then
gh run list --workflow=construct.yml --branch=main --limit=1 --json status,conclusion --jq '.[0]'
fi
# Check if docs/** changed since last tag
if [ -n "$LAST_TAG" ] && [ -n "$(git diff --name-only "$LAST_TAG"..HEAD -- docs/)" ]; then
gh run list --workflow=docs.yml --branch=main --limit=1 --json status,conclusion --jq '.[0]'
fi
Report result as PASS, FAIL, or SKIP (if no changes in those paths).
Check 2: Local Tests
cargo test --locked
If any test fails, report FAIL and stop.
Check 3: Clippy
cargo clippy -- -D warnings
If clippy reports any warnings-as-errors, report FAIL and stop.
Check 4: Format Check
cargo fmt --check
If formatting violations found, report FAIL and stop.
Check 5: Direct Commit Warning
Find commits since the last tag that are not merge commits from PRs:
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
if [ -n "$LAST_TAG" ]; then
git log "$LAST_TAG"..HEAD --oneline --no-merges
fi
For each commit, check if it was part of a PR:
gh pr list --state merged --search "<commit-sha>" --json number --jq '.[0].number'
If there are commits not associated with any PR, report WARN with the list. Do not block.
Check 6: Doc Link Validation
Check for broken internal links in docs/content/docs/:
- Read markdown files and extract internal links (relative paths,
hrefattributes) - Verify each linked file exists
- For external URLs, verify they return HTTP 200 (skip rate-limited domains)
Report PASS or WARN with list of broken links.
Check 7: TODO Freshness
Read TODO.md and all files in todo/:
- Check if any items reference work that has already been completed (look for matching commits or closed PRs)
- Check if any items are stale (no related activity in recent commits)
Report PASS or WARN with findings.
Check 8: Security Exceptions
Read SECURITY_EXCEPTIONS.md and present its contents to the user.
Ask: "Are these security exceptions still current? (yes/no)"
If the user says no, report REVIEW — the user needs to update the file before releasing.
If the user says yes, report PASS.
Check 9: Docker Build Status
Check if Docker-related files changed since the last tag:
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
CONSTRUCT_CHANGED=$(git diff --name-only "$LAST_TAG"..HEAD -- docker/construct/ 2>/dev/null)
RUNTIME_CHANGED=$(git diff --name-only "$LAST_TAG"..HEAD -- docker/runtime/ 2>/dev/null)
If changed, verify the construct.yml workflow passed (already checked in Check 1). Report PASS or SKIP.
Output
Present a structured readiness report:
Release Readiness Report
========================
✓ CI: all workflows green
✓ Local tests: N passed, 0 failed
✓ Clippy: no warnings
✓ Format: clean
⚠ Direct commits: N commits since vX.Y.Z not from PRs
- <sha> <message>
✓ Doc links: all valid
✓ TODOs: up to date
? Security exceptions: review required (N items)
✓ Docker: builds pass (or: no changes, skipped)
Result: PASS | REVIEW NEEDED | FAIL
Blocking vs Non-blocking
| Check | Failure behavior |
|---|---|
| CI status | BLOCK — cannot release with red CI |
| Local tests | BLOCK — cannot release with failing tests |
| Clippy | BLOCK — cannot release with clippy errors |
| Format | BLOCK — cannot release with fmt violations |
| Direct commits | WARN — show list, do not block |
| Doc links | WARN — show broken links, do not block |
| TODO freshness | WARN — show stale items, do not block |
| Security exceptions | REVIEW — ask user, block only if user says "no" |
| Docker builds | BLOCK if changed and CI failed; SKIP if unchanged |
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/jackin-project/jackin-dev/release-check">View release-check on skillZs</a>