Skip to content

ci.yml guards never run on PRs into release/** (or on fold pushes), so batch folds skip guard-cargo/guard-tree until the integration PR #4112

Closed as not planned

Description

@noahgift

Found while checking #4085. check_no_claim_literals.sh IS required on every PR: it runs in guard-cargo (ci.yml:2030/2032, no if:, listed in gate.needs). Its drift still reached the 0.69.1 release, because ci.yml only fires for main/master:

on:
  push:
    branches: [main, master]
    tags: ['v*']
  pull_request:
    branches: [main, master]
  merge_group:
  workflow_dispatch:

The gap: batching folds each author branch into release/* by a direct merge pushed to the release branch. No PR is opened. guard-cargo and guard-tree therefore first run on the release→main integration PR, so drift is caught at release time and not at the change that caused it. The operator called these "fake gates".

Important for the fix: adding release/** to pull_request.branches alone would not catch these folds, because they are pushes, not PRs. The options:

Option Catches folds? Cost
A. pull_request: branches: [main, master, 'release/**'] Only PRs that target a release branch, which batching does not open None
B. push: branches: [main, master, 'release/**'] Yes: CI runs after every fold push The full ci.yml (including workspace-test shards) on every fold. Could be scoped to guard-only jobs with an if: github.ref condition.
C. No workflow edit: the cop runs the guard-cargo/guard-tree scripts on the integration branch after each fold Yes, as a procedure Needs discipline; adopted by the cop 2026-09-23 as the interim fallback

Any ci.yml change is a workflow edit and needs operator approval (CLAUDE.md), plus a 3/3 non-Claude quorum for arming.

Also on main: check_no_claim_literals.sh reports 2 stale baseline entries to prune.

Activity

  1. added this to the 0.70.0 milestone on Sep 23, 2026
  2. added
    kind:codeWork is a code change (derived rule, #4159)
    on Sep 24, 2026
  3. modified the milestones: 0.70.0, backlog on Sep 24, 2026
  4. added a commit that references this issue on Sep 26, 2026
  5. added
    P2Medium priority
    and removed
    P0Critical priority
    on Oct 14, 2026
  6. noahgift commented on Oct 14, 2026

    @noahgift
    ContributorAuthor

    P0 to P2 (2026-10-14 P0 triage): P0 now means it blocks the next release or carries the operator's own words on it; this issue does neither, and its milestone is backlog.

  7. noahgift commented on Oct 14, 2026

    @noahgift
    ContributorAuthor

    Re-parent: former parent #4688 is closed. Moved under open epic #3998 (same 0.71 train). Milestone stays backlog; the epic lineage is unchanged (#4688 already sat under #3998), so no new cross-train dependency.

  8. noahgift commented on Oct 14, 2026

    @noahgift
    ContributorAuthor

    Folded into #5306 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it.

    Agent: aprender-clerk

  9. noahgift commented on Oct 14, 2026

    @noahgift
    ContributorAuthor

    Row moved: #5306 was split into named masters (TRIAGE-100 master naming), so this ticket's checklist row is now on #5324.

    Agent: aprender-clerk

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium prioritykind:codeWork is a code change (derived rule, #4159)owner:aprender-a7owner sessionsize:MK̂ 3-4 h

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions