@wbern/claude-instructions 1.9.0 → 1.11.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.
@@ -20,54 +20,71 @@ Clean up merged worktrees by finding the oldest merged branch, consolidating set
20
20
  Additional info: $ARGUMENTS
21
21
 
22
22
  <current_state>
23
- Current branch: !git branch --show-current`
24
- Current worktrees: !git worktree list`
23
+ Current branch: `git branch --show-current`
24
+ Current worktrees: `git worktree list`
25
25
  </current_state>
26
26
 
27
27
  <execution_steps>
28
28
  <step_0>
29
- <description>Validate MCP dependencies</description>
30
- <check_github_mcp>
31
- <requirement>GitHub MCP server must be configured</requirement>
32
- <fallback>If unavailable, use `gh` CLI commands</fallback>
33
- <validation>
34
- - Try listing available MCP resources
35
- - If GitHub MCP not found, switch to CLI fallback
36
- - Inform user about MCP configuration if needed
37
- </validation>
38
- </check_github_mcp>
39
- <error_handling>
40
- If MCP validation fails:
41
- - Show clear error message
42
- - Provide setup instructions
43
- - Fallback to CLI if possible
44
- </error_handling>
45
- <purpose>Ensure required MCP dependencies are available before proceeding</purpose>
29
+ <description>Detect git hosting provider and available tools</description>
30
+ <detect_provider>
31
+ <check_remote_url>git remote get-url origin</check_remote_url>
32
+ <identify_host>
33
+ - github.com → GitHub
34
+ - gitlab.com GitLab
35
+ - bitbucket.org Bitbucket
36
+ - Other Ask user
37
+ </identify_host>
38
+ </detect_provider>
39
+ <check_available_tools>
40
+ <list_mcp_servers>Check which git-hosting MCP servers are available (github, gitlab, etc.)</list_mcp_servers>
41
+ <check_cli>Check if gh/glab CLI is available as fallback</check_cli>
42
+ </check_available_tools>
43
+ <select_tool>
44
+ <if_single_mcp>If only one relevant MCP available, confirm with user</if_single_mcp>
45
+ <if_multiple>Let user choose which tool to use</if_multiple>
46
+ <if_told_earlier>If user specified tool earlier in conversation, use that without asking again</if_told_earlier>
47
+ <store_as>$GIT_HOST_TOOL (e.g., "github_mcp", "gitlab_mcp", "gh_cli")</store_as>
48
+ </select_tool>
49
+
50
+ <purpose>Detect git hosting provider and select appropriate tool for PR verification</purpose>
46
51
  </step_0>
47
52
 
48
53
  <step_1>
49
- <description>Verify we're in main branch</description>
50
- <check_command>git branch --show-current</check_command>
51
- <required_branch>main</required_branch>
52
- <error_if_not_main>Exit with error message: "This command must be run from the main branch"</error_if_not_main>
53
- <purpose>Ensure we're consolidating to the main worktree</purpose>
54
+ <description>Determine default branch and verify we're on it</description>
55
+ <find_default_branch>
56
+ <command>git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@'</command>
57
+ <fallback>git remote show origin | grep 'HEAD branch' | cut -d: -f2 | tr -d ' '</fallback>
58
+ <store_as>$DEFAULT_BRANCH (typically "main" or "master")</store_as>
59
+ </find_default_branch>
60
+ <check_current_branch>git branch --show-current</check_current_branch>
61
+ <verify>Current branch must equal $DEFAULT_BRANCH</verify>
62
+ <error_if_not_default>Exit with error: "This command must be run from the default branch ($DEFAULT_BRANCH)"</error_if_not_default>
63
+ <purpose>Ensure we're consolidating to the default branch worktree</purpose>
54
64
  </step_1>
55
65
 
56
66
  <step_2>
57
67
  <description>Get list of all worktrees</description>
58
68
  <command>git worktree list --porcelain</command>
59
69
  <parse_output>Extract worktree paths and branch names</parse_output>
