AIã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã«ããã¹ããŒãã³ãããã¡ãã»ãŒãžçæCLI
- ãã«ããããã€ããŒå¯Ÿå¿: Antigravity CLI (
agyãGemini CLI ã®åŸç¶)ãCodex CLIãClaude CodeãopencodeãGrok CLIãApple Intelligence ãèªåãã©ãŒã«ããã¯ä»ãã§ãµããŒããåããããã€ããŒãç°ãªãã¢ãã«ã»ã¢ã«ãŠã³ãã§è€æ°å䞊ã¹ãããïŒäžèšãå¿çš: ãããã€ããŒãã©ãŒã«ããã¯ãã§ãŒã³ãåç §ïŒ - ã¹ããŒãã¯ãŒã«ããŠã³: 倱æããã¹ãããã1æéïŒèšå®å¯èœïŒåªå 床ãäžããŠé£ç¶å€±æãåé¿ãprovider+model+ã¢ã«ãŠã³ãåäœã®ããŒãªã®ã§ãã¬ãŒãå¶éäžã®1ã¢ã«ãŠã³ã/ã¢ãã«ãä»ããããã¯ããªã
- ãã©ãŒãããèªåæ€åº: éå»ã®ã³ããããã圢åŒãèªå倿ïŒConventionalãBracketãEmojiçïŒ
- 空ãªããžããªå¯Ÿå¿: ã³ãããããŸã ãªããªããžããªã§ããGit ã®ãã±ãŒã«ã«äŸåããèªåå€å®ãå®å šã«ãã©ãŒã«ããã¯
- ã€ã³ã¿ã©ã¯ãã£ã: ã³ãããåã«ç¢ºèªããã³ãã衚瀺ïŒ
-yã§ã¹ãããå¯èœïŒ - ãã©ã€ã©ã³: ã³ãããããã«ã¡ãã»ãŒãžããã¬ãã¥ãŒïŒ
-nïŒ - Quietã¢ãŒã: ããã¯/ã¹ã¯ãªããåãã«é²æåºåãæå¶ïŒ
-qïŒ - æ¬æãµããŒã: ç®æ¡æžãæ¬æä»ãã®è©³çްãªã³ãããã¡ãã»ãŒãžãçæïŒ
-bïŒ - Amend/Squash/Reword: æ¢åã³ãããã®ã¡ãã»ãŒãžãåçæ
- å®å šãªäžæãã¡ã€ã«: Unix/macOS ã§ã¯ AI ããã³ãããCodex æçµå¿çãreword ã¡ãã»ãŒãžã®äžæãã¡ã€ã«ã group/other ããèªããªãæš©éã§äœæ
- ãšãŒãžã§ã³ãã³ã³ããã¹ã: claw-hooks ãšé£æºãããšãŒãžã§ã³ãã®æå³ãåæ ããã³ã³ããã¹ããèæ ®ããã¡ãã»ãŒãžãçæ
- OS: macOS, Linux, Windows
- Git: å¿ é
- AIãããã€ããŒïŒå°ãªããšã1ã€ïŒ:
- Antigravity CLI (
agyãGemini CLI ã®åŸç¶): https://antigravity.google/docs/gcli-migration ãåç § (æ§ Gemini CLI 㯠2026-06-18 ã§åæ¢) - Codex CLI:
npm install -g @openai/codex - Claude Code:
curl -fsSL https://claude.ai/install.sh | bash - opencode:
curl -fsSL https://opencode.ai/install | bash - Grok CLI (
grokãxAI): cmux ã«å梱 (/Applications/cmux.app/Contents/Resources/bin/grok)ãgrokãPATHã«ç¡ãå Žåããã®ã¹ãããã¯ã¹ããããããŠæ¬¡ã®ãããã€ããŒãžé²ã¿ãŸã - Apple Intelligence: macOSçã«å èµïŒmacOS 26+ãApple Siliconå¿ é ïŒ
- Antigravity CLI (
brew install owayo/git-sc/git-scwinget install owayo.git-scã€ã³ã¹ããŒã«åŸã¯æ°ããã¿ãŒããã«ãéããŠãã ãããportable ããã±ãŒãžã¯ PATH ãæžãæããã ããªã®ã§ãèµ·åäžã®ã·ã§ã«ã«ã¯åæ ãããŸããã
git clone https://github.com/owayo/git-smart-commit.git
cd git-smart-commit
make installmacOS ã® make install ã¯äžæã³ããŒã眲åããŠãããã€ã³ã¹ããŒã«æžã¿ãã€ããªãã¢ãããã¯ã«çœ®ãæããŸããåã€ã³ã¹ããŒã«æã« inode åäœã®å€ãã³ãŒãçœ²åæ€èšŒãã£ãã·ã¥ãæ®ãåé¡ãé²ãããã§ãã
Releases ããã䜿ãã®ãã©ãããã©ãŒã çšã®ãã€ããªãããŠã³ããŒãã
curl -L https://github.com/owayo/git-smart-commit/releases/latest/download/git-sc-aarch64-apple-darwin.tar.gz | tar xz
sudo mv git-sc /usr/local/bin/curl -L https://github.com/owayo/git-smart-commit/releases/latest/download/git-sc-x86_64-apple-darwin.tar.gz | tar xz
sudo mv git-sc /usr/local/bin/curl -L https://github.com/owayo/git-smart-commit/releases/latest/download/git-sc-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv git-sc /usr/local/bin/curl -L https://github.com/owayo/git-smart-commit/releases/latest/download/git-sc-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv git-sc /usr/local/bin/Releases ãã git-sc-x86_64-pc-windows-msvc.zip ãããŠã³ããŒãããå±éã㊠PATH ã«è¿œå ãäžèšã® WinGet ã䜿ãã°ãã®æé ã¯äžèŠã§ãã
# ã¹ããŒãžããã倿Žã®ã³ãããã¡ãã»ãŒãžãçæ
git-sc
# å
šã¹ããŒãžããŠç¢ºèªãªãã§ã³ããã
git-sc -a -y
# ã¡ãã»ãŒãžããã¬ãã¥ãŒïŒãã©ã€ã©ã³ïŒ
git-sc -n| ã³ãã³ã | 説æ |
|---|---|
git-sc |
ã¹ããŒãžããã倿Žã®ã¡ãã»ãŒãžãçæ |
git-sc init |
èšå®ãã¡ã€ã«ãåæå |
git-sc -a |
å šãŠã®å€æŽãã¹ããŒãžããŠã¡ãã»ãŒãžçæ |
git-sc --amend |
çŽåã®ã³ãããã¡ãã»ãŒãžãåçæ |
git-sc --squash <BASE> |
å šã³ãããã1ã€ã«ãŸãšãã |
git-sc --reword <HASH> |
ç¹å®ã³ãããã®ã¡ãã»ãŒãžãåçæ |
git-sc -g <HASH> |
æ¢åã³ãããããã¡ãã»ãŒãžçæïŒåºåã®ã¿ïŒ |
ç«¶åã«å¯Ÿããä¿è·:
--reword㯠rebase ãé²è¡äžã®ãšãã¯å®è¡ãæåŠããŸããreword ã¯å€±æãã rebase ãå¿ ãgit rebase --abortã§çµãããããããé²è¡äžã® rebase ã®äžã«éãããšè§£æ±ºäœæ¥äžã®å 容ãç Žæ£ããŠããŸãããã§ããå ã« rebase ãå®äºãããäžæ¢ããŠãã ããã- ã¡ãã»ãŒãžçæäžã«ã¹ããŒãžå
容ãå€åããå Žåãã³ããããäžæ¢ããŸãïŒçæååŸã® index ã® tree ãæ¯èŒããŸãïŒãçææžã¿ã¡ãã»ãŒãžã¯å€æŽåã®å
容ã説æãããã®ãªã®ã§ã倿ŽåŸã®å
容ããã®ãŸãŸã³ãããããã®ã¯èª€ãã ããã§ãããã®ãŸãŸåå®è¡ããŠãã ããã
--squashã reset ã®çŽåã«åã確èªãè¡ããŸãã - éåžžã®ã³ãããã
--amendã--squashã¯ãçæäžã«HEADãåããå Žåãäžæ¢ããŸãã--squashããŸãšãã察象ãš--amendãæžãæãã察象㯠index ã§ã¯ãªãå±¥æŽåŽã«ãããããå¥ã®ç«¯æ«ã§ã³ããããããŠã index ã¯ããããªãŸãŸã§ãã¹ããŒãžå€æŽã®ç¢ºèªãããæããŸãããã®ç¶æ ã§é²ããšã--squash㯠AI ãèŠãŠããªãã³ããããŸã§å·»ã蟌ã¿ã--amendã¯èª¬æããŠããªãå¥ã®ã³ããããæžãæããŠããŸããŸãã
| ãªãã·ã§ã³ | ççž® | 説æ |
|---|---|---|
--yes |
-y |
確èªããã³ãããã¹ããã |
--dry-run |
-n |
ã³ãããããã«ã¡ãã»ãŒãžã衚瀺 |
--all |
-a |
å šãŠã®å€æŽãã¹ããŒãž |
--body |
-b |
ç®æ¡æžãæ¬æä»ãã§çæ |
| ãªãã·ã§ã³ | ççž® | 説æ |
|---|---|---|
--amend |
çŽåã®ã³ãããã¡ãã»ãŒãžãåçæ | |
--squash |
å šã³ãããã1ã€ã«ãŸãšãã | |
--reword |
ç¹å®ã³ãããã®ã¡ãã»ãŒãžãåçæ | |
--generate-for |
-g |
ã³ãããdiffããã¡ãã»ãŒãžçæïŒåºåã®ã¿ïŒ |
æäœã¢ãŒãïŒ--amend, --squash, --reword, --generate-forïŒã¯åæã«æå®ã§ããŸãããè€æ°æå®ããå Žåã¯ãã©ãã1ã€ãæé»ã«éžã°ããåŒæ°ããŒã¹æç¹ã§ãšã©ãŒã«ãªããŸãã
--amend ã®æ³šæ:
- çŸåšã®
HEADãæåã®ã³ãããã§ãåäœããŸãã - ç¡é¢ä¿ãª staged 倿Žã¯ amend 察象ã®ã³ãããã«æ··ããããã®ãŸãŸ staged ãšããŠä¿æããŸãã
--reword ã®æ³šæ:
- çŸåšã®
HEADå±¥æŽã«å«ãŸããã³ãããã®ã¿æå®ã§ããŸãã - å¥ãã©ã³ããªã©çŸåšã®å±¥æŽå€ããã·ã¥ãæå®ãããšãç¡å¹ãªreword察象ã§ãããšã©ãŒã§å€±æããŸãã
- 察象ã³ãããèªèº«ã merge commit ã®å Žåãã
reword察象ãšããŠæåŠãããŸãã - 察象ã³ããããš
HEADã®éã« merge commit ãããå Žåã¯ããããŒãžãè·šã reword ã¯äžå¯ããšããæç¢ºãªãšã©ãŒã§æåŠãããŸãïŒfatal: ambiguous argumentã®ãããªåããã«ãã git å éšãšã©ãŒã«ã¯ãªããŸããïŒã - çŸåšã®å±¥æŽã§æå€ã®ã³ãããã reword ã§ããŸãïŒå¿
èŠæã¯å
éšã§
git rebase -i --rootã䜿çšïŒã HEADã reword ããå Žåããç¡é¢ä¿ãª staged 倿Žã¯æžãæãåŸã®ã³ãããã«æ··ããããã®ãŸãŸ staged ãšããŠä¿æããŸãã- å
éšã® rebase ã¯
--no-autosquashä»ãã§å®è¡ããããããŠãŒã¶ãŒèšå®ã®rebase.autoSquash = trueãç¯å²å ã®fixup!/squash!ã³ãããã reword ã®ã€ãã§ã«åæã«åã蟌ãããšã¯ãããŸããã
--squash ã®æ³šæ:
- ç¡é¢ä¿ãª staged 倿Žãæ¢ã«ããå Žåãå±¥æŽãæžãæããåã«ãšã©ãŒã§åæ¢ããŸããå ã« commitãunstageããŸã㯠stash ããŠãã ããã
- squash ã®ã³ãããèªäœã倱æããå ŽåïŒ
pre-commit/commit-msgããã¯ã®æåŠã GPG 眲åãšã©ãŒãªã©ïŒããã©ã³ã㯠merge-base ã«å·»ãæ»ããããŸãŸæŸçœ®ããããèªåçã«å ã®HEADãžåŸ©æ§ãããŸãã
| ãªãã·ã§ã³ | ççž® | 説æ |
|---|---|---|
--provider |
-p |
AIãããã€ããŒãæå® (antigravity, codex, claude, opencode, grok, apple-intelligence)ãæ§å gemini ãåŸæ¹äºæã®ãã antigravity ãšããŠåç |
--lang |
-l |
ã³ãããã¡ãã»ãŒãžã®èšèªãäžæžã |
| ãªãã·ã§ã³ | ççž® | 説æ |
|---|---|---|
--quiet |
-q |
鲿ã¡ãã»ãŒãžãæå¶ |
--debug |
-d |
AIã«æž¡ãããã³ããã衚瀺 |
--help |
-h |
ãã«ãã衚瀺 |
--version |
-V |
ããŒãžã§ã³ã衚瀺 |
--yes ã®åäœ:
- ç¡äººå®è¡ã§ã¯å¿
é ã§ãã確èªããã³ããã§æšæºå
¥åã EOF ã«ãªã£ãå ŽåïŒã¹ã¯ãªããã hook ããæšæºå
¥åãéããç¶æ
ã§åŒã°ããå Žåãªã©ïŒã¯ã
[Y/n]ã®æ¢å®å€ãæ¡ãããšã©ãŒã§äžæ¢ããŸãããŠãŒã¶ãŒãå ¥åãã空è¡ã¯åŸæ¥ã©ãããã¯ããã§ããããå ¥åèªäœãç¡ããç¶æ ã¯å¥æ±ãã§ããåãããã³ããã--amend/--squash/--rewordãå®ã£ãŠããããã§ã
--quiet ã®åäœ:
- éåžžå®è¡ / amend / squash / reword ã®é²æã»ãã¬ãã¥ãŒã»æå/ãã£ã³ã»ã«è¡šç€ºãæå¶
- ãšã©ãŒåºåã¯ãã®ãŸãŸè¡šç€º
--generate-forã¯ãã€ãåŠçåãã«çæã¡ãã»ãŒãžã®ã¿ãæšæºåºåã«åºå
--debug ã®åäœ:
--generate-forãšäœµçšããå Žåããããã°åºåïŒèšå®æ å ±ã»AIããã³ããã»ãããã€ããŒã³ãã³ãã»ã¹ããªãŒãã³ã°åºåïŒã¯ãã¹ãŠæšæºãšã©ãŒåºåã«åºããããæšæºåºåã¯çæã¡ãã»ãŒãžã®ã¿ãä¿ãããå®å šã«ãã€ãã§ããŸã- ãã以å€ã®ã¢ãŒãã§ã¯ã
--quietãšäœµçšããå Žåãå«ãããããã°åºåã¯äžäœã§æšæºåºåã«åºãŸãã--quietã¯é²æã¡ãã»ãŒãžãæå¶ããã ãã§ããããã°åºåã®åºåå ã¯å€ããŸãã
# åºæ¬çãªäœ¿ãæ¹
git-sc # ã¹ããŒãžããã倿Žã®ã¡ãã»ãŒãžçæ
git-sc -a -y # å
šã¹ããŒãžããŠçŽæ¥ã³ããã
# ãã¬ãã¥ãŒã𿬿
git-sc -n # ãã©ã€ã©ã³ïŒãã¬ãã¥ãŒã®ã¿ïŒ
git-sc -b # è©³çŽ°ãªæ¬æä»ã
# Amend ãš Squash
git-sc --amend # çŽåã®ã³ãããã¡ãã»ãŒãžãåçæ
git-sc --squash origin/main # ãã£ãŒãã£ãŒãã©ã³ãã®ã³ãããããŸãšãã
# æ¢åã³ãããããçæ
git-sc -g abc1234 # ã³ãããdiffããã¡ãã»ãŒãžçæ
git-sc -g abc1234 -b # è©³çŽ°ãªæ¬æä»ãgit-sc init ã§èšå®ãã¡ã€ã«ãåæåãããã~/.config/git-sc/config.toml ãæåã§äœæããŸã:
git-sc initããã«ãã ~/.config/git-sc/config.toml ã«ããã©ã«ãèšå®ã®èšå®ãã¡ã€ã«ãäœæãããŸãã
æ¢åã®èšå®ãäžæžãããã«ã¯ --force ã䜿çšããŸã:
git-sc init --forcegit-sc ã¯ãããžã§ã¯ãã¬ãã«ã§ã®äžæžããå¯èœãªéå±€çèšå®ããµããŒãããŠããŸã:
| ãã¡ã€ã« | ã¹ã³ãŒã | 説æ |
|---|---|---|
~/.config/git-sc/config.toml |
ã°ããŒãã« | ãŠãŒã¶ãŒå šäœã®ããã©ã«ãèšå® |
.git-sc |
ãããžã§ã¯ã | ãªããžããªåºæã®äžæžãèšå®ïŒãªããžããªã«ãŒãã«é çœ®ïŒ |
ãããžã§ã¯ãèšå®ã¯ã°ããŒãã«èšå®ãäžæžãããŸãããããžã§ã¯ãèšå®ã§æå®ãããŠããªããã£ãŒã«ãã¯ã°ããŒãã«èšå®ããç¶æ¿ãããŸããäžæžãããããã£ãŒã«ãã®ã¿æå®ã§ããŸã â [models] ã»ã¯ã·ã§ã³ã®éšåæå®ããµããŒãããŠããŸãã
# AIãããã€ããŒã®åªå
é äœ
# "antigravity" ã¯æ§ Gemini CLI ã®åŸç¶ (`agy`)ã"gemini" ãšæžããŠãåŸæ¹äºæã®ããåããããã€ããŒãšããŠæ±ã
providers = ["opencode", "grok", "antigravity", "codex", "claude", "apple-intelligence"]
# ã³ãããã¡ãã»ãŒãžã®èšèª
language = "Japanese"
# ã³ããããã¬ãã£ãã¯ã¹åœ¢åŒïŒãªãã·ã§ã³ïŒ
# å€: conventional, bracket, colon, emoji, plain, none
prefix_type = "conventional"
# ã³ãããåŸã«èªåããã·ã¥ïŒãªãã·ã§ã³ïŒ
auto_push = true
# Codex åŒã³åºãæã« `-c model_reasoning_effort=<å€>` ãšããŠæž¡ãæšè«æ·±åºŠ
# å€: "low"ïŒããã©ã«ãïŒ/ "medium" / "high" / "xhigh" / "" (codex æ¢å®åäœã䜿ãå Žåã¯ç©ºæåå)
codex_reasoning_effort = "low"
# ã¢ãã«èšå®
# Antigravity CLI (`agy`) 㯠`--model` ã«å¯Ÿå¿ã`antigravity` ã®å€ã¯ãã®ãŸãŸ
# `agy --model "<åå>"` ã«æž¡ãããŸãã衚瀺å (äŸ: "GPT-OSS 120B (Medium)"ã
# "Gemini 3.5 Flash (Low)") ãš slug (äŸ: "gpt-oss-120b-medium"ã
# "gemini-3.5-flash-low") ã®ã©ã¡ãã§ãæå®ã§ããŸãã`agy models` ãã©ã¡ãã衚瀺ãããã¯
# agy ã®ããŒãžã§ã³ã§å€ãããŸã (1.0.x ã¯è¡šç€ºåã1.1.10 㯠slug)ãæªç¥ã®ååã¯
# éãŒãçµäºã§æç€ºçã«åŒŸãããæ¢å®ã¢ãã«ãžé»ã£ãŠèœã¡ãããšã¯ãªãããã
# æã¡ééãã¯ãã®ã¹ãããã®å€±æãšããŠçŸããŸãã
# 空æååãªã `--model` ãçç¥ã agy èªèº«ã®æ¢å®ã¢ãã«ã«å§ããŸãã
# æ§ `gemini = "..."` ããŒã¯åŸæ¹äºæã®å
¥åãšã€ãªã¢ã¹ãšããŠåçããã`antigravity` ã«
# ææ ŒããŸã(äž¡æ¹æå®ããå Žå㯠`antigravity` ãåªå
)ã
# Grok CLI 㯠`-m` ã«å¯Ÿå¿ã`grok models` ãè¿ã ID (äŸ: "grok-4.5") ããã®ãŸãŸæå®ããŸãã
# 空æååãªã `-m` ãçç¥ã grok èªèº«ã®æ¢å®ã¢ãã«ã«å§ããŸãã
[models]
antigravity = "GPT-OSS 120B (Medium)"
codex = "gpt-5.6-luna"
claude = "haiku"
opencode = ""
grok = ""
# ãããã€ããŒã¯ãŒã«ããŠã³ïŒåïŒ
provider_cooldown_minutes = 60
# ãããã€ããŒã¿ã€ã ã¢ãŠãïŒç§ïŒ
provider_timeout_seconds = 60| ãªãã·ã§ã³ | 説æ | ããã©ã«ã |
|---|---|---|
providers |
ãããã€ããŒã®ãã©ãŒã«ããã¯ãã§ãŒã³ãåèŠçŽ ã¯ãããã€ããŒåã®æååããŸã㯠{provider, model, command, env, name} ããŒãã«ïŒäžèšãå¿çš: ãããã€ããŒãã©ãŒã«ããã¯ãã§ãŒã³ãåç
§ãantigravity ãæšå¥šãgemini ãåŸæ¹äºæã§åçïŒ |
["opencode", "antigravity", "codex", "claude", "apple-intelligence"] |
language |
ã³ãããã¡ãã»ãŒãžã®èšèª | "Japanese" |
prefix_type |
ã³ããããã¬ãã£ãã¯ã¹åœ¢åŒ | èªåæ€åº |
auto_push |
ã³ãããåŸã«èªåããã·ã¥ | false |
codex_reasoning_effort |
Codex ã® -c model_reasoning_effort ã«æž¡ãå€ïŒlow, medium, high, xhigh, 空æååã§çç¥ïŒ |
"low" |
models.* |
åãããã€ããŒã®ã¢ãã« | èšå®åç § |
provider_cooldown_minutes |
倱æãããã€ããŒã®ã¯ãŒã«ããŠã³ã極端ã«å€§ããå€ã¯å®è³ªç¡æéãšããŠæ±ã | 60 |
provider_timeout_seconds |
ãããã€ããŒåŒã³åºãã®ã¿ã€ã ã¢ãŠã | 60 |
prefix_rules |
URLããŒã¹ã®ãã¬ãã£ãã¯ã¹åœ¢åŒ | [] |
prefix_scripts |
å€éšãã¬ãã£ãã¯ã¹ã¹ã¯ãªãã | [] |
ai_usage |
ai-usage CLI ã«ããæ®éã²ãŒãïŒãæ®éã²ãŒãããåç
§ïŒ |
ç¡å¹ |
dev_log |
éçºè åãçæãã°ïŒã°ããŒãã«èšå®ã®ã¿ããéçºè åãçæãã°ããåç §ïŒ | ç¡å¹ |
æ¢åã®ã°ããŒãã«èšå®ãã¡ã€ã«ã¯èªåã§ã¯æžãæããããŸãããçŸåšã® Codex æ¢å®ã¢ãã«ã¯ gpt-5.6-luna ã§ããæ¢åèšå®ã§äœ¿ãã«ã¯ã~/.config/git-sc/config.toml ã® models.codex ãæŽæ°ããŠãã ãããCodex CLI ãæŽæ°ãããå¿
ã確èªããŠãã ããã 以åã®æ¢å®å€ gpt-5.6-luna 㯠Codex ããå逿žã¿ã§ãåé€ãããã¢ãã«åãæå®ããŠããã©ãŒã«ããã¯ã¯èµ·ããŸãããHTTP 400 ãè¿ããgit-sc ã¯ããããããã€ããŒã®å€±æãšããŠæ±ã£ãŠã¯ãŒã«ããŠã³ã«å
¥ãããããå€ã models.codex ãæ®ã£ãŠãããšæ¯å Codex ããã©ãŒã«ããã¯ãã§ãŒã³ããéãã«å€ããŸãããã®æ¢å®å€ã¯ãAPI ã§å©çšå¯èœã»äžèŠ§è¡šç€ºå¯Ÿè±¡ã»medium reasoning 察å¿ã® Codex ã¢ãã«ã«ã€ã㊠input_tokens ãæ¯èŒãã2026幎9æ17æ¥ (JST) ã«åéžå®ãããã®ã§ããèšæž¬ã¯ç©ºãã£ã¬ã¯ããªã§ Reply ok. ã䜿ãã--ignore-user-config --ignore-rules --ephemeral --sandbox read-only ãš model_reasoning_effort='medium' ãæå®ããŸãã: gpt-5.6-luna = 19609ãgpt-5.5 = 20181ãgpt-5.6-sol = 21174ãgpt-5.6-terra = 21174ãgpt-6-astra = 22035ããããã®è©Šè¡ãæçµåºåã ok ã§ããŒã«åŒã³åºãã¯ãªãã2 åç®ã®èšæž¬ã§ãå
šã¢ãã«ãåäžå€ãåçŸããŸããã
Antigravity (agy) ã®æ¢å®ã¢ãã«ã¯ GPT-OSS 120B (Medium) ã§ã宿ž¬ã«åºã¥ããŠéžå®ããŠããŸããagy 1.1.10 ã§ print mode ã« --output-format json ã远å ããã1ãªã¯ãšã¹ãããšã® usage ãååŸã§ããããã«ãªã£ããããCodex ãšåã input_tokens æ¯èŒãå¯èœã«ãªããŸãã (ãã以åã® agy ã«ã¯æ©æ¢°å¯èªãªäœ¿çšéåºåããªãããã®æ¢å®å€ã¯å
¬éäŸ¡æ Œãæ ¹æ ã«ããŠããŸãã)ã2026幎8æ4æ¥ (JST) ã« agy 1.1.10 ã§ã空ãã£ã¬ã¯ããªã»åºå®ããã³ãã Reply ok. ã§å®æž¬ããçµæ: gpt-oss-120b-medium = 13680ãgemini-3.5-flash-medium = 16994ãgemini-3.5-flash-low = 16998ãgemini-3.1-pro-low = 17684ãgemini-3.6-flash-low = 18175ãgemini-3.6-flash-medium = 18176ãclaude-sonnet-4-6 = 19346ããããã1ã¿ãŒã³ã§æåããgpt-oss-120b-medium ãçŽ19%å·®ã§æå°ã ã£ãããæ¢å®å€ãç¶æããŸããããã¯1ãªã¯ãšã¹ããããã®æå°ãªãŒããŒãããã®æ¯èŒã§ãããå®äœæ¥ã§ã®å質ãä¿èšŒãããã®ã§ã¯ãããŸãããæ¢åèšå®ã§äœ¿ãã«ã¯ ~/.config/git-sc/config.toml ã® models.antigravity ã远å ã»æŽæ°ãããã"" ãæå®ã㊠agy èªèº«ã®æ¢å®ã«å§ããŠãã ããã
ãããã€ããŒã®ã¯ãŒã«ããŠã³ç¶æ
ã¯ãäžŠã³æ¿ãåã«æ§ãšã€ãªã¢ã¹ãæ£èŠåããŸãããã®ãã gemini/agy ã®ã¯ãŒã«ããŠã³ã¯ antigravity ã«ãæ§ apple-ai / apple_intelligence ããŒã¯ apple-intelligence ã«åŒãç¶ãé©çšãããŸãã--debug ä»ãã§å®è¡ãããšãèšå®ã® providers ã«æ§ gemini ãšã€ãªã¢ã¹ãæ®ã£ãŠããå Žåã«ãantigravity ã«æ£èŠåããããæšã®æ³šæãäžåºŠã ã衚瀺ãããŸãã
å¿çš: ãããã€ããŒãã©ãŒã«ããã¯ãã§ãŒã³ïŒã¢ãã« / ã¢ã«ãŠã³ã / ã³ãã³ãïŒ
providers ã®åèŠçŽ ã¯ããããã€ããŒåã®ã¿ã®æååã«å ããŠãmodel / command / env ãæã€ããŒãã«ã§ãæžããŸããããã«ãããåããããã€ããŒãç°ãªãã¢ãã«ãã¢ã«ãŠã³ãã§è€æ°å䞊ã¹ããã©ãŒã«ããã¯ãã§ãŒã³ãæ§ç¯ã§ããŸãã1ã€ã®ãããã€ããŒãã¢ãã«ç³»çµ±ããšã»ã¢ã«ãŠã³ã/å¥çŽããšã«ã¯ã©ãŒã¿ãåããŠããå Žåã«æçšã§ãã
providers = [
# åããããã€ããŒã»å¥ã¢ã«ãŠã³ã(env ã§ CODEX_HOME / CLAUDE_CONFIG_DIR ãåæ¿)
{ provider = "codex", model = "gpt-5.6-luna", env = { CODEX_HOME = "~/.codex" } }, # ã¢ã«ãŠã³ã1
{ provider = "codex", model = "gpt-5.6-luna", env = { CODEX_HOME = "~/.codex-work" } }, # ã¢ã«ãŠã³ã2
# åããããã€ããŒã»å¥ã¢ãã«ç³»çµ±(ã¯ã©ãŒã¿ãå¥)
{ provider = "antigravity", model = "Gemini 3.5 Flash (Low)" },
{ provider = "antigravity", model = "GPT-OSS 120B (Medium)" },
# åŸæ¥ã©ããæåå(ãããã€ããŒåã®ã¿)ã䜿ããŸã
"claude",
]ã¹ãããããšã®ãã£ãŒã«ã:
| ãã£ãŒã«ã | 説æ |
|---|---|
provider |
å¿
é ãCLI ã®åŒæ°èŠçŽã決ãããããã€ããŒçš®å¥(codex/antigravity/claude/opencode/apple-intelligenceãgemini/agy ã¯ãšã€ãªã¢ã¹)ã |
model |
ä»»æããã®ã¹ãããã®ã¢ãã«ãçç¥æã¯ [models].<provider>ãããã«å CLI æ¢å®ã«ãã©ãŒã«ããã¯ã |
command |
ä»»æãprovider æ¢å®ãã€ããªã®ä»£ããã«å®è¡ãããã€ããª(ãšåºå®åŒæ°)ãã©ãããŒã¹ã¯ãªããçã~ ã¯å±éããããcodex ã® --disable hooks çã®æšæºåŒæ°ã¯åŒãç¶ãä»äžãããã |
env |
ä»»æããã®ã¹ãããèµ·åæã« Command::env() ã§æç€ºçã«èšå®ããç°å¢å€æ°ãå€ã® ~ ã¯å±éãããããŒã¯ POSIX åã§ããå¿
èŠããããåçããŒã㌠/ ã€ã³ã¿ããªã¿ã®äºåããŒãç³»ã㌠(LD_PRELOAD, DYLD_INSERT_LIBRARIES, NODE_OPTIONS, PYTHONPATH ç) ã¯ãproject åŽ .git-sc çµç±ã®ã³ãŒã泚å
¥ãé²ããã倧尿åãåºå¥ããèšå®ãšã©ãŒãšããŠæåŠãããŸãã |
name |
ä»»æãã¯ãŒã«ããŠã³ããŒãšãã°è¡šç€ºã«äœ¿ãèå¥åãçç¥æã¯ provider + model + env + command ããæ±ºå®çã«å°åºã |
ã¢ã«ãŠã³ãåæ¿(æšå¥š: env)ã Codex ãš Claude Code 㯠CODEX_HOME / CLAUDE_CONFIG_DIR ããã¢ã«ãŠã³ã/èªèšŒãéžã³ãŸããããããã¹ãããããšã« env ã§èšå®ãããšãããããå¥ã¯ã©ãŒã¿ã®ã¢ã«ãŠã³ãããŸããã§ãã©ãŒã«ããã¯ã§ããŸããgit-sc 㯠Command::env() ã§æç€ºçã«äžæžããããããgit-sc ãèµ·åããã·ã§ã«ã« CODEX_HOME / CLAUDE_CONFIG_DIR ã export ãããŠããŠããèµ·åããã CLI ã¯ãã®åœ±é¿ãåããŸããã(command ã§ã©ãããŒã¹ã¯ãªãããäœ¿ãæ¹æ³ããããŸãããenv ã®æ¹ãæç€ºçã§ --debug ã«ã衚瀺ãããããæšå¥šã§ãã)
ç¬ç«ããã¯ãŒã«ããŠã³ã ã¯ãŒã«ããŠã³ããŒã¯ provider + model + env(+ commandããŸãã¯æç€º name)ãå«ããããåã¹ãããã¯ç¬ç«ããŠéæ ŒãããŸããcodex ã®ã¢ã«ãŠã³ã1ãã¬ãŒãå¶éã«éããŠããcodex ã®ã¢ã«ãŠã³ã2ããå¥ã¢ãã«ã® antigravity ã¯åŒãç¶ã䜿ããŸãã
| å€ | äŸ | 説æ |
|---|---|---|
conventional |
feat: add feature |
Conventional Commits åœ¢åŒ |
bracket |
[feat] add feature |
ãã©ã±ããåœ¢åŒ |
colon |
feat: add feature |
ã·ã³ãã«ãªã³ãã³åœ¢åŒ |
emoji |
:sparkles: add feature |
çµµæååœ¢åŒ |
plain |
Add feature |
ãã¬ãã£ãã¯ã¹ãªã |
none |
add feature |
ãã¬ãã£ãã¯ã¹ãªããå°æå |
ãªã¢ãŒãURLã§ã³ããã圢åŒãæå®:
[[prefix_rules]]
url_pattern = "github\\.com[:/]myorg/"
prefix_type = "conventional" # conventional, bracket, colon, emoji, plain, noneäžèŽããã«ãŒã«ã® prefix_type ã¯äžèšã®æå¹å€ã§ããå¿
èŠããããŸããç¡å¹ãªäžèŽã«ãŒã«ã¯èŠåãåºããŠã¹ãããããããããåŸç¶ã®ãã¬ãã£ãã¯ã¹ã«ãŒã«ãèšå®æžã¿ã® prefix_typeããŸãã¯èªåå€å®ã«ãã©ãŒã«ããã¯ã§ããŸãã
å€éšã¹ã¯ãªããã§ã«ã¹ã¿ã ãã¬ãã£ãã¯ã¹ãçæ:
[[prefix_scripts]]
url_pattern = "^https://gitlab\\.example\\.com/"
script = "/path/to/prefix-generate.py"ãã¬ãã£ãã¯ã¹ã¹ã¯ãªãããæå¹ãª prefix_type åïŒconventional, bracket, emoji çïŒãè¿ããå Žåããªãã©ã«ãªãã¬ãã£ãã¯ã¹æååã§ã¯ãªãã«ãŒã«ã¢ãŒããšããŠè§£éãããŸããããã«ããããã©ã³ãåããªã¢ãŒãURLã«å¿ããŠã³ããããã©ãŒããããåçã«åãæ¿ããããšãã§ããŸãã
ãªãã©ã«ãªãã¬ãã£ãã¯ã¹æååã§ã¯ãecho ãªã©äžè¬çãªã¹ã¯ãªããåºåã«å«ãŸããæ«å°Ÿæ¹è¡ïŒ\n/\r\nïŒã ããé€å»ããŸãããã¬ãã£ãã¯ã¹ãšããŠæå³ããæ«å°Ÿã¹ããŒã¹ã¯ä¿æãããŸãã
ãã¬ãã£ãã¯ã¹ã¹ã¯ãªããã空æåãè¿ããå ŽåïŒexit 0 ãã€æšæºåºåãªãïŒãgit-sc ã¯çæã¡ãã»ãŒãžããã®ãŸãŸäœ¿ããŸãããã ãå
é ã Conventional Commits ã® type ãã¬ãã£ãã¯ã¹ïŒäŸ: feat:, fix(scope):, feat!:ïŒã®å Žåã®ã¿ããã®ãã¬ãã£ãã¯ã¹ãé€å»ããŸãã
ãã¬ãã£ãã¯ã¹ã¹ã¯ãªãããçµäºã³ãŒã 1 ã§çµäºããå Žåãgit-sc ã¯ãã¬ãã£ãã¯ã¹ã远å ãã AI çæã¡ãã»ãŒãžããã®ãŸãŸäœ¿ããŸãããã以å€ã®é 0 çµäºã³ãŒãã¯ã¹ã¯ãªããå®è¡å€±æãšããŠæ±ããæ¬¡ã«äžèŽãããã¬ãã£ãã¯ã¹ã¹ã¯ãªããããã¬ãã£ãã¯ã¹ã«ãŒã«ãèšå®æžã¿ã® prefix_typeããŸãã¯èªåå€å®ãžãã©ãŒã«ããã¯ããŸãã
ãããžã§ã¯ãã¬ãã«ã® .git-sc ã§ã¯ãçžå¯Ÿ script ãã¹ã¯ Git ãªããžããªã®ã«ãŒããã解決ãããã¹ã¯ãªããã®äœæ¥ãã£ã¬ã¯ããªã Git ã«ãŒãã«ãªããŸãã
#!/bin/bash
# äŸ: "conventional" ãè¿ããš Conventional Commits 圢åŒãé©çšããã
echo "conventional"- 空çœã®ã¿ã®å€æŽã¯é€å€
- ãã€ããªãã¡ã€ã«ã¯é€å€
- ã¹ããŒã¹ãé ASCII æåãå«ããã¹ã®åŒçšä»ã diff ããããŒãæ£ããè§£æ
.git-sc-ignoreãã¿ãŒã³ãé©çš- 10,000æåã§åãè©°ã
- AI ããã³ããã«ã¯ staged diff ã®å 容ãå«ãŸããå ŽåããããŸããopencode ãªã©ã®ãããã€ããŒåãã«äžæããã³ãããã¡ã€ã«ãå¿ èŠãªå Žåã Codex ã®æçµå¿çãã¡ã€ã«ã䜿ãå ŽåãUnix/macOS ã§ã¯ group/other æš©éãä»ããã«äœæãã䜿çšåŸã«èªååé€ããŸãã
- reword çšã³ãããã¡ãã»ãŒãžã®äžæãã¡ã€ã«ãåãæš©éã§äœæããŸãã
- ãããã€ããŒã®ã¯ãŒã«ããŠã³ç¶æ
ãã¡ã€ã« (
~/.config/git-sc/.providers-state) ã group/other æš©éãä»ããã«äœæããŸããã¯ãŒã«ããŠã³ããŒã«ã¯åã¹ãããã®envã®å€ããã®ãŸãŸå«ãŸããããã§ãã .git-sc-ignoreã®èªã¿èŸŒã¿ã«å€±æããå Žåã¯åŠçãäžæ¢ããŸãã ãã¡ã€ã«ãååšããã®ã«èªããªãã»è§£éã§ããªãå Žåãé€å€ãªãã§ç¶è¡ãããšã©ãŒã§çµäºããŸãããã®ãŸãŸç¶è¡ãããšãé€å€ãããã£ããã¡ã€ã«ãé»ã£ãŠ AI ãããã€ããŒãžéãããŠããŸãããã§ãã.git-sc-ignore㯠diff ã®è¡šç€ºåœ¢åŒã«é¢ãã Git èšå®ã®åœ±é¿ãåããŸããã é€å€å€å®ã¯diff --git a/⊠b/âŠè¡ãããã¡ã€ã«ãã¹ãèªãã§è¡ãããããã®è¡ã®åœ¢ãå€ããèšå® (diff.noprefix/diff.mnemonicPrefix/diff.srcPrefix/diff.dstPrefix/color.ui = always/diff.external) ããããšããã¿ãŒã³ãé»ã£ãŠäžåãããããªããªããŸããgit-sc 㯠diff ååŸæã«ãã¬ãã£ãã¯ã¹ã»è²ã»ãã¹ã®åºæºãåºå®ããŠèŠæ±ããã®ã§ããããã®èšå®ã«é¢ä¿ãªãåãããã«ãã¿ãŒã³ãé©çšãããŸããdiff.relativeãåæ§ã§ãããã®èšå®ã¯å ããŠãgit-sc ãå®è¡ãããã£ã¬ã¯ããªã®å€ã«ãã倿Žã diff ããé ãã广ãæã¡ãŸãããåºæºãåºå®ããŠãããããã©ã®ãµããã£ã¬ã¯ããªã§å®è¡ããŠãã¹ããŒãžæžã¿ã®å·®åå šäœããã¡ãã»ãŒãžãæžãããŸãã- ãããžã§ã¯ãã®
.git-scã¯ã³ãŒããå®è¡ã§ããŸããproviders[].commandãprefix_scripts[].scriptãai_usage.command㯠git-sc ãèµ·åããå®è¡ãã¡ã€ã«ãæå®ãããã®ã§ããªããžããªå ã®.git-scã¯ä»ã®èšå®ãšåæ§ã«ããŒãžãããŸããä¿¡é Œã§ããªããªããžããªã clone ããŠãã®äžã§ git-sc ãå®è¡ãããš (ãšãŒãžã§ã³ãã® stop hook çµç±ã®èªåå®è¡ãå«ã)ãããããæãå®è¡ãã¡ã€ã«ãåããŸããenvã®ããŒã¯æ€èšŒããåçããŒããŒ/ã€ã³ã¿ãŒããªã¿ã®äºåããŒãç³»ã¯æåŠãããŸããããã® 3 ã€ã®ãã£ãŒã«ãã¯ãã®å¯Ÿè±¡å€ã§ããMakefileã git hook ãšåãããã«ãå®è¡åã«ãã®ãªããžããªã®.git-scã確èªããŠãã ããã
Git ãæ¥æ¬èªãã¡ã€ã«åãªã©ã quoted path ãšããŠãšã¹ã±ãŒãããŠããŠãã埩å
åŸã®å®ãã¹ã«å¯ŸããŠãã¿ãŒã³ç
§åããŸãã
rename diff ã§ã¯å€æŽåãšå€æŽåŸã®äž¡ãã¹ã察象ã«ç
§åãããããç¡èŠå¯Ÿè±¡ãã£ã¬ã¯ããªãžã®ç§»åãäžè²«ããŠé€å€ãããŸãã
ãã¡ã€ã«åã«ã¹ããŒã¹ãå«ãŸããŠããå Žåã察å¿ããŠããŸããGit ã¯ã¹ããŒã¹ã ããå«ããã¡ã€ã«åãã¯ã©ãŒãããã« diff --git ããããŒãžåºåããŸãããgit-sc ã¯æ£ãããã¹ãæœåºãããããç¡èŠãã¿ãŒã³ãäžè²«ããŠé©çšãããŸãã
倿ŽååŸã®ãã¹ãç°ãªããäž¡æ¹ã«ã¹ããŒã¹ãå«ã rename ããããŒãåãããã«åŠçããŸããçåŽã ããã¯ã©ãŒããããæ··åšããããŒïŒäŸ: old name.txt ã Git ãã¯ã©ãŒãããé ASCII ãã¡ã€ã«åãž rename ããå ŽåïŒãäž¡æ¹åã«å¯Ÿå¿ããŠããŸãã
package-lock.json
yarn.lock
Cargo.lock
*.generated.tsèšå®ãã¡ã€ã«ã§èªåããã·ã¥ãæå¹ã«ã§ããŸã:
# ~/.config/git-sc/config.toml ãŸã㯠.git-sc ã«èšè¿°
auto_push = trueæå¹ã«ãããšãgit-sc ã¯ã³ããããŸã㯠squash æååŸã« git push ãå®è¡ããŸãã
ai-usage CLI ãã€ã³ã¹ããŒã«ãããŠããå Žåãæ®éãå°œããããŠããã¢ã«ãŠã³ãã®ãããã€ããŒããåŒã³åºãåã«ãã©ãŒã«ããã¯ãã§ãŒã³ããå€ããŸããæ¢å®ã§ã¯ç¡å¹ã§ãã
[ai_usage]
enabled = true
command = ["ai-usage", "--json"] # çç¥å¯ïŒå®è¡ãã¡ã€ã«ã®ãã¹ã® `~` ã¯å±éãããŸãïŒ
threshold_percent = 95 # ãã®äœ¿çšç以äžã®ã¹ããããé€å€ãã
window = "nearest" # weekly / five_hour / nearest (äž¡è
ã®ãã¡é«ãæ¹)
timeout_seconds = 10git-sc ã¯èµ·åæã«ãã®ã³ãã³ãã 1 åã ãå®è¡ãããã©ãŒã«ããã¯ãã§ãŒã³ã®åã¹ãããã察å¿ããã¢ã«ãŠã³ãã®äœ¿çšçãšç
§åããŸããthreshold_percent 以äžã®ã¹ããã㯠ãã®å®è¡ã«éã ãã§ãŒã³ããå€ããŸã (ãããã€ããŒã®ã¯ãŒã«ããŠã³ç¶æ
ã«ã¯åœ±é¿ããŸãã)ã
åã¹ããããã©ã®ã¢ã«ãŠã³ãã«å±ãããã¯ã次ã®ãã£ãŒã«ãã§æå®ã§ããŸãã
[[providers]]
provider = "codex"
ai_usage_profile = "Work" # ai-usage ã® `profile` ãšå®å
šäžèŽ (倧æåå°æåãåºå¥)
env = { CODEX_HOME = "~/.codex-work" }
[[providers]]
provider = "antigravity"
ai_usage_group = "Claude&GPT" # `group_label` ãšäžèŽ (倧æåå°æåãåºå¥ããªã)ai_usage_group ãããã®ã¯ã1 ã€ã®ã¢ã«ãŠã³ãã®æ ãã¢ãã«ç³»çµ±ããšã«åãããŠããå Žåãããããã§ããAntigravity 㯠Gemini ãš Claude&GPT ãšããå¥ã
ã®æ ãå ±åããããããç¬ç«ã«æ¶è²»ãããŸããai_usage_profile ãæå®ããªãå Žåãgit-sc ã¯ãã®ãããã€ããŒã§æã䜿çšçã®äœãã¢ã«ãŠã³ããåºæºã«å€å®ããŸãããã ããã㯠å€å®ã«ãã圱é¿ããŸãããã¹ããããå®éã«ã©ã®ã¢ã«ãŠã³ãã§åãã㯠env ãæ±ºãããããå€å®ãšå®è¡ãäžèŽããããå Žåã¯äž¡æ¹ãæå®ããŠãã ããã
倱ææã®æ±ãã¯æå³çã«é察称ã§ããã³ãã³ããå®è¡ã§ããªãã»ã¿ã€ã ã¢ãŠãããã»åºåãè§£éã§ããªãå Žåã¯ããã§ãŒã³ããã®ãŸãŸã«ããŠã³ããããç¶è¡ããŸã (è£å©ããŒã«ã®äžèª¿ã§ã³ããããæ¢ããŠã¯ãªããªããã)ãäžæ¹ã䜿çšçã®ååŸã«æåããããã§ ãã¹ãŠã®ã¹ããã ãéŸå€è¶ éã ã£ãå Žåã¯ãæ¢å®ã®ãã§ãŒã³ãžãã©ãŒã«ããã¯ãããšã©ãŒã§åæ¢ããŸãããã©ãŒã«ããã¯ãããšãã²ãŒããä»ãããé€å€ãããããã€ããŒããã®ãŸãŸåŒã¶ããšã«ãªãããã§ãã
ãããžã§ã¯ãã® .git-sc ããã¯ãã£ãŒã«ãåäœã§äžæžãã§ããŸããæžããªãã£ããã£ãŒã«ãã¯ã°ããŒãã«èšå®ã®å€ããã®ãŸãŸæ®ããŸãã
ã©ã®ããã³ãããæž¡ããŠäœãè¿ã£ãŠããããèšé²ããŸããããã³ããã倿Žãããšãã®å¹æããå°è±¡ã§ã¯ãªãå®ããŒã¿ã§æ¯èŒããããã®ãã®ã§ããæ¢å®ã§ã¯ç¡å¹ã§ãã
# ~/.config/git-sc/config.toml ã®ã¿æå¹ïŒãããžã§ã¯ãã® .git-sc ããã¯æå¹åã§ããŸããïŒ
[dev_log]
enabled = true
content = "metadata" # metadata | full
retention_days = 14
max_total_mb = 5001 åã®å®è¡ã«ã€ã 1 ã€ã® JSON ãã¡ã€ã«ã ~/.config/git-sc/logs/YYYY-MM-DD/ ã«æžãåºããŸããå
容ã¯ããã³ããã®ããã·ã¥ãšå·®åã®çµ±èšãåãããã€ããŒã®è©Šè¡ïŒæŽåœ¢åã®çå¿çã»ã¢ãã«ã»æèŠæéã»å質å€å®ã»æ¡çš/åŒãçŽã/ãã©ãŒã«ããã¯ã®å¥ïŒããããŠå®è¡ã®çµæ«ïŒã³ãããããå Žåã¯ãã®ããã·ã¥ãå«ãïŒã§ããäžæãã¡ã€ã«ã«æžãåã£ãŠãã rename ããŠå
¬éãããããgit-sc ãåæã«èµ°ãããŠãè¡ãæ··ããããæžãããã®ãã¡ã€ã«ã宿åãšããŠè§£æå¯Ÿè±¡ã«æ··ããããšããããŸããã
è§£æã¯ãã¡ã€ã«çŸ€ããã®ãŸãŸ JSONL ã«æµã蟌ããŸã:
find ~/.config/git-sc/logs -name '*.json' | sort | xargs jq -c .
# äŸ: ãããã€ããŒããšã«å£ããä»¶åãåºãåæ°ãæ°ãã
find ~/.config/git-sc/logs -name '*.json' | xargs jq -r \
'.attempts[] | select(.findings | length > 0) | "\(.provider)\t\(.findings[0])"' | sort | uniq -cåãæ±ãã®æ³šæã æ¢å®ã® content = "metadata" ã¯ããã³ããã®çµ±èšãšããã·ã¥ã ããæ®ããæ¬æã¯æ®ããŸããããããã€ããŒã® stderr ãèœãšããŸã â Codex ã¯ããã«ããã³ããããšã³ãŒãããããæ®ããšå¥çµè·¯ã§å·®åããã°ã«å
¥ã£ãŠããŸãããã§ããcontent = "full" ã¯å®éã«éã£ãããã³ããããã®ãŸãŸä¿åããã®ã§ãã¹ããŒãžæžã¿ã®å·®åãå¹³æã§ãã£ã¹ã¯ã«æ®ããŸãããããã€ããŒã®çå¿çã¯ã©ã¡ãã®è©³çŽ°åºŠã§ãæ®ããŸããæŽåœ¢åŸã®ã¡ãã»ãŒãžã ãã§ã¯çæäºæ
ã远ããªãããã§ããç°å¢å€æ°ã®äžæžãã¯ååã ããèšé²ããå€ã¯æ®ããŸããããã°ã¯ 0700 ã®ãã£ã¬ã¯ããªå
ã« 0600 ã§äœæããretention_days ãéãããã®ãš max_total_mb ãè¶
ããåïŒå€ãé ïŒãåé€ããŸãããã®æé€ã¯ 1 æ¥ 1 åãŸã§ã§ããæžã蟌ã¿ã«å€±æããå Žåã¯èŠåã 1 è¡åºãã ãã§ïŒ--quiet ã§ã¯åºããŸããïŒãã³ãããã¯ãã®ãŸãŸç¶è¡ããŸãã
ã°ããŒãã«èšå®å°çšã«ããŠããã®ã¯æå³çã§ããclone ãããªããžããªã® .git-sc ããã°åºåãæå¹ã«ããããèªåã®ã³ãŒãã®æžãåºãå
ãéžã¹ããããŠã¯ãããªãããã§ãããããžã§ã¯ãåŽã® [dev_log] ã¯èŠåãåºããŠç¡èŠããŸãã
Git-SC (Smart Commit) - VS Code ããŒã±ãããã¬ã€ã¹ã§å ¬éäž
~/.claude/settings.json ã«è¿œå :
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "git-sc --all --yes --quiet"
}
]
}
]
}
}git-sc ã claw-hooks ãšäœµçšãããšãã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããäœãè¡ã£ãŠãããã®ã³ã³ããã¹ãã CLAW_HOOKS_AGENT_MESSAGE ç°å¢å€æ°çµç±ã§èªåçã«æž¡ãããŸãããã®ã³ã³ããã¹ãã¯AIããã³ããã«å«ãŸããçã®å·®åã®èª¬æã§ã¯ãªãã倿Žã®æå³ãåæ ããã³ãããã¡ãã»ãŒãžã®çæãå¯èœã«ããŸãã
claw-hooks 㯠Claude Code ã®ããã¯ã©ã€ããµã€ã¯ã«ã管çããã³ã³ãããªã³ããŒã«ã§ããstop hook ãçºç«ããéããšãŒãžã§ã³ãã®æåŸã®ã¢ã¯ãã£ããã£ãµããªãŒã CLAW_HOOKS_AGENT_MESSAGE ã«ã»ããããŠãã git-sc ãåŒã³åºããŸãã
# claw-hooks ã® stop hook ãèªåçã«ã»ããããŸã
# CLAW_HOOKS_AGENT_MESSAGE="èªèšŒã¢ãžã¥ãŒã«ãJWTããŒã¯ã³æ¹åŒã«ãªãã¡ã¯ã¿ãªã³ã°"
git-sc -a -y -qç°å¢å€æ°ãã»ãããããŠããå Žåãããã³ããã«ãAgent Contextãã»ã¯ã·ã§ã³ã远å ãããAIãéçºè
ã®æå³ãåªå
ããããã¬ã€ããããŸãã
ããã¯éåžžã®ã³ãããçæã«å ããŠã--amendã--rewordã--squashã--generate-for ã§ãé©çšãããŸãã
flowchart LR
A[倿Žãã¹ããŒãž] --> B[å·®åååŸ]
B --> C[ãã©ãŒãããæ€åº]
C --> D[AIã§çæ]
D --> E[確èªããŠã³ããã]
- ç°å¢ç¢ºèª: gitãªããžããªãšAIãšãŒãžã§ã³ãã®å©çšå¯åŠã確èª
- èšå®èªã¿èŸŒã¿:
~/.config/git-sc/config.tomlããèšå®ãèªã¿èŸŒã¿ - å·®åååŸ: ã¹ããŒãžããã倿ŽãååŸïŒé€å€èšå®é©çšïŒ
- ãã©ãŒãããæ€åº: éå»ã®ã³ããããŸãã¯ã«ãŒã«ããæ€åº
- çæ: AIã«éä¿¡ïŒãã©ãŒã«ããã¯ä»ãïŒ
- ã³ããã: 確èªããŠã³ããããäœæ
Grok ãããã€ããŒã¯ Grok Build TUI (grokãxAI) ãå©çšããŸãããã® CLI 㯠plan ã¢ãŒãã»ã»ãã·ã§ã³ããŸãã memoryã»web æ€çŽ¢ã»ããŒã«å®è¡ãæ¢å®ã§æå¹ãªã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã§ãããããgit-sc 㯠1 ã¿ãŒã³ã®çŽç²é¢æ°ãšããŠæ¯ãèãããã«å¶çŽããããŠèµ·åããŸãã
| ãã©ã° | ç®ç |
|---|---|
--output-format plain |
察話 TUI ã§ã¯ãªã headless ã®ããã¹ãåºåã«ãã |
--sandbox read-only |
Codex ã®ãµã³ãããã¯ã¹ãšåæ§ã«ãã¡ã€ã«æžã蟌ã¿ãšãããã¯ãŒã¯ãçŠæ¢ãã |
--no-plan / --no-memory |
plan ã¢ãŒããšã»ãã·ã§ã³ããŸãã memory ãç¡å¹åããïŒã©ã¡ããæ¢å®ã§æå¹ïŒ |
--disable-web-search |
web fetch / æ€çŽ¢ãç¡å¹åãã |
--max-turns 1 |
ããŒã«ã®ã«ãŒãã 1 ã¿ãŒã³ã§æã¡åã |
--verbatim |
CLI åŽã§ããã³ãããæžãæããããªã |
--prompt-file <äžæãã¡ã€ã«> |
倧ã㪠diff ã§ ARG_MAX ã cmd.exe ã®ã¡ã¿æååé¡ãé¿ãã |
- ã¢ãã«: ã¹ãããã®
model>[models].grok> 空ïŒgrok èªèº«ã®æ¢å®ã«å§ããïŒã®é ã§è§£æ±ºããŸããé空ã®å Žåã¯grok modelsãè¿ã IDïŒçŸåšã¯grok-4.5ã®ã¿ïŒã-m "<id>"ãšããŠæž¡ããŸãã忢±ã®æ¢å®å€ã¯ç©ºã«ããŠãããå°æ¥ããå®äŸ¡ãªã¢ãã«ã远å ãããŠã git-sc ã®ãªãªãŒã¹ãªãã§è¿œéã§ããŸãã - å
¥æ: Grok CLI 㯠cmux ã«å梱ãããŠããŸã (
/Applications/cmux.app/Contents/Resources/bin/grok)ãgrokãPATHã«ç¡ãå Žåããã®ã¹ãããã¯ã¹ããããããŠæ¬¡ã®ãããã€ããŒãžé²ã¿ãŸãã
Apple Intelligence ãããã€ããŒã¯ãfm-rsïŒAppleã® Foundation Models ãã¬ãŒã ã¯ãŒã¯ã®Rustãã€ã³ãã£ã³ã°ïŒã䜿çšããå®å šãªã³ããã€ã¹æšè«ãè¡ããŸããAPIããŒããããã¯ãŒã¯æ¥ç¶ã¯äžèŠã§ãã
- åäœèŠä»¶: macOS 26ïŒTahoeïŒä»¥éãApple Siliconãã·ã¹ãã èšå®ã§Apple Intelligenceãæå¹ã§ããããš
- ä»çµã¿: Apple Intelligence ãæå¹åããç¶æ
ã§å®è¡ãããšïŒmacOSã§ã¯ããã©ã«ãïŒãgit-scãfm-rsçµç±ã§Foundation ModelsãçŽæ¥åŒã³åºããŸããã³ãããã¡ãã»ãŒãžçæçšã®instructionsãèšå®ãã
LanguageModelSessionãæ¯åäœæããŸããinstructionsã¯è§£æ±ºæžã¿ã®ãã¬ãã£ãã¯ã¹çš®å¥ããæ§ç¯ããããããprefix_type = "none"/"bracket"/"emoji"ãçŽè¿ã³ãããããã®èªåå€å®ãå°éãããŸãïŒåžžã« Conventional Commits ã匷å¶ããããšã¯ãããŸããïŒ - ã³ã³ããã¹ãé·: ãªã³ããã€ã¹ã¢ãã«ã®ã³ã³ããã¹ã㯠4096 ããŒã¯ã³ã§ãä»ã®ãããã€ããŒããæ¡éãã«å°ããã§ããgit-sc ã¯çæåã«ããã³ããã®ããŒã¯ã³æ°ãèšæž¬ããåãŸããªãå Žåã¯å€æŽãã¡ã€ã«äžèŠ§ãæ®ãããŸãŸ diff æ¬æãçž®çŽããŠããã³ãããçµã¿çŽããŸãããã®å Žåã¯ã¡ãã»ãŒãžã倿Žã®äžéšã ããèŠãŠæžãããããšã«ãªããããèŠåã衚瀺ããŸããçž®çŽããŠãåãŸããªããšãã¯ãã³ãããã倱æãããã«æ¬¡ã®ãããã€ããŒãžé²ã¿ãŸãã
- ã¿ã€ã ã¢ãŠã:
provider_timeout_secondsïŒæ¢å® 60 ç§ïŒãé©çšãããŸããCLI ãããã€ããŒãšåãèšå®ã§ãã - 倱æã®æ±ã: ããã³ããèµ·å ã®å€±æïŒã³ã³ããã¹ãé·è¶ éã»å®å šã¬ãŒãã¬ãŒã«ã»æåŠã»é察å¿èšèªïŒã¯ã¯ãŒã«ããŠã³ã«å ¥ããŸãããã¯ãŒã«ããŠã³ã«å ¥ãã®ã¯ãã¢ãã«ãçŸåšäœ¿ããªãããšã瀺ã倱æïŒã¢ã»ããæªååŸã»ã¬ãŒãå¶éã»ã¿ã€ã ã¢ãŠãïŒã ãã§ãããã®å€±æçš®å¥ã®å€å®ã«ã¯ macOS 27 SDK 以éã§ã®ãã«ããå¿ èŠã§ãmacOS 26 ã§ã¯ãã¹ãŠãããã€ããŒåŽã®å€±æãšããŠæ±ãããŸãã
- ãã«ã:
cargo build --features apple-aiïŒmacOSã§ã¯make build/make installã§èªåçã«æå¹ïŒãmacOS 27 以éã§ãã«ããããš Foundation Models 27 ã®æ©èœïŒæ£ç¢ºãªããŒã¯ã³æ°èšæž¬ã»åä»ããšã©ãŒã»å¿çããšã®ããŒã¯ã³äœ¿çšéïŒãæå¹ã«ãªããŸããmacOS 26 ãåŒãç¶ããµããŒãããŸãã - ã¯ãã¹ãã©ãããã©ãŒã : Linux/Windowsã§ã¯Apple Intelligenceã¯å©çšã§ãããèªåçã«ã¹ããããããŸã
- Windows: Antigravity CLI (
agy) ãããã€ããŒã¯æç€ºãšã©ãŒã§ã¹ããããããŸããWindows ã§ã¯å šãããã€ããŒãcmd /Cçµç±ã§èµ·åããŸãïŒnpm ã§ã€ã³ã¹ããŒã«ããã.cmdã·ã 察å¿ã®ããïŒããcmd.exe ã¯è€æ°è¡ã® diff ãå«ãããã³ãããã³ãã³ãã©ã€ã³åŒæ°ãšããŠå®å šã«åãåãããæž¡ããšã³ãã³ãã©ã€ã³ãç ŽæããŸãïŒCVE-2024-24576 ãšåã¯ã©ã¹ã®ã³ãã³ãã€ã³ãžã§ã¯ã·ã§ã³çµè·¯ã§ããããŸãïŒããã©ãŒã«ããã¯ãã§ãŒã³ã¯æ¬¡ã®ãããã€ããŒãžé²ã¿ãŸããããã³ããã stdin ãäžæãã¡ã€ã«ã§åãåããããã€ããŒïŒcodexãclaudeãopencodeãgrokïŒã¯åœ±é¿ãåããŸããã
| ã³ãã³ã | 説æ |
|---|---|
make build |
ãããã°ãã«ã |
make release |
ãªãªãŒã¹ãã«ã |
make install |
ãã«ãã㊠/usr/local/bin ã«ã€ã³ã¹ããŒã« |
make test |
ãã¹ãå®è¡ |
make fmt |
ã³ãŒããã©ãŒããã |
make check |
clippy ãš cargo check ãå®è¡ïŒmacOS ã§ã¯ apple-ai ãå«ãïŒ |
make clean |
ãã«ãææç©ãã¯ãªãŒã³ |
ã³ã³ããªãã¥ãŒããæè¿ããŸãïŒãæ°è»œã«ãã«ãªã¯ãšã¹ãããéããã ããã
ããŒãžã§ã³å±¥æŽã¯ Releases ãåç §ããŠãã ããã
