Stage all changes, run quality gates (lint/typecheck), safety checks (secrets/large files), commit, and push to remote
Stage all changes, run quality gates, perform safety checks, and push to remote.
⚠️ CAUTION: Stage ALL changes, commit, and push to remote. Use only when confident all changes belong together.
This skill provides capabilities not found in standard Superpowers:
This skill is called by superpowers/finishing-a-development-branch for:
Run the following commands in parallel to gather information:
git status
git diff --stat
git log -1 --oneline
Detect project type and run quality checks before pushing.
Check for config files in priority order (stop at first match per type):
# Quick detection
ls package.json pyproject.toml Cargo.toml go.mod composer.json Gemfile deno.json biome.json 2>/dev/null
| Config File | Project Type | Lint Command | Typecheck Command |
|---|---|---|---|
package.json | Node.js | Parse scripts for: lint, eslint | Parse scripts for: typecheck, type-check, tsc |
pyproject.toml | Python | ruff check . (if [tool.ruff]) | mypy . (if [tool.mypy]) |
Cargo.toml | Rust | cargo clippy | cargo check |
go.mod | Go | go vet ./... | (included in vet) |
composer.json | PHP | Parse scripts for: lint, phpcs | ./vendor/bin/phpstan (if exists) |
Gemfile | Ruby | bundle exec rubocop | bundle exec sorbet tc (if sorbet) |
deno.json | Deno | deno lint | deno check *.ts |
biome.json | Biome | npx biome check . | (included in check) |
No bypass mechanism - if gates fail, the push is blocked. This ensures:
To proceed after failure:
❌ STOP and WARN if any of the following are detected:
Secrets (file patterns to check):
.env*, *.key, *.pem, credentials.json, secrets.yaml, id_rsa, *.p12, *.pfx, *.cerAPI Keys (check for real values in modified files):
Patterns that indicate REAL keys (should block):
# Real key patterns:
OPENAI_API_KEY=sk-proj-xxxxx
AWS_SECRET_KEY=AKIA...
STRIPE_API_KEY=sk_live_...
GCP_SA_KEY=eyJhbGci...
Acceptable placeholders (should allow):
API_KEY=your-api-key-here
SECRET_KEY=placeholder
TOKEN=xxx
API_KEY=<your-key>
SECRET=${YOUR_SECRET}
Large files: Check for any file >10MB without Git LFS
Build artifacts to exclude:
node_modules/, dist/, build/, __pycache__/, *.pyc, .venv/Temp files:
.DS_Store, thumbs.db, *.swp, *.tmp✅ Verify:
.gitignore properly configuredPresent summary to user:
📊 Changes Summary:
- X files modified, Y added, Z deleted
- Total: +AAA insertions, -BBB deletions
🔒 Safety: ✅ No secrets | ✅ No large files | ⚠️ [any warnings]
🌿 Branch: [branch-name] → origin/[branch-name]
I will: git add . → commit → push
Type 'yes' to proceed or 'no' to cancel.
WAIT for explicit "yes" from the user before proceeding.
After confirmation:
git add .
git status # Verify staging
Analyze the changes and create a conventional commit message:
Format:
[type]: Brief summary (max 72 characters)
- Key change 1
- Key change 2
- Key change 3
Commit types: feat, fix, docs, style, refactor, test, chore, perf, build, ci
Example: