release-dev-project
Full release workflow for public dev projects — commit, push, bump version, build debian, install locally, create GitHub release with .deb attached.
Skill by danielrosehill
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/danielrosehill-release-dev-project
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: devops, productivity
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/release-dev-project
What's inside
- Skill name
release-dev-project- Description
- Full release workflow for public dev projects — commit, push, bump version, build debian, install locally, create GitHub release with .deb attached. Triggers on phrases like "release this project", "new release", "publish a release", "release and deploy", "cut a release", "ship it".
- License
- MIT
- Instructions
- 112 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Release Dev Project
End-to-end release workflow for the user's public development projects. Handles everything from committing to creating a GitHub release with a .deb artifact attached.
## Prerequisites
- Current directory is a git repo with a GitHub remote
- The project has a build system that produces a `.deb` package (check for `build.sh`, `Makefile`, `Cargo.toml` with cargo-deb, `setup.py`/`pyproject.toml`, or a `debian/` directory)
- `gh` CLI is authenticated
## Steps
### 1. Assess the project
- Read the repo structure to understand the build system
- Identify where the version number lives:
- `Cargo.toml` (Rust)
- `pyproject.toml` or `setup.py` or `__init__.py` with `__version__` (Python)
- `package.json` (Node)
- `VERSION` file
- Debian `changelog` or control file
- Identify how the `.deb` is built:
- `build.sh` script in the repo root
- `cargo deb`
- `dpkg-buildpackage`
- Custom build scripts
- Check if the project is currently installed locally (e.g. `dpkg -l | grep <name>`, `which <name>`)
### 2. Commit and push all changes
- Stage ALL changed and untracked files (respect `.gitignore`)
- Write a clear commit message summarizing the changes
- Push to the remote (origin, current branch)
- If there are no changes to commit, skip to step 3
### 3. Increment the version
- Default to **patch** bump (e.g. `1.2.3` -> `1.2.4`)
- If `$ARGUMENTS` contains `minor`, bump minor (e.g. `1.2.3` -> `1.3.0`)
- If `$ARGUMENTS` contains `major`, bump major (e.g. `1.2.3` -> `2.0.0`)
- If `$ARGUMENTS` contains a specific version like `v2.0.0` or `2.0.0`, use that exact version
- Update the version in ALL places it appears (source code, build config, debian metadata)
- Commit the version bump: `chore: bump version to vX.Y.Z`
- Push the version bump commit
### 4. Build the .deb package
- Run the project's build process:
- If `build.sh` exists: `./build.sh`
- If Rust project with cargo-deb: `cargo build --release && cargo deb`
- If Python project: build using the project's packaging setup
- If custom: follow whatever build instructions exist in the repo
- Locate the resulting `.deb` file (usually under `target/debian/`, `dist/`, or `build/`)
- If the build fails, stop and report the error — don't proceed to release
### 5. Update local installation
- Install the new `.deb`:
```bash
sudo dpkg -i <path-to-deb>
sudo apt-get install -f -y # fix any missing deps
```
- Verify the installed version matches what we just built:
```bash
dpkg -l | grep <package-name>
```
- If the project uses a venv or non-deb install method (like `/opt/<name>/`), update that instead by copying the new source files
### 6. Create GitHub release
- Create a git tag for the new version: `vX.Y.Z`
- Push the tag
- Create a GitHub release using `gh`:
```bash
gh release create vX.Y.Z \
--title "vX.Y.Z" \
--generate-notes \
<path-to-deb>
```
- The `--generate-notes` flag auto-generates release notes from commits since the last release
- If there's a meaningful summary to add beyond auto-generated notes, prepend it to `--notes`
### 7. Report
Tell the user:
- New version number
- What was committed and pushed
- Build result
- Local installation status
- GitHub release URL
## Version Detection Heuristics
When no obvious version file exists, search in this order:
1. `Cargo.toml` → `version = "X.Y.Z"`
2. `pyproject.toml` → `version = "X.Y.Z"`
3. `package.json` → `"version": "X.Y.Z"`
4. `**/__init__.py` → `__version__ = "X.Y.Z"`
5. `setup.py` → `version="X.Y.Z"`
6. `VERSION` file
7. Latest git tag matching `v*`
## Notes
- Always use Title Case for repo names when creating anything on GitHub
- If no `.deb` build system exists yet, ask the user if they want you to set one up before proceeding
- If the project is a Python venv app (like VoiceType at `/opt/voicetype/`), update the installed source files directly instead of building a .deb
- For projects that are NOT debian-packaged, skip step 4 and 5 — just do the GitHub release with source archives
- If `$ARGUMENTS` contains `--no-install`, skip local installation (step 5)
- If `$ARGUMENTS` contains `--no-deb`, skip .deb build and just create the GitHub release without artifactsFrom danielrosehill/Linux-Packaging-Plugin, MIT.
More from danielrosehill/Linux-Packaging-Plugin
- 0.462score
npm-publish
danielrosehill
Publish the current package to npm.
SkillAFreshness: A★ 1Claude Code +9 - 0.391score
debug-local-tool
danielrosehill
Use when a local application, CLI tool, or service on the user's Linux workstation isn't working and needs interactive debugging.
SkillCFreshness: C★ 1Claude Code +9 - 0.371score
agent-deploy-script
danielrosehill
Use when the user wants to create an agent-specific, low-verbosity variant of the current repo's deployment script for AI agent execution.
SkillCFreshness: C★ 1Claude Code +9 - 0.367score
build-and-push-debian
danielrosehill
Use when the user wants to push changes to GitHub, build a new debian version incrementing the version, and upgrade the local package.
SkillCFreshness: C★ 1Claude Code +9 - 0.367score
build-debian-package
danielrosehill
Use when the user wants to build a new version of the debian package in the current repo, increment the version, and install locally.
SkillCFreshness: C★ 1Claude Code +9 - 0.367score
create-package-release
danielrosehill
Use when the user wants to increment to the next version and create a GitHub release/tag that triggers a debian build workflow.
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Apr 27, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from danielrosehill
- 0.470score
plugin-data-storage
danielrosehill
Canonical reference for where Claude Code plugins should persist user data.
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
save-plan
danielrosehill
Save a Claude Code plan (from ExitPlanMode, design discussion, or multi-step task) to persistent storage.
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
onboard
danielrosehill
First-run onboarding for the adb-ops plugin.
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
context-gate
danielrosehill
One-shot context-checkpoint workflow — when the current session is getting cluttered, write a structured handover plan capturing what's done and what's…
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
context-workflow-reference
danielrosehill
Reference and worked example for the CONTEXT.md / CLAUDE.md two-file workflow.
SkillAFreshness: A★ 2Claude Code +9 - 0.470score
scaffold-planning
danielrosehill
Create a lightweight `planning/` folder in the current repo with leftover-tasks.md, blockers.md, session-logs/, and handovers/.
SkillAFreshness: A★ 2Claude Code +9
Cite this page
release-dev-project skill. Agent Mart. https://agentmart.dev/skills/danielrosehill-release-dev-project (last updated 2026-10-24)