From code-forge
Commit conventions and commit creation procedures. Use when preparing to commit changes. Covers message format, PGP timing, safe multi-line commit creation, and failure recovery.
How this skill is triggered — by the user, by Claude, or both
Slash command
/code-forge:commitThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Every commit you create MUST follow these rules without exception.**
Every commit you create MUST follow these rules without exception.
HARD BAN — Conventional Commits format is strictly forbidden. Never prefix a commit subject with a type and colon (e.g. feat:, fix:, chore:, refactor:, docs:, style:, test:, perf:, ci:, build:, or any other type: or type(scope): pattern). Do not use this style under any circumstances, even if a repo's history uses it or a tool suggests it. The sole exception is when the user explicitly requests it for a specific commit.
Co-authored-by: Claude <[email protected]>
When committing as part of the 3-phase pipeline, include the implementing session's model name, e.g.: Co-authored-by: Claude Haiku 4.5 <[email protected]>These rules apply to every commit, regardless of how it is made.
Before every commit — without exception — use the mcp-human-interface/wait-for-interaction tool first. The user signs commits with a PGP key, and the pinentry passphrase dialog has a 60-second timeout. Waiting for confirmation ensures the user is present and ready to enter their passphrase before the dialog appears. Do not skip this step even for trivial commits.
Always use the bash heredoc pattern for multi-line commit messages via Bash tool:
git commit -m "$(cat <<'EOF'
<subject line>
<body text — can span multiple lines>
<closing keywords: Fixes #N, Closes #N, Co-authored-by: ...>
EOF
)"
When the heredoc pattern is impractical (e.g., in procedural scripts), write the message to a temp file and commit with -F:
/tmp/commit_msg.txt with the full commit message (summary, blank line, body, blank line, Co-authored-by trailer).git commit -F /tmp/commit_msg.txtNever pass a multi-line message inline with -m using shell syntax other than heredoc. Quote mangling leaves the shell in dquote> continuation mode — the terminal stalls waiting for a closing quote that will never arrive. If you see dquote> in terminal output, cancel (interrupt), verify via git log that the commit did not go through, then use the heredoc or -F approach above.
The shell hang described above is the most common reason a commit appears to fail without a clear error. Before concluding a commit failed for any reason, apply the same principle: check the log first.
If a commit operation appears to fail and the user subsequently skips a retry (declines to try again), do not assume the commit failed. Check the git log first. The user signs commits with a PGP key and may have entered their passphrase successfully after your tool call returned — but not fast enough to prevent a timeout or error on your side. The commit may have gone through regardless. Verify before taking any corrective action.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub techyshishy/code-forge --plugin code-forge