agentsclimarketplace

Release status

Skill gtapps/claude-code-hermit/.claude/skills/release-status

Use this skill to answer "what's ready to ship?", "where does the release pipeline stand?", "any plugins awaiting tag?", "give me a pipeline overview/snapshot", or any pre-release-session check-in. Shows all plugins' current version, last tag, commits ahead, whether there are unreleased changes, and whether required_core_version is stale or unsatisfied. No mutations — read-only.From its SKILL.md

Install
npx -y skills add gtapps/claude-code-hermit --skill release-status

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

4.0 KB, as published. Nobody here has run it

Release Status

Read-only diagnostic — git status for the release pipeline. No mutations.

Steps

1. Collect plugin data

Glob plugins/*/.claude-plugin/plugin.json. For each slug:

# version
jq -r .version plugins/<slug>/.claude-plugin/plugin.json

# last tag (double-dash format)
git tag --list "<slug>--v*" | sort -V | tail -1

# commits since last tag, scoped to this plugin's directory
# use HEAD as base if no tag exists
git rev-list <last-tag-or-HEAD>..HEAD --count -- plugins/<slug>/

# non-empty [Unreleased] section
awk '/^## \[Unreleased\]/{flag=1; next} /^## \[/{flag=0} flag && NF' \
  plugins/<slug>/CHANGELOG.md

# hygiene: duplicate section headers inside [Unreleased] (fragmented changelog
# from parallel worktree merges)
awk '/^## \[Unreleased\]/{f=1; next} /^## \[/{f=0} f && /^### /' \
  plugins/<slug>/CHANGELOG.md | sort | uniq -d

# hygiene: merges since last tag that touched the plugin but not its CHANGELOG
# (likely missing an [Unreleased] entry; use the repo's initial commit if no tag)
git log --merges --format=%H <last-tag-or-initial>..HEAD -- plugins/<slug>/ | while read m; do
  git diff --name-only "$m^1" "$m" -- plugins/<slug>/CHANGELOG.md | grep -q . \
    || git log -1 --format='%h %s' "$m"
done

For plugins with no plugin.json version or no recognizable tags: mark as unstructured (skip) and stop collecting data for that plugin.

2. Get latest core reference

git tag --list "claude-code-hermit--v*" | sort -V | tail -1

Extract just the version number (strip claude-code-hermit--v). Call it latest_core_version.

3. Read dependency constraints (domain plugins only)

For each plugin that has plugins/<slug>/.claude-plugin/hermit-meta.json:

jq -r .required_core_version plugins/<slug>/.claude-plugin/hermit-meta.json

4. Determine status per plugin

ConditionStatus
plugin.json version > last tag versionawaiting-tag
[Unreleased] section is non-emptyprep-needed
version matches last tag, no [Unreleased]up-to-date
no version or no tagsunstructured

5. Apply core-req flags (domain plugins)

Parse the version floor from required_core_version (the number after >=). Compare to latest_core_version:

ConditionFlag
floor > latest_core_version✗ ERROR: unsatisfied
floor == latest_core_version✓
floor < latest_core_version⚠ WARN: stale

6. Print output

Plugin                            Version   Last Tag   Ahead  Status         Core Req
claude-code-hermit                1.0.22    1.0.21     2      awaiting-tag   —
claude-code-dev-hermit            0.2.2     0.2.1      2      awaiting-tag   >=1.0.22 ✓
claude-code-homeassistant-hermit  0.0.6     0.0.6      0      up-to-date     >=1.0.21 ⚠ stale (core: 1.0.22)
claude-code-fitness-hermit        —         —          —      unstructured (skip)

After the table:

  • List any ERROR items with a one-line explanation.
  • List changelog-hygiene warnings from step 1 (these block a clean /release and should be fixed first):
    • ⚠ <slug>: fragmented changelog — duplicate '### <header>' inside [Unreleased]; consolidate (one header per section, see /commit)
    • ⚠ <slug>: <N> merge(s) since <last-tag> touched the plugin without a CHANGELOG entry: <hash> <subject>, ... — verify each is genuinely operator-invisible (pure refactor/test-only) or backfill a bullet.
  • End with one of:
    • Nothing ready to ship. — no plugin is awaiting-tag or prep-needed
    • Ready to ship: <slug>, <slug> — plugins where status is awaiting-tag or prep-needed

Keep looking

Skills are one crate of 617,990. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.