mirror of
https://github.com/alirezarezvani/ClaudeForge.git
synced 2026-07-03 18:33:16 -04:00
feat(commands): add GitHub workflow integration slash commands
Phase 4: Claude Code Slash Commands Created 4 GitHub Integration Commands: 1. /github-init - CI/CD system initialization - Runs bootstrap workflow - Creates dev branch - Configures branch protection - Sets default branch to dev - Complete setup verification 2. /commit-smart - Smart commits with quality gates - Pre-commit validation (Python, Bash, secrets) - Conventional Commits format generation - Interactive commit message builder - Quality checks before committing 3. /create-pr - Pull request creation - Branch validation - Target branch detection (dev/main) - PR title generation (Conventional Commits) - PR template population - Workflow trigger explanation 4. /release - GitHub release creation - Version validation (semantic versioning) - CHANGELOG.md integration - Automated release notes - Post-release actions guide All commands provide: - Step-by-step guidance - Copy-paste ready commands - Validation checks - Error handling - Links to documentation Integration with workflows: - Commands trigger bootstrap, pr-into-dev, dev-to-main, release workflows - Enforces quality gates and conventions - Aligns with branching strategy Next: Test workflows with sample feature PR
This commit is contained in:
@@ -0,0 +1,221 @@
|
||||
---
|
||||
title: /release
|
||||
description: Create GitHub release with automated notes
|
||||
---
|
||||
|
||||
# Create GitHub Release
|
||||
|
||||
You are helping the user create a GitHub release for ClaudeForge.
|
||||
|
||||
## Prerequisites Check
|
||||
|
||||
1. **Verify on main branch**
|
||||
```bash
|
||||
git branch --show-current
|
||||
```
|
||||
- Should be `main`
|
||||
- If not, `git checkout main && git pull`
|
||||
|
||||
2. **Check for uncommitted changes**
|
||||
```bash
|
||||
git status
|
||||
```
|
||||
- Should be clean
|
||||
|
||||
3. **Verify CHANGELOG.md updated**
|
||||
```bash
|
||||
grep -A 10 "## \[" CHANGELOG.md | head -15
|
||||
```
|
||||
- Should have entry for new version
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Determine Version**
|
||||
- Ask user for version number
|
||||
- Validate semantic versioning format (X.Y.Z)
|
||||
- Examples: 1.1.0, 1.0.1, 2.0.0-beta.1
|
||||
|
||||
2. **Check Tag Doesn't Exist**
|
||||
```bash
|
||||
git tag -l "v1.1.0"
|
||||
```
|
||||
- Should return nothing
|
||||
- If tag exists, ask user to choose different version
|
||||
|
||||
3. **Verify CHANGELOG.md**
|
||||
- Check if version is documented
|
||||
- Extract release notes for this version
|
||||
- Show preview to user
|
||||
|
||||
4. **Run Release Workflow**
|
||||
|
||||
**Option 1: Via GitHub CLI**
|
||||
```bash
|
||||
gh workflow run release.yml \
|
||||
-f version=1.1.0 \
|
||||
-f prerelease=false \
|
||||
-f draft=false
|
||||
```
|
||||
|
||||
**Option 2: Via GitHub UI**
|
||||
- Go to Actions → Create Release
|
||||
- Click "Run workflow"
|
||||
- Enter version: 1.1.0
|
||||
- Select options (prerelease, draft)
|
||||
- Click "Run workflow"
|
||||
|
||||
5. **Monitor Workflow**
|
||||
```bash
|
||||
gh run list --workflow=release.yml --limit 1
|
||||
gh run watch
|
||||
```
|
||||
|
||||
6. **Verify Release Created**
|
||||
```bash
|
||||
gh release list
|
||||
gh release view v1.1.0
|
||||
```
|
||||
|
||||
## Release Types
|
||||
|
||||
**Stable Release:**
|
||||
- Version: X.Y.Z (e.g., 1.1.0)
|
||||
- Prerelease: false
|
||||
- Draft: false
|
||||
- Published immediately
|
||||
|
||||
**Pre-Release:**
|
||||
- Version: X.Y.Z-beta.N (e.g., 1.2.0-beta.1)
|
||||
- Prerelease: true
|
||||
- Draft: false
|
||||
- Marked as pre-release on GitHub
|
||||
|
||||
**Draft Release:**
|
||||
- Version: X.Y.Z
|
||||
- Draft: true
|
||||
- Not published until manually approved
|
||||
|
||||
## Release Notes Generation
|
||||
|
||||
The release workflow automatically:
|
||||
1. Extracts notes from CHANGELOG.md
|
||||
2. Adds installation instructions
|
||||
3. Lists commits since last release
|
||||
4. Includes full changelog link
|
||||
|
||||
**Example output:**
|
||||
```markdown
|
||||
Release v1.1.0
|
||||
|
||||
[Content from CHANGELOG.md]
|
||||
|
||||
---
|
||||
|
||||
## 📦 Installation
|
||||
|
||||
### One-Line Install
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/alirezarezvani/ClaudeForge/main/install.sh | bash
|
||||
```
|
||||
|
||||
## 📝 Commits
|
||||
- feat(skill): add Rust template (a1b2c3d)
|
||||
- fix(installer): Windows path fix (e4f5g6h)
|
||||
|
||||
**Full Changelog**: https://github.com/alirezarezvani/ClaudeForge/blob/main/CHANGELOG.md
|
||||
```
|
||||
|
||||
## Post-Release Actions
|
||||
|
||||
After release is created:
|
||||
|
||||
1. **Verify on GitHub**
|
||||
- Go to Releases page
|
||||
- Check release notes are correct
|
||||
- Test one-line installation command
|
||||
|
||||
2. **Update References** (if needed)
|
||||
- install.sh version reference
|
||||
- install.ps1 version reference
|
||||
- README.md version badge
|
||||
|
||||
3. **Announce Release**
|
||||
- Create Discussion post
|
||||
- Share on social media
|
||||
- Update documentation site
|
||||
|
||||
4. **Sync Dev Branch** (recommended)
|
||||
```bash
|
||||
git checkout dev
|
||||
git merge main
|
||||
git push origin dev
|
||||
```
|
||||
|
||||
## Example: Creating v1.1.0 Release
|
||||
|
||||
```bash
|
||||
# 1. Ensure on main and up to date
|
||||
git checkout main
|
||||
git pull origin main
|
||||
|
||||
# 2. Verify CHANGELOG.md
|
||||
cat CHANGELOG.md | grep -A 20 "\[1.1.0\]"
|
||||
|
||||
# 3. Run release workflow
|
||||
gh workflow run release.yml \
|
||||
-f version=1.1.0 \
|
||||
-f prerelease=false \
|
||||
-f draft=false
|
||||
|
||||
# 4. Monitor workflow
|
||||
gh run watch
|
||||
|
||||
# 5. Verify release
|
||||
gh release view v1.1.0
|
||||
|
||||
# 6. Test installation
|
||||
curl -fsSL https://raw.githubusercontent.com/alirezarezvani/ClaudeForge/v1.1.0/install.sh | bash
|
||||
|
||||
# 7. Sync dev
|
||||
git checkout dev
|
||||
git merge main
|
||||
git push origin dev
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**"Tag already exists":**
|
||||
- Check existing tags: `git tag -l`
|
||||
- Either delete old tag or use different version
|
||||
|
||||
**"Version not in CHANGELOG":**
|
||||
- Edit CHANGELOG.md
|
||||
- Add section for new version
|
||||
- Commit and push to main
|
||||
|
||||
**"Workflow failed":**
|
||||
- Check workflow logs: `gh run view`
|
||||
- Common issues:
|
||||
- Invalid version format
|
||||
- Tag conflicts
|
||||
- Missing CHANGELOG entry
|
||||
|
||||
## Validation
|
||||
|
||||
Before creating release, ensure:
|
||||
- ✅ On main branch, clean working tree
|
||||
- ✅ CHANGELOG.md has entry for version
|
||||
- ✅ All tests passing on main
|
||||
- ✅ PR from dev to main was merged
|
||||
- ✅ Version number follows semantic versioning
|
||||
- ✅ Tag v<version> doesn't already exist
|
||||
|
||||
## Success Criteria
|
||||
|
||||
✅ GitHub release created with auto-generated notes
|
||||
✅ Git tag created (v1.1.0)
|
||||
✅ Release appears on Releases page
|
||||
✅ Installation command works
|
||||
✅ Dev branch synced with main
|
||||
|
||||
Guide user through the process with clear steps and commands they can copy-paste.
|
||||
Reference in New Issue
Block a user