From shesha-auto-testing
Dispatch a test plan to GitHub Actions instead of running it locally — the cloud-side workflow uses claude-code-action to drive the test, posts a Teams Adaptive Card on failure, and publishes an Allure report to gh-pages. Trigger phrases include "/Run-test-remote", "run test remote", "run on CI", "dispatch test on github actions", "run remote test", "trigger e2e workflow", "kick off the workflow". If `.github/workflows/e2e-test.yml` is missing the skill scaffolds it from a template and walks the user through wiring the three required secrets (`ANTHROPIC_API_KEY`, `APP_PASSWORD`, `TEAMS_WEBHOOK_URL`). If present, the skill picks plan(s) via the same disambiguation UX as `/RunTest`, dispatches each via `gh workflow run e2e-test.yml -f test_plan=<path>`, and prints the resulting run URL. Optional `--watch` flag blocks until the run completes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/shesha-auto-testing:run-test-remoteThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Dispatch the test plan to GitHub Actions and print the run URL. The cloud workflow does the actual execution — this skill is the local control surface.
Dispatch the test plan to GitHub Actions and print the run URL. The cloud workflow does the actual execution — this skill is the local control surface.
Detect the workflow file.
test -f .github/workflows/e2e-test.yml && echo HAS_WORKFLOW || echo NO_WORKFLOW
HAS_WORKFLOW: continue.NO_WORKFLOW: jump to the Scaffolding flow below.Detect gh CLI.
gh --version
Missing → stop with:
GitHub CLI not installed. Install from https://cli.github.com/, then
gh auth login, then re-run/Run-test-remote.
Detect gh auth.
gh auth status
Not authenticated → stop with:
GitHub CLI is not authenticated. Run
gh auth login(pick GitHub.com, HTTPS, login via browser), then re-run/Run-test-remote.
Check required secrets.
gh secret list
Required: ANTHROPIC_API_KEY, APP_PASSWORD. Optional: TEAMS_WEBHOOK_URL (skip notification if absent).
If a required secret is missing, stop with the exact gh secret set commands the user needs:
Missing secret(s):
<list>. Set them and re-run:gh secret set ANTHROPIC_API_KEY gh secret set APP_PASSWORD
TEAMS_WEBHOOK_URLis optional — set it if you want Teams notifications on failure:gh secret set TEAMS_WEBHOOK_URL
If gh secret list errors (insufficient scope), note secret check skipped — gh scope missing and proceed. The user can still dispatch; the workflow will fail loudly if a secret is actually absent.
Generate .github/workflows/e2e-test.yml from the template embedded in this skill. The template is the current e2e-test.yml in the repo after the recent updates (nightly-skip, Teams notification, basename fix). To stay consistent, copy the file as-is from the repo's existing workflow rather than re-typing it — the canonical version lives at .github/workflows/e2e-test.yml.
If for some reason the file is missing entirely from the repo, regenerate it from this skill's template/e2e-test.yml companion (if present) or instruct the user to pull from main.
After writing the file:
Scaffolded
.github/workflows/e2e-test.yml. Required secrets:
ANTHROPIC_API_KEY—gh secret set ANTHROPIC_API_KEYAPP_PASSWORD—gh secret set APP_PASSWORDTEAMS_WEBHOOK_URL(optional, for failure notifications) —gh secret set TEAMS_WEBHOOK_URLConfigure them, commit + push the workflow file, then re-run
/Run-test-remote.
Stop here. The user must commit and push the workflow before GitHub Actions can see it.
Use the same resolution order and list format that run-test uses:
"all" → run every plan (dispatched as a separate workflow run each).List format (include last-run status from the most recent local report):
Multiple plans match (or none specified). Pick one or more (comma-separated, ranges, or "all"):
1. calls/create-call-log [last: PASSED 2026-05-20]
2. cases/create-call-log-entry [last: PARTIAL 2026-05-19]
3. cases/create-case [last: PASSED 2026-05-20]
4. service-requests/create-service-request [last: —]
5. service-requests/create-service-request-v2 [last: FAILED 2026-05-18]
Parse 1,3,5 / 1-3 / all. Confirm:
Resolved to:
cases/create-case.md,service-requests/create-service-request-v2.md— dispatching each as a separate workflow run.
For each selected plan, run:
gh workflow run e2e-test.yml -f test_plan=<relative-path>
The workflow's inputs.test_plan is the path relative to test-plans/, so strip that prefix (e.g. test-plans/cases/create-case.md → cases/create-case.md).
Immediately after dispatch, grab the resulting run:
gh run list --workflow=e2e-test.yml --limit 1 --json databaseId,url,createdAt
Take the first row (most recent). Sometimes GitHub takes a couple of seconds to register the dispatch — if the most recent run has a createdAt older than 30 seconds ago, sleep 2s and re-list once.
--watch flagIf the user passes --watch:
gh run watch <runId> --exit-status
This blocks until the run finishes and exits with the run's status code. Use it when the user wants a synchronous "wait for green" workflow.
Default (no --watch): non-blocking — just print the URL and exit.
Dispatched
<plan>to GitHub Actions: https://github.com///actions/runs/The workflow will:
- Run the plan via
claude-code-action- Deploy Allure to
gh-pages/runs/<id>/- Post a summary to the run page
- Post a Teams card to
TEAMS_WEBHOOK_URLif the run fails (skipped silently if the secret isn't set)
If multiple plans were dispatched, list each on its own line.
--watch modeWorkflow run : ().
- Run page: https://github.com///actions/runs/
- Allure report: https://.github.io//runs//
If the run failed and Teams is configured, append:
Teams card delivered to your configured webhook.
Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub boxfusion/boxfusion-plugins --plugin shesha-auto-testing