Summary
Acceptance tests currently run on every pull request targeting main or next (see .github/workflows/test-acceptance.yml). There are no path filters, so PRs that only touch documentation, README, GitHub config (e.g. issue templates), .plans/, AGENTS.md, or other non-CLI code still trigger the full acceptance test matrix (3 parallel jobs, each with 12m timeout).
Acceptance tests exercise the CLI itself (Go binary) and live under test/acceptance/. They should only need to run when code that can affect CLI behavior or the tests has changed.
Proposed change
Optimize the Acceptance Tests workflow so it only runs when relevant paths have changed:
-
Run acceptance tests when any of the following change:
- CLI and library code:
cmd/**, pkg/**
- Acceptance test code:
test/acceptance/**
- Go module files:
go.mod, go.sum (dependency changes can affect CLI or tests)
- The acceptance workflow itself:
.github/workflows/test-acceptance.yml (so changes to the workflow are validated)
-
Skip acceptance tests when only other paths change, for example:
- Docs and content:
README.md, REFERENCE.md, AGENTS.md, .plans/, CONTRIBUTING.md, etc.
- Other workflows or GitHub config:
.github/ (except test-acceptance.yml as above)
- Issue/PR templates,
.cursor/, scripts unrelated to the CLI, etc.
Implementation approach
Use GitHub Actions path filters on the pull_request event so the workflow only runs when relevant files are changed, for example:
on:
pull_request:
branches: [next, main]
paths:
- 'cmd/**'
- 'pkg/**'
- 'test/acceptance/**'
- 'go.mod'
- 'go.sum'
- '.github/workflows/test-acceptance.yml'
Optionally, allow manually triggering the workflow (e.g. workflow_dispatch) so maintainers can run acceptance tests even when no filtered paths changed.
Benefits
- Faster feedback for docs-only or config-only PRs.
- Fewer CI runs and lower consumption of API-key–backed acceptance test slots.
- Same coverage for any PR that touches CLI or test code.
Summary
Acceptance tests currently run on every pull request targeting
mainornext(see.github/workflows/test-acceptance.yml). There are no path filters, so PRs that only touch documentation, README, GitHub config (e.g. issue templates),.plans/,AGENTS.md, or other non-CLI code still trigger the full acceptance test matrix (3 parallel jobs, each with 12m timeout).Acceptance tests exercise the CLI itself (Go binary) and live under
test/acceptance/. They should only need to run when code that can affect CLI behavior or the tests has changed.Proposed change
Optimize the Acceptance Tests workflow so it only runs when relevant paths have changed:
Run acceptance tests when any of the following change:
cmd/**,pkg/**test/acceptance/**go.mod,go.sum(dependency changes can affect CLI or tests).github/workflows/test-acceptance.yml(so changes to the workflow are validated)Skip acceptance tests when only other paths change, for example:
README.md,REFERENCE.md,AGENTS.md,.plans/,CONTRIBUTING.md, etc..github/(excepttest-acceptance.ymlas above).cursor/, scripts unrelated to the CLI, etc.Implementation approach
Use GitHub Actions path filters on the
pull_requestevent so the workflow only runs when relevant files are changed, for example:Optionally, allow manually triggering the workflow (e.g.
workflow_dispatch) so maintainers can run acceptance tests even when no filtered paths changed.Benefits