-
-
Notifications
You must be signed in to change notification settings - Fork 10
feat: enable lefthook only in Claude Code environment #56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Add skip condition using CLAUDECODE environment variable - Hooks will only run when CLAUDECODE=1 (Claude Code environment) - Manual development remains unaffected by git hooks
WalkthroughA skip condition was added to the Changes
Estimated code review effort1 (~2 minutes) Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @nyatinte, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request introduces a targeted configuration for git hooks, enabling them to run exclusively within specific automated development environments. The primary goal is to optimize the development workflow by providing automated quality checks for AI-driven development while minimizing friction for human developers.
Highlights
- Conditional Git Hooks: I've configured the
lefthookpre-commit git hook to execute only when theCLAUDECODEenvironment variable is set to1. This ensures that automated quality checks run specifically within Claude Code environments. - Developer Workflow Improvement: This change allows human developers to commit code without being interrupted by pre-commit checks, as these hooks will now be skipped outside of the Claude Code environment.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments or fill out our survey to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request correctly configures lefthook to conditionally run pre-commit hooks based on the CLAUDECODE environment variable, which is a great way to tailor the development workflow for different environments. The implementation is sound. My only feedback is a minor suggestion to improve maintainability by ensuring comments are in English, consistent with the rest of the project.
lefthook.yml
Outdated
|
|
||
| pre-commit: | ||
| skip: | ||
| - run: test "$CLAUDECODE" != 1 # Claude Code以外はスキップ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For better maintainability and consistency with the rest of the project, which appears to be primarily in English, it's recommended to write comments in English. This ensures clarity for all current and future contributors. The PR description itself contains a suitable English version of this comment.
- run: test "$CLAUDECODE" != 1 # Skip for non-Claude Code environments
commit: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
lefthook.yml (1)
5-6: Make the test more robust & shell-safeQuoting the literal and adding a default value guards against an unset variable and makes the intent explicit:
- - run: test "$CLAUDECODE" != 1 # Claude Code以外はスキップ + - run: '[ "${CLAUDECODE:-0}" != "1" ]' # Skip hooks unless running inside Claude Code•
${CLAUDECODE:-0}prevents an “unary operator expected” warning underset -u/strict-mode shells.
• Surrounding the whole expression with single quotes avoids YAML parsing edge-cases and keeps the[…]POSIX-compatible.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
lefthook.yml(1 hunks)
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
PR: nyatinte/ccexp#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-19T14:41:32.816Z
Learning: Applies to {CLAUDE.md,CLAUDE.local.md} : CLAUDE.md and CLAUDE.local.md must be used for project-level and local configuration, respectively
Learnt from: CR
PR: nyatinte/ccexp#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-19T14:41:32.816Z
Learning: Applies to ~/.claude/CLAUDE.md : Global user configuration must be stored in `~/.claude/CLAUDE.md`
lefthook.yml (2)
Learnt from: CR
PR: nyatinte/ccexp#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-19T14:41:32.816Z
Learning: Applies to {CLAUDE.md,CLAUDE.local.md} : CLAUDE.md and CLAUDE.local.md must be used for project-level and local configuration, respectively
Learnt from: CR
PR: nyatinte/ccexp#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-19T14:41:32.816Z
Learning: Applies to ~/.claude/CLAUDE.md : Global user configuration must be stored in ~/.claude/CLAUDE.md
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
PR: nyatinte/ccexp#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-19T14:41:32.816Z
Learning: Applies to {CLAUDE.md,CLAUDE.local.md} : CLAUDE.md and CLAUDE.local.md must be used for project-level and local configuration, respectively
Learnt from: CR
PR: nyatinte/ccexp#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-19T14:41:32.816Z
Learning: Applies to ~/.claude/CLAUDE.md : Global user configuration must be stored in `~/.claude/CLAUDE.md`
lefthook.yml (2)
Learnt from: CR
PR: nyatinte/ccexp#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-19T14:41:32.816Z
Learning: Applies to {CLAUDE.md,CLAUDE.local.md} : CLAUDE.md and CLAUDE.local.md must be used for project-level and local configuration, respectively
Learnt from: CR
PR: nyatinte/ccexp#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-19T14:41:32.816Z
Learning: Applies to ~/.claude/CLAUDE.md : Global user configuration must be stored in ~/.claude/CLAUDE.md
Overview
This PR configures lefthook to run git hooks only in Claude Code environments, allowing more flexible development workflows.
Changes
lefthook.ymlusingCLAUDECODEenvironment variableCLAUDECODE=1(Claude Code environment)Benefits
Implementation
Uses lefthook's
skipfeature with a simple test:This aligns with the "Create self-sufficient loops" principle from Anthropic's guide on how teams use Claude Code.
Summary by CodeRabbit