Skip to content

Integrate showboat demos into agent workflows#21

Open
statik wants to merge 1 commit intomainfrom
showboat
Open

Integrate showboat demos into agent workflows#21
statik wants to merge 1 commit intomainfrom
showboat

Conversation

@statik
Copy link
Collaborator

@statik statik commented Feb 26, 2026

Summary

  • Add showboat demo instructions to AGENTS.md so coding agents create verifiable demos of their work
  • Add verify-demo CI job that runs showboat verify demo.md on PRs (skips cleanly when no demo is present)
  • Install showboat in Copilot agent environment (copilot-setup-steps.yml)
  • Add demo.md to .gitignore so demos don't accumulate on main
  • Add just demo-init and just demo-verify convenience recipes
  • Symlink CLAUDE.md to AGENTS.md for Claude Code compatibility

Test plan

  • Create a test demo locally with showboat init and exec
  • Run uvx showboat verify demo.md and confirm it passes
  • Tamper with demo output, re-run verify, and confirm it fails
  • Confirm verify-demo CI job runs on this PR and skips (no demo.md committed)
  • Confirm demo.md is in .gitignore

@github-actions
Copy link

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://posit-dev.github.io/vip/pr-preview/pr-21/

Built to branch gh-pages at 2026-02-26 21:08 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@ian-flores
Copy link
Collaborator

I manually ran through the test plan and all 5 items pass:

  1. Create a test demo locally - uvx showboat init demo.md + uvx showboat exec demo.md works correctly
  2. Verify passes - uvx showboat verify demo.md returns exit code 0
  3. Tamper detection works - Modified output, verify correctly fails with diff showing expected vs actual
  4. CI verify-demo job skips correctly - Confirmed in CI logs (no demo.md committed, job passes with skip message)
  5. demo.md in .gitignore - Confirmed present

@statik Can we mark this as ready for review?

@statik statik marked this pull request as ready for review March 2, 2026 22:33
@statik statik requested a review from ian-flores as a code owner March 2, 2026 22:33
Copilot AI review requested due to automatic review settings March 2, 2026 22:33
@statik
Copy link
Collaborator Author

statik commented Mar 2, 2026

@ian-flores thanks for looking at this! marked as ready

@statik
Copy link
Collaborator Author

statik commented Mar 2, 2026

@ian-flores I'm not sure I agree with the agent on not committing the demo.md - I think I want to start tracking plans/specs/demos somewhere in the repo. But, since I haven't come up with a design for that, I scoped this PR to not commit the demo.md

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR integrates “showboat” demo creation/verification into the agent workflow and CI, aiming to make changes verifiable via reproducible demo transcripts.

Changes:

  • Documented a showboat-based demo workflow for coding agents in AGENTS.md (and added CLAUDE.md compatibility).
  • Added a new CI job (verify-demo) to run showboat verify demo.md on pull requests when a demo is present.
  • Added convenience just recipes and updated setup/ignores to support demo usage.

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
justfile Adds demo-init / demo-verify helpers for showboat demos.
CLAUDE.md Adds Claude Code compatibility by pointing to AGENTS.md.
AGENTS.md Documents the expected showboat demo workflow and CI verification behavior.
.gitignore Ignores demo.md (intended to avoid accumulation).
.github/workflows/copilot-setup-steps.yml Installs showboat in the Copilot Agent setup environment.
.github/workflows/ci.yml Adds verify-demo job to verify demos on PRs when demo.md exists.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +196 to +237
After completing work on a branch, create a showboat demo that proves
your changes work. The demo file is committed to the branch and its
contents are pasted into the PR body under a `## Demo` heading.

### Getting started

Run `uvx showboat --help` at the start of a session to learn the tool.

### Creating a demo

```bash
uvx showboat init demo.md "Feature: <title>"
uvx showboat note demo.md "Explanation of what was done..."
uvx showboat exec demo.md bash "uv run pytest selftests/ -v"
uvx showboat exec demo.md bash "just check"
```

Use `uvx showboat image demo.md <path>` if screenshots are relevant.

### What to demonstrate

- **New tests:** run the new tests and show them passing
- **New features:** exercise the feature with concrete examples
- **Bug fixes:** show the fix in action (before/after if feasible)
- **Refactors:** show that existing tests still pass
- **Always** include `just check` (lint/format) output

### Before committing

```bash
uvx showboat verify demo.md
```

Verification re-runs all `exec` blocks and confirms output matches.
If it fails, fix the demo before committing.

### PR workflow

1. Commit `demo.md` to the branch root
2. Paste the contents of `demo.md` into the PR body under `## Demo`

CI will run `showboat verify demo.md` on PRs that include the file.
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section says demo.md should be committed to the branch root and will be verified in CI, but demo.md is also added to .gitignore in this PR. As written, most contributors won’t be able to git add demo.md without -f, and the CI job will usually skip because the file won’t be present in the checkout. Please reconcile the intended workflow (commit vs. don’t commit) and update these instructions accordingly.

Copilot uses AI. Check for mistakes.
with:
enable-cache: true
- name: Install dependencies
run: uv sync
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

uv sync here likely won’t install the tooling that the recommended demo commands run (e.g., just check depends on ruff, which is only in the dev extra per pyproject.toml). If demos follow the AGENTS.md guidance, showboat verify will fail in CI due to missing tools. Consider using uv sync --all-extras (or at least --extra dev) for this job, and consider pinning/choosing a specific Python version (like the selftest matrix) to avoid ubuntu-latest Python drift affecting verification.

Suggested change
run: uv sync
run: uv sync --all-extras --python 3.12

Copilot uses AI. Check for mistakes.
Comment on lines +79 to +81
- name: Verify demo
if: steps.check.outputs.found == 'true'
run: uvx showboat verify demo.md
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The suggested demo flow in AGENTS.md includes running just check, but this job doesn’t install just. Since showboat verify re-runs exec blocks, any demo that follows the documented guidance will fail in CI on the first just invocation. Either add an installation step for just (e.g., via apt) before verification, or update the recommended demo commands to avoid just in CI-verifiable demos.

Copilot uses AI. Check for mistakes.
Comment on lines +27 to +28
- name: Install showboat
run: pip install showboat
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This installs showboat via bare pip (and unpinned), which conflicts with the repo guidance to run tooling through uv and makes the setup less reproducible over time. Consider installing uv in this workflow and then installing/pinning showboat via uv tool install/uvx --from (or otherwise pinning the showboat version) so the Copilot Agent environment matches how demos are run in CI (uvx showboat …).

Suggested change
- name: Install showboat
run: pip install showboat
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
- name: Install showboat via uv
run: |
export PATH="$HOME/.local/bin:$PATH"
uv tool install showboat==0.5.0

Copilot uses AI. Check for mistakes.
verify-demo:
name: Verify showboat demo
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
Copy link

Copilot AI Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since showboat verify executes arbitrary commands from demo.md, this job can hang or run unexpectedly long (intentionally or accidentally). Consider setting a timeout-minutes on the job or the verify step to keep CI usage bounded, especially because this runs on all pull requests that include a demo.

Suggested change
runs-on: ubuntu-latest
runs-on: ubuntu-latest
timeout-minutes: 10

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants