git-commit-bullets
Perform git commit with the message body written as a bullet list. Use when committing with git and the user wants bullet-list commit bodies.
What this skill does
# Git Commit with Bullet-List Body Make commits that are easy to review and safe to ship: only intended changes are included, commits are logically scoped (split when needed), and commit messages describe what changed and why. The **message body** must be written as a **bullet list**, not a paragraph. --- ## Inputs to ask for (if missing) - Single commit or multiple commits? (If unsure: default to multiple small commits when there are unrelated changes.) - Commit style: Conventional Commits are required. - Any rules: max subject length, required scopes. --- ## Workflow (checklist) 1. **Inspect the working tree before staging** - `git status` - `git diff` (unstaged) - If many changes: `git diff --stat` 2. **Decide commit boundaries (split if needed)** - Split by: feature vs refactor, backend vs frontend, formatting vs logic, tests vs prod code, dependency bumps vs behavior changes. - If changes are mixed in one file, plan to use patch staging. 3. **Stage only what belongs in the next commit** - Prefer patch staging for mixed changes: `git add -p` - To unstage a hunk/file: `git restore --staged -p` or `git restore --staged <path>` 4. **Review what will actually be committed** - `git diff --cached` - Sanity checks: no secrets or tokens, no accidental debug logging, no unrelated formatting churn. 5. **Describe the staged change in 1-2 sentences (before writing the message)** - "What changed?" + "Why?" - If you cannot describe it cleanly, the commit is probably too big or mixed; go back to step 2. 6. **Write the commit message** - Use Conventional Commits (required): `type(scope): short summary`, then blank line, then **body as a bullet list** (what/why, not implementation diary). Footer (e.g. BREAKING CHANGE) if needed. - **Subject:** One line, imperative, ~50 chars or less. - **Body:** Blank line after subject, then **only** bullet lines; one bullet per logical change; what and why, not file names. No paragraph prose in the body. - Prefer an editor for multi-line messages: `git commit -v`. 7. **Run lint, format, and verification before committing** - Run the project's **format** command (e.g. `npm run format`, `prettier --write`, `ruff format`, `cargo fmt`) so staged code matches project style. - Run the project's **lint** command (e.g. `npm run lint`, `ruff check`, `eslint`, `cargo clippy`) and fix any issues. - Then run the smallest relevant verification (unit tests or build) before moving on. 8. **Repeat for the next commit** until the working tree is clean. --- ## Message format ``` type(scope): short summary - Bullet one: what changed and why - Bullet two: another logical change - Bullet three: optional detail ``` - **Subject:** One line, Conventional Commits (e.g. `feat(auth):`, `fix(api):`). - **Body:** Blank line after subject, then only bullet lines. No paragraph prose in the body. - **Do not** add a `Co-authored-by: Cursor <...>` (or similar) trailer to the commit message. --- ## Body bullets: good vs bad **Good (intent, one idea per bullet):** - Add login endpoint and validate JWT in middleware - Extend task model with priority field and migration - Fix date formatting in report export **Bad (file names or vague):** - Changed `src/auth.py` - Updated stuff in models Infer intent from the diff and phrase each bullet as a single, clear change. --- ## Committing - **Editor:** `git commit` or `git commit -v`, then paste subject + blank line + bullets. - **CLI:** `git commit -m "Subject line" -m "- Bullet one\n- Bullet two\n- Bullet three"` or a single `-m` with the full message if the shell preserves newlines. --- ## Checklist - [ ] Working tree inspected; commit boundaries decided - [ ] Only intended changes staged; `git diff --cached` reviewed - [ ] Change described in 1-2 sentences (what + why) - [ ] Subject line: Conventional Commits, short, imperative - [ ] Body is only a bullet list (no paragraph) - [ ] Bullets describe intent, not just files - [ ] Lint and format run (and any issues fixed); verification run; commit executed with the composed message - [ ] No Co-authored-by Cursor trailer in the message --- ## Deliverable Provide: - The final commit message(s) - A short summary per commit (what/why) - The commands used to stage/review (at minimum: `git diff --cached`, plus any tests run)
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.