---
title: "@cleepi/git"
status: shipped
created: 2026-05-28
owner: Honza
related:
  - ../../docs/DRAFT-001-cleepi-git-v0.1.0/spec.md
---

# `@cleepi/git`

## What this package is

A pi package that ships Cleepi's git conventions as durable
instructions. Install it in any repo and pi sessions there know
how to write commits the cleepi way.

Three skills + two prompts as of v0.2.0:

- **`skills/git-commit/SKILL.md`** — commit-message
  convention (v0.1.0).
- **`skills/git-branch/SKILL.md`** — branch naming convention
  (v0.2.0). Shape `<type>/<ticket>-<slug>` with ticket optional;
  types match `git-commit`.
- **`skills/git-pr/SKILL.md`** — PR/MR shape (v0.2.0). Title
  derived from branch (not the diff); body 1–3 sentences +
  optional bullets; PRs should be small and modular.
- **`/commit <type> <message>`** — v0.1.0 prompt.
- **`/pr [<description>]`** — v0.2.0 prompt. Derives title
  from branch, detects GitHub/GitLab from remote, runs
  `gh pr create` / `glab mr create` or prints for manual
  paste.

The conventions themselves live in the skill files. The package
SPEC is the index, not the rule book.

## What this package is not

- **Not a lint or hook enforcer.** The skill instructs; it
  doesn't police. No `commit-msg` hook ships. Enforcement is
  deferred until friction shows up.
- **Not a rebase toolkit.** v0.2.0 adds branch naming and PR
  shape but stays out of rebase / merge discipline. Defer
  until friction shows up.
- **Not a CI / review-automation toolkit.** No auto-merge
  rules, no label automation, no required-reviewer logic.
  Those are forge concerns, not Cleepi-taste concerns.
- **Not a changelog generator.** Commits don't auto-write
  changelog entries. That's `@cleepi/sdd`'s `/changelog`.
  The link between commit and changelog is the ticket-id,
  read by humans.
- **Not configurable.** The Angular type set is fixed
  (`feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`,
  `chore`, `build`, `ci`, `revert`). Teams wanting extra types
  edit a project-scope copy of the skill.
- **Not opinionated about ticket trackers.** Ticket-id can be
  `AC-NNN`, `LIN-NNN`, `gh-NN`, `DRAFT-NNN`, anything matching
  `[A-Z]+-[0-9]+`. The skill doesn't validate.
- **Not a hard dependency on `@cleepi/sdd`.** Soft-aware: when
  sdd is loaded, the ticket-folder resolution chain matches
  `/journal`'s. When sdd isn't loaded, the branch-name and
  ask-user fallbacks still work.

## Design at a glance

```
packages/git/
  package.json
  README.md
  SPEC.md                        ← this file
  CHANGELOG.md
  skills/
    git-commit/SKILL.md          ← commit-message convention
    git-branch/SKILL.md          ← branch naming convention
    git-pr/SKILL.md              ← PR/MR shape
  prompts/
    commit.md                    ← /commit
    pr.md                        ← /pr
```

## The format (one-line summary)

```
<type>(<domain>): [<ticket-id> ]<message>
```

Subject line only. No body. No footers. **No `Co-authored-by:`.**
See the skill for the full discipline.

## Versioning

Per-package SemVer. Pre-`1.0.0`, minor bumps may include
breaking changes (per SemVer §4).

## Related

- [`skills/git-commit/SKILL.md`](./skills/git-commit/SKILL.md),
  [`skills/git-branch/SKILL.md`](./skills/git-branch/SKILL.md),
  [`skills/git-pr/SKILL.md`](./skills/git-pr/SKILL.md) —
  canonical conventions.
- [CHANGELOG.md](./CHANGELOG.md) — release history.
- [spec DRAFT-001](../../docs/DRAFT-001-cleepi-git-v0.1.0/spec.md) —
  v0.1.0 design rationale.
- [spec DRAFT-002](./docs/DRAFT-002-git-pr/spec.md) —
  v0.2.0 design rationale (branch + PR).
- [`@cleepi/sdd`](../sdd/) — soft-aware sibling; `/commit`
  shares ticket-resolution logic with `/journal`.
- [`@cleepi/crew`](../crew/) — hard peer (from crew's side):
  crew's `worker`/`reviewer`/`planner` agents load these
  skills (per
  [crew DRAFT-005](../crew/docs/DRAFT-005-git-skill-wiring/spec.md)).
