Skip to content

Phase 4: API knowledge — transcribe, never recall #20

Phase 4: API knowledge — transcribe, never recall

Phase 4: API knowledge — transcribe, never recall #20

Workflow file for this run

# Fast governance checks (pipeline Phase 1+). Pure bash, no toolchain —
# feedback in seconds, long before the build workflows finish.
#
# Jobs:
# doctor — enforces "every pipeline asset registers a ./dev verb or carries
# a reasoned exemption" (see scripts/doctor for the contract).
# lint — the NeoHaskell dialect gate: hlint with the dialect-first
# .hlint.yaml (vanilla-module restrictions, banned partials,
# teaching hints). Standalone pinned binary — no nix needed.
name: checks
on:
pull_request:
push:
branches: [main]
permissions:
contents: read
concurrency:
group: checks-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
doctor:
name: dev doctor (verb registration)
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- run: ./dev doctor
codemap:
name: codemap check (localization ontology)
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
# Same check.py as ./dev codemap-check; runner python + pinned pyyaml
# (pulling the full nix dev shell for a YAML check is not worth 40m —
# the PYTHON override is the sanctioned CI path, like lint's HLINT=).
- run: python3 -c "import yaml" 2>/dev/null || pip3 install pyyaml==6.0.3
- run: PYTHON=python3 ./dev codemap-check
lint:
name: hlint (dialect gate)
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Install hlint 3.10 (pinned binary + checksum)
run: |
curl -sSfL -o hlint.tar.gz \
https://github.com/ndmitchell/hlint/releases/download/v3.10/hlint-3.10-x86_64-linux.tar.gz
echo "ccabc8802a58154699a3583b8dddc5ea2e6d65753a62c45c0e80088ebb16b42b hlint.tar.gz" | sha256sum -c -
tar xzf hlint.tar.gz
- name: Dialect gate
run: HLINT=./hlint-3.10/hlint ./dev lint