Agentops push

Test, commit, and push in one atomic workflow. Runs Go and Python tests, commits with conventional message, pushes to current branch.

install
source · Clone the upstream repo
git clone https://github.com/boshu2/agentops
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/boshu2/agentops "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills-codex/push" ~/.claude/skills/boshu2-agentops-push && rm -rf "$T"
manifest: skills-codex/push/SKILL.md
source content

Push Skill

Atomic test-commit-push workflow. Catches failures before they reach the remote.

Steps

Step 1: Detect Project Type

Determine which test suites apply:

  • Go: Check for
    go.mod
    (or
    cli/go.mod
    ). If found, Go tests apply.
  • Python: Check for
    requirements.txt
    ,
    pyproject.toml
    , or
    setup.py
    . If found, Python tests apply.
  • Shell: Check for modified
    .sh
    files. If found, shellcheck applies (if installed).

Step 2: Run Tests

Run ALL applicable test suites. Do NOT skip any.

Go projects:

cd cli && go vet ./...
cd cli && go test ./... -count=1 -short

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.

Step 3: Stage Changes

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.

Step 4: Write Commit Message

Write a conventional commit message based on the diff:

  • Use conventional commit format:
    type(scope): description
  • Types:
    feat
    ,
    fix
    ,
    refactor
    ,
    docs
    ,
    test
    ,
    chore
    ,
    style
    ,
    perf
  • Keep subject line under 72 characters
  • Focus on WHY, not WHAT

Step 5: Commit

git commit -m "<message>"

Step 6: Sync with Remote

git pull --rebase origin $(git branch --show-current)

If rebase conflicts occur: resolve them, re-run tests, then continue.

Step 7: Push

git push origin $(git branch --show-current)

Step 8: Report

Output a summary:

  • Files changed count
  • Tests passed (with suite names)
  • Commit hash
  • Branch pushed to

Guardrails

  • NEVER push to
    main
    or
    master
    without explicit user confirmation
  • NEVER stage files matching:
    .env*
    ,
    *credentials*
    ,
    *secret*
    ,
    *.key
    ,
    *.pem
  • If tests were not run (no test suite found), WARN the user before committing
  • If
    git pull --rebase
    fails, do NOT force push — ask the user
  • Do NOT run
    ao codex stop
    after the remote push. If session closeout is needed, finish it through
    $validation
    ,
    $post-mortem
    , or
    $handoff
    before entering
    $push

Local Resources

scripts/

  • scripts/validate.sh