mirror of
https://github.com/cexll/myclaude.git
synced 2026-02-05 02:30:26 +08:00
remove docs
This commit is contained in:
@@ -1,468 +0,0 @@
|
|||||||
# GitHub Workflow Commands
|
|
||||||
|
|
||||||
Issue-to-PR automation with `codeagent-wrapper` integration.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
Two commands streamline GitHub workflows:
|
|
||||||
- `/gh-create-issue` - Create structured issues through guided dialogue
|
|
||||||
- `/gh-implement` - Implement issues with automated development lifecycle
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Install GitHub CLI
|
|
||||||
brew install gh
|
|
||||||
|
|
||||||
# Authenticate
|
|
||||||
gh auth login
|
|
||||||
|
|
||||||
# Verify
|
|
||||||
gh auth status
|
|
||||||
```
|
|
||||||
|
|
||||||
## Commands
|
|
||||||
|
|
||||||
### /gh-create-issue
|
|
||||||
|
|
||||||
Create structured GitHub issues through multi-round dialogue.
|
|
||||||
|
|
||||||
**Usage:**
|
|
||||||
```bash
|
|
||||||
/gh-create-issue "add user authentication"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Process:**
|
|
||||||
|
|
||||||
1. **Initial Analysis** - Claude analyzes your brief description
|
|
||||||
2. **Clarification Questions** - Interactive Q&A to gather:
|
|
||||||
- Technical requirements
|
|
||||||
- Acceptance criteria
|
|
||||||
- Dependencies
|
|
||||||
- Priority/labels
|
|
||||||
3. **Issue Creation** - Generates structured issue with:
|
|
||||||
- Clear title
|
|
||||||
- Detailed description
|
|
||||||
- Acceptance criteria checklist
|
|
||||||
- Relevant labels
|
|
||||||
- Assignee (optional)
|
|
||||||
|
|
||||||
**Example Session:**
|
|
||||||
|
|
||||||
```
|
|
||||||
User: /gh-create-issue "add dark mode"
|
|
||||||
|
|
||||||
Claude: I'll help create a structured issue for dark mode. Let me gather some details.
|
|
||||||
|
|
||||||
1. Scope: Just theme toggle, or also persist user preference?
|
|
||||||
2. Which components need dark mode support?
|
|
||||||
3. Design system: Using CSS variables or styled-components?
|
|
||||||
|
|
||||||
User:
|
|
||||||
1. Toggle + persist in localStorage
|
|
||||||
2. All components in src/components
|
|
||||||
3. CSS variables
|
|
||||||
|
|
||||||
Claude: Creating issue...
|
|
||||||
|
|
||||||
✅ Issue created: #123 "Implement dark mode with theme persistence"
|
|
||||||
URL: https://github.com/user/repo/issues/123
|
|
||||||
```
|
|
||||||
|
|
||||||
**Generated Issue Format:**
|
|
||||||
|
|
||||||
```markdown
|
|
||||||
# Implement dark mode with theme persistence
|
|
||||||
|
|
||||||
## Description
|
|
||||||
Add dark mode support across all components with user preference persistence.
|
|
||||||
|
|
||||||
## Requirements
|
|
||||||
- [ ] Add theme toggle component
|
|
||||||
- [ ] Implement CSS variables for light/dark themes
|
|
||||||
- [ ] Persist theme preference in localStorage
|
|
||||||
- [ ] Update all components in src/components to support dark mode
|
|
||||||
- [ ] Add theme toggle to app header
|
|
||||||
|
|
||||||
## Acceptance Criteria
|
|
||||||
- [ ] User can toggle between light and dark themes
|
|
||||||
- [ ] Theme preference persists across sessions
|
|
||||||
- [ ] All UI components render correctly in both themes
|
|
||||||
- [ ] No flash of unstyled content on page load
|
|
||||||
|
|
||||||
## Technical Notes
|
|
||||||
- Use CSS custom properties
|
|
||||||
- Store preference as `theme: 'light' | 'dark'` in localStorage
|
|
||||||
- Add `data-theme` attribute to root element
|
|
||||||
|
|
||||||
Labels: enhancement, ui
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### /gh-implement
|
|
||||||
|
|
||||||
Implement GitHub issue with full development lifecycle.
|
|
||||||
|
|
||||||
**Usage:**
|
|
||||||
```bash
|
|
||||||
/gh-implement 123
|
|
||||||
```
|
|
||||||
|
|
||||||
**Phases:**
|
|
||||||
|
|
||||||
#### Phase 1: Issue Analysis
|
|
||||||
```bash
|
|
||||||
# Fetches issue details
|
|
||||||
gh issue view 123 --json title,body,labels,comments
|
|
||||||
|
|
||||||
# Parses:
|
|
||||||
- Requirements
|
|
||||||
- Acceptance criteria
|
|
||||||
- Technical constraints
|
|
||||||
- Related discussions
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Phase 2: Clarification (if needed)
|
|
||||||
Claude asks questions about:
|
|
||||||
- Implementation approach
|
|
||||||
- Architecture decisions
|
|
||||||
- Testing strategy
|
|
||||||
- Edge cases
|
|
||||||
|
|
||||||
#### Phase 3: Development
|
|
||||||
|
|
||||||
**Option A: Simple scope** - Direct `codeagent-wrapper` call:
|
|
||||||
```bash
|
|
||||||
codeagent-wrapper --backend codex - <<'EOF'
|
|
||||||
Implement dark mode toggle based on issue #123:
|
|
||||||
- Add ThemeToggle component
|
|
||||||
- Implement CSS variables
|
|
||||||
- Add localStorage persistence
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
**Option B: Complex scope** - Use `/dev` workflow:
|
|
||||||
```bash
|
|
||||||
/dev "implement issue #123: dark mode with theme persistence"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Coverage requirement:** ≥90% test coverage enforced
|
|
||||||
|
|
||||||
#### Phase 4: Progress Updates
|
|
||||||
```bash
|
|
||||||
# After each milestone
|
|
||||||
gh issue comment 123 --body "✅ Completed: ThemeToggle component"
|
|
||||||
gh issue comment 123 --body "✅ Completed: CSS variables setup"
|
|
||||||
gh issue comment 123 --body "✅ Completed: localStorage persistence"
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Phase 5: PR Creation
|
|
||||||
```bash
|
|
||||||
gh pr create \
|
|
||||||
--title "[#123] Implement dark mode with theme persistence" \
|
|
||||||
--body "Closes #123
|
|
||||||
|
|
||||||
## Changes
|
|
||||||
- Added ThemeToggle component
|
|
||||||
- Implemented light/dark CSS variables
|
|
||||||
- Added localStorage persistence
|
|
||||||
- Updated all components for theme support
|
|
||||||
|
|
||||||
## Testing
|
|
||||||
- Unit tests: ThemeToggle, theme utilities
|
|
||||||
- Integration tests: theme persistence across page loads
|
|
||||||
- Coverage: 92%"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Output:**
|
|
||||||
```
|
|
||||||
✅ PR created: #124
|
|
||||||
URL: https://github.com/user/repo/pull/124
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
### Example 1: Bug Fix
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Create issue
|
|
||||||
/gh-create-issue "login form doesn't validate email"
|
|
||||||
|
|
||||||
# Implement
|
|
||||||
/gh-implement 125
|
|
||||||
```
|
|
||||||
|
|
||||||
**Process:**
|
|
||||||
1. Analysis: Parse bug report, identify validation logic
|
|
||||||
2. Clarification: Confirm expected validation rules
|
|
||||||
3. Development: Fix validation, add tests
|
|
||||||
4. Updates: Comment with fix details
|
|
||||||
5. PR: Link to issue, show test coverage
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Example 2: Feature Development
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Create issue
|
|
||||||
/gh-create-issue "add export to CSV feature"
|
|
||||||
|
|
||||||
# Implement
|
|
||||||
/gh-implement 126
|
|
||||||
```
|
|
||||||
|
|
||||||
**Process:**
|
|
||||||
1. Analysis: Understand data structure, export requirements
|
|
||||||
2. Clarification: Which data fields? File naming? Encoding?
|
|
||||||
3. Development:
|
|
||||||
- Backend: CSV generation endpoint
|
|
||||||
- Frontend: Export button + download handler
|
|
||||||
- Tests: Unit + integration
|
|
||||||
4. Updates: Milestone comments (backend done, frontend done, tests done)
|
|
||||||
5. PR: Full feature description with screenshots
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Example 3: Refactoring
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Create issue
|
|
||||||
/gh-create-issue "refactor authentication module"
|
|
||||||
|
|
||||||
# Implement
|
|
||||||
/gh-implement 127
|
|
||||||
```
|
|
||||||
|
|
||||||
**Process:**
|
|
||||||
1. Analysis: Review current auth code, identify issues
|
|
||||||
2. Clarification: Scope (just refactor vs add features)?
|
|
||||||
3. Development:
|
|
||||||
- Modularize auth logic
|
|
||||||
- Extract reusable utilities
|
|
||||||
- Add missing tests
|
|
||||||
- Update documentation
|
|
||||||
4. Updates: Component-by-component progress
|
|
||||||
5. PR: Before/after comparison, test coverage improvement
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Workflow Integration
|
|
||||||
|
|
||||||
### With /dev Workflow
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Create issue first
|
|
||||||
/gh-create-issue "implement real-time notifications"
|
|
||||||
|
|
||||||
# Then implement with /dev
|
|
||||||
/gh-implement 128
|
|
||||||
|
|
||||||
# Claude will:
|
|
||||||
# 1. Analyze issue #128
|
|
||||||
# 2. Trigger /dev workflow internally
|
|
||||||
# 3. Execute with 90% coverage requirement
|
|
||||||
# 4. Post progress updates
|
|
||||||
# 5. Create PR
|
|
||||||
```
|
|
||||||
|
|
||||||
### With Parallel Tasks
|
|
||||||
|
|
||||||
For complex features, `/gh-implement` may use parallel execution:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Internally executes:
|
|
||||||
codeagent-wrapper --parallel <<'EOF'
|
|
||||||
---TASK---
|
|
||||||
id: backend_notifications
|
|
||||||
workdir: /project/backend
|
|
||||||
---CONTENT---
|
|
||||||
implement notifications API with WebSocket
|
|
||||||
|
|
||||||
---TASK---
|
|
||||||
id: frontend_notifications
|
|
||||||
workdir: /project/frontend
|
|
||||||
dependencies: backend_notifications
|
|
||||||
---CONTENT---
|
|
||||||
build Notifications UI component
|
|
||||||
|
|
||||||
---TASK---
|
|
||||||
id: tests_notifications
|
|
||||||
workdir: /project
|
|
||||||
dependencies: backend_notifications, frontend_notifications
|
|
||||||
---CONTENT---
|
|
||||||
add E2E tests for notification flow
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
### Issue Templates
|
|
||||||
|
|
||||||
Create `.github/ISSUE_TEMPLATE/feature.md`:
|
|
||||||
|
|
||||||
```markdown
|
|
||||||
---
|
|
||||||
name: Feature Request
|
|
||||||
about: Suggest a new feature
|
|
||||||
labels: enhancement
|
|
||||||
---
|
|
||||||
|
|
||||||
## Description
|
|
||||||
<!-- Clear description of the feature -->
|
|
||||||
|
|
||||||
## Requirements
|
|
||||||
<!-- Specific requirements -->
|
|
||||||
|
|
||||||
## Acceptance Criteria
|
|
||||||
<!-- Checklist of criteria -->
|
|
||||||
```
|
|
||||||
|
|
||||||
### PR Templates
|
|
||||||
|
|
||||||
Create `.github/PULL_REQUEST_TEMPLATE.md`:
|
|
||||||
|
|
||||||
```markdown
|
|
||||||
## Related Issue
|
|
||||||
Closes #
|
|
||||||
|
|
||||||
## Changes
|
|
||||||
<!-- List of changes -->
|
|
||||||
|
|
||||||
## Testing
|
|
||||||
<!-- Test coverage and manual testing -->
|
|
||||||
|
|
||||||
## Screenshots (if applicable)
|
|
||||||
<!-- Before/after screenshots -->
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Best Practices
|
|
||||||
|
|
||||||
1. **Clear issue descriptions** - More context = better implementation
|
|
||||||
2. **Incremental commits** - Easier to review and rollback
|
|
||||||
3. **Test-driven** - Write tests before/during implementation
|
|
||||||
4. **Milestone updates** - Keep issue comments up-to-date
|
|
||||||
5. **Detailed PRs** - Explain why, not just what
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
**Issue not found:**
|
|
||||||
```bash
|
|
||||||
# Verify issue exists
|
|
||||||
gh issue view 123
|
|
||||||
|
|
||||||
# Check repository
|
|
||||||
gh repo view
|
|
||||||
```
|
|
||||||
|
|
||||||
**PR creation failed:**
|
|
||||||
```bash
|
|
||||||
# Ensure branch is pushed
|
|
||||||
git push -u origin feature-branch
|
|
||||||
|
|
||||||
# Check if PR already exists
|
|
||||||
gh pr list --head feature-branch
|
|
||||||
```
|
|
||||||
|
|
||||||
**Authentication error:**
|
|
||||||
```bash
|
|
||||||
# Re-authenticate
|
|
||||||
gh auth login
|
|
||||||
|
|
||||||
# Check token scopes
|
|
||||||
gh auth status
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Advanced Usage
|
|
||||||
|
|
||||||
### Custom Labels
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Add labels during issue creation
|
|
||||||
gh issue create \
|
|
||||||
--title "Feature: dark mode" \
|
|
||||||
--body "..." \
|
|
||||||
--label "enhancement,ui,priority:high"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Multiple Assignees
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Assign to team members
|
|
||||||
gh issue create \
|
|
||||||
--title "..." \
|
|
||||||
--assignee @user1,@user2
|
|
||||||
```
|
|
||||||
|
|
||||||
### Milestone Assignment
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Add to milestone
|
|
||||||
gh issue create \
|
|
||||||
--title "..." \
|
|
||||||
--milestone "v2.0"
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Integration with CI/CD
|
|
||||||
|
|
||||||
### Auto-close on merge
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# .github/workflows/pr-merge.yml
|
|
||||||
name: Close Issues on PR Merge
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
types: [closed]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
close-issues:
|
|
||||||
if: github.event.pull_request.merged == true
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Close linked issues
|
|
||||||
run: gh issue close ${{ github.event.pull_request.number }}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Coverage Check
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# .github/workflows/coverage.yml
|
|
||||||
name: Coverage Check
|
|
||||||
on: [pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
coverage:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Run tests with coverage
|
|
||||||
run: go test -coverprofile=coverage.out ./...
|
|
||||||
- name: Check coverage threshold
|
|
||||||
run: |
|
|
||||||
coverage=$(go tool cover -func=coverage.out | grep total | awk '{print $3}' | sed 's/%//')
|
|
||||||
if (( $(echo "$coverage < 90" | bc -l) )); then
|
|
||||||
echo "Coverage $coverage% is below 90% threshold"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Further Reading
|
|
||||||
|
|
||||||
- [GitHub CLI Manual](https://cli.github.com/manual/)
|
|
||||||
- [Codeagent-Wrapper Guide](./CODEAGENT-WRAPPER.md)
|
|
||||||
- [Hooks Documentation](./HOOKS.md)
|
|
||||||
- [Development Workflow](../README.md)
|
|
||||||
Reference in New Issue
Block a user