60
- <exclude_main>Filter out the main worktree from cleanup candidates</exclude_main>
70
+ <exclude_default>Filter out the default branch worktree from cleanup candidates</exclude_default>
61
71
  <purpose>Identify all worktrees that could potentially be cleaned up</purpose>
62
72
  </step_2>
63
73
 
64
74
  <step_3>
65
75
  <description>Find oldest worktree by directory age</description>
66
76
  <get_worktree_ages>
67
- <command_macos>git worktree list | grep -v "main" | awk '{print $1}' | while read path; do /usr/bin/stat -f "%Sm|%N" -t "%Y-%m-%d %H:%M:%S" "$path" 2>/dev/null; done | sort</command_macos>
68
- <command_linux>git worktree list | grep -v "main" | awk '{print $1}' | xargs stat -c "%y|%n" | sort</command_linux>
77
+ <detect_platform>uname -s (returns "Darwin" for macOS, "Linux" for Linux)</detect_platform>
78
+ <command_macos>git worktree list | grep -v "\[$DEFAULT_BRANCH\]" | awk '{print $1}' > /tmp/worktrees-$$.txt && while IFS= read -r path; do echo "$(/usr/bin/stat -f '%Sm' -t '%Y-%m-%d %H:%M' "$path" 2>/dev/null)|$path"; done < /tmp/worktrees-$$.txt | sort; rm -f /tmp/worktrees-$$.txt</command_macos>
79
+ <command_linux>git worktree list | grep -v "\[$DEFAULT_BRANCH\]" | awk '{print $1}' > /tmp/worktrees-$$.txt && while IFS= read -r path; do echo "$(stat -c '%y' "$path" 2>/dev/null | cut -d. -f1)|$path"; done < /tmp/worktrees-$$.txt | sort; rm -f /tmp/worktrees-$$.txt</command_linux>
69
80
  <purpose>List all worktrees sorted by directory modification time (oldest first)</purpose>
70
- <note>Use full path /usr/bin/stat on macOS, regular stat on Linux.</note>
81
+ <critical_notes>
82
+ - Replace $DEFAULT_BRANCH with value from step_1 (e.g., "main" or "master")
83
+ - grep "\[branch\]" matches branch name in brackets, not paths containing the word
84
+ - Temp file approach avoids subshell parsing issues with piped while-loops
85
+ - /usr/bin/stat on macOS avoids homebrew stat conflicts
86
+ </critical_notes>
87
+ <expected_output_format>YYYY-MM-DD HH:MM|/full/path/to/worktree (oldest first)</expected_output_format>
71
88
  </get_worktree_ages>
72
89
  <filter_recent>
73
90
  <exclude_new>For worktrees created within the last 24 hours, let user know that this worktree might not be worth cleaning</exclude_new>
