Skip to content

Prove every check can fail, not just one of them #30

Prove every check can fail, not just one of them

Prove every check can fail, not just one of them #30

Workflow file for this run

name: verify
on:
push:
branches: [main]
pull_request:
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# The gate needs jq for the JSON checks and the install dry run. plutil does not exist
# on Linux, so the launchd check skips itself and says so.
- name: Install jq
run: sudo apt-get update -qq && sudo apt-get install -y -qq jq
- name: Run the verification gate
run: ./.claude/verify.sh
# A gate that cannot fail proves nothing. This used to break one skill description and
# call it done, which left the other checks unproven — and two of them were not enforcing
# anything at the time. Every declared check now gets its own mutation, and check 16 of
# the gate fails if a check is added without one.
- name: Prove every check is falsifiable
run: ./tests/gate-falsifiability.sh
- name: Confirm the tree is restored
run: git diff --exit-code