X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/d7f6fba630444f5065f59cd3729feab92c7798aa..03ef9525ba0e62037b55606b851ee746967a003f:/.agents/skills/commit/SKILL.md?ds=inline diff --git a/.agents/skills/commit/SKILL.md b/.agents/skills/commit/SKILL.md index d25a3fb..f1ef489 100644 --- a/.agents/skills/commit/SKILL.md +++ b/.agents/skills/commit/SKILL.md @@ -5,12 +5,18 @@ description: Commit procedure and message rules. Use for every commit. # Commit +The procedure applies to normal repository commits, including code and +documentation commits. Each must use the configured signing key. +Internal git-bug commits for issues, comments, status changes, and other +tracker metadata are exempt from signing and may be unsigned. This +exception does not permit unsigned code or documentation commits. + ## Procedure 1. Confirm that the configured signing key is available. If signing is unavailable or fails, stop and report the problem. Never disable signing, bypass it with a command or configuration override, or - create an unsigned commit. + create an unsigned normal repository commit. 2. Do the `check` skill. All checks must pass before you commit. 3. Stage only the files that belong to this change. Keep unrelated changes in separate commits. @@ -22,15 +28,26 @@ description: Commit procedure and message rules. Use for every commit. the configured key, using `git commit -S -F MESSAGE_FILE` on the same file. Do not add or change trailers after the check. The normal commit hook still runs. Never skip it with `--no-verify`. -6. Cryptographically verify each new commit's signature against the - configured key before reporting completion. A signature header alone - is not verification. If verification fails, stop and report it. Do - not claim completion or publish the commit. +6. Cryptographically verify each new normal commit's signature against + the configured key before reporting completion. A signature header + alone is not verification. If `gpg.ssh.allowedSignersFile` is not + set, use a temporary allowed-signers file with the configured key. Do + not change the Git configuration. If verification fails, stop and + report it. Do not claim completion or publish the commit. ## Size - Commit often. Split the work into small, coherent, working steps, and do not wait for a full feature. +- Use fixup commits for review corrections when the task requires them. + Report the corrections and the pending fixups, but do not report the + work as complete while `fixup!` or `squash!` commits remain. +- Before autosquashing, obtain the user's explicit approval to rewrite + the affected commit range. Permission to create a fixup does not + authorize a history rewrite. If approval is absent, stop and ask. +- After an approved autosquash, sign and verify each rewritten normal + commit, rerun the required checks, and obtain independent review of + the final range before reporting completion. - Push code only with the user's authorization. A remote does not give permission to push. - Rebase before an authorized push only when the task permits it. Do not @@ -69,6 +86,8 @@ description: Commit procedure and message rules. Use for every commit. `git interpret-trailers --trailer` before the message check. Never use a closing keyword such as "Fixes" or "Closes". - Link the bug report when a change fixes a reported bug. +- Include a stable archive URL when a change comes from a mailing-list + or forum discussion. - Do not add an AI tool as co-author. Do not add attribution trailers. ## Example