@himenon/claude-commit-msg-gen 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 K.Himeno
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,71 @@
1
+ # claude-commit-msg-gen
2
+
3
+ [Claude API](https://www.anthropic.com/) と [Lefthook](https://lefthook.dev/) を組み合わせ、`git commit` 時に Conventional Commits 形式のコミットメッセージを自動生成するツールです。
4
+
5
+ 構造・設計の詳細は [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) を参照してください。
6
+
7
+ ## セットアップ
8
+
9
+ ### 1. Anthropic API キーを設定
10
+
11
+ ```sh
12
+ export ANTHROPIC_API_KEY="sk-ant-..."
13
+ ```
14
+
15
+ ### 2. Lefthook をインストール
16
+
17
+ ```sh
18
+ brew install lefthook
19
+ pnpm add -g lefthook
20
+ ```
21
+
22
+ ### 3. バイナリをインストール
23
+
24
+ ```sh
25
+ pnpm install -g @himenon/claude-commit-msg-gen
26
+ ```
27
+
28
+ ### 4. フックを有効化
29
+
30
+ ```sh
31
+ lefthook install
32
+ ```
33
+
34
+ 以上で `git commit` 時にコミットメッセージが自動生成されます。
35
+
36
+ ## API キーをシェル環境に書きたくない場合
37
+
38
+ `lefthook-local.yml` に API キーを記述する方法があります。このファイルは `.gitignore` 対象のため、リポジトリに混入しません。
39
+
40
+ ```yaml
41
+ # lefthook-local.yml(.gitignore 対象)
42
+ prepare-commit-msg:
43
+ jobs:
44
+ - name: auto-commit-message
45
+ env:
46
+ ANTHROPIC_API_KEY: "sk-ant-..."
47
+ ```
48
+
49
+ `lefthook-local.yml` は `lefthook.yml` の設定を上書き・マージします。記述した `env` のみが上書きされ、他の設定は `lefthook.yml` の値が引き続き使われます。
50
+
51
+ ## トラブルシューティング
52
+
53
+ **`Binary not found` と表示される**
54
+
55
+ ```sh
56
+ pnpm run build
57
+ ```
58
+
59
+ **`ANTHROPIC_API_KEY が未設定` と表示される**
60
+
61
+ ```sh
62
+ echo $ANTHROPIC_API_KEY
63
+ ```
64
+
65
+ **自動生成を一時的に無効にしたい**
66
+
67
+ ```sh
68
+ LEFTHOOK=0 git commit
69
+ ```
70
+
71
+ > `claude` CLI を使ったシェルスクリプトによる代替実装は [docs/shell-script-alternative.md](docs/shell-script-alternative.md) を参照してください。
@@ -0,0 +1,14 @@
1
+ #!/bin/sh
2
+ OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
3
+ ARCH="$(uname -m)"
4
+ case "$ARCH" in
5
+ arm64|aarch64) ARCH="arm64" ;;
6
+ x86_64|amd64) ARCH="amd64" ;;
7
+ esac
8
+ DIR="$(cd "$(dirname "$0")" && pwd)"
9
+ BINARY="$DIR/claude-commit-msg-gen-${OS}-${ARCH}"
10
+ if [ ! -x "$BINARY" ]; then
11
+ echo "[claude-commit-msg-gen] Binary not found: $BINARY" >&2
12
+ exit 0
13
+ fi
14
+ exec "$BINARY" "$@"
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@himenon/claude-commit-msg-gen",
3
+ "version": "0.1.0",
4
+ "description": "Claude API を使って git diff から Conventional Commits 形式のコミットメッセージを自動生成する CLI ツール",
5
+ "license": "MIT",
6
+ "author": "K.Himeno",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/Himenon/claude-commit-msg-gen.git"
10
+ },
11
+ "bin": {
12
+ "claude-commit-msg-gen": "bin/claude-commit-msg-gen"
13
+ },
14
+ "files": [
15
+ "bin/",
16
+ "scripts/commit-prompt.txt"
17
+ ],
18
+ "devDependencies": {
19
+ "oxfmt": "^0.36.0"
20
+ },
21
+ "engines": {
22
+ "node": ">= 24.13.0"
23
+ },
24
+ "scripts": {
25
+ "build": "bash scripts/build.sh",
26
+ "format": "oxfmt",
27
+ "release:npm:registry": "pnpm publish --access public --no-git-checks",
28
+ "release:github:registry": "pnpm publish --access public --no-git-checks"
29
+ }
30
+ }
@@ -0,0 +1,26 @@
1
+ 以下のgit diffを分析し、Conventional Commits形式のコミットメッセージを1行だけ生成してください。
2
+
3
+ 形式: type(scope): subject
4
+
5
+ typeの選択基準:
6
+ - feat: 新機能の追加
7
+ - fix: バグ修正
8
+ - docs: ドキュメントのみの変更
9
+ - style: コードの動作に影響しない変更(フォーマット、空白など)
10
+ - refactor: バグ修正でも機能追加でもないコード変更
11
+ - test: テストの追加・修正
12
+ - chore: ビルドプロセスや補助ツールの変更
13
+ - ci: CI設定ファイルやスクリプトの変更
14
+ - perf: パフォーマンス改善
15
+
16
+ ルール:
17
+ - subjectは日本語で記述すること
18
+ - subjectは50文字以内にすること
19
+ - 末尾に句読点を付けないこと
20
+ - scopeは変更対象のモジュールやファイル名(省略可)
21
+ - コミットメッセージの1行のみを出力すること。説明文や前後の文章は不要
22
+
23
+ 文章ルール:
24
+ - 「データ」「正しい」「通常」「異常」「大量」「少量」などの抽象的表現を使わないこと。変更対象・処理内容・状態を具体的な技術用語で表現すること
25
+ - 主語を具体的に書くこと。「これ」「それ」「あれ」などの指示詞を使わないこと
26
+ - 「大きい」「小さい」「多い」「少ない」のような比較表現を使う場合は比較対象を明示すること(例: 「リクエスト数が毎秒100件を超える場合」)