]> git.giacomolli.uk - onechat/blobdiff - .agents/skills/commit/SKILL.md
Require consent and review for autosquash
[onechat] / .agents / skills / commit / SKILL.md
index d25a3fbbc27439b4a3b0c9f89797e70af4626a08..f1ef4896e128e68469aa11ee2f02c33ddf0f58ad 100644 (file)
@@ -5,12 +5,18 @@ description: Commit procedure and message rules. Use for every commit.
 
 # 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
 ## 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.
 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`.
    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.
 
 ## 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
 - 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.
   `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
 - Do not add an AI tool as co-author. Do not add attribution trailers.
 
 ## Example