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.

Revisions

  1. @mikehostetler mikehostetler created this gist Feb 21, 2026.
    53 changes: 53 additions & 0 deletions jido_sprite_smoke_tests_index.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,53 @@
    # Jido PrBot — Sprite Smoke Test Scripts

    End-to-end smoke tests that validate the full PrBot pipeline using [Sprites](https://sprites.dev) 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](https://gist.github.com/mikehostetler/e0654c8dd2c761046b6cb15fe12d0333) |
    | **Claude** | [test_claude_sprite.sh](https://gist.github.com/mikehostetler/c779b38ca87424339c1cd0bb0cb0ad49) |
    | **Codex** | [test_codex_sprite.sh](https://gist.github.com/mikehostetler/14777f2419ca13f68743a237c36b85be) |
    | **Gemini** | [test_gemini_sprite.sh](https://gist.github.com/mikehostetler/f22b34c9307a1e983849fff3ece1db6a) |
    | **OpenCode** | [test_opencode_sprite.sh](https://gist.github.com/mikehostetler/75ec868c5eba78a214fe31fcec42981c) |

    ## Environment Setup

    See the [.env contract docs](https://gist.github.com/mikehostetler/170cb13a449a53d901a3ca4cefcd3ffa) for required environment variables per provider.

    **Shared requirements (all scripts):**
    - `SPRITES_TOKEN` (or pre-authenticated `sprite login` session)
    - `GH_TOKEN` or `GITHUB_TOKEN`

    ## Usage

    ```bash
    # 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)