@cleepi/git
Cleepi git conventions: conventional-commit + branch-naming + PR-shape skills, with /commit and /pr prompts. Monorepo-aware domain and ticket-id resolution. Subject-line-only commits; no body, no footers, no Co-authored-by ever. Small modular PRs; title d
Package details
Install @cleepi/git from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@cleepi/git- Package
@cleepi/git- Version
0.2.1- Published
- Jun 2, 2026
- Downloads
- not available
- Author
- honem
- License
- MIT
- Types
- skill, prompt
- Size
- 41.5 KB
- Dependencies
- 0 dependencies · 0 peers
Pi manifest JSON
{
"skills": [
"./skills"
],
"prompts": [
"./prompts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@cleepi/git
Cleepi's git conventions as a pi package. Install in any repo
where you want a clean, standardised commit history — and never
another Co-authored-by: Claude line ever again.
What's in the box
skills/git-commit/SKILL.md— commit-message convention (Conventional Commits + AngularJS types, monorepo-aware domain, ticket-id discipline).skills/git-branch/SKILL.md— branch naming convention:<type>/<ticket>-<slug>with ticket optional.skills/git-pr/SKILL.md— PR/MR shape: title from branch, body 1–3 sentences + optional bullets. PRs should be small and modular./commit <type> <message>— resolves domain + ticket, assembles the message, stripsCo-authored-by:, asks before committing./pr [<description>]— derives title from current branch, detects GitHub/GitLab, runsgh pr create/glab mr createor prints for manual paste.
The 30-second version
Every cleepi commit follows this shape:
<type>(<domain>): [<ticket-id> ]<message>
Examples:
feat(crew): AC-201 add reviewer pre-step
refactor(sdd): AC-202 collapse Why-now into Why
docs(crew): fix README install path
chore(meta): bump prettier
fix(atlassian): DRAFT-007 handle empty JQL response
Hard rules (non-negotiable):
- One line. No body. No footers.
- NEVER
Co-authored-by:. Not for AI assistants. Not for anyone. Strip it if your tooling tries to add it. - No
Signed-off-by:either. - No emoji, no trailing period.
- Imperative, present tense, lowercase first letter of message.
For the full discipline (type table, domain rules, ticket-id
resolution chain, anti-patterns, voice), see
skills/git-commit/SKILL.md. It's
the source of truth.
Install
Global (every pi session gets the convention):
pi install git:github.com/cleevio/cleepi/packages/git
Project-local (recommended for repos adopting the convention as their actual standard):
cd <repo>
pi install -l git:github.com/cleevio/cleepi/packages/git
How /pr works
/pr Rename the primary button per the AC-123 redesign.
- Reads the current branch:
feat/AC-123-rename-primary-button. - Derives title mechanically:
feat(AC-123): rename primary button. No diff reading. - Uses your description as the body (or asks if you didn't pass one). Bullets optional, never invented.
- Detects host from
git remote get-url origin. - Shows you title + body + host. Asks
[y / N / edit]. - Runs
gh pr create/glab mr create, or prints for manual paste if neither CLI is installed.
If the branch doesn't match <type>/..., /pr refuses and
tells you to rename the branch first. The point of the
convention is that the title is mechanical.
How /commit works
/commit feat add reviewer pre-step
- Validates
featagainst the Angular type set. - Resolves domain: cwd is inside
packages/crew/→crew. - Resolves ticket-id: cwd is under
docs/AC-201-reviewer-prestep/→AC-201. - Assembles:
feat(crew): AC-201 add reviewer pre-step. - Strips any
Co-authored-by:injected anywhere. - Shows you the message + the staged diff summary.
- Asks
[y / N / edit]before runninggit commit.
If you call /commit outside a packages/<n>/ directory, or
on a branch with no ticket pattern, it asks you for the
missing pieces. Manual --domain=... and ticket-id tokens in
the args always win.
Tuning
Don't edit the package source — it gets overwritten on
pi update. Instead, copy the skill into your project (or
user) scope and edit there:
cp .pi/agent/skills/git-commit/SKILL.md .pi/skills/git-commit/SKILL.md
cp .pi/agent/skills/git-branch/SKILL.md .pi/skills/git-branch/SKILL.md
cp .pi/agent/skills/git-pr/SKILL.md .pi/skills/git-pr/SKILL.md
# edit the copy in .pi/skills/
Project scope wins on collision.
Soft-aware integration with @cleepi/sdd
/commit and @cleepi/sdd's /journal share the same
ticket-id resolution chain (cwd → branch → ask). When sdd is
installed alongside git, ticket detection is consistent. When
it isn't, branch-name and ask-user fallbacks still work.
There is no hard dependency.
Related
- SPEC.md — what this package is and isn't.
- CHANGELOG.md — release history.
- Root cleepi spec DRAFT-001 — the v0.1.0 design rationale.
@cleepi/sdd— sibling package; shares ticket resolution.- Conventional Commits 1.0.0 — the upstream convention.
- AngularJS commit message guidelines — the upstream type set.