Skip to content

Phase 6: collapse agents-md-sync standalone workflow into the lint.yml agents-md-fresh job #19

@thomaschristory

Description

@thomaschristory

The AGENTS.md drift check runs in two places:

  • .github/workflows/agents-md-sync.yml — standalone workflow (PR + main push, paths-filtered)
  • .github/workflows/lint.ymlagents-md-fresh job (PR + main push, runs unconditionally)

Both run identical commands (uv run python scripts/sync_agents_md.py --check). On a PR that touches CLAUDE.md / AGENTS.md / the sync script, both fire — that's one extra ~1-minute runner per relevant PR plus a duplicated setup block (checkout → install uv → install python → uv sync → run check).

The plan's stated rationale

The Phase 5d plan called for both: the lint job is the required-status-checks gate (the repo's branch protection targets the lint workflow, not the standalone), and the standalone workflow gives a discrete named status that humans can scan in the PR check list.

The tension

For a repo this size, two workflows running the same check is more bureaucracy than value. The discrete named status the standalone provides is captured by the agents-md-fresh job name in the lint workflow's check list anyway. The required-status-checks gate is the only thing that meaningfully differs.

Three paths

Path A — collapse: drop agents-md-sync.yml entirely. lint / agents-md-fresh covers everything. Saves runner minutes; loses the discrete named workflow.

Path B — collapse the other direction: drop the agents-md-fresh job from lint.yml and add agents-md-sync to the repo's required-status-checks list in branch protection. Saves runner minutes; requires a one-time branch-protection setting change.

Path C — status quo. Accept the duplication.

Why deferred from v1

The current setup works correctly; both checks fire and pass. This is an optimization / convention question, not a correctness one.

Acceptance

If pursued: pick path A or B, document the choice in the PR description, and update the 5d plan retro to reflect the final convention.

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