mirror of
https://github.com/cexll/myclaude.git
synced 2026-02-05 02:30:26 +08:00
## Overview Complete implementation of enterprise-level workflow features including multi-backend execution (Codex/Claude/Gemini), GitHub issue-to-PR automation, hooks system, and comprehensive documentation. ## Major Changes ### 1. Multi-Backend Support (codeagent-wrapper) - Renamed codex-wrapper → codeagent-wrapper - Backend interface with Codex/Claude/Gemini implementations - Multi-format JSON stream parser (auto-detects backend) - CLI flag: --backend codex|claude|gemini (default: codex) - Test coverage: 89.2% **Files:** - codeagent-wrapper/backend.go - Backend interface - codeagent-wrapper/parser.go - Multi-format parser - codeagent-wrapper/config.go - CLI parsing with backend selection - codeagent-wrapper/executor.go - Process execution - codeagent-wrapper/logger.go - Async logging - codeagent-wrapper/utils.go - Utilities ### 2. GitHub Workflow Commands - /gh-create-issue - Create structured issues via guided dialogue - /gh-implement - Issue-to-PR automation with full dev lifecycle **Files:** - github-workflow/commands/gh-create-issue.md - github-workflow/commands/gh-implement.md - skills/codeagent/SKILL.md ### 3. Hooks System - UserPromptSubmit hook for skill activation - Pre-commit example with code quality checks - merge_json operation in install.py for settings.json merging **Files:** - hooks/skill-activation-prompt.sh|.js - hooks/pre-commit.sh - hooks/hooks-config.json - hooks/test-skill-activation.sh ### 4. Skills System - skill-rules.json for auto-activation - codeagent skill for multi-backend wrapper **Files:** - skills/skill-rules.json - skills/codeagent/SKILL.md - skills/codex/SKILL.md (updated) ### 5. Installation System - install.py: Added merge_json operation - config.json: Added "gh" module - config.schema.json: Added op_merge_json schema ### 6. CI/CD - GitHub Actions workflow for testing and building **Files:** - .github/workflows/ci.yml ### 7. Comprehensive Documentation - Architecture overview with ASCII diagrams - Codeagent-wrapper complete usage guide - GitHub workflow detailed examples - Hooks customization guide **Files:** - docs/architecture.md (21KB) - docs/CODEAGENT-WRAPPER.md (9KB) - docs/GITHUB-WORKFLOW.md (9KB) - docs/HOOKS.md (4KB) - docs/enterprise-workflow-ideas.md - README.md (updated with doc links) ## Test Results - All tests passing ✅ - Coverage: 89.2% - Security scan: 0 issues (gosec) ## Breaking Changes - codex-wrapper renamed to codeagent-wrapper - Default backend: codex (documented in README) ## Migration Guide Users with codex-wrapper installed should: 1. Run: python3 install.py --module dev --force 2. Update shell aliases if any 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
469 lines
9.3 KiB
Markdown
469 lines
9.3 KiB
Markdown
# 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)
|