mirror of
https://github.com/Comfy-Org/github-workflows.git
synced 2026-11-05 00:17:37 +00:00
[PR #316] [MERGED] test(workflow-pins): fold the cursor-review and refresh-reviewers input-docs suites into the drift harness #317
Labels
No labels
cursor-review-catalog-drift
groom
groom
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/github-workflows#317
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/github-workflows/pull/316
Author: @mattmillerai
Created: 9/18/2026
Status: ✅ Merged
Merged: 9/19/2026
Merged by: @mattmillerai
Base:
main← Head:matt/be-15260-fold-input-docs-drift📝 Commits (4)
6303b2ctest(workflow-pins): fold the cursor-review and refresh-reviewers input-docs suites into the drift harness9bb0ddctest(workflow-pins): assert both dir_readme paths stay in test-workflow-pins.yml's paths: filters5822413test(workflow-pins): close the drift harness's own vacuity gaps from review2d122d3Merge remote-tracking branch 'origin/main' into matt/be-15260-fold-input-docs-drift📊 Changes
7 files changed (+356 additions, -704 deletions)
View changed files
➖
.github/cursor-review/tests/test_workflow_inputs_docs.py(+0 -141)➖
.github/refresh-reviewers/tests/test_inputs_docs.py(+0 -536)📝
.github/workflow-pins/README.md(+15 -1)📝
.github/workflow-pins/tests/test_inputs_docs_drift.py(+309 -14)📝
.github/workflows/test-cursor-review-scripts.yml(+8 -10)📝
.github/workflows/test-refresh-reviewers.yml(+6 -2)📝
.github/workflows/test-workflow-pins.yml(+18 -0)📄 Description
ELI-5
Two little test files each checked, by hand, that one workflow's documented knobs match the knobs it actually has. A previous PR replaced both with a single table-driven check covering all 16 reusable workflows, but deliberately left the two originals alive. This deletes them and moves their last two extras — the directory-README knob tables and one Default-column comparison — into the shared table, then points CI's path filters at the files the shared check now reads.
What changed
One parser, not three.
.github/cursor-review/tests/test_workflow_inputs_docs.py(141 lines) and.github/refresh-reviewers/tests/test_inputs_docs.py(536 lines) are deleted. Everything they asserted is carried by two columns on their rows in.github/workflow-pins/tests/test_inputs_docs_drift.py:dir_readmereadme_headingreadme_modecheck_defaultscursor-review.github/cursor-review/README.md## Configuration knobstwo-wayFalserefresh-reviewers.github/refresh-reviewers/README.md## Knob defaults (and why)one-wayTrueThe asymmetry is deliberate and both halves were verified rather than assumed.
cursor-review's README table really is complete, so two-way set equality is what the deleted suite asserted and what the row now asserts.refresh-reviewers' table is intentionally partial (it omitsreviewer_config_path,map_exclude,extra_exclude_pathsandworkflows_ref), so set equality there would be permanently red — phantom direction only. Andcheck_defaultsstays off forcursor-reviewfor a reason I measured rather than repeated: turning it on produces exactly one mismatch,extra_generated_globs, whose folded>-default renders with<br>separators in the guide's Default cell and does not canonicalise to the workflow's space-joined value. That is a correct doc the check cannot equate, not drift.CI path filters follow the parser.
.github/cursor-review/README.mdand.github/refresh-reviewers/README.mdare now explicit entries in bothpaths:lists intest-workflow-pins.yml— they sit outsidedocs/callers/**, so without them a README-only PR deleting a knob row matches no filter, runs no job and lands green, which is the #31 scenario on the very file the row was added to police. In the other direction,docs/callers/cursor-review.mdanddocs/callers/refresh-reviewers.mdcome out oftest-cursor-review-scripts.ymlandtest-refresh-reviewers.yml: I grepped both directories and no remaining test in either reads a caller guide (grep -rln callersover bothtests/trees returns nothing), so those entries only bought spurious runs.cursor-review.ymlstays in the cursor-review filter —test_workflow_job_isolation.pyandcatalog-drift.pystill parse it. The stale comment block intest-cursor-review-scripts.ymlthat described the deleted suite reading the guide is rewritten to say where the check went, andtest-refresh-reviewers.ymlgains the equivalent note.Three guards I added beyond the ticket, because each new column fails quietly rather than loudly, which is the failure mode this file guards against everywhere else:
dir_readmepointing at a moved file surfaced as aFileNotFoundErrortraceback; it is now an existence assertion intest_files_exist_for_every_rowthat also names thepaths:obligation.readme_modeis compared by string equality against"two-way", so a typo ("twoway") would silently downgrade the cursor-review pin from set equality to the phantom direction alone with the suite still green.test_readme_columns_are_internally_consistentrejects any other value, and also rejects areadme_headingwith nodir_readmeto read it (that row's README check just skips).paths:filter, sotest_dir_readmes_are_in_this_suites_ci_path_filtersrequires eachdir_readmein both oftest-workflow-pins.yml's lists — adding it topull_requestand forgettingpushstill fails.No docs content changed, and
check_workflow_pins.py'sworkflows_refcross-check is untouched (both explicitly out of scope).Verification
Each new assertion was falsified against a deliberately broken tree and then restored, not just observed green:
totally_fake_knobrow in.github/cursor-review/README.mdInputsDocsDrift_cursor_review.test_directory_readme_knob_tableFAILS (phantom)workflows_refrow deleted from that same READMEreadme_mode="two-way"is live)totally_fake_knobrow in.github/refresh-reviewers/README.mdInputsDocsDrift_refresh_reviewers.test_directory_readme_knob_tableFAILStop_kDefault cell in the refresh-reviewers guide changed to999test_guide_default_column_matches_workflowFAILS'999' != '4'(provescheck_defaults=Trueis live)readme_modetypo'd totwowaytest_readme_columns_are_internally_consistentFAILSdir_readmepointed at a nonexistent filetest_files_exist_for_every_rowFAILSpushfiltertest_files_read_outside_the_globs_are_in_this_suites_ci_path_filtersFAILS, naming the file and the eventREADME.mdduplicated underpull_request, absent frompushfound >= 2count passed this — see review round below)workflows_ref:dropped from the refresh-reviewers guide fencetest_example_with_blocks_are_declared_inputsFAILSworkflows_ref:dropped from the refresh-reviewers header examplereadme_mode="two-way"on a row with nodir_readmetest_readme_columns_are_internally_consistentFAILSexpect_sentinel_in_examples=Truewithexpect_header_with=Falsetest_sentinel_pin_has_an_example_to_pinFAILSBoth directory READMEs and the guide were restored byte-for-byte afterwards (
git diff --staton each returned empty).Residual
Nothing in the ticket's scope is left undone, and every artifact it names was exercised. Two things a reader should know anyway:
check_defaultsremains off forcursor-review, so its guide's Default column is still unpinned. This is what the ticket asked for, and the reason is real (measured above:extra_generated_globs'<br>-rendered folded scalar), but the consequence is that a stale Default value for any other cursor-review input can still drift silently. Closing it needs a canonicaliser that folds<br>to whitespace on the guide side — a change to shared parsing that would affect all 16 rows, and therefore its own ticket rather than a column flip here.## Configuration knobsis at.github/cursor-review/README.md:259, not:250. Everything else it cited resolved as described.Provenance
main@f22ad8fmerged in):python3 -m unittest discover -s .github/workflow-pins/tests -p 'test_*.py': 502 tests, OK (29 skipped);.github/cursor-review/tests: 598 tests, OK;.github/refresh-reviewers/tests: 51 tests, OK;python3 .github/workflow-pins/check_workflow_pins.py: OK, 11 workflows declaringworkflows_ref, 0 exempt, 155uses:refs SHA-pinned;python3 .github/agents-md-integrity/check_agents_md.py --root .: passed (2 pre-existing warnings, unrelated to this diff); plus every falsification run tabulated above, each restored afterwards.5822413) closed six panel findings against this PR's own harness, all in the vacuity class the harness exists to police: the repo-rootREADME.mdwas read bySharedDocExampleCallersTestbut matched nopaths:glob; the CI-filter guard counted-lines file-wide so two entries in one list stood in for the other event's missing one; the deleted refresh-reviewers suite'sworkflows_refassertion on both example callers was not carried across (restored behind a newexpect_sentinel_in_examplescolumn);readme_modecould sit at"two-way"on a row whose knob-table test skipped;test_guide_default_column_matches_workflowdid not subtractKNOWN_UNDOCUMENTED; and two docs claims were wrong.mainwas merged in afterwards and the merged result re-verified above — no semantic conflict with #307.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
enabled#319