Skip to content

ci: rename six workflows the org naming lint rejects #15394

Open

Description

@kyle-sexton

Problem

Six workflow files in this repository do not follow the org workflow-file convention <stage>-<function>[-<modifier>] (melodic-software/standards components/github-actions-conventions/README.md, "Workflow files"), so the org naming lint reports workflow-filename for each:

File Why it fails
.github/workflows/dependabot-fragments.yml no stage word
.github/workflows/eval-browser-dispatch.yml no stage word
.github/workflows/eval-hill-climb-pass.yml no stage word
.github/workflows/security-outside-actor.yml no stage word
.github/workflows/pr-feedback-dispatch.yml feedback-dispatch is not verb-first
.github/workflows/post-merge-demotion-alert.yml demotion-alert is not verb-first

To let this repository run the lint enforcing now, standards records each as a repository-scoped workflow-filename exemption; the workflow name:, job and step rules still apply to them.

Done when

  • Each file is renamed to a stage-first, verb-first name with an entry in standards rename-map.json.
  • Every workflow_run filter and github.event.workflow_run.name comparison naming the old workflow name changes in the same PR (hub rule R434), along with every script, test and doc that names the old path.
  • The six workflow-filename exemptions for melodic-software/claude-code-plugins are removed from standards vocabulary.json.

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 11, 2026
  2. github-actions commented on Nov 11, 2026

    @github-actions
    Contributor

    The triage sweep dispatched intake triage for this issue (dispatch 1; 2 runs that reach intake, or 6 dispatches, hand it to a maintainer).

  3. github-actions commented on Nov 11, 2026

    @github-actions
    Contributor

    Size: Large
    Complexity: Medium
    Uncertainty: Known
    Flags: none
    Blocked by: none

    Understood: rename six workflow files that fail the org workflow-filename lint to stage-first, verb-first names. Update every workflow_run filter, name/path comparison, script, test, data file and doc that references them. The refinement comment already lists acceptance criteria and sibling precedents (#6319, #11593, #6467, #14160).

    The change touches about 117 files, so it may need splitting. Some of the files are patch-protected, so a builder session has to take it. The standards follow-up (rename-map.json entries and removing the six exemptions) is outside this repo. I found no duplicate open issue and no merged PR that already does this.

    Automated triage. A maintainer reviews it.

  4. removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 11, 2026
  5. melodic-automation-lanes commented on Nov 11, 2026

    @melodic-automation-lanes
    Contributor

    Not admitted to the issue lane: its body or a criterion names .github/workflows/dependabot-fragments.yml, .github/workflows/eval-browser-dispatch.yml, .github/workflows/eval-hill-climb-pass.yml, .github/workflows/security-outside-actor.yml, .github/workflows/pr-feedback-dispatch.yml, .github/workflows/post-merge-demotion-alert.yml, which the issue lane cannot push (patch-protected-path); a builder session takes it. Admission takes the issue once each of those is met, when intake triages it again (.github/actions/resolve-config/admission-rules.json).

  6. melodic-automation-lanes commented on Nov 11, 2026

    @melodic-automation-lanes
    Contributor

    Refinement. A read-only run explored this repository, searched its issues and pull requests, and read the allowed docs to draft what follows. On an issue a listed human filed, it counts as the issue's spec once posted, while unedited; it is still model text, so check it.

    Intended outcome: Rename the six non-conforming workflow files to stage-first, verb-first names and update every workflow_run filter, workflow name comparison, path reference, script, test and doc in this repository to match.

    Acceptance criteria

    • None of .github/workflows/dependabot-fragments.yml, eval-browser-dispatch.yml, eval-hill-climb-pass.yml, security-outside-actor.yml, pr-feedback-dispatch.yml or post-merge-demotion-alert.yml exists; each has a replacement named <stage>-<verb>-<object>[-<modifier>] using a stage word already used by sibling workflows (pr, post-merge, maintenance, intake, work, release, upstream).
    • Each replacement file keeps the old file's content apart from the rename and the reference updates, and its name: is the Title Case form of the new filename (as in PR 14160).
    • A repo-wide grep for each old filename and old path (dependabot-fragments.yml, eval-browser-dispatch.yml, eval-hill-climb-pass.yml, security-outside-actor.yml, pr-feedback-dispatch.yml, post-merge-demotion-alert.yml) finds no references outside CHANGELOG history entries and ADR history text.
    • Every workflows: \[...\] list under workflow_run and every github.event.workflow_run.name or .path comparison that named an old workflow, such as .github/workflows/pr-feedback-dispatch.yml:100 and the .path == checks at lines 113-334 and in pr-merge, pr-require-checks, pr-run-activity-read and pr-run-activity-write, uses the new name or path.
    • Scripts and tests that name the old workflows are updated, including .github/scripts/pr-unblock/feedback-dispatch.test.mjs, workflow-gates.test.mjs, .github/scripts/security-outside-actor/, .github/scripts/post-merge-demotion-alert/, .github/scripts/plugin-eval/.test.mjs, .github/actions/resolve-config/callers.test.mjs, scripts/dependabot-fragments.sh and the babysit-prs python scripts.
    • Data files that key on workflow names or paths (.github/artifact-retention.json, .github/lane-funding.json, docs/conventions/pr-pipeline.yaml, .github/standards/dependabot-policy/policy.json) use the new names.
    • Docs naming the old workflows (docs/conventions/pr-pipeline/, docs/contracts/loop-lane/, docs/outage-posture-audit.md, plugin READMEs and SKILL.md files) use the new names.
    • The repository's workflow tests, actionlint and the existing workflow-name and path consistency tests pass after the change.
    • The PR description lists the old-to-new filename map so the standards follow-up can add the rename-map.json entries and remove the six workflow-filename exemptions.

    External state: none

    Dependencies

    • Follow-up in melodic-software/standards, outside this repo: add the six rename-map.json entries and remove the six workflow-filename exemptions from vocabulary.json after the rename merges. An unattended run here cannot do it.
    • Branch protection or required-check names may reference the old workflow display names; the renamed name: values need checking against pr-require-checks.yml.

    Related work

    Sources read

    • .github/workflows/ (listing): the six files exist under their old names, and sibling workflows already use stage-verb-object names such as maintenance-*, post-merge-detect-silent-revert, pr-rate-merge-risk.
    • .github/workflows/pr-feedback-dispatch.yml:100: the workflow_run workflows: list names PR workflows by display name.
    • .github/workflows/pr-feedback-dispatch.yml:113-334: the workflow_run.path comparisons name .github/workflows/pr-verify.yml, pr-unblock-dispatch.yml and pr-merge.yml.
    • grep for the six old names: about 562 matches across 117 files in scripts, .github/scripts, actions, docs, ADRs, plugins, and JSON data files.

    Automated refinement by the lanes App. Intake triages the issue again with it.

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

    No labels
    No labels

    Type

    Fields

    Work status

    confirmed

    Priority

    medium

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions