# What Is the Versioning Scheme Used by Nutlope/hallmark?

> Discover the versioning scheme of Nutlope/hallmark. Learn how this project uses Semantic Versioning SemVer for clear and predictable updates to ensure software quality.

- Repository: [Hassan El Mghari/hallmark](https://github.com/Nutlope/hallmark)
- Tags: api-reference
- Published: 2026-08-10

---

**Nutlope/hallmark uses Semantic Versioning (SemVer) with a `major.minor.patch` format, currently at version `1.1.0`.**

The Hallmark greeting‑card CLI tool and its underlying skill system follow the industry‑standard **Semantic Versioning** pattern. This article explains how the versioning scheme works, where the version is declared in the source code, and how to read or bump it programmatically.

---

## Semantic Versioning in Hallmark

Hallmark adopts the classic **SemVer** structure:

```

<major>.<minor>.<patch>

```

- **Major** – incremented for breaking changes that alter the public API or the skill’s contract
- **Minor** – incremented when new, backward‑compatible features are added (e.g., a new design verb or theme)
- **Patch** – incremented for bug fixes, documentation updates, or non‑functional tweaks

This versioning scheme ensures users can predict compatibility and impact when upgrading.

---

## Where the Version Is Declared

The repository stores the identical version number in two authoritative locations:

### package.json

In the root [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) manifest:

```json
{
  "name": "hallmark",
  "version": "1.1.0"
}

```

File path: [[`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json)](https://github.com/Nutlope/hallmark/blob/main/package.json)

### SKILL.md

In the skill definition file:

```md
---
name: hallmark
version: 1.1.0
---

```

File path: [[`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md)](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md)

Both files declare `1.1.0`, confirming synchronized version management between the npm package and the skill runtime.

---

## Working with the Version Programmatically

### Reading the version in Node.js

```javascript
import { readFile } from 'fs/promises';
const pkg = JSON.parse(await readFile('./package.json', 'utf8'));
console.log(`Hallmark version: ${pkg.version}`);
// → Hallmark version: 1.1.0

```

### Bumping the version via npm

```bash

# Increment minor version (1.1.0 → 1.2.0)

npm version minor

# Increment patch version (1.1.0 → 1.1.1)

npm version patch

```

These commands update [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) automatically and create a matching Git tag when the repository is version‑controlled.

---

## Why SemVer Matters for Hallmark

Because Hallmark exposes both a **CLI interface** and a **skill API**, the versioning scheme protects consumers:

- CLI users know when command flags or output formats change
- Skill integrators understand when the [`SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/SKILL.md) contract evolves
- Automated tooling can validate compatible version ranges

The dual declaration in [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) and [`SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/SKILL.md) ensures consistency across the npm ecosystem and the custom skill loader.

---

## Summary

- Hallmark uses **Semantic Versioning (`major.minor.patch`)**
- Current version is **`1.1.0`** as of the latest source code
- Version is declared identically in [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) and [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md)
- Use `npm version` commands to bump versions automatically
- SemVer provides predictable upgrade paths for CLI and skill consumers

---

## Frequently Asked Questions

### What version is Nutlope/hallmark currently at?

The repository is at version `1.1.0`, declared in both [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) and [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md).

### Does Hallmark use strict Semantic Versioning?

Yes. The repository follows the `major.minor.patch` format with standard SemVer semantics for breaking changes, features, and fixes.

### How do I check the Hallmark version programmatically?

Read and parse [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) in Node.js, or inspect the `version` field in [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md) for the skill-specific version.

### Will npm version commands update both version files?

No. `npm version` only updates [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json). You must manually synchronize [`SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/SKILL.md) if you want both files to match after a version bump.