@@ -78,28 +95,27 @@ Current worktrees: !git worktree list`
78
95
  <important_note>DO NOT use "git branch --merged" to check merge status - it's unreliable</important_note>
79
96
  <proceed_to_pr_check>Move directly to step 4 to verify PR merge status instead</proceed_to_pr_check>
80
97
  </select_oldest>
81
- <purpose>Identify oldest worktree candidate - actual merge verification happens via GitHub PR in next step</purpose>
98
+ <purpose>Identify oldest worktree candidate - actual merge verification happens via PR/MR in next step</purpose>
82
99
  </step_3>
83
100
 
84
101
  <step_4>
85
- <description>Verify GitHub PR merge status (primary merge verification)</description>
102
+ <description>Verify PR/MR merge status (primary merge verification)</description>
86
103
  <determine_repo>
87
104
  <check_remote>git remote get-url origin</check_remote>
88
- <parse_repo>Extract owner/repo from GitHub URL</parse_repo>
89
- <fallback>Use project repository from git remote (owner/repo format)</fallback>
105
+ <parse_repo>Extract owner/repo from remote URL</parse_repo>
90
106
  </determine_repo>
91
107
  <search_pr>
92
- <tool>mcp__github__search_pull_requests</tool>
93
- <query>repo:owner/repo head:{branch_name} base:main</query>
94
- <purpose>Find PR for this branch targeting main</purpose>
108
+ <tool>Use $GIT_HOST_TOOL from step_0 (e.g., mcp__github__search_pull_requests, mcp__gitlab__*, or gh CLI)</tool>
109
+ <query>Find PRs/MRs where head={branch_name} and base=$DEFAULT_BRANCH</query>
110
+ <purpose>Find PR/MR for this branch targeting default branch</purpose>
95
111
  <important>This is the PRIMARY way to verify if a branch was merged - NOT git commands</important>
96
112
  </search_pr>
97
113
  <verify_pr_merged>
98
114
  <if_pr_found>
99
- <get_pr_details>Use mcp__github__pull_request_read to get full PR info</get_pr_details>
100
- <confirm_merged>Verify PR state is "closed" AND merged_at is not null AND base is "main"</confirm_merged>
101
- <extract_issue_number>Look for issue references in PR title/body (e.g., #14533, owner/repo#14533)</extract_issue_number>
102
- <if_merged>Proceed with cleanup - this branch was definitively merged to main</if_merged>
115
+ <get_pr_details>Use $GIT_HOST_TOOL to get full PR/MR info</get_pr_details>
116
+ <confirm_merged>Verify PR/MR state is "closed"/"merged" AND merged_at is not null AND base is "$DEFAULT_BRANCH"</confirm_merged>
117
+ <extract_issue_number>Look for issue references in PR title/body (e.g., #123, owner/repo#123)</extract_issue_number>
118
+ <if_merged>Proceed with cleanup - this branch was definitively merged to default branch</if_merged>
103
119
  <if_not_merged>
104
120
  <skip_worktree>This worktree is NOT merged - continue to next oldest worktree</skip_worktree>
105
121
  <repeat_from_step_3>Go back and find the next oldest worktree to check</repeat_from_step_3>
@@ -110,15 +126,14 @@ Current worktrees: !git worktree list`
110
126
  <continue_to_next>Continue checking next oldest worktree</continue_to_next>
111
127
  </if_no_pr>
112
128
  </verify_pr_merged>
113
- <purpose>Use GitHub PR status as the authoritative source for merge verification instead of unreliable git commands</purpose>
129
+ <purpose>Use PR/MR status as the authoritative source for merge verification instead of unreliable git commands</purpose>
114
130
  </step_4>
115
131
 
116
132
  <step_4_5>
117
- <description>Check and close related GitHub issue</description>
133
+ <description>Check and close related issue</description>
118
134
  <if_issue_found>
119
135
  <get_issue_details>
120
- <tool>mcp__github__issue_read</tool>
121
- <method>get</method>
136
+ <tool>Use $GIT_HOST_TOOL to read issue details</tool>
122
137
  <extract_repo>From issue reference (main-repo vs cross-repo)</extract_repo>
123
138
  </get_issue_details>
124
139
  <check_issue_state>
@@ -126,14 +141,13 @@ Current worktrees: !git worktree list`
126
141
  <ask_close>Ask user: "Related issue #{number} is still open. Should I close it? (y/N)"</ask_close>
127
142
  <if_yes_close>
128
143
  <add_closing_comment>
129
- <tool>mcp__github__add_issue_comment</tool>
130
- <body_template>Closing this issue as branch {branch_name} was merged to main on {merge_date} via PR #{pr_number}.</body_template>
131
- <get_merge_date>Extract merge date from PR details</get_merge_date>
132
- <get_pr_number>Use PR number from search results</get_pr_number>
144
+ <tool>Use $GIT_HOST_TOOL to add comment</tool>
145
+ <body_template>Closing this issue as branch {branch_name} was merged to {default_branch} on {merge_date} via PR/MR #{pr_number}.</body_template>
146
+ <get_merge_date>Extract merge date from PR/MR details</get_merge_date>
147
+ <get_pr_number>Use PR/MR number from search results</get_pr_number>
133
148
  </add_closing_comment>
134
149
  <close_issue>
135
- <tool>mcp__github__issue_write</tool>
136
- <method>update</method>
150
+ <tool>Use $GIT_HOST_TOOL to close issue</tool>
137
151
  <state>closed</state>
138
152
  <state_reason>completed</state_reason>
139
153
  </close_issue>
@@ -215,17 +229,22 @@ Current worktrees: !git worktree list`
215
229
 
