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.
72
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
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 .claude/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 *.yml files — always use a test-*.yml harness.
The agent prepares harnesses and validation guidance; the user runs act.
Use 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 .claude/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 .claude/skills/act-testing/references/event-payloads/<fixture>.json -W .github/workflows/test-<workflow>.ymlact push -e .claude/skills/act-testing/references/event-payloads/<fixture>.json -W .github/workflows/test-<workflow>.ymlact workflow_dispatch -e .claude/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 .claude/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 .claude/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.mdcc7a557
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.