Skip to content
Back to skills

Versioning

ASecurity

Semantic Versioning (SemVer) and unified release lifecycle skill for CodeExplorer (CLI and VS Code Extension). Use whenever bumping versions, fixing bugs, releasing features, or preparing git release tags.

  • 13 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 20, 2026
ai-agentsshellbashrefactoringgitapici/cd

Works with

  • vscode
  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 20, 2026

npx -y skills add vmikhailov/code-explorer --skill versioning --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Versioning?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Versioning
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vmikhailov-versioning/badge)](https://www.skillsdirectory.com/skills/vmikhailov-versioning)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: versioning
description: Semantic Versioning (SemVer) and unified release lifecycle skill for CodeExplorer (CLI and VS Code Extension). Use whenever bumping versions, fixing bugs, releasing features, or preparing git release tags.
---

# Semantic Versioning (SemVer) & Release Lifecycle

This skill defines the strict versioning and release lifecycle for CodeExplorer (CLI and VS Code Extension).

Both the CLI and VS Code Extension share a **single, unified version number** and are released together via a unified GitHub Actions workflow.

---

## 1. SemVer Version Increment Rules

Versions strictly follow the format: `MAJOR.MINOR.PATCH` (e.g. `1.44.0`).

### 1.1. Patch Version (`MAJOR.MINOR.PATCH` -> `MAJOR.MINOR.(PATCH + 1)`)
- **When to use**:
  - Fixing bugs or crashes.
  - Fixing regressions or edge-case parsing anomalies.
  - Improving error handling, diagnostics, or logging.
  - Internal refactoring that does not change external APIs, CLI commands, or UI behaviors.
  - Maintenance, dependency bumps without breaking changes, or test suite additions.
- **Action**: Increment ONLY the last digit (`PATCH`). `MAJOR` and `MINOR` remain unchanged.
- **Example**: `1.44.0` -> `1.44.1`.

### 1.2. Minor Version (`MAJOR.MINOR.PATCH` -> `MAJOR.(MINOR + 1).0`)
- **When to use**:
  - Adding new user-facing functionality or features.
  - Adding new CLI verbs or commands (e.g., `ce test`, `ce coverage`).
  - Adding new MCP tools or extending tool parameters.
  - Adding new language parsers or syntax extractors.
  - Adding new UI views, panels, graph layouts, or filters in the VS Code extension.
  - Backward-compatible architectural enhancements.
- **Action**: Increment the middle digit (`MINOR`) and reset `PATCH` to `0`.
- **Example**: `1.44.0` -> `1.45.0`.

### 1.3. Major Version (`MAJOR.0.0` -> `(MAJOR + 1).0.0`)
- **When to use**:
  - Fundamental paradigm shift in architecture or execution model.
  - Breaking changes to public APIs, CLI flags/output schemas, or MCP tool contracts.
  - Complete overhaul of the graph ontology schema requiring migration.
- **CRITICAL CONSTRAINT**:
  > [!IMPORTANT]
  > **MAJOR version increments are STRICTLY PROHIBITED without explicit prior user consent/approval.**
  > The agent must NEVER bump the MAJOR version autonomously. Always propose the major bump to the user, explain why the paradigm shift requires it, and wait for explicit confirmation before changing the major version.
- **Action** (upon user approval): Increment the first digit (`MAJOR`), reset `MINOR` to `0`, and reset `PATCH` to `0`.
- **Example**: `1.44.0` -> `2.0.0`.

---

## 2. Synchronized Version Files

When updating the version, all three of the following files **must** be updated simultaneously to the exact same version string:

1. **`cli/Directory.Build.props`**:
   ```xml
   <!-- Versioning -->
   <Version Condition="'$(Version)' == ''">MAJOR.MINOR.PATCH</Version>
   ```
   *(All assembly, file, informational, and NuGet package versions automatically inherit `$(Version)`)*.

2. **`vscode-extension/package.json`**:
   ```json
   "version": "MAJOR.MINOR.PATCH"
   ```

3. **`vscode-extension/package-lock.json`**:
   - Update `"version"` at the top level.
   - Update `"version"` inside `packages[""]`.

---

## 3. Automation Helper Script

Use the provided PowerShell script in this skill to safely bump all files in one step:

```powershell
# For bug fixes (bumps PATCH):
pwsh .agents/skills/versioning/scripts/bump-version.ps1 -Type patch

# For new features / functionality (bumps MINOR, resets PATCH to 0):
pwsh .agents/skills/versioning/scripts/bump-version.ps1 -Type minor

# For fundamental paradigm change (requires user consent, pass -Force):
pwsh .agents/skills/versioning/scripts/bump-version.ps1 -Type major -Force

# Or specify exact version:
pwsh .agents/skills/versioning/scripts/bump-version.ps1 -TargetVersion 1.44.1
```

---

## 4. Verification Checklist (Prior to Tagging & Release)

Before committing and tagging a new version, run the full verification suite:

### 4.1. CLI Verification
- **Build**:
  ```bash
  dotnet build cli/CodeExplorer.slnx -c Release
  ```
  *(Must compile with **0 warnings** and **0 errors**; `<TreatWarningsAsErrors>true</TreatWarningsAsErrors>` is enforced globally)*.
- **Core Tests**:
  ```bash
  dotnet test cli/tests/CodeExplorer.Tests/CodeExplorer.Tests.csproj
  ```
- **Cypher Engine Tests**:
  ```bash
  dotnet test cli/tests/CodeExplorer.Cypher.Tests/CodeExplorer.Cypher.Tests.csproj
  ```

### 4.2. VS Code Extension Verification
- **Typecheck & Tests**:
  ```bash
  cd vscode-extension
  npm run typecheck
  npm run test
  ```

---

## 5. Release & Tagging Protocol

Once verified:

1. **Commit Changes**:
   Use Conventional Commits:
   - For bug fixes: `fix: <description>` or `chore(release): vX.Y.Z`
   - For features: `feat: <description>` or `chore(release): vX.Y.Z`
   - Example:
     ```bash
     git commit -am "chore(release): v1.44.1"
     ```

2. **Create Git Tag**:
   The tag **must** have the format `v<MAJOR>.<MINOR>.<PATCH>`:
   ```bash
   git tag v1.44.1
   ```

3. **Push to Remote**:
   ```bash
   git push origin main --tags
   ```

4. **CI/CD Automation**:
   The unified GitHub Actions workflow ([`.github/workflows/release.yml`](file:///c:/Work/Personal/code-explorer/.github/workflows/release.yml)) is triggered automatically by the tag:
   - Compiles native binaries for 6 architectures (Win/Linux/macOS x64 & ARM64).
   - Packs and publishes `CodeExplorer.Cli` to NuGet.org.
   - Packages the `.vsix` extension and publishes to VS Code Marketplace & Open VSX Registry.

Files in this skill

  • SKILL.md5.5 KB
  • scripts/bump-version.ps14.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.