Skip to main content
ClaudeWave
Skill1.7k repo starsupdated today

push-release

Push-release automates Python package deployment by inspecting pending commits, optionally bumping the semantic version in pyproject.toml and __init__.py based on change type (patch for fixes, minor for features, major for breaking changes), and pushing to GitHub where CI automatically tags and publishes to PyPI only if the version changed. Use this when ready to release code changes to production, ensuring meaningful features or fixes trigger a version bump while documentation-only updates skip the bump.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/liaohch3/claude-tap /tmp/push-release && cp -r /tmp/push-release/.agents/skills/push-release ~/.claude/skills/push-release
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Push & Release

Push code to GitHub. If the pending commits contain feature changes, bump the version number so CI auto-publishes to PyPI.

## Workflow

1. **Check working tree**: Ensure no uncommitted changes (prompt user to commit first if dirty).

2. **Determine whether a version bump is needed**:
   - Read current version from `pyproject.toml`
   - Run `git log origin/main..HEAD --oneline` to inspect pending commits
   - If commits include feature changes (feat/fix/refactor, not purely docs/chore/test), a bump is needed
   - If only docs, tests, or CI changes, skip the bump

3. **If bump is needed**:
   - Choose bump level based on change type:
     - **patch** (0.1.4 → 0.1.5): bug fixes, minor improvements
     - **minor** (0.1.4 → 0.2.0): new features
     - **major** (0.1.4 → 1.0.0): breaking changes
   - Update the `version` field in `pyproject.toml`
   - Update `__version__` in `claude_tap/__init__.py`
   - `git commit --amend` to fold the version bump into the last commit (avoids extra commits)

4. **Push**:
   ```bash
   git push origin main
   ```

5. **Confirm CI status**:
   - Inform the user that CI will automatically: lint → test → auto-tag → PyPI publish
   - Provide the GitHub Actions link: https://github.com/liaohch3/claude-tap/actions

## Important: Version Bump = PyPI Release

The CI pipeline works as follows: push to main → auto-tag (only if version changed) → PyPI publish (triggered by new tag).

**A version bump is the ONLY way to trigger a new PyPI release.** If you push without bumping the version, CI will skip tagging and nothing gets published. So whenever commits include meaningful code changes (features, fixes, improvements), you MUST bump the version before pushing.

- Version numbers in `pyproject.toml` and `claude_tap/__init__.py` must stay in sync
- Only skip the bump for pure docs/test/CI changes that don't affect the published package
demo-videoSkill

Generate demo assets (GIF/MP4) from real tmux E2E runs and viewer screenshots using asciinema and Playwright

js-in-html-testingSkill

Test JS logic embedded in HTML using two-layer strategy - Python unit tests + Playwright browser integration tests

legibility-checkSkill

Validate maintainer docs structure, standards freshness, manifest paths, and plan state. Run this after modifying any file under .agents/docs/standards/, .agents/docs/plans/, .agents/docs/architecture/, or AGENTS.md — it catches stale metadata, broken manifest paths, and plan state drift before CI does.

playwright-screen-recordingSkill

Record browser test videos with Playwright for PR review and bug fix verification

pr-preflightSkill

Full pre-PR merge-readiness check. Run this before opening or merging a pull request — it validates local gates (lint, format, tests), CI status, screenshot evidence, and PR metadata in one pass. Also useful for reviewing an existing PR's readiness.

screenshot-validationSkill

Validate screenshot and viewer HTML quality for PR evidence. Run this after adding or modifying images under .agents/evidence/pr/ or .agents/recordings/, or after generating a new viewer HTML file. Combines image quality checks (resolution, blankness, file size) with Playwright-based viewer rendering verification.

translate-i18nSkill

Fill missing i18n translations in the viewer source JSON. Run this after adding or modifying English or Chinese UI strings in claude_tap/viewer_i18n.json — it auto-translates to ja, ko, fr, ar, de, ru via OpenRouter.