Skip to main content

git-commit-quality

MUST be used whenever writing, amending, squashing, or auditing any Git commit message. Enforces subject-only defaults, bans AI attribution trailers and development diaries.

ソース情報

リポジトリ
dvcrn/skills
ソースの最終更新活動
2026年9月8日 08:17
検出された SKILL.md の言語
英語
スター
0
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
git-commit-quality
description
MUST be used whenever writing, amending, squashing, or auditing any Git commit message. Enforces subject-only defaults, bans AI attribution trailers and development diaries.
# Git Commit Quality Standards ## Core Philosophy > **A Git commit message records the state change and its essential architectural rationale, not a development diary, proof-of-work ledger, or debugging scratchpad.** Default to a subject-only commit. Add a body only when the diff cannot convey a non-obvious invariant, business logic constraint, compatibility requirement, or issue reference. --- ## 1. Commit Format & Constraints - **Subject line:** - Imperative mood, present tense (`Add`, `Fix`, `Update`, `Refactor`, `Remove`), never `Added`, `Fixes`, or `Updating`. - Under 50 characters (hard ceiling: 72 characters). - Capitalize first letter; no trailing period. - No conventional commit prefixes (`feat:`, `fix:`, `chore:`) unless repository conventions require them. - **Subject-only default:** If the diff and subject make the change evident, omit the body entirely. - **Body:** - Separate from subject with a single blank line. - 1 to 4 lines maximum, hard-wrapped at 72 characters. - Focus strictly on *why* (non-obvious invariants, constraints, upstream quirks). - Include issue-closing trailers when applicable (`Fixes #123`). - **Granularity:** Split unrelated changes into distinct commits rather than writing a multi-paragraph body explaining multiple unrelated edits. --- ## 2. Commit Anti-Patterns ### 1. The Development & Debugging Diary - **Anti-Pattern:** Narrating the debugging journey, transient investigation findings, local benchmarks, or test run outputs (*"verified today on live instance"*, *"dummy DB had 76 orphaned rows"*, *"typed from live response"*). - ❌ ```text Fix deleteThing endpoint after testing deleteThing wraps /ajax/thing/delete/, verified today: it destroys the pool row, so every level sharing it loses the row, and a repeat call answers 404. Ran go test -race ./... locally and it passed in 1.2s. ``` - ✅ ```text Fix deleteThing endpoint wrapper Permanently deletes the shared pool record via /ajax/thing/delete/. ``` ### 2. Request Accounting & Internal Plumbing Bloat - **Anti-Pattern:** Explaining internal request counts, step-by-step pipeline routing, or unobservable backend minutiae. - ❌ ```text Cut the requests an item edit costs A named single-cell edit was four requests on a cold client. Passing poolId skips the lookup that finds the thing's pool, and verify: false drops the read-back, so the floor is now one request; a warm client pays two. ``` - ✅ ```text Optimize item edit request overhead Add poolId and verify options to bypass pool lookup and verification read-backs when updating items. ``` ### 3. Defensive Post-Mortems & Apologies - **Anti-Pattern:** Explaining why the author or model made an earlier mistake, hallucinated an API, or misunderstood existing code. - ❌ ```text Fix route handling in auth middleware My mistake on the earlier commit: I assumed Express stripped trailing slashes automatically like Actix does, which broke the callback URL. ``` - ✅ ```text Normalize trailing slashes in auth callback route ``` ### 4. Ghost Commentary & Tombstones - **Anti-Pattern:** Explaining what code used to do, why old deprecated functions were removed, or how the new approach differs from historical drafts. - ❌ ```text Update session store We no longer use Redis for session storage because memory costs were too high and DynamoDB provides TTL natively without custom maintenance jobs. ``` - ✅ ```text Migrate session store from Redis to DynamoDB Relies on native DynamoDB TTL for automatic session expiration. ``` ### 5. Absence Commentary & Omission Lists - **Anti-Pattern:** Listing hypothetical features or cleanup tasks deliberately not done (*"Did not touch older models...", "Left open for later..."*). - ❌ ```text Add user avatar upload Supports JPEG and PNG. I did not add WebP conversion or S3 upload logic because that should be handled in a background worker later. ``` - ✅ ```text Add JPEG and PNG user avatar upload ``` ### 6. AI Attribution & Watermarks - **Anti-Pattern:** Appending `Co-authored-by: Claude <...>`, `Signed-off-by` AI bots, or `_Generated by..._` trailers. - ❌ ```text Update database migration scripts Co-authored-by: Claude <noreply@anthropic.com> ``` - ✅ ```text Update database migration scripts ``` ### 7. Rule Compliance & Meta-Reporting - **Anti-Pattern:** Referencing instructions, linters, or skill compliance in commit text (*"Fix lint errors and remove all em dashes per guidelines"*). - ❌ ```text Clean up comments per skill guidelines ``` - ✅ ```text Remove obsolete comments and normalize docstring formatting ``` --- ## 3. Style, Punctuation & Precision - **Zero conversational dashes:** Never use em dashes (`—`), en dashes (`–`), or double hyphens (`--`) as conversational pauses. Use commas, colons, parentheses, or separate sentences. - **No hype or synthetic fillers:** Cut *crucial, seamless, robust, game-changer, pivotal, unlock*. - **No staged rhetoric:** Do not use throat-clearing, theatrical openings, rhetorical questions, defensive rebuttals, generic positive endings, punchy fragments, or antithesis to create emphasis. - **Preserve exact literals & uncertainty:** Keep exact identifiers, issue numbers, configuration flags, commands, and error codes. Do not turn conditional possibilities (*"may prevent timeout under load"*) into universal guarantees (*"guarantees zero timeouts"*). - **Keep formatting plain:** Avoid decorative formatting, emojis, and forced lists. Each sentence must state a concrete change, durable constraint, or issue reference. Rewrite the whole subject or body around its essential fact. Do not replace individual AI-sounding words while retaining the same padded structure. --- ## 4. Audit Findings Format When reviewing or auditing existing commit history, report findings in this structure: ````markdown ### Commit `<commit-sha>`: `<Subject line>` - **Original:** ```text <Exact original subject and body> ``` - **Anti-Pattern:** `<Name of violated anti-pattern(s)>` - **Issue:** `<1-sentence explanation of why it is low-signal or padded>` - **Replacement:** ```text <Clean proposed subject line> <Clean proposed body wrapped at 72 chars, or omit if subject-only> ``` ````
GitHubで見る