From llm-essentials
Governs every git commit message produced in this repository. Always invoked. Every commit subject **must** start with one or more emoji glyphs (e.g. `✨`, `🐛`, `🛠️`, `💣`, `📝`, `🧪`, `🤖`, `📜`, `⭐️`, `🚧`, `💡`) followed by an optional Conventional Commit type/scope and a concise imperative summary. Use this skill whenever the user asks to "create a commit", "commit the changes", "stage and commit", "write a commit message", "amend the commit", or any other request that produces a git commit. The skill encodes the exact emoji vocabulary, subject grammar, body structure (`Why` / `What` / `Style` / `Verification`), per-file commit policy, and the mandatory `Co-authored-by: Copilot` trailer observed across the project's history.
How this skill is triggered — by the user, by Claude, or both
Slash command
/llm-essentials:git-commiterThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<div align = "center">
This skill governs every git commit produced in this repository. The project enforces an emoji-prefixed subject line on all commits, a structured commit body, and a per-file commit policy when several unrelated files change together. Read the entire skill before staging or committing, even for a single-line change. Never invent emoji or commit grammar that is not documented here.
git status --short to enumerate the working-tree changes - never commit blindly.git diff --stat (and git diff <file> for each file) to understand what actually changed..git/ and commit with git commit -F <file> to avoid shell-quoting issues.Co-authored-by: Copilot trailer unless the user explicitly opts out.Never skip reading this skill, even for a one-line change.
The commit subject is a single line ≤ 72 characters built from three parts in this exact order:
<emoji>[<emoji>...] <type>(<scope>): <imperative summary>
<emoji> (mandatory) - one or more glyphs from the vocabulary table. Multiple glyphs are concatenated with no
separator (e.g. ✨🤖, 🛠️🚧, 🐛🛠️).<type>(<scope>) (recommended) - Conventional Commit type (feat, fix, refactor, docs, test, chore,
ci, build, perf, style) and an optional parenthesised scope (tests, agents, skills, cli, remote).<imperative summary> (mandatory) - lowercase, imperative mood ("add", "fix", "remove" - not "added", "fixes").
No trailing period.Subject must be on line 1, followed by one blank line, followed by the optional body. Never put the body on line 2.
Use only the glyphs in this table. They mirror the existing repository history and must not be substituted with similar Unicode lookalikes.
| Emoji | Meaning | Use When | Conventional Type |
|---|---|---|---|
| ✨ | New feature / capability added | Introducing a new module, class, public API, skill, agent, badge | feat |
| 🐛 | Bug fix | Fixing incorrect behaviour reproducible by a test or report | fix |
| 🛠️ | Refactor / non-bug technical fix | Renames, signature tweaks, internal cleanups, parameter additions | refactor |
| 💣 | Breaking refactor / removal | Deleting code, breaking API changes, extracting/promoting helpers | refactor |
| 📝 | Documentation change | README/SKILL/AGENT/CHANGELOG updates, docstring-only patches | docs |
| 📜 | Long-form documentation note | Adding a new README, design notes, or extensive prose | docs |
| 🧪 | Test addition or change | New unittest cases, fixtures, CI matrix updates that ship tests | test |
| 🤖 | CI / automation / workflow | .github/workflows/*.yml, .flake8, lint/build/release config | ci / build |
| ⭐️ | Badge or visual marker added | Skills README badge, README highlights | docs |
| 🚧 | Work-in-progress marker | Pair with another emoji to signal a placeholder or incomplete work | any |
| 💡 | Idea / proposal / new skill body | New skill content (commonly paired with ✨) | feat |
Pair emoji freely when both apply: ✨🤖 (new agent file is an automation asset), 🐛🛠️ (a bugfix that is also a refactor),
✨🚧 (new but incomplete scaffold), 💣🚧 (refactor still in flight). Always put the primary intent emoji first.
Whenever the diff is more than a trivial typo, write a structured body using the four-section template below. Each section heading is followed by an underline of three dashes (matches existing project history). Keep lines wrapped to ~72 columns.
<emoji> <type>(<scope>): <imperative summary>
Why
---
One short paragraph stating the motivation. What was missing, broken,
or sub-optimal that justified this change.
What
----
- Bulleted list of the concrete changes.
- One bullet per file or per logical unit.
- Reference symbols / line numbers when useful (`_extract()`, `base.py`).
Style
-----
Note any project-style conventions applied (PEP-8, name : type spacing,
reST docstrings, markdown-format rules, single-underscore helpers).
Write "No formatting changes." if none.
Verification
------------
The exact command used to verify the change and its result, e.g.
`python -m unittest discover -v -s polyskills/tests -t .` -> 18 tests, OK.
Co-authored-by: Copilot <[email protected]>
When the working tree contains multiple unrelated changes, split them into separate commits - one per logically
independent file or feature. Stage explicitly with git add <file>; never use git add -A or git add . for a multi-file
change. The reviewer must be able to revert any one commit without collateral damage.
Group changes into a single commit only when they form one atomic unit (e.g. a test file plus the fixture it depends on, or a feature plus the docs that describe it).
Before writing any commit message, follow this exact sequence:
git status --short to list M, A, D, ?? entries. If empty, stop and report
"nothing to commit".git diff for unstaged, git diff --staged for staged, git diff --stat for a summary.git commit -F .git/COMMIT_MSG_<n>.txt, then delete the temp file.git log --oneline -5 to verify the new commit(s) landed correctly.Because Windows shells (PowerShell, cmd) mangle multi-line strings and emoji glyphs, always write the commit message to
a temporary file under .git/ and pass it via -F. Never use git commit -m "..." for non-trivial messages.
# canonical Python recipe used throughout this repository
import os, subprocess
repo = "<absolute-path-to-repo>"
msg_path = os.path.join(repo, ".git", "COMMIT_MSG.txt")
with open(msg_path, "w", encoding = "utf-8") as f:
f.write("""✨ feat(scope): one-line imperative summary
Why
---
...
What
----
- ...
Style
-----
...
Verification
------------
...
Co-authored-by: Copilot <[email protected]>
""")
subprocess.run(["git", "add", "<file-1>", "<file-2>"], cwd = repo, check = True)
subprocess.run(["git", "commit", "-F", msg_path], cwd = repo, check = True)
os.remove(msg_path)
The project's existing history is the canonical reference. The commits below are exemplary - copy their shape, never their content verbatim.
🧪 test(tests): add cross-platform skill installation tests
💣 refactor(tests): promote _extract() to base + add USER_SKILL_ROOT/SKILL_FILENAME
📝 docs(skills): add markdown-format badge to skills README
✨💡 feat(skills): add markdown-format skill
✨🤖 feat(agents): add python-code-reviewer agent
🤖 added .github/workflows/publish.yml create PyPI release
🐛 bugfix: format string requires pagination; updated docstring
✨🚧 initialize polyskills/error/... and polyskills/extensions/... module
The repository ships a pre-commit hook that may rewrite the commit SHA and prepend additional emoji to the subject
(e.g. transforming feat(...) into ✨🤖 feat(...)). This is expected. Always inspect the final subject with
git log --oneline -1 after committing to confirm the result, and never re-amend solely to "fix" hook-injected emoji.
git add -A / git add . when several unrelated files are dirty.git commit -m for a multi-line / structured body on Windows.Co-authored-by: Copilot trailer unless the user explicitly says "no co-author".Before invoking git commit, tick every box:
git status --short was inspected.git diff (or --staged) was reviewed file-by-file.type(scope) is correct for the change.Why / What / Style / Verification sections (for non-trivial diffs).Co-authored-by: Copilot <[email protected]> trailer is present.git commit -F <tempfile>, not -m.git log --oneline -1 was inspected after committing.Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub pyutility/polyskills --plugin llm-essentials