ci(docs): run frontmatter gate on every push/PR (drop paths filter)#50
Merged
Conversation
The frontmatter validation gate had a paths: filter limiting it to **/*.md + the validator/workflow files. In practice the gate did NOT fire on the dd4ce68 em-dash sweep (a direct push to main touching 358 .md files): the run history shows zero Validate-docs runs for that push, and main went red with broken frontmatter that blocked every subsequent docs PR until PR #49 repaired it. Drop the paths: filter entirely so the ~12s check runs on every PR and every push to main, unconditionally. The marketplace/SEO sweeps push straight to main in bulk, so a path-gated check that can fail to match (or fail to evaluate) on a given push is exactly the wrong safety model for this repo. Cheap check, high blast radius if skipped — run it always. Co-authored-by: Hermes Agent <dev@corpusiq.io>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Removes the
paths:filter from theValidate docs(frontmatter) workflow so it runs on every PR and every push to main, unconditionally.Why — corrected root cause
My earlier diagnosis (relayed to Ted + Ben) said the gate "only runs when the validator file itself changes." That was wrong — the workflow already listed
**/*.mdunder bothpull_requestandpush. The real, evidence-backed finding:dd4ce68(the em-dash sweep) was a direct push to main touching 358.mdfiles on 2026-06-22.validate.ymlgate already existed at that point (added 2026-06-17, PR ci(hermes): frontmatter validation gate — block broken YAML before deploy #39) and itspathsfilter matched.Validate docsruns for that push — the gate's first-ever push-to-main runs are both today (6/26). So a path-filteredpushtrigger silently failed to fire on the exact bulk direct-push it was meant to catch.Rather than keep debugging why the path filter didn't evaluate on that push (GitHub's path-filter behavior on bulk/direct pushes is the suspect), the robust fix is to stop gating a ~12-second check behind a path glob at all. The marketplace/SEO sweeps push straight to main in bulk; the check is cheap and the blast radius of skipping it is "every docs PR blocked." Run it on everything.
Change
Verify
pathsfilter on either..mdfile — under the OLD filter the gate would NOT have run on it; under the new config it runs. That's the regression test: ifValidate docsshows green on this PR, the fix works (the old config would have skipped it).