216
230
  <important_notes>
217
231
 
218
- - Uses GitHub PR merge status as the ONLY reliable way to verify if a branch was merged
232
+ - Uses PR/MR merge status as the ONLY reliable way to verify if a branch was merged
219
233
  - DOES NOT use "git branch --merged" command as it's unreliable for merge verification
220
- - Only processes branches with PRs that were definitively merged to main
221
- - Skips worktrees without merged PRs and continues to next oldest candidate
222
- - Checks and optionally closes related GitHub issues
234
+ - Only processes branches with PRs/MRs that were definitively merged to default branch
235
+ - Skips worktrees without merged PRs/MRs and continues to next oldest candidate
236
+ - Checks and optionally closes related issues
223
237
  - Prioritizes oldest worktrees by directory age first for systematic cleanup
224
238
  - Warns about very recent worktrees (created within 24 hours) to avoid cleaning active work
225
239
  - Preserves useful development settings before deletion
226
240
  - Requires explicit confirmation before any destructive actions
227
241
  - Handles locked worktrees automatically
228
242
  - Processes one worktree at a time to maintain control
229
- - Must be run from main branch for safety
230
- - Works with standard GitHub repository URLs (owner/repo format)
243
+ - Must be run from default branch for safety
244
+
245
+ Limitations:
246
+
247
+ - Assumes remote is named "origin" (most common convention)
248
+ - Supports macOS and Linux only (no Windows support)
249
+ - Requires MCP server or CLI for git hosting provider (GitHub, GitLab, etc.)
231
250
  </important_notes>
@@ -15,6 +15,22 @@ Create multiple atomic git commits, committing the smallest possible logical uni
15
15
 
16
16
  Include any of the following info if specified: $ARGUMENTS
17
17
 
