From ea05c0b9e97ed68764188c02353a5d6a35a43b50 Mon Sep 17 00:00:00 2001 From: UnbreakableMJ Date: Fri, 7 Aug 2026 12:23:11 +0300 Subject: [PATCH] ci: add workflow_dispatch so CI can be re-fired without a dummy commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Between 2026-08-05T21:03Z and 2026-08-07 this repository created no workflow run at all — not for a pull request, not for a push to main — while the workflow reported state=active, Actions reported enabled, the triggers were pull_request + push:[main], and the file parsed cleanly. Sibling repositories in the same org ran normally in that window (Standard's push to main and Engram's PR both ran and passed), so it was specific to this repository and invisible from the API: nothing queued, nothing waiting, and no failed run to notice. Two merges landed here unvalidated as a result. Their gates were run locally against merged main instead — reuse lint clean, validate-configs 0 failed, description cap clean, skill-refs OK, steelbore.scm in sync — but "run it by hand and trust the transcript" is not a gate. workflow_dispatch makes the recovery path a command rather than a commit: gh workflow run ci.yml --ref main The alternative was a commit whose only purpose is to produce an event, pushed straight to main — which is exactly what the branch-and-PR rule forbids. Worth having permanently rather than as a one-off: the lint job is what enforces the §5.6 description cap and the steelbore.scm drift check, and both fail silently when unenforced, which is the same class of gap that let §3.2.1 sit unpublished for months. No job, step, or trigger behavior changes — this only adds a way to start the existing workflow by hand. Verified: the workflow parses with all three triggers present and the lint job's 8 steps intact; validate-configs (which walks this file) 302/0; reuse lint clean. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_014X5VySpBN97Nu8YjHy7gwo --- .github/workflows/ci.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c486e9b..8dfaf1a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,6 +7,23 @@ on: push: branches: [main] + # Manual re-run, because the event-driven triggers above are not guaranteed to + # fire. Between 2026-08-05T21:03Z and 2026-08-07 this repository created no run + # at all — not for a pull request, not for a push to main — while the workflow + # reported `state=active`, Actions reported `enabled`, the triggers were these + # ones, and the file parsed. Sibling repositories in the same org ran normally + # in that window, so it was specific to this repository and invisible from the + # API: nothing queued, nothing waiting, no failed run to notice. + # + # Without this trigger the only way to re-fire CI is a commit whose sole + # purpose is to produce an event, and pushing one straight to main is exactly + # what the branch-and-PR rule forbids. A missing gate here is the expensive + # kind: this job is what enforces the §5.6 description cap and the + # steelbore.scm drift check, both of which fail silently when unenforced. + # + # gh workflow run ci.yml --ref main + workflow_dispatch: + permissions: contents: read