K‑Skill Release History: How Automated Releases Work in This Monorepo

The k‑skill repository uses fully automated releases driven by Changesets for npm packages and release‑please for Python packages, with all version history stored on GitHub Releases rather than in a static changelog file.

The k‑skill project follows a release automation strategy that eliminates manual changelog maintenance. Instead of tracking k‑skill release history in a single file, the repository relies on two CI‑driven workflows that generate version bumps, changelogs, and Git tags automatically. This article explains how each mechanism works, where to find the generated release history, and how to interact with the system locally.

How K‑Skill Handles Releases: Two Automated Systems

The repository contains a monorepo with both JavaScript/TypeScript and Python packages. Each language ecosystem uses a different release tool:

Changesets for NPM Packages

The Changesets tool manages versioning for all npm workspace packages. When developers introduce changes that require a version bump, they create a .changeset/*.md file describing the impact.

Key implementation details:

Each package maintains its own generated changelog. For example, packages/k-skill-cli/CHANGELOG.md contains the automated release notes for that workspace member.

Release‑Please for Python Packages

Python packages in python-packages/* use release‑please, Google's release automation tool:

  • The workflow .github/workflows/release-python.yml triggers on commits touching Python package paths
  • release‑please parses Conventional Commits to determine version bumps
  • It generates a CHANGELOG.md for each Python package and creates GitHub releases automatically

Where to Find the K‑Skill Release History

Because both systems generate releases dynamically, no static release history file exists at the repository root. The authoritative sources are:

Location What It Contains
GitHub Releases page All version tags with automated release notes
.git/refs/tags (remote) Tag objects created by CI workflows
Per‑package CHANGELOG.md files Generated changelogs for individual packages
package.json files Current version strings for npm workspaces

From a shallow clone, the local repository shows only the initial commit (06d017ac05317da31ab2c8d6a9accf4ad4db70ad from 2024‑08‑04) with no tags. All release metadata lives on GitHub's servers.

Viewing and Working with Releases Locally

Use these commands to inspect the k‑skill release history from your terminal:


# List all tags created on the remote (GitHub)

git ls-remote --tags origin

# View current version of an npm workspace package

cd packages/k-skill-cli && npm pkg get version

# Simulate the Changesets version step locally

npx changeset version

# Check release‑please status for Python packages

npx release-please release-pr --token=$GITHUB_TOKEN --repo-url=NomaDamas/k-skill

Key Files That Power the Release Pipeline

File Purpose
package.json Defines monorepo workspaces and npm release scripts
.changeset/config.json Configures Changeset versioning strategy
.github/workflows/release-npm.yml CI job for npm package releases
.github/workflows/release-python.yml CI job for Python package releases
.github/release-please/ JSON manifests for release‑please configuration
packages/*/CHANGELOG.md Auto‑generated changelogs per npm package

Summary

  • The k‑skill release history is fully automated — no hand‑written changelog exists
  • Changesets handle npm packages through .changeset/ files and the release-npm.yml workflow
  • release‑please handles Python packages through the release-python.yml workflow
  • All releases appear on the GitHub Releases page with auto‑generated notes
  • Local clones only show the initial commit; use git ls-remote --tags origin to see all releases

Frequently Asked Questions

How do I find the current version of a k‑skill package?

Check the package.json for npm packages or run npm pkg get version inside the workspace directory. For Python packages, inspect the pyproject.toml or setup.py version field. The latest release version always appears on the GitHub Releases page.

Why doesn't k‑skill have a CHANGELOG.md at the repository root?

The project uses automated release tools that generate changelogs per‑package rather than maintaining a single root‑level file. This approach ensures each workspace member has accurate, scoped release notes without manual synchronization.

Can I trigger a release manually?

You can simulate the version bump locally with npx changeset version (npm) or npx release‑please release-pr (Python), but actual releases require merging through the GitHub workflows. The release-npm.yml and release-python.yml workflows enforce the production release process.

How do I add a changeset for my npm package change?

Run npx changeset in the repository root, select the affected packages, and describe the change. This creates a .changeset/*.md file that the CI will consume when generating the next release.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →