Skip to content

just preflight is dead — it opens the deleted conventions.yml #981

Closed as duplicate

Description

@thekevinbot

What

just preflight — the command AGENTS.md mandates before every push — raises FileNotFoundError and has since #861.

$ uv run --project internals/checks dirsql-checks preflight --dry-run
  File "internals/checks/src/checks/preflight/cli.py", line 31, in cli
    with open(conventions, encoding="utf-8") as handle:
FileNotFoundError: [Errno 2] No such file or directory: '.github/workflows/conventions.yml'

preflight/cli.py hard-codes --conventions to .github/workflows/conventions.yml. #861 (the last slice of the #834 path-filter epic) deleted that file, splitting its eight caller jobs across six per-domain workflows. Nothing pointed preflight at them.

Why it went unnoticed

preflight is local-only tooling — no CI job invokes it, so no gate went red. Its own unit tests pass, because they feed parse_gate_matrix a fixture string and never touch the default path. The one assertion that would have caught it, cli_test.py's test_defaults_to_the_ci_workflow_and_main, asserts the default equals the literal .github/workflows/conventions.yml — it pinned the stale value rather than checking a file exists there.

Fix

Read every .github/workflows/*.yml and fold together each job that calls the reusable workflow, instead of reading one named file. That restores all 8 scan roots / 40 pairs and makes the derivation survive the next workflow reshuffle — a lane added in a new per-domain file is a pair preflight runs, with no constant to update.

Documents with no jobs: key (or no callers) contribute nothing rather than raising, since most of .github/workflows/ is release, docs and gate workflows.

Notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions