Prepares act-testable GitHub Actions workflow scenarios for this monorepo. Use when validating workflow logic locally, generating temporary test harnesses, checking logic drift, assessing local act feasibility, and proposing reproducible user-run test cases.
Use this skill when a workflow change needs local validation with act.
After creating or editing a workflow:
references/workflow-tiers.md).
test-<workflow>.yml harness and run drift guard:
bash .github/skills/act-testing/scripts/check-drift.sh <production-workflow> <test-workflow>act execution is possible in the current environment.act commands to run manually.Never silently skip the testability decision.
Never run act directly against production files — always use a harness.
The agent prepares harnesses and validation guidance; the user runs .
*.ymltest-*.ymlactUse this quick rubric per changed workflow:
Decision rule:
Before committing to Tier 1/2 harnessing, estimate how much critical behavior is mocked in the harness:
Required statement for Tier 1/2: "What risk is actually tested by act in this harness?"
If this statement cannot be answered clearly, classify as Tier 3.
# MOCK-START# MOCK-ENDReplace these with echo stubs in temporary harnesses:
hashicorp/vault-actionslackapi/slack-github-action./.github/actions/observe-build-status./.github/actions/setup-maven-cachecamunda/infra-global-github-actions/*Example mock step:
- name: Mock Vault lookup
run: echo "MOCK: Vault secret retrieval skipped for local act run"
bash .github/skills/act-testing/scripts/check-drift.sh <production-workflow> <test-workflow>act feasibility in the current environment (document pass/fail):
command -v actcommand -v dockerdocker infoact pull_request -e .github/skills/act-testing/references/event-payloads/<fixture>.json -W .github/workflows/test-<workflow>.ymlact push -e .github/skills/act-testing/references/event-payloads/<fixture>.json -W .github/workflows/test-<workflow>.ymlact workflow_dispatch -e .github/skills/act-testing/references/event-payloads/<fixture>.json -W .github/workflows/test-<workflow>.yml --secret-file .secrets --reuseACT_RUNNER_IMAGE=ghcr.io/catthehacker/ubuntu:act-latest act pull_request -e .github/skills/act-testing/references/event-payloads/<fixture>.json -W .github/workflows/test-<workflow>.ymlDo not run act on behalf of the user. The user remains responsible for executing and interpreting local act runs.
.github/workflows/test-docs-preview.yml.act <event> -e <event-json> -W <test-workflow> --secret-file .secrets --reuse.act pull_request -e .github/skills/act-testing/references/event-payloads/pr-opened-ready.json -W .github/workflows/test-docs-preview.ymlFor every Tier 1/2 workflow, suggest a minimal scenario matrix covering workflow logic, including:
workflow_dispatch or matrix inputs when present)Each scenario should include: fixture file, expected observable markers, and exact act command to run.
For every Tier 1/2 workflow, the final user message must include all of the following before completion:
test-workflow: <path> (temporary harness path used for validation)drift-check: <exact command + result>feasibility: results for command -v act, command -v docker, and docker infoscenario-matrix: at least one positive and one negative scenarioact-commands: exact copy-paste commands for each scenariocleanup: explicit statement that temporary test-*.yml was removed (or why retained)If any item above is missing, validation is incomplete.
For Tier 3 workflows, the final user message must still include:
tier: 3non-applicability rationale: <why external orchestration dominates>act-scenarios: not requiredharness: not created (or removed) because mocked signal is insufficientTrack these in issue/PR evidence:
Use event payload fixtures under references/event-payloads/.
Each scenario should define expected output markers to avoid subjective verification.
Temporary harnesses are validation artifacts.
test-*.yml in the PR branch.act commands and scenario matrix.test-*.yml files in the branch while providing commands so the user can execute them.<details> block.test-*.yml files only after user-run act validation is complete.Never merge temporary test harness files to main.
For each changed workflow, capture one of:
references/workflow-tiers.mdreferences/test-workflow-template.mdreferences/event-payloads.mdreferences/secrets-template.md