Claude Code Plugins

Community-maintained marketplace

Feedback

update-package-version

@towry/dots
6
0

This skill should be used when users need to update package versions in nix/pkgs directory with new release information including SHA256 checksums.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name update-package-version
description This skill should be used when users need to update package versions in nix/pkgs directory with new release information including SHA256 checksums.

Update Package Version

This skill updates package versions in the nix/pkgs directory structure with new release information and checksums.

When to Use

Use this skill when:

  • User requests updating a package to a new version
  • New release is available with updated binaries
  • Package follows the nix/pkgs directory structure with versions.json and package-specific .nix files

How to Use

To update a package version, provide:

  1. Package name (as used in versions.json)
  2. New version number
  3. Release manifest URL (for SHA256 checksums)

Example invocation: "update rust-mcp-filesystem to 0.3.12 using manifest https://github.com/towry/rust-mcp-filesystem/releases/download/v0.3.12/dist-manifest.json"

Process

  1. Fetch Release Manifest: Use WebFetch to retrieve the dist-manifest.json from the release URL
  2. Extract Checksums: Parse the manifest to get SHA256 checksums for each platform/architecture
  3. Update versions.json: Update the package version in nix/pkgs/versions.json
  4. Update Package .nix: Update the SHA256 hash(es) in the corresponding package .nix file
  5. Validate Changes: Confirm all updates are applied correctly

Expected Directory Structure

nix/pkgs/
├── versions.json          # Contains package version mappings
└── {package}.nix        # Package-specific nix expression with SHA256 hashes

File Formats

versions.json

{
  "package-name": "version.number"
}

Package .nix files

  • Use sha256-map with platform-specific hashes
  • Support platforms: aarch64-darwin, x86_64-darwin, aarch64-linux, x86_64-linux
  • Hash format: 64-character SHA256 string

Validation

  • Verify version number follows semantic versioning (x.y.z)
  • Confirm SHA256 hashes are valid 64-character hexadecimal strings
  • Ensure package exists in both versions.json and has corresponding .nix file
  • Check that platform mappings match available binaries in manifest

Error Handling

If any step fails:

  • Report specific error (missing manifest, invalid checksum, file not found)
  • Do not proceed with partial updates
  • Suggest manual verification steps