diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json
index e4ed232..2fef7d2 100644
--- a/.claude-plugin/plugin.json
+++ b/.claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "github-release",
- "version": "1.5.1",
+ "version": "1.6.0",
"description": "Safe, automated GitHub releases with supply chain security. Prevents dangerous gh release commands, orchestrates version bumps, signed tags, and CI-driven releases across ecosystems (TYPO3, PHP, Node.js, Go, Python, Rust, skill repos).",
"author": {
"name": "Netresearch DTT GmbH",
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6d9e4d2..384429d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,8 @@ their notes were not backfilled here rather than reconstructed after the fact.
## [Unreleased]
+## [1.6.0] - 2026-11-12
+
### Changed
- the two guard hooks (`guard-gh-release.py`, `guard-lightweight-tag.py`) read a Bash call with tree-sitter-bash instead of regular expressions. They now also judge a release or tag command run through `bash -c`, `eval`, a heredoc or here-string a shell reads as its script, or `echo`/`printf` output piped into a shell; a `$( )` inside a heredoc with an unquoted delimiter; a command name written escaped, quoted or with a path (`\gh`, `"git"`, `g""h`, `/usr/bin/gh`) or behind a redirection; and `git -C
`, `git -c k=v`, `--git-dir=…` or `gh -R ` before the subcommand. `$'...'` strings are decoded before the arguments are split. A comment after a command is no longer read as part of it, so `git tag nightly # v1.2.3` is allowed. A script file (`bash release.sh`) is still not read. The guards declare `tree-sitter==0.26.0` and `tree-sitter-bash==0.25.1`, which uv installs on first use (#221)
@@ -279,7 +281,8 @@ their notes were not backfilled here rather than reconstructed after the fact.
([#92](https://github.com/netresearch/github-release-skill/issues/92)).
- The `netresearch/skill-repo-skill` pre-commit hook moves to v2.0.1.
-[Unreleased]: https://github.com/netresearch/github-release-skill/compare/v1.5.1...HEAD
+[Unreleased]: https://github.com/netresearch/github-release-skill/compare/v1.6.0...HEAD
+[1.6.0]: https://github.com/netresearch/github-release-skill/compare/v1.5.1...v1.6.0
[1.5.1]: https://github.com/netresearch/github-release-skill/compare/v1.5.0...v1.5.1
[1.5.0]: https://github.com/netresearch/github-release-skill/compare/v1.4.0...v1.5.0
[1.4.0]: https://github.com/netresearch/github-release-skill/compare/v1.3.0...v1.4.0
diff --git a/plugin.json b/plugin.json
index 8d560f1..5be6c51 100644
--- a/plugin.json
+++ b/plugin.json
@@ -1,7 +1,7 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "github-release",
- "version": "1.5.1",
+ "version": "1.6.0",
"description": "Safe, automated GitHub releases with supply chain security. Prevents dangerous gh release commands, orchestrates version bumps, signed tags, and CI-driven releases across ecosystems (TYPO3, PHP, Node.js, Go, Python, Rust, skill repos).",
"author": {
"name": "Netresearch DTT GmbH",
diff --git a/skills/github-release/SKILL.md b/skills/github-release/SKILL.md
index abcbaab..211f63f 100644
--- a/skills/github-release/SKILL.md
+++ b/skills/github-release/SKILL.md
@@ -7,7 +7,7 @@ license: "(MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.0"
compatibility: "Requires uv (runs the scripts on Python 3.11 or later), gh CLI, git with GPG/SSH signing configured. The plugin hooks fail closed from Claude Code v2.1.295 (onFailure); with uv before 0.5.31 their launcher blocks every gh and git call."
metadata:
author: Netresearch DTT GmbH
- version: "1.5.1"
+ version: "1.6.0"
repository: https://github.com/netresearch/github-release-skill
allowed-tools: Bash(gh:*) Bash(git:*) Read Write Edit Glob Grep
---