From agentops
Validates code by running project-specific tests (Go, Python, Shell), regenerating derived artifacts, then committing and pushing changes. Prevents broken code from reaching the remote.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agentops:pushThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Atomic test-commit-push workflow. Catches failures before they reach the remote.
Atomic test-commit-push workflow. Catches failures before they reach the remote.
Determine which test suites apply:
go.mod (or cli/go.mod). If found, Go tests apply.requirements.txt, pyproject.toml, or setup.py. If found, Python tests apply..sh files. If found, shellcheck applies (if installed).Run ALL applicable test suites. Do NOT skip any.
Go projects:
cd cli && go vet ./...
cd cli && go test ./... -count=1 -short
Run the whole suite (./...), never a -run <feature> subset. A filtered
run stays green while cross-cutting tests (conformance, surface-parity) are red —
they only surface at push, after you have already reported "green."
Python projects:
python -m pytest --tb=short -q
Shell scripts (if shellcheck available):
shellcheck <modified .sh files>
If ANY test fails: STOP. Fix the failures before continuing. Do not commit broken code.
go test green does not mean the push will pass. Repos with a pre-push gate
also enforce derived/generated artifacts — generated CLI docs, registries,
command-surface matrices, conformance trees, codex twins — that unit tests never
touch. Discovering these at git push (after you reported "done") is the most
common late failure.
Before staging, if the repo has any of these, run its regen + check locally:
bash scripts/regen-changed-scope.sh --scope head and
bash scripts/generate-cli-reference.sh; for skills, scope the codex-twin
regen to your skills (scripts/regen-codex-hashes.sh --only <names>).Rule of thumb: if you changed a file that generates another file, regenerate the other file now. The gate that fails is the one whose globs you didn't think your change touched.
git add <specific files>
Stage only the files relevant to the current work. Do NOT use git add -A unless the user explicitly requests it. Review untracked files and skip anything that looks like secrets, temp files, or build artifacts.
Write a conventional commit message based on the diff:
type(scope): descriptionfeat, fix, refactor, docs, test, chore, style, perfgit commit -m "<message>"
git pull --rebase origin $(git branch --show-current)
If rebase conflicts occur: resolve them, re-run tests, then continue.
git push origin $(git branch --show-current)
Output a summary:
main or master without explicit user confirmation.env*, *credentials*, *secret*, *.key, *.pemgit pull --rebase fails, do NOT force push — ask the userUser says: /push
What happens:
Result: Verified, committed, and pushed changes in one atomic workflow.
| Problem | Cause | Fix |
|---|---|---|
| Tests fail | Code has errors | Fix failing tests before retrying |
| Push rejected | Remote has new commits | Pull and rebase, then retry |
| No changes to commit | Working tree is clean | Make changes first |
npx claudepluginhub boshu2/agentops --plugin agentopsSummarizes git diff changes, runs local CI on affected areas (backend/frontend/demo), then commits and pushes on success.
Analyzes git changes, groups files into conventional commit types (feat, fix, refactor, etc.), creates commits, and pushes. Verifies prerequisite review skills have been run before allowing push.
Analyzes uncommitted git changes, excludes ephemeral files like node_modules or build/, groups by purpose into atomic conventional commits, validates code, and optionally pushes.