@yeongjaeyou/claude-code-config 0.16.0 → 0.17.1
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/.claude/agents/code-review-handler.md +79 -0
- package/.claude/agents/issue-resolver.md +123 -0
- package/.claude/agents/python-pro.md +7 -2
- package/.claude/agents/web-researcher.md +5 -1
- package/.claude/commands/ask-deepwiki.md +46 -11
- package/.claude/commands/gh/auto-review-loop.md +178 -0
- package/.claude/commands/gh/create-issue-label.md +4 -0
- package/.claude/commands/gh/decompose-issue.md +24 -2
- package/.claude/commands/gh/post-merge.md +52 -10
- package/.claude/commands/gh/resolve-and-review.md +69 -0
- package/.claude/commands/gh/resolve-issue.md +3 -0
- package/.claude/commands/tm/convert-prd.md +4 -0
- package/.claude/commands/tm/post-merge.md +7 -1
- package/.claude/commands/tm/resolve-issue.md +4 -0
- package/.claude/commands/tm/sync-to-github.md +4 -0
- package/.claude/settings.json +15 -0
- package/.claude/skills/claude-md-generator/SKILL.md +130 -0
- package/.claude/skills/claude-md-generator/references/examples.md +261 -0
- package/.claude/skills/claude-md-generator/references/templates.md +156 -0
- package/.claude/skills/hook-creator/SKILL.md +88 -0
- package/.claude/skills/hook-creator/references/examples.md +339 -0
- package/.claude/skills/hook-creator/references/hook-events.md +193 -0
- package/.claude/skills/skill-creator/SKILL.md +160 -13
- package/.claude/skills/skill-creator/references/output-patterns.md +82 -0
- package/.claude/skills/skill-creator/references/workflows.md +28 -0
- package/.claude/skills/skill-creator/scripts/package_skill.py +10 -10
- package/.claude/skills/skill-creator/scripts/quick_validate.py +45 -15
- package/.claude/skills/slash-command-creator/SKILL.md +108 -0
- package/.claude/skills/slash-command-creator/references/examples.md +161 -0
- package/.claude/skills/slash-command-creator/references/frontmatter.md +74 -0
- package/.claude/skills/slash-command-creator/scripts/init_command.py +221 -0
- package/.claude/skills/subagent-creator/SKILL.md +127 -0
- package/.claude/skills/subagent-creator/assets/subagent-template.md +31 -0
- package/.claude/skills/subagent-creator/references/available-tools.md +63 -0
- package/.claude/skills/subagent-creator/references/examples.md +213 -0
- package/.claude/skills/youtube-collector/README.md +107 -0
- package/.claude/skills/youtube-collector/SKILL.md +158 -0
- package/.claude/skills/youtube-collector/references/data-schema.md +110 -0
- package/.claude/skills/youtube-collector/scripts/collect_videos.py +304 -0
- package/.claude/skills/youtube-collector/scripts/fetch_transcript.py +138 -0
- package/.claude/skills/youtube-collector/scripts/fetch_videos.py +229 -0
- package/.claude/skills/youtube-collector/scripts/register_channel.py +247 -0
- package/.claude/skills/youtube-collector/scripts/setup_api_key.py +151 -0
- package/package.json +1 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-review-handler
|
|
3
|
+
description: Handle CodeRabbit PR review comments autonomously. Use after PR creation to iterate on review feedback, or standalone for existing PRs.
|
|
4
|
+
model: inherit
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# CodeRabbit Review Handler
|
|
8
|
+
|
|
9
|
+
Autonomous agent for fixing CodeRabbit review comments.
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
This agent is spawned by `/gh:auto-review-loop` command or manually when:
|
|
14
|
+
- PR has unresolved CodeRabbit comments
|
|
15
|
+
- Need to iterate on review feedback
|
|
16
|
+
|
|
17
|
+
## Input
|
|
18
|
+
|
|
19
|
+
Receive via prompt:
|
|
20
|
+
- `PR_NUMBER`: PR number (required)
|
|
21
|
+
- `COMMENTS`: Extracted review comments in format:
|
|
22
|
+
```
|
|
23
|
+
### File: path/to/file.ts:42
|
|
24
|
+
|
|
25
|
+
<comment body>
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Workflow
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
1. Parse COMMENTS
|
|
34
|
+
2. For each comment:
|
|
35
|
+
a. Read target file
|
|
36
|
+
b. Analyze feedback
|
|
37
|
+
c. Determine fix type (auto/manual)
|
|
38
|
+
d. Apply fix or ask user
|
|
39
|
+
3. Report changes made
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Fix Categories
|
|
43
|
+
|
|
44
|
+
### Auto-fix (No Confirmation)
|
|
45
|
+
|
|
46
|
+
- Typos, spelling errors
|
|
47
|
+
- Missing imports
|
|
48
|
+
- Formatting issues
|
|
49
|
+
- Unused variables removal
|
|
50
|
+
- Simple type annotations
|
|
51
|
+
- Documentation improvements
|
|
52
|
+
|
|
53
|
+
### Manual Confirmation Required
|
|
54
|
+
|
|
55
|
+
Use `AskUserQuestion` for:
|
|
56
|
+
- Logic changes
|
|
57
|
+
- Architecture decisions
|
|
58
|
+
- API modifications
|
|
59
|
+
- Security-related changes
|
|
60
|
+
- Performance trade-offs
|
|
61
|
+
|
|
62
|
+
## Guidelines
|
|
63
|
+
|
|
64
|
+
- Read `.claude/guidelines/work-guidelines.md` first
|
|
65
|
+
- Never auto-fix business logic
|
|
66
|
+
- Commit only changed files (`git add -u`, not `git add -A`)
|
|
67
|
+
- One logical change per commit when possible
|
|
68
|
+
|
|
69
|
+
## Output
|
|
70
|
+
|
|
71
|
+
Report summary:
|
|
72
|
+
```
|
|
73
|
+
Fixed N comments:
|
|
74
|
+
- file1.ts:42 - <brief description>
|
|
75
|
+
- file2.ts:15 - <brief description>
|
|
76
|
+
|
|
77
|
+
Skipped M comments (require manual review):
|
|
78
|
+
- file3.ts:88 - <reason>
|
|
79
|
+
```
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: issue-resolver
|
|
3
|
+
description: Resolve GitHub issues by analyzing requirements, implementing code, and creating PR. Use when asked to resolve or fix GitHub issues.
|
|
4
|
+
model: inherit
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are an expert developer who systematically resolves GitHub issues.
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
Read `.claude/guidelines/work-guidelines.md` before starting.
|
|
12
|
+
|
|
13
|
+
## Input
|
|
14
|
+
|
|
15
|
+
Receive issue number via prompt. Extract from patterns like "Resolve issue #123" or "issue 123".
|
|
16
|
+
|
|
17
|
+
## Workflow
|
|
18
|
+
|
|
19
|
+
### 1. Analyze Issue
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
gh issue view $ISSUE_NUMBER --json title,body,comments,milestone
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- Check TDD marker: `<!-- TDD: enabled -->` in issue body
|
|
26
|
+
- If milestone exists, run `gh issue list --milestone "<milestone>" --json number,title,state` to understand context
|
|
27
|
+
|
|
28
|
+
### 2. Verify Plan File (if exists)
|
|
29
|
+
|
|
30
|
+
- Check for plan path in issue body (e.g., `Plan: /path/to/plan.md`)
|
|
31
|
+
- If found, read and compare with issue requirements
|
|
32
|
+
- If misaligned, report and stop
|
|
33
|
+
|
|
34
|
+
### 3. Create Branch
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
git checkout -b issue-$ISSUE_NUMBER main
|
|
38
|
+
git submodule update --init --recursive
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 4. Update GitHub Project (optional)
|
|
42
|
+
|
|
43
|
+
- Check if project exists: `gh project list --owner <owner> --format json`
|
|
44
|
+
- If exists, update status to "In Progress"
|
|
45
|
+
- Skip silently if no project
|
|
46
|
+
|
|
47
|
+
### 5. Analyze Codebase (MANDATORY)
|
|
48
|
+
|
|
49
|
+
Spawn Explorer agents in parallel before writing any code:
|
|
50
|
+
|
|
51
|
+
- Structure: overall architecture and file relationships
|
|
52
|
+
- Pattern: similar implementations in codebase
|
|
53
|
+
- Dependency: affected modules and consumers
|
|
54
|
+
|
|
55
|
+
### 6. Plan Resolution
|
|
56
|
+
|
|
57
|
+
Based on analysis, define concrete implementation steps.
|
|
58
|
+
|
|
59
|
+
### 7. Implement
|
|
60
|
+
|
|
61
|
+
If TDD enabled (marker found in Step 1):
|
|
62
|
+
1. RED: Write failing tests first
|
|
63
|
+
2. GREEN: Implement minimal code to pass
|
|
64
|
+
3. REFACTOR: Clean up while tests stay green
|
|
65
|
+
|
|
66
|
+
If TDD not enabled:
|
|
67
|
+
- Implement directly according to plan
|
|
68
|
+
- Execute and verify runnable code
|
|
69
|
+
|
|
70
|
+
### 8. Write Tests
|
|
71
|
+
|
|
72
|
+
- Target 80% coverage minimum
|
|
73
|
+
- If TDD enabled, verify coverage and add edge cases
|
|
74
|
+
- If not TDD, write unit tests after implementation
|
|
75
|
+
|
|
76
|
+
### 9. Validate
|
|
77
|
+
|
|
78
|
+
Run in parallel:
|
|
79
|
+
- Tests: `pytest` or equivalent
|
|
80
|
+
- Lint: project linter
|
|
81
|
+
- Build: project build command
|
|
82
|
+
|
|
83
|
+
### 10. Create PR
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Stage only issue-relevant files (NEVER git add -A)
|
|
87
|
+
git add <specific-files>
|
|
88
|
+
git commit -m "feat: resolve issue #$ISSUE_NUMBER - <summary>"
|
|
89
|
+
gh pr create --title "<title>" --body "<body>"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 11. Update Issue Checkboxes
|
|
93
|
+
|
|
94
|
+
Mark completed items in issue body.
|
|
95
|
+
|
|
96
|
+
## Verification Criteria
|
|
97
|
+
|
|
98
|
+
Before marking any task complete:
|
|
99
|
+
- Execute code/configuration to confirm it works
|
|
100
|
+
- Provide actual output as evidence
|
|
101
|
+
- Never report "expected to work" without execution
|
|
102
|
+
- Mark unverified items explicitly as "unverified"
|
|
103
|
+
|
|
104
|
+
Prohibited:
|
|
105
|
+
- Stating "will appear in logs" without checking
|
|
106
|
+
- Presenting assumptions as facts
|
|
107
|
+
|
|
108
|
+
## Output Format (CRITICAL)
|
|
109
|
+
|
|
110
|
+
End your response with exactly one of:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
PR_CREATED: {number}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
or
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
PR_FAILED: {reason}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Example success: `PR_CREATED: 42`
|
|
123
|
+
Example failure: `PR_FAILED: Tests failed with 3 errors`
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: python-pro
|
|
3
3
|
description: Write idiomatic Python code with advanced features like decorators, generators, and async/await. Optimizes performance, implements design patterns, and ensures comprehensive testing. Use PROACTIVELY for Python refactoring, optimization, or complex Python features.
|
|
4
|
-
tools: Read, Write, Edit, Bash
|
|
5
|
-
|
|
4
|
+
tools: Read, Write, Edit, Bash, AskUserQuestion
|
|
5
|
+
skills: code-explorer
|
|
6
|
+
model: inherit
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
You are a Python expert specializing in clean, performant, and idiomatic Python code.
|
|
9
10
|
|
|
11
|
+
## Prerequisites
|
|
12
|
+
|
|
13
|
+
Read `.claude/guidelines/work-guidelines.md` before starting.
|
|
14
|
+
|
|
10
15
|
## Focus Areas
|
|
11
16
|
- Advanced Python features (decorators, metaclasses, descriptors)
|
|
12
17
|
- Async/await and concurrent programming
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: web-researcher
|
|
3
3
|
description: Use this agent when you need to conduct comprehensive research on technical topics across multiple platforms (Reddit, GitHub, Stack Overflow, Hugging Face, arXiv, etc.) and generate a synthesized report. (project)
|
|
4
|
-
model:
|
|
4
|
+
model: inherit
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Web Research Expert Agent
|
|
@@ -10,6 +10,10 @@ A specialized research agent that collects information from multiple platforms o
|
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
+
## Prerequisites
|
|
14
|
+
|
|
15
|
+
Read `.claude/guidelines/work-guidelines.md` before starting.
|
|
16
|
+
|
|
13
17
|
## Execution Mode
|
|
14
18
|
|
|
15
19
|
### Mode Detection
|
|
@@ -6,21 +6,56 @@ description: Deep query on GitHub repositories using DeepWiki
|
|
|
6
6
|
|
|
7
7
|
Query GitHub repositories in-depth using the DeepWiki MCP to get comprehensive answers.
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Arguments
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
`$ARGUMENTS` parsing:
|
|
12
|
+
- Format: `owner/repo "question"` or `owner/repo question text`
|
|
13
|
+
- Repository: Extract `owner/repo` pattern (before first space or quote)
|
|
14
|
+
- Question: Remaining text after repository
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
Examples:
|
|
17
|
+
- `/ask-deepwiki facebook/react "How does the reconciliation algorithm work?"`
|
|
18
|
+
- `/ask-deepwiki vercel/next.js explain the app router architecture`
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
## Execution
|
|
21
|
+
|
|
22
|
+
### 1. Parse Arguments
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Input: $ARGUMENTS
|
|
26
|
+
Extract:
|
|
27
|
+
- REPO_NAME: owner/repo format
|
|
28
|
+
- QUESTION: remaining text
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 2. Query DeepWiki
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
mcp__deepwiki__ask_question({
|
|
35
|
+
repoName: [REPO_NAME],
|
|
36
|
+
question: [QUESTION]
|
|
37
|
+
})
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 3. Multi-Query Expansion (if needed)
|
|
41
|
+
|
|
42
|
+
If initial response is insufficient:
|
|
43
|
+
1. Decompose into sub-questions
|
|
44
|
+
2. Query in parallel using multiple `mcp__deepwiki__ask_question` calls
|
|
45
|
+
3. Synthesize results
|
|
46
|
+
|
|
47
|
+
## Error Handling
|
|
48
|
+
|
|
49
|
+
| Error | Action |
|
|
50
|
+
|-------|--------|
|
|
51
|
+
| Invalid repo format | Request correct `owner/repo` format |
|
|
52
|
+
| Repository not found | Verify repository exists on GitHub |
|
|
53
|
+
| Empty question | Request specific question |
|
|
54
|
+
| DeepWiki unavailable | Suggest alternative (direct GitHub exploration) |
|
|
20
55
|
|
|
21
56
|
## Guidelines
|
|
22
57
|
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
58
|
+
- Follow CLAUDE.md project guidelines
|
|
59
|
+
- Write clear, specific questions
|
|
60
|
+
- Iterate and refine as needed
|
|
26
61
|
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Automatically fix CodeRabbit PR review comments until resolved
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Auto PR Review Loop
|
|
6
|
+
|
|
7
|
+
Automatically fix and push until CodeRabbit review comments reach zero.
|
|
8
|
+
|
|
9
|
+
## Arguments
|
|
10
|
+
|
|
11
|
+
`$ARGUMENTS` parsing:
|
|
12
|
+
- **No arguments**: Use current branch's PR
|
|
13
|
+
- **PR number**: `/gh:auto-review-loop 123` - Specify PR
|
|
14
|
+
|
|
15
|
+
## Safety Limits
|
|
16
|
+
|
|
17
|
+
| Limit | Value | Purpose |
|
|
18
|
+
|-------|-------|---------|
|
|
19
|
+
| MAX_ITERATIONS | 10 | Prevent infinite loops |
|
|
20
|
+
| POLL_TIMEOUT | 300s | Wait for CodeRabbit analysis |
|
|
21
|
+
| POLL_INTERVAL | 30s | Status check frequency |
|
|
22
|
+
|
|
23
|
+
## Workflow (2-API Design)
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
27
|
+
│ 1. Init → 2. Wait (Status API) → 3. Check (GraphQL) → 4. Fix │
|
|
28
|
+
│ ↑ ↓ │
|
|
29
|
+
│ └──────────── push & loop ───────────────┘ │
|
|
30
|
+
└─────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Step 1: Initialize
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Get PR info
|
|
37
|
+
PR_NUMBER=${ARGUMENTS:-$(gh pr view --json number -q .number 2>/dev/null)}
|
|
38
|
+
REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner)
|
|
39
|
+
SHA=$(gh pr view $PR_NUMBER --json commits --jq '.commits[-1].oid')
|
|
40
|
+
|
|
41
|
+
ITERATION=1
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Step 2: Wait for CodeRabbit (Status API)
|
|
45
|
+
|
|
46
|
+
CodeRabbit uses Commit Status API, not Check Runs.
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
wait_for_coderabbit() {
|
|
50
|
+
local sha=$1 elapsed=0
|
|
51
|
+
|
|
52
|
+
while [ $elapsed -lt 300 ]; do
|
|
53
|
+
STATE=$(gh api repos/$REPO/commits/$sha/status \
|
|
54
|
+
--jq '.statuses[] | select(.context=="CodeRabbit") | .state' 2>/dev/null)
|
|
55
|
+
|
|
56
|
+
case "$STATE" in
|
|
57
|
+
success) return 0 ;; # Review complete
|
|
58
|
+
pending) ;; # Still analyzing
|
|
59
|
+
*) # No status yet or error
|
|
60
|
+
# Check if CodeRabbit review exists at all
|
|
61
|
+
HAS_REVIEW=$(gh pr view $PR_NUMBER --json reviews \
|
|
62
|
+
--jq '[.reviews[] | select(.author.login | contains("coderabbit"))] | length')
|
|
63
|
+
[ "$HAS_REVIEW" -gt 0 ] && return 0
|
|
64
|
+
;;
|
|
65
|
+
esac
|
|
66
|
+
|
|
67
|
+
sleep 30
|
|
68
|
+
elapsed=$((elapsed + 30))
|
|
69
|
+
done
|
|
70
|
+
|
|
71
|
+
return 1 # Timeout
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
wait_for_coderabbit "$SHA" || {
|
|
75
|
+
echo "REVIEW_SKIPPED: CodeRabbit not responding within timeout"
|
|
76
|
+
exit 0
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Step 3: Check Unresolved Threads (GraphQL)
|
|
81
|
+
|
|
82
|
+
Single query for count + content. This is the ground truth.
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
GRAPHQL_QUERY='
|
|
86
|
+
query($owner: String!, $repo: String!, $pr: Int!) {
|
|
87
|
+
repository(owner: $owner, name: $repo) {
|
|
88
|
+
pullRequest(number: $pr) {
|
|
89
|
+
reviewThreads(first: 100) {
|
|
90
|
+
nodes {
|
|
91
|
+
isResolved
|
|
92
|
+
path
|
|
93
|
+
line
|
|
94
|
+
comments(first: 1) {
|
|
95
|
+
nodes {
|
|
96
|
+
author { login }
|
|
97
|
+
body
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}'
|
|
105
|
+
|
|
106
|
+
# Filter: unresolved + coderabbit + not nitpick
|
|
107
|
+
JQ_FILTER='[.data.repository.pullRequest.reviewThreads.nodes[] |
|
|
108
|
+
select(.isResolved == false) |
|
|
109
|
+
select(.comments.nodes[0].author.login | contains("coderabbit")) |
|
|
110
|
+
select(.comments.nodes[0].body | (contains("<!-- nitpick -->") or contains("[nitpick]")) | not)]'
|
|
111
|
+
|
|
112
|
+
RESULT=$(gh api graphql -f query="$GRAPHQL_QUERY" \
|
|
113
|
+
-f owner="${REPO%/*}" -f repo="${REPO#*/}" -F pr="$PR_NUMBER")
|
|
114
|
+
|
|
115
|
+
UNRESOLVED=$(echo "$RESULT" | jq "$JQ_FILTER | length")
|
|
116
|
+
|
|
117
|
+
if [ "$UNRESOLVED" -eq 0 ]; then
|
|
118
|
+
echo "REVIEW_COMPLETE: all comments resolved"
|
|
119
|
+
exit 0
|
|
120
|
+
fi
|
|
121
|
+
|
|
122
|
+
# Extract comments for fixing
|
|
123
|
+
COMMENTS=$(echo "$RESULT" | jq -r "$JQ_FILTER | .[] |
|
|
124
|
+
\"### File: \(.path):\(.line)\n\n\(.comments.nodes[0].body)\n\n---\n\"")
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Step 4: Fix, Commit, Loop
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# For each comment: analyze and fix
|
|
131
|
+
# Follow code-review.md guidelines for auto-fix vs manual
|
|
132
|
+
|
|
133
|
+
# After fixes applied:
|
|
134
|
+
if [ -z "$(git status --porcelain)" ]; then
|
|
135
|
+
echo "REVIEW_COMPLETE: no changes needed"
|
|
136
|
+
exit 0
|
|
137
|
+
fi
|
|
138
|
+
|
|
139
|
+
git add -u
|
|
140
|
+
git commit -m "fix: address CodeRabbit review (iteration $ITERATION)"
|
|
141
|
+
git push
|
|
142
|
+
|
|
143
|
+
ITERATION=$((ITERATION + 1))
|
|
144
|
+
[ $ITERATION -gt 10 ] && {
|
|
145
|
+
echo "REVIEW_INCOMPLETE: max iterations (10) reached, $UNRESOLVED comments remaining"
|
|
146
|
+
exit 1
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
# Update SHA and loop back to Step 2
|
|
150
|
+
SHA=$(git rev-parse HEAD)
|
|
151
|
+
# Go to Step 2
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Output Format
|
|
155
|
+
|
|
156
|
+
End with exactly one of:
|
|
157
|
+
|
|
158
|
+
| Output | Meaning |
|
|
159
|
+
|--------|---------|
|
|
160
|
+
| `REVIEW_COMPLETE: all comments resolved` | Success |
|
|
161
|
+
| `REVIEW_INCOMPLETE: max iterations reached, N comments remaining` | Hit limit |
|
|
162
|
+
| `REVIEW_SKIPPED: CodeRabbit not responding within timeout` | No review |
|
|
163
|
+
|
|
164
|
+
## Fix Guidelines
|
|
165
|
+
|
|
166
|
+
Read `.claude/commands/code-review.md` for:
|
|
167
|
+
- Auto-fix criteria (typos, imports, formatting)
|
|
168
|
+
- Manual confirmation criteria (logic changes, architecture)
|
|
169
|
+
- Never auto-fix business logic
|
|
170
|
+
|
|
171
|
+
## Error Handling
|
|
172
|
+
|
|
173
|
+
| Error | Response |
|
|
174
|
+
|-------|----------|
|
|
175
|
+
| PR not found | Exit with error |
|
|
176
|
+
| API rate limit | Increase interval, retry |
|
|
177
|
+
| Git push failed | Report and stop |
|
|
178
|
+
| GraphQL error | Fall back to pr view |
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Decompose Work
|
|
3
|
+
---
|
|
4
|
+
|
|
1
5
|
## Decompose Work
|
|
2
6
|
|
|
3
7
|
Break down large work items into manageable, independent issues. Follow project guidelines in `@CLAUDE.md`.
|
|
@@ -65,8 +69,10 @@ Examples (vary by project, for reference only):
|
|
|
65
69
|
- `path/filename` - Change description
|
|
66
70
|
|
|
67
71
|
**Completion criteria**:
|
|
68
|
-
- [ ]
|
|
69
|
-
- [ ]
|
|
72
|
+
- [ ] Implementation complete (all tasks checked)
|
|
73
|
+
- [ ] Execution verified (no runtime errors)
|
|
74
|
+
- [ ] Tests pass (if applicable)
|
|
75
|
+
- [ ] Added to demo page (for UI components, if applicable)
|
|
70
76
|
|
|
71
77
|
**Dependencies**:
|
|
72
78
|
- [ ] None or prerequisite issue #number
|
|
@@ -167,3 +173,19 @@ MCP: none
|
|
|
167
173
|
Skills: ...
|
|
168
174
|
MCP: ...
|
|
169
175
|
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Verification Guidelines
|
|
180
|
+
|
|
181
|
+
이슈 작업 완료 시 반드시 실행 검증 수행:
|
|
182
|
+
|
|
183
|
+
| 작업 유형 | 검증 방법 |
|
|
184
|
+
|-----------|-----------|
|
|
185
|
+
| Python 코드 | `python -m py_compile file.py` + 실제 실행 |
|
|
186
|
+
| TypeScript/JS | `tsc --noEmit` 또는 빌드 |
|
|
187
|
+
| API/서버 | 엔드포인트 호출 테스트 |
|
|
188
|
+
| CLI 도구 | 기본 명령어 실행 |
|
|
189
|
+
| 설정 파일 | 관련 도구로 로드 확인 |
|
|
190
|
+
|
|
191
|
+
**파일만 생성하고 실행 검증 없이 완료 처리 금지**
|
|
@@ -54,16 +54,37 @@ Perform branch cleanup and CLAUDE.md updates after a PR has been merged. Follow
|
|
|
54
54
|
6. **Analyze and Update Configuration Files**
|
|
55
55
|
- Check which configuration files exist:
|
|
56
56
|
- `CLAUDE.md` - Claude Code specific instructions
|
|
57
|
-
- `AGENTS.md` - Cross-tool AI coding agent instructions
|
|
57
|
+
- `AGENTS.md` - Cross-tool AI coding agent instructions
|
|
58
58
|
- `GEMINI.md` - Google Gemini CLI specific instructions
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
59
|
+
- `.claude/rules/*.md` - Modular rule files
|
|
60
|
+
|
|
61
|
+
- **Placement Rules** (applies to all config files):
|
|
62
|
+
|
|
63
|
+
| Content Type | Placement |
|
|
64
|
+
|--------------|-----------|
|
|
65
|
+
| Project-wide constraints | Golden Rules > Immutable |
|
|
66
|
+
| Project-wide recommendations | Golden Rules > Do's |
|
|
67
|
+
| Project-wide prohibitions | Golden Rules > Don'ts |
|
|
68
|
+
| Module-specific rules | Delegate to `.claude/rules/[module].md` |
|
|
69
|
+
| New commands | Commands section |
|
|
70
|
+
| New module references | Modular Rules section |
|
|
71
|
+
|
|
72
|
+
- **Content Removal**:
|
|
73
|
+
- Temporary instructions (e.g., `TODO: remove after #N`)
|
|
74
|
+
- Resolved known issues
|
|
75
|
+
- Workaround descriptions for fixed bugs
|
|
76
|
+
|
|
77
|
+
- **Content Addition**:
|
|
78
|
+
- Module-specific rule -> propose `.claude/rules/[module].md` creation/update
|
|
79
|
+
- Project-wide rule -> add to appropriate Golden Rules subsection
|
|
80
|
+
- New module documented -> add `See @.claude/rules/[module].md` reference
|
|
81
|
+
|
|
82
|
+
- **Modular Rule Files** (.claude/rules/*.md):
|
|
83
|
+
- Check if relevant module file exists
|
|
84
|
+
- Propose path-specific rules with frontmatter: `paths: src/[module]/**/*.py`
|
|
85
|
+
- Follow structure: Role, Key Components, Do's, Don'ts
|
|
86
|
+
- **Always confirm with user before creating new rule files**
|
|
87
|
+
|
|
67
88
|
- Present proposal to user for confirmation before applying
|
|
68
89
|
|
|
69
90
|
7. **Commit Changes (Optional)**
|
|
@@ -75,7 +96,28 @@ Perform branch cleanup and CLAUDE.md updates after a PR has been merged. Follow
|
|
|
75
96
|
|
|
76
97
|
## Configuration File Update Guide
|
|
77
98
|
|
|
78
|
-
The following guidelines apply to CLAUDE.md, AGENTS.md,
|
|
99
|
+
The following guidelines apply to CLAUDE.md, AGENTS.md, GEMINI.md, and `.claude/rules/*.md`:
|
|
100
|
+
|
|
101
|
+
### Expected File Structure
|
|
102
|
+
|
|
103
|
+
**Root Config (CLAUDE.md, AGENTS.md, GEMINI.md)**:
|
|
104
|
+
1. Project Context - Business goal + tech stack (1-2 sentences)
|
|
105
|
+
2. Commands - Package manager and run commands
|
|
106
|
+
3. Golden Rules - Immutable / Do's / Don'ts
|
|
107
|
+
4. Modular Rules - `See @.claude/rules/[module].md` references
|
|
108
|
+
5. Project-Specific - Data locations, tracking, etc.
|
|
109
|
+
|
|
110
|
+
**Modular Rules (.claude/rules/*.md)**:
|
|
111
|
+
```markdown
|
|
112
|
+
---
|
|
113
|
+
paths: src/[module]/**/*.py # Optional: conditional loading
|
|
114
|
+
---
|
|
115
|
+
# [Module] Rules
|
|
116
|
+
Role description (1-2 lines)
|
|
117
|
+
## Key Components
|
|
118
|
+
## Do's
|
|
119
|
+
## Don'ts
|
|
120
|
+
```
|
|
79
121
|
|
|
80
122
|
### Examples of Content to Remove
|
|
81
123
|
- Temporary notes like `TODO: remove after #123 is resolved`
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Full issue resolution pipeline with automated code review
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Resolve and Review
|
|
6
|
+
|
|
7
|
+
Issue 해결부터 CodeRabbit 리뷰 처리까지 자동화된 전체 파이프라인.
|
|
8
|
+
|
|
9
|
+
## Arguments
|
|
10
|
+
|
|
11
|
+
`$ARGUMENTS` = Issue number
|
|
12
|
+
|
|
13
|
+
## Pipeline
|
|
14
|
+
|
|
15
|
+
### Step 1: Issue Resolution
|
|
16
|
+
|
|
17
|
+
Spawn issue-resolver agent (blocking, wait for result):
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Task(subagent_type="issue-resolver"):
|
|
21
|
+
prompt: |
|
|
22
|
+
Resolve GitHub issue #${ARGUMENTS}.
|
|
23
|
+
|
|
24
|
+
Follow the complete workflow in your system prompt.
|
|
25
|
+
End with: PR_CREATED: {number} or PR_FAILED: {reason}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Parse result:
|
|
29
|
+
- Extract PR number from `PR_CREATED: (\d+)`
|
|
30
|
+
- If `PR_FAILED`, report failure and **stop pipeline**
|
|
31
|
+
|
|
32
|
+
### Step 2: Code Review Loop
|
|
33
|
+
|
|
34
|
+
Spawn code-review-handler agent (blocking, wait for result):
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Task(subagent_type="code-review-handler"):
|
|
38
|
+
prompt: |
|
|
39
|
+
Handle CodeRabbit reviews for PR #${PR_NUMBER}.
|
|
40
|
+
|
|
41
|
+
End with: REVIEW_COMPLETE, REVIEW_INCOMPLETE, or REVIEW_SKIPPED
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Step 3: Final Report
|
|
45
|
+
|
|
46
|
+
Report to user:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
## Pipeline Complete
|
|
50
|
+
|
|
51
|
+
- Issue: #${ARGUMENTS}
|
|
52
|
+
- PR: #${PR_NUMBER}
|
|
53
|
+
- Review Status: ${REVIEW_STATUS}
|
|
54
|
+
- PR URL: https://github.com/${REPO}/pull/${PR_NUMBER}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Error Handling
|
|
58
|
+
|
|
59
|
+
| Stage | Error | Action |
|
|
60
|
+
|-------|-------|--------|
|
|
61
|
+
| Step 1 | PR_FAILED | Stop pipeline, report reason |
|
|
62
|
+
| Step 2 | REVIEW_INCOMPLETE | Continue, warn user |
|
|
63
|
+
| Step 2 | REVIEW_SKIPPED | Continue, note no review |
|
|
64
|
+
|
|
65
|
+
## Guidelines
|
|
66
|
+
|
|
67
|
+
- Follow `@CLAUDE.md` project conventions
|
|
68
|
+
- Each agent runs in independent context
|
|
69
|
+
- Use `/tasks` to monitor agent status
|