Skip to content
Skillv1.0.0

conventional-commits

Write Conventional Commits messages (v1.0.0) — type(scope): subject format for changelogs and semver. Use when drafting commit messages, PR titles, or release notes.

by knoopx(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from knoopx/pi (agent/skills/protocols/conventional-commits/SKILL.md). Install upstream with npx skills add knoopx/pi --skill conventional-commits. Copyright stays with the author.

Conventional Commits (v1.0.0)

Produce consistent commit messages that parse into changelogs and drive semantic versioning.

Format

type(scope): description

[optional body]

[optional footers]

Rules: header on one line, scope is always included, separate sections with blank lines. Add ! before : for breaking changes (e.g., feat(api)!: remove v1).

Choosing the Type

User-facing changes:

  • feat: new user-visible behavior — new CLI flags, UI components, API endpoints
  • fix: corrected behavior — fixes crashes, handles edge cases, corrects output

Maintenance:

  • refactor: structure change without behavior change — renaming, extracting utilities
  • perf: performance improvement — faster algorithms, reduced allocations
  • chore: general maintenance — dead code removal, tooling updates
  • style: formatting only — whitespace, semicolons, no logic changes
  • test: test-only changes — .test.ts, .spec.ts files
  • build: build system — package.json, Cargo.toml, bundler config
  • ci: CI/CD pipelines — GitHub Actions, deployment scripts
  • docs: documentation files only — .md, .txt. Code comments use the type matching the actual code change.

Reverts:

  • revert: undo a previous commit — revert: <original-message>

When unsure: new user behavior → feat, corrected behavior → fix, otherwise → chore or a more specific maintenance type.

Writing the Description

Use imperative mood, be specific, avoid generic words like "stuff" or "changes".

✅ feat(auth): add passwordless login
✅ fix(api): handle empty pagination cursor
❌ docs(agent): add behavioral guidelines and core principles  (too vague)
✅ docs(agent): add rules for dead code removal, build verification, security  (specific)

Breaking Changes

Mark in the header with !:

feat(api)!: remove deprecated v1 endpoints

Or add a BREAKING CHANGE: footer when you need an explanation:

feat(api): remove deprecated v1 endpoints

BREAKING CHANGE: /v1/* endpoints are removed; migrate to /v2/*.

Semantic Versioning Mapping

  • fix → patch
  • feat → minor
  • Any breaking change (! or BREAKING CHANGE:) → major

Rules

  • Subject line must be imperative mood ("add" not "added" or "adds")
  • No period at end of subject line
  • Keep subject under 72 characters
  • Use BREAKING CHANGE: footer for breaking changes
  • Map types to semver: fix→patch, feat→minor, breaking→major

When Asked to Write a Commit Message

Collect what changed, the scope/module, whether it's user-facing, and any issue IDs. Then produce a conventional header with optional body and footers.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/knoopx-pi-conventional-commits/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

knoopx-pi-conventional-commits.ocm.jsonjson
{
  "ocm": "1",
  "id": "knoopx-pi-conventional-commits",
  "kind": "skill",
  "name": "conventional-commits",
  "description": "Write Conventional Commits messages (v1.0.0) — type(scope): subject format for changelogs and semver. Use when drafting commit messages, PR titles, or release notes.",
  "publisher": "knoopx",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "commit",
      "message",
      "conventional",
      "changelog",
      "version",
      "release",
      "git",
      "github"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Write Conventional Commits messages (v1.0.0) — type(scope): subject format for changelogs and semver. Use when drafting commit messages, PR titles, or release notes."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "github",
      "repository": "https://github.com/knoopx/pi",
      "path": "agent/skills/protocols/conventional-commits/SKILL.md",
      "ref": "739d201f182bd414b1aea8c1a1dab03704bcedc3",
      "url": "https://github.com/knoopx/pi/blob/739d201f182bd414b1aea8c1a1dab03704bcedc3/agent/skills/protocols/conventional-commits/SKILL.md",
      "key": "knoopx/pi/agent/skills/protocols/conventional-commits/SKILL.md"
    }
  },
  "instructions": "# Conventional Commits (v1.0.0)\n\nProduce consistent commit messages that parse into changelogs and drive semantic versioning.\n\n## Format\n\n```\ntype(scope): description\n\n[optional body]\n\n[optional footers]\n```\n\nRules: header on one line, scope is always included, separate sections with blank lines. Add `!` before `:` for breaking changes (e.g., `feat(api)!: remove v1`).\n\n## Choosing the Type\n\n**User-facing changes:**\n\n- `feat`: new user-visible behavior — new CLI flags, UI components, API endpoints\n- `fix`: corrected behavior — fixes crashes, handles edge cases, corrects output\n\n**Maintenance:**",
  "cost": {
    "context_tokens": 659
  }
}

Fetch it by URL: GET /api/v1/registry/knoopx-pi-conventional-commits/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.