18
+ ## Commit Message Rules
19
+
20
+ Follows [Conventional Commits](https://www.conventionalcommits.org/) standard.
21
+
22
+ 1. **Format**: `type(#issue): description`
23
+ - Use `#123` for local repo issues
24
+ - Use `owner/repo#123` for cross-repo issues
25
+ - Common types: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`
26
+
27
+ 2. **AI Credits**: **NEVER include AI credits in commit messages**
28
+ - No "Generated with Claude Code"
29
+ - No "Co-Authored-By: Claude" or "Co-Authored-By: Happy"
30
+ - Focus on the actual changes made, not conversation history
31
+
32
+ 3. **Content**: Write clear, concise commit messages describing what changed and why
33
+
18
34
  ## Process
19
35
 
20
36
  1. Run `git status` and `git diff` to review changes
@@ -0,0 +1,246 @@
1
+ ---
2
+ description: Code review using dynamic category detection and domain-specific analysis
3
+ argument-hint: (optional) [branch, PR#, or PR URL] - defaults to current branch
4
+ - Bash(git diff:*)
5
+ - Bash(git status:*)
6
+ - Bash(git log:*)
7
+ - Bash(git rev-parse:*)
8
+ - Bash(git merge-base:*)
9
+ - Bash(git branch:*)
10
+ ---
11
+
12
+ ## General Guidelines
13
+
14
+ ### Output Style
15
+
16
+ - **Never explicitly mention TDD** in code, comments, commits, PRs, or issues
17
+ - Write natural, descriptive code without meta-commentary about the development process
18
+ - The code should speak for itself - TDD is the process, not the product
19
+
20
+ # Code Review
21
+
22
+ Perform a code review using dynamic category detection.
23
+
24
+ ## Phase 0: Setup & Categorization
25
+
26
+ ### Determine What to Review
27
+
28
+ Parse the argument to determine the review target:
29
+
30
+ | Input | Action |
31
+ |-------|--------|
32
+ | No argument | Detect divergence point, confirm scope with user |
33
+ | Branch name | Use specified branch as base |
34
+ | PR number (e.g., `123`) | Fetch PR diff from GitHub |
35
+ | PR URL (e.g., `https://github.com/owner/repo/pull/123`) | Extract PR number and fetch diff |
36
+
37
+ **For GitHub PRs:**
38
+
39
+ 1. Try GitHub MCP first: `mcp__github__pull_request_read` with `method: "get_diff"`
40
+ 2. Fall back to `gh` CLI: `gh pr diff <number>`
41
+ 3. If neither works, report error and stop
42
+
43
+ **For local branches (no argument or branch name provided):**
44
+
45
+ 1. **Get current branch**: `git rev-parse --abbrev-ref HEAD`
46
+
47
+ 2. **Check for uncommitted changes**: `git status --porcelain`
48
+ - If output is non-empty, note that uncommitted changes exist
49
+
50
+ 3. **Detect divergence point** (skip if branch name was provided as argument):
51
+ - Get all local branches except current: `git branch --format='%(refname:short)'`
52
+ - For each branch, find merge-base: `git merge-base HEAD <branch>`
53
+ - Count commits from merge-base to HEAD: `git rev-list --count <merge-base>..HEAD`
54
+ - The branch with the **fewest commits back** (closest merge-base) is the likely parent
55
+ - If no other branches exist, fall back to `main`, `master`, or `develop` if they exist as remote tracking branches
56
+
57
+ 4. **Confirm scope with user** using `AskUserQuestion`:
58
+
59
+ **Question 1 - "Review scope"** (header: "Base branch"):
60
+ - Option A: `From <detected-branch>` — "Review N commits since diverging from <branch>"
61
+ - Option B: `Different branch` — "Specify another branch to compare against"
62
+ - Option C: `Uncommitted only` — "Review only staged/unstaged changes, skip committed work"
63
+
64
+ **Question 2 - "Include uncommitted?"** (header: "Uncommitted", only ask if uncommitted changes exist AND user didn't pick option C):
65
+ - Option A: `Yes` — "Include N staged/unstaged files in review"
66
+ - Option B: `No` — "Review only committed changes"
67
+
68
+ 5. **Collect changed files** based on user selection:
69
+ - From branch: `git diff --name-only <base>...HEAD`
70
+ - Uncommitted unstaged: `git diff --name-only`
71
+ - Uncommitted staged: `git diff --name-only --cached`
72
+ - Combine and deduplicate the file list
73
+
74
+ 6. **If no changes**: Report "Nothing to review" and stop
75
+
76
+ ### Categorize Files
77
+
78
+ Check for CLAUDE.md - if it exists, note any project-specific review patterns.
79
+
80
+ Categorize each changed file into ONE primary category based on these patterns:
81
+
82
+ | Category | File Patterns |
83
+ |----------|---------------|
84
+ | Frontend/UI | `*.tsx`, `*.jsx`, `components/`, `pages/`, `views/`, `*.vue` |
85
+ | Frontend/Styling | `*.css`, `*.scss`, `*.less`, `styles/`, `*.tailwind*`, `*.styled.*` |
86
+ | Backend/API | `routes/`, `api/`, `controllers/`, `services/`, `*.controller.*`, `*.service.*`, `*.resolver.*` |
87
+ | Backend/Data | `migrations/`, `models/`, `prisma/`, `schema.*`, `*.model.*`, `*.entity.*` |
88
+ | Tooling/Config | `scripts/`, `*.config.*`, `package.json`, `tsconfig.*`, `vite.*`, `webpack.*`, `eslint.*` |
89
+ | CI/CD | `.github/`, `.gitlab-ci.*`, `Dockerfile`, `docker-compose.*`, `*.yml` in CI paths |
90
+ | Tests | `*.test.*`, `*.spec.*`, `__tests__/`, `__mocks__/`, `*.stories.*` |
91
+ | Docs | `*.md`, `docs/`, `README*`, `CHANGELOG*` |
92
+
93
+ Output the categorization:
94
+
95
+ ```
96
+ ## Categorization
97
+
98
+ Base branch: <branch>
99
+ Total files changed: <n>
100
+
101
+ | Category | Files |
102
+ |----------|-------|
103
+ | <category> | <count> |
104
+ ...
105
+ ```
106
+
107
+ ## Phase 1: Branch Brief
108
+
109
+ From the diff and recent commit messages (`git log <base>...HEAD --oneline`), infer:
110
+
111
+ - **Goal**: What this branch accomplishes (1-3 sentences)
112
+ - **Constraints**: Any implied requirements (security, performance, backwards compatibility)
113
+ - **Success checklist**: What must work after this change, what must not break
114
+
115
+ ```
116
+ ## Branch Brief
117
+
118
+ **Goal**: ...
119
+ **Constraints**: ...
120
+ **Checklist**:
121
+ - [ ] ...
122
+ ```
123
+
124
+ ## Phase 2: Category Reviews
125
+
126
+ For each detected category with changes, run a targeted review. Skip categories with no changes.
127
+
128
+ ### Frontend/UI Review Criteria
129
+
130
+ - Accessibility: ARIA attributes, keyboard navigation, screen reader support
131
+ - Component patterns: Composition, prop drilling, context usage
132
+ - State management: Unnecessary re-renders, stale closures
133
+ - Performance: memo/useMemo/useCallback usage, lazy loading, bundle impact
134
+
135
+ ### Frontend/Styling Review Criteria
136
+
137
+ - Responsive design: Breakpoints, mobile-first
138
+ - Design system: Token usage, consistent spacing/colors
139
+ - CSS specificity: Overly specific selectors, !important usage
140
+ - Theme support: Dark mode, CSS variables
141
+
142
+ ### Backend/API Review Criteria
143
+
144
+ - Input validation: Sanitization, type checking, bounds
145
+ - Security: Authentication checks, authorization, injection risks
146
+ - Error handling: Proper status codes, meaningful messages, logging
147
+ - Performance: N+1 queries, missing indexes, pagination
148
+
149
+ ### Backend/Data Review Criteria
150
+
151
+ - Migration safety: Reversibility, data preservation
152
+ - Data integrity: Constraints, foreign keys, nullability
153
+ - Index usage: Queries have appropriate indexes
154
+ - Backwards compatibility: Existing data still works
155
+
156
+ ### Tooling/Config Review Criteria
157
+
158
+ - Breaking changes: Does this affect developer workflow?
159
+ - Dependency compatibility: Version conflicts, peer deps
160
+ - Build performance: Added build time, bundle size
161
+
162
+ ### CI/CD Review Criteria
163
+
164
+ - Secrets exposure: Credentials in logs, env vars
165
+ - Pipeline efficiency: Caching, parallelization
166
+ - Failure handling: Notifications, rollback strategy
167
+
168
+ ### Tests Review Criteria
169
+
170
+ - Coverage: Edge cases, error paths, boundaries
171
+ - Assertion quality: Specific assertions, not just "no error"
172
+ - Flaky patterns: Timing dependencies, order dependencies, shared state
173
+
174
+ ### Docs Review Criteria
175
+
176
+ - Technical accuracy: Code examples work, APIs documented correctly
177
+ - Completeness: All new features documented
178
+ - Clarity: Easy to follow, good examples
179
+
180
+ **Output format per category:**
181
+
182
+ ```
183
+ ## <Category> Review (<n> files)
184
+
185
+ ### file:line - [blocker|risky|nit] Title
186
+ Description of the issue and why it matters.
187
+ Suggested fix or question to investigate.
188
+
189
+ ...
190
+ ```
191
+
192
+ ## Phase 3: Cross-Cutting Analysis
193
+
194
+ After reviewing all categories, check for cross-cutting issues:
195
+
196
+ - API changed but tests didn't update?
197
+ - New feature but no documentation?
198
+ - Migration added but no rollback tested?
199
+ - Config changed but README not updated?
200
+ - Security-sensitive code without corresponding test?
201
+
202
+ ```
203
+ ## Cross-Cutting Issues
204
+
205
+ - [ ] <issue description>
206
+ ...
207
+ ```
208
+
209
+ ## Phase 4: Summary
210
+
211
+ ### PR Description (draft)
212
+
213
+ Provide a ready-to-paste PR description:
214
+
215
+ ```
216
+ ## What changed
217
+ - <by category, 1-2 bullets each>
218
+
219
+ ## Why
220
+ - <motivation>
221
+
222
+ ## Testing
223
+ - <how to verify>
224
+
225
+ ## Notes
226
+ - <migration steps, breaking changes, etc.>
227
+ ```
228
+
229
+ ### Review Checklist
230
+
231
+ ```
232
+ ## Before Merge
233
+
234
+ ### Blockers (must fix)
235
+ - [ ] ...
236
+
237
+ ### Risky (highlight to reviewers)
238
+ - [ ] ...
239
+
240
+ ### Follow-ups (can defer)
241
+ - [ ] ...
242
+ ```
243
+
244
+ ---
245
+
246
+ Review target (branch name, PR number, or PR URL - leave empty for current branch): $ARGUMENTS
@@ -24,6 +24,20 @@
24
24
  "category": "Workflow",
25
25
  "order": 2
26
26
  },
27
+ "code-review.md": {
28
+ "description": "Code review using dynamic category detection and domain-specific analysis",
29
+ "hint": "Review code",
30
+ "category": "Workflow",
31
+ "order": 35,
32
+ "_requested-tools": [
33
+ "Bash(git diff:*)",
34
+ "Bash(git status:*)",
35
+ "Bash(git log:*)",
36
+ "Bash(git rev-parse:*)",
37
+ "Bash(git merge-base:*)",
38
+ "Bash(git branch:*)"
39
+ ]
40
+ },
27
41
  "commit.md": {
28
42
  "description": "Create a git commit following project standards",
29
43
  "hint": "Git commit",
@@ -111,7 +125,7 @@
111
125
  "order": 1
112
126
  },
113
127
  "worktree-add.md": {
114
- "description": "Add a new git worktree from branch name or GitHub issue URL, copy settings, install deps, and open in current IDE",
128
+ "description": "Add a new git worktree from branch name or issue URL, copy settings, install deps, and open in current IDE",
115
129
  "hint": "Add worktree",
116
130
  "category": "Worktree Management",
117
131
  "order": 1
@@ -15,6 +15,22 @@ Create a git commit following project standards
15
15
 
16
16
  Include any of the following info if specified: $ARGUMENTS
17
17
 
18
+ ## Commit Message Rules
19
+
20
+ Follows [Conventional Commits](https://www.conventionalcommits.org/) standard.
21
+
22
+ 1. **Format**: `type(#issue): description`
23
+ - Use `#123` for local repo issues
24
+ - Use `owner/repo#123` for cross-repo issues
25
+ - Common types: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`
26
+
27
+ 2. **AI Credits**: **NEVER include AI credits in commit messages**
28
+ - No "Generated with Claude Code"
29
+ - No "Co-Authored-By: Claude" or "Co-Authored-By: Happy"
30
+ - Focus on the actual changes made, not conversation history
31
+
32
+ 3. **Content**: Write clear, concise commit messages describing what changed and why
33
+
18
34
  ## Process
19
35
 
20
36
  1. Run `git status` and `git diff` to review changes
@@ -16,6 +16,7 @@ Analyze the current conversation context and identify things that have not yet b
16
16
  1. **Incomplete implementations** - Code that was started but not finished
17
17
  2. **Unused variables/results** - Values that were captured but never used
18
18
  3. **Missing tests** - Functionality without test coverage
19
+
19
20
  4. **User requests** - Things the user asked for that weren't fully completed
20
21
  5. **TODO comments** - Any TODOs mentioned in conversation
21
22
  6. **Error handling gaps** - Missing error cases or edge cases