feat(commands): add git workflow and quality gate slash commands
Implemented complete slash command system adapted from claude-code-skills-factory for streamlined git workflow and quality assurance in claude-skills repository. ## New Slash Commands ### Git Workflow (3 commands) - **git/cm.md** (/git:cm): Stage and commit (no push) - **git/cp.md** (/git:cp): Stage, commit, and push with quality checks - **git/pr.md** (/git:pr): Create pull request from current branch ### Quality Gates (2 commands) - **review.md** (/review): Local quality checks (YAML lint, schema validation, Python syntax, markdown links) - **security-scan.md** (/security-scan): Security validation (Gitleaks, Safety audit) ### Documentation - **README.md**: Complete command reference with usage examples and workflows ## Key Features ✅ Step-by-step instructions for each command ✅ Safety checks (secrets detection, credential scanning) ✅ Conventional Commit format enforcement ✅ Integration with CI workflows (ci-quality-gate.yml) ✅ Quality gate enforcement before push ## Adaptations from Factory Project - Updated directory paths for claude-skills structure - Configured for repository-specific workflows - Simplified for skills library workflow - Removed factory-specific commands (build, validate-output, etc.) - Kept essential git and quality commands only ## Usage Commands available in Claude Code CLI: - /git:cm - Commit without pushing - /git:cp - Complete git workflow - /git:pr - Create pull request - /review - Run quality checks - /security-scan - Run security validation ## Integration Commands integrate with GitHub automation: - /git:cp triggers ci-quality-gate workflow - /git:pr triggers claude-code-review workflow - Merged PRs trigger pr-issue-auto-close workflow See .claude/commands/README.md for complete documentation.
This commit is contained in:
349
.claude/commands/README.md
Normal file
349
.claude/commands/README.md
Normal file
@@ -0,0 +1,349 @@
|
|||||||
|
# Claude Skills Slash Commands
|
||||||
|
|
||||||
|
**Git workflow and quality assurance commands for the claude-skills repository.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 Essential Commands
|
||||||
|
|
||||||
|
### Git Workflow
|
||||||
|
|
||||||
|
```
|
||||||
|
/git:cm → Stage and commit (no push)
|
||||||
|
/git:cp → Stage, commit, and push
|
||||||
|
/git:pr → Create pull request
|
||||||
|
```
|
||||||
|
|
||||||
|
### Quality Gates
|
||||||
|
|
||||||
|
```
|
||||||
|
/review → Run local quality checks
|
||||||
|
/security-scan → Run security validation
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 Git Commands
|
||||||
|
|
||||||
|
### /git:cm - Commit (No Push)
|
||||||
|
|
||||||
|
**Purpose**: Stage changes and create a conventional commit without pushing
|
||||||
|
|
||||||
|
**Usage**:
|
||||||
|
```
|
||||||
|
/git:cm
|
||||||
|
```
|
||||||
|
|
||||||
|
**What it does**:
|
||||||
|
1. Shows `git status --short`
|
||||||
|
2. Reviews each file diff for secrets
|
||||||
|
3. Stages files intentionally
|
||||||
|
4. Generates conventional commit message
|
||||||
|
5. Creates commit (no push)
|
||||||
|
|
||||||
|
**When to use**: When you want to commit locally before pushing
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### /git:cp - Commit and Push
|
||||||
|
|
||||||
|
**Purpose**: Complete git workflow with quality checks
|
||||||
|
|
||||||
|
**Usage**:
|
||||||
|
```
|
||||||
|
/git:cp
|
||||||
|
```
|
||||||
|
|
||||||
|
**What it does**:
|
||||||
|
1. Runs `/review` for quality checks
|
||||||
|
2. Stages changes
|
||||||
|
3. Creates conventional commit
|
||||||
|
4. Pushes to origin
|
||||||
|
5. Triggers CI workflows
|
||||||
|
|
||||||
|
**When to use**: When ready to publish changes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### /git:pr - Create Pull Request
|
||||||
|
|
||||||
|
**Purpose**: Create a PR from current branch
|
||||||
|
|
||||||
|
**Usage**:
|
||||||
|
```
|
||||||
|
/git:pr # PR to main
|
||||||
|
/git:pr dev # PR to dev branch
|
||||||
|
```
|
||||||
|
|
||||||
|
**What it does**:
|
||||||
|
1. Verifies quality checks passed
|
||||||
|
2. Creates PR using template
|
||||||
|
3. Adds appropriate labels
|
||||||
|
4. Shares PR link
|
||||||
|
|
||||||
|
**When to use**: After pushing changes and ready for review
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔒 Quality Commands
|
||||||
|
|
||||||
|
### /review - Local Quality Gate
|
||||||
|
|
||||||
|
**Purpose**: Run all quality checks before pushing
|
||||||
|
|
||||||
|
**Usage**:
|
||||||
|
```
|
||||||
|
/review
|
||||||
|
```
|
||||||
|
|
||||||
|
**What it checks**:
|
||||||
|
- ✅ YAML linting (workflows)
|
||||||
|
- ✅ GitHub workflow schema validation
|
||||||
|
- ✅ Python syntax (all skill directories)
|
||||||
|
- ✅ Markdown link validation
|
||||||
|
- ✅ Dependency security audit (optional)
|
||||||
|
|
||||||
|
**When to use**: Before committing/pushing changes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### /security-scan - Security Validation
|
||||||
|
|
||||||
|
**Purpose**: Scan for security issues
|
||||||
|
|
||||||
|
**Usage**:
|
||||||
|
```
|
||||||
|
/security-scan
|
||||||
|
```
|
||||||
|
|
||||||
|
**What it checks**:
|
||||||
|
- 🔍 Gitleaks (committed secrets detection)
|
||||||
|
- 🔍 Safety (Python dependency vulnerabilities)
|
||||||
|
|
||||||
|
**When to use**: Before pushing, especially with new dependencies
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔄 Complete Workflow
|
||||||
|
|
||||||
|
### Standard Feature Development
|
||||||
|
|
||||||
|
```
|
||||||
|
# 1. Make changes to skills
|
||||||
|
[Edit files in marketing-skill/, product-team/, etc.]
|
||||||
|
|
||||||
|
# 2. Run quality checks
|
||||||
|
/review
|
||||||
|
|
||||||
|
# 3. Run security scan
|
||||||
|
/security-scan
|
||||||
|
|
||||||
|
# 4. Commit and push
|
||||||
|
/git:cp
|
||||||
|
|
||||||
|
# 5. Create pull request
|
||||||
|
/git:pr
|
||||||
|
|
||||||
|
# 6. Wait for:
|
||||||
|
- ✅ Claude Code Review comment
|
||||||
|
- ✅ CI Quality Gate passing
|
||||||
|
- ✅ Human approval
|
||||||
|
|
||||||
|
# 7. Merge PR
|
||||||
|
- Issue auto-closes (if linked)
|
||||||
|
- Project board updates
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Quick Reference
|
||||||
|
|
||||||
|
| Command | Stage | Commit | Push | Quality Check | Create PR |
|
||||||
|
|---------|-------|--------|------|---------------|-----------|
|
||||||
|
| **/git:cm** | ✅ | ✅ | ❌ | ❌ | ❌ |
|
||||||
|
| **/git:cp** | ✅ | ✅ | ✅ | ✅ | ❌ |
|
||||||
|
| **/git:pr** | ❌ | ❌ | ❌ | Verify | ✅ |
|
||||||
|
| **/review** | ❌ | ❌ | ❌ | ✅ | ❌ |
|
||||||
|
| **/security-scan** | ❌ | ❌ | ❌ | ✅ | ❌ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 Commit Message Format
|
||||||
|
|
||||||
|
All commits follow **Conventional Commits**:
|
||||||
|
|
||||||
|
```
|
||||||
|
<type>(<scope>): <subject>
|
||||||
|
|
||||||
|
## Context
|
||||||
|
- Why this change was needed
|
||||||
|
- What problem it solves
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
- [ ] All Python scripts tested
|
||||||
|
- [ ] Skills validated with Claude
|
||||||
|
- [ ] /review passed
|
||||||
|
- [ ] /security-scan passed
|
||||||
|
|
||||||
|
## Reviewers
|
||||||
|
- [ ] @username
|
||||||
|
```
|
||||||
|
|
||||||
|
**Types**: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, `revert`
|
||||||
|
|
||||||
|
**Scopes**: `marketing-skill`, `product-team`, `c-level-advisor`, `engineering-team`, `ra-qm-team`, `workflows`, `docs`, `ci`
|
||||||
|
|
||||||
|
**Examples**:
|
||||||
|
```
|
||||||
|
feat(marketing-skill): add LinkedIn content framework
|
||||||
|
fix(product-team): correct RICE prioritization calculation
|
||||||
|
docs(README): update skill installation instructions
|
||||||
|
ci(workflows): add auto-close issues on PR merge
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 Use Cases
|
||||||
|
|
||||||
|
### Quick Fix
|
||||||
|
|
||||||
|
```
|
||||||
|
# Fix typo in skill
|
||||||
|
[Edit file]
|
||||||
|
/review # Quick check
|
||||||
|
/git:cp # Commit + push
|
||||||
|
```
|
||||||
|
|
||||||
|
### New Skill Addition
|
||||||
|
|
||||||
|
```
|
||||||
|
# Create new skill
|
||||||
|
[Create skill directory and files]
|
||||||
|
/review # Validate structure
|
||||||
|
/security-scan # Check for issues
|
||||||
|
/git:cm # Commit locally
|
||||||
|
[Test skill activation]
|
||||||
|
/git:cp # Push when ready
|
||||||
|
/git:pr # Create PR for review
|
||||||
|
```
|
||||||
|
|
||||||
|
### Major Feature with Multiple Skills
|
||||||
|
|
||||||
|
```
|
||||||
|
# Work on branch
|
||||||
|
git checkout -b feature/enterprise-skills
|
||||||
|
|
||||||
|
# Add multiple skills
|
||||||
|
[Create skill 1]
|
||||||
|
/git:cm
|
||||||
|
|
||||||
|
[Create skill 2]
|
||||||
|
/git:cm
|
||||||
|
|
||||||
|
[Create skill 3]
|
||||||
|
/git:cm
|
||||||
|
|
||||||
|
# Final quality check
|
||||||
|
/review
|
||||||
|
/security-scan
|
||||||
|
|
||||||
|
# Push and create PR
|
||||||
|
git push origin feature/enterprise-skills
|
||||||
|
/git:pr
|
||||||
|
|
||||||
|
# Or use /git:cp if you want to push single commit
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚨 Emergency Bypass
|
||||||
|
|
||||||
|
### Skip Reviews (Emergency Only)
|
||||||
|
|
||||||
|
If you need to bypass checks:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Method 1: Use --no-verify flag
|
||||||
|
git push --no-verify
|
||||||
|
|
||||||
|
# Method 2: PR title bypass
|
||||||
|
[EMERGENCY] Fix critical bug
|
||||||
|
|
||||||
|
# Method 3: PR label
|
||||||
|
Add label: emergency, skip-review, or hotfix
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note**: These bypass automated reviews but manual review is still recommended.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📖 Integration with Automation
|
||||||
|
|
||||||
|
These commands work seamlessly with the GitHub automation:
|
||||||
|
|
||||||
|
**After running `/git:cp`**:
|
||||||
|
- Triggers CI Quality Gate workflow
|
||||||
|
- Shows results in GitHub Actions
|
||||||
|
|
||||||
|
**After running `/git:pr`**:
|
||||||
|
- Triggers Claude Code Review
|
||||||
|
- Runs CI Quality Gate
|
||||||
|
- Updates project board status
|
||||||
|
|
||||||
|
**After merging PR**:
|
||||||
|
- Auto-closes linked issues
|
||||||
|
- Updates project board to "Done"
|
||||||
|
- Posts completion comments
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Related Documentation
|
||||||
|
|
||||||
|
- **Automation Setup**: `.github/AUTOMATION_SETUP.md`
|
||||||
|
- **PR Template**: `.github/pull_request_template.md`
|
||||||
|
- **Commit Template**: `.github/commit-template.txt`
|
||||||
|
- **Workflow Guide**: See factory project for detailed reference
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📍 Command Locations
|
||||||
|
|
||||||
|
```
|
||||||
|
.claude/commands/
|
||||||
|
├── git/
|
||||||
|
│ ├── cm.md # Commit (no push)
|
||||||
|
│ ├── cp.md # Commit and push
|
||||||
|
│ └── pr.md # Create PR
|
||||||
|
├── review.md # Quality checks
|
||||||
|
├── security-scan.md # Security validation
|
||||||
|
└── README.md # This file
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Tips
|
||||||
|
|
||||||
|
**Before committing**:
|
||||||
|
- ✅ Run `/review` to catch issues early
|
||||||
|
- ✅ Run `/security-scan` if adding dependencies
|
||||||
|
- ✅ Test skills with Claude before pushing
|
||||||
|
|
||||||
|
**When creating PRs**:
|
||||||
|
- ✅ Link related issues (`Fixes #123`)
|
||||||
|
- ✅ Fill out PR template completely
|
||||||
|
- ✅ Add appropriate labels
|
||||||
|
- ✅ Request specific reviewers
|
||||||
|
|
||||||
|
**For quality**:
|
||||||
|
- ✅ Keep commits focused and atomic
|
||||||
|
- ✅ Write clear, descriptive commit messages
|
||||||
|
- ✅ Follow conventional commit format
|
||||||
|
- ✅ Update documentation with changes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Last Updated**: 2025-11-04
|
||||||
|
**Version**: 1.0.0
|
||||||
|
**Status**: ✅ Ready to use
|
||||||
|
|
||||||
|
**Streamline your Git workflow with simple commands!** 🚀
|
||||||
14
.claude/commands/git/cm.md
Normal file
14
.claude/commands/git/cm.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
description: Stage working tree changes and create a Conventional Commit (no push).
|
||||||
|
---
|
||||||
|
|
||||||
|
1. Run `git status --short` to review pending changes.
|
||||||
|
2. For each file, open a diff (`git diff -- path/to/file`) and ensure no secrets or credentials are present.
|
||||||
|
3. Stage the files intentionally (`git add path/to/file`). Avoid `git add .` unless every change was reviewed.
|
||||||
|
4. Generate a Conventional Commit message (types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert).
|
||||||
|
- Commit subject ≤ 72 chars.
|
||||||
|
- Scope uses kebab-case (e.g., `feat(marketing-skill): ...`).
|
||||||
|
- Use `.github/commit-template.txt` for Context / Testing / Reviewers sections.
|
||||||
|
5. Run `git commit` and paste the generated message + context from the template.
|
||||||
|
6. Show the resulting commit (`git log -1 --stat`) and keep the commit hash handy.
|
||||||
|
7. **Do not push** in this command. Use `git/cp.md` when you're ready to publish.
|
||||||
14
.claude/commands/git/cp.md
Normal file
14
.claude/commands/git/cp.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
description: Stage, commit, and push the current branch following git governance rules.
|
||||||
|
---
|
||||||
|
|
||||||
|
1. Run `/review` to ensure lint/tests/security checks pass locally.
|
||||||
|
2. Review and stage changes with `git add` (avoid staging generated or secret files).
|
||||||
|
3. Craft a Conventional Commit message (types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert).
|
||||||
|
- Use `.github/commit-template.txt` and include Context / Testing / Reviewers blocks.
|
||||||
|
- Never add AI attribution strings to commits.
|
||||||
|
4. Commit with `git commit` using the prepared message. If commitlint fails, fix the message and retry.
|
||||||
|
5. Push to origin: `git push origin $(git branch --show-current)`.
|
||||||
|
6. Trigger remote checks for visibility:
|
||||||
|
- `gh workflow run ci-quality-gate.yml --ref $(git branch --show-current)`
|
||||||
|
7. Wait for workflow to finish (`gh run watch --workflow ci-quality-gate.yml`) before opening a pull request.
|
||||||
25
.claude/commands/git/pr.md
Normal file
25
.claude/commands/git/pr.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
description: Create a pull request from the current branch.
|
||||||
|
argument-hint: [target-branch]
|
||||||
|
---
|
||||||
|
|
||||||
|
## Variables
|
||||||
|
|
||||||
|
TARGET_BRANCH: $1 (defaults to `main`)
|
||||||
|
SOURCE_BRANCH: current branch (`git branch --show-current`)
|
||||||
|
|
||||||
|
## Workflow
|
||||||
|
|
||||||
|
1. Ensure `/review` and `/security-scan` have passed locally.
|
||||||
|
2. Confirm `ci-quality-gate` workflow succeeded for `SOURCE_BRANCH`.
|
||||||
|
3. Create the PR using GitHub CLI:
|
||||||
|
```bash
|
||||||
|
gh pr create \
|
||||||
|
--base "$TARGET_BRANCH" \
|
||||||
|
--head "$SOURCE_BRANCH" \
|
||||||
|
--title "<Conventional PR title>" \
|
||||||
|
--body-file .github/pull_request_template.md
|
||||||
|
```
|
||||||
|
If no template exists, provide a summary referencing Context, Testing, and Security results.
|
||||||
|
4. Add labels (`gh pr edit --add-label "status: in-review"`).
|
||||||
|
5. Share the PR link with reviewers and ensure at least one human approval is obtained.
|
||||||
33
.claude/commands/review.md
Normal file
33
.claude/commands/review.md
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
description: Run the local review gate before pushing.
|
||||||
|
---
|
||||||
|
|
||||||
|
Perform a complete review pass:
|
||||||
|
|
||||||
|
1. Save work in progress and ensure the working tree is clean except for intentional changes.
|
||||||
|
2. Install tooling (only first run):
|
||||||
|
```bash
|
||||||
|
pip install --upgrade pip
|
||||||
|
pip install yamllint==1.35.1 check-jsonschema==0.28.4 safety==3.2.4
|
||||||
|
npm install --global markdown-link-check@3.12.2
|
||||||
|
```
|
||||||
|
3. Lint GitHub workflows:
|
||||||
|
```bash
|
||||||
|
yamllint -d '{extends: default, rules: {line-length: {max: 160}}}' .github/workflows
|
||||||
|
check-jsonschema --schema github-workflow --base-dir . .github/workflows/*.yml
|
||||||
|
```
|
||||||
|
4. Python syntax check:
|
||||||
|
```bash
|
||||||
|
python -m compileall marketing-skill product-team c-level-advisor engineering-team ra-qm-team
|
||||||
|
```
|
||||||
|
5. Markdown sanity check:
|
||||||
|
```bash
|
||||||
|
markdown-link-check README.md
|
||||||
|
```
|
||||||
|
6. Optional dependency audit (if `requirements*.txt` present):
|
||||||
|
```bash
|
||||||
|
for f in $(find . -name "requirements*.txt" 2>/dev/null); do
|
||||||
|
safety check --full-report --file "$f"
|
||||||
|
done
|
||||||
|
```
|
||||||
|
7. Summarize results in the commit template's Testing section. Fix any failures before continuing.
|
||||||
22
.claude/commands/security-scan.md
Normal file
22
.claude/commands/security-scan.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
description: Run the security scan gate before pushing.
|
||||||
|
---
|
||||||
|
|
||||||
|
1. Ensure dependencies are installed:
|
||||||
|
```bash
|
||||||
|
pip install safety==3.2.4
|
||||||
|
brew install gitleaks # or appropriate package manager
|
||||||
|
```
|
||||||
|
2. Scan for committed secrets:
|
||||||
|
```bash
|
||||||
|
gitleaks detect --verbose --redact
|
||||||
|
```
|
||||||
|
- Resolve any findings before continuing.
|
||||||
|
3. Audit Python dependencies (if requirements files exist):
|
||||||
|
```bash
|
||||||
|
for f in $(find . -name "requirements*.txt" 2>/dev/null); do
|
||||||
|
safety check --full-report --file "$f"
|
||||||
|
done
|
||||||
|
```
|
||||||
|
4. Record results in the commit template's Testing section.
|
||||||
|
5. After a clean pass, proceed with commit and push workflow.
|
||||||
Reference in New Issue
Block a user