Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save w0rd-driven/a0dd980109c9352aa315d8cd43914a9b to your computer and use it in GitHub Desktop.

Select an option

Save w0rd-driven/a0dd980109c9352aa315d8cd43914a9b to your computer and use it in GitHub Desktop.
Jido PrBot Sprite Smoke Tests — Index

Jido PrBot — Sprite Smoke Test Scripts

End-to-end smoke tests that validate the full PrBot pipeline using Sprites sandboxed VMs + gh + git + a CLI coding agent.

Each script provisions a sprite, clones a repo, runs a coding agent to make a change, commits, pushes, opens a PR, and comments on the issue — all non-interactively.

Scripts

Provider Gist
Amp test_amp_sprite.sh
Claude test_claude_sprite.sh
Codex test_codex_sprite.sh
Gemini test_gemini_sprite.sh
OpenCode test_opencode_sprite.sh

Environment Setup

See the .env contract docs for required environment variables per provider.

Shared requirements (all scripts):

  • SPRITES_TOKEN (or pre-authenticated sprite login session)
  • GH_TOKEN or GITHUB_TOKEN

Usage

# Quick start — pick a provider and point at a GitHub issue:
./test_claude_sprite.sh https://github.com/OWNER/REPO/issues/123

# Dry run (validates everything but skips PR/push):
./test_amp_sprite.sh https://github.com/OWNER/REPO/issues/123 --dry-run

# Keep sprite alive after run for debugging:
./test_codex_sprite.sh https://github.com/OWNER/REPO/issues/123 --keep-sprite --verbose

What Gets Validated (14 steps)

  1. Host env: tokens and provider keys
  2. Sprite lifecycle: create → exec → destroy
  3. Env var forwarding via sprite exec -env
  4. Runtime binaries inside sprite: git, gh, provider CLI
  5. GitHub auth inside sprite
  6. gh issue view from inside sprite
  7. git clone from inside sprite
  8. Git identity + gh auth setup-git
  9. Provider CLI stream-JSON smoke prompt
  10. Provider CLI stream-JSON code change
  11. git add + git commit
  12. git push -u origin
  13. gh pr create
  14. gh issue comment (PR link back to issue)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment