Skip to content

fix(ci): measure citation reachability from HEAD, not the base branch#167

Merged
Gavin-Borges merged 2 commits into
mainfrom
scratch/gate-review
Jul 25, 2026
Merged

fix(ci): measure citation reachability from HEAD, not the base branch#167
Gavin-Borges merged 2 commits into
mainfrom
scratch/gate-review

Conversation

@Gavin-Borges

Copy link
Copy Markdown
Owner

Checking ancestry against origin/main rejected a legitimate pattern: a CHANGELOG entry citing an earlier commit of the same pull request. That commit is not an ancestor of the base branch until the PR merges, so the gate would have failed correct work.

HEAD is the right target. For a pull request it is the merge commit, which is the state a reader clones after merge. A commit reachable from no ref at all is still caught - verified by pointing the check at an older ref, which produces 12 detections rather than passing vacuously.

Summary

Type of Change

  • Bug fix
  • New feature / capability
  • Refactor (no behavior change)
  • Test coverage improvement
  • Documentation update
  • New virus panel or dataset
  • Model / feature change

PR Checklist

Code Quality

  • ruff check . passes (no lint errors)
  • mypy src/ passes (0 new errors)
  • pytest passes (all tests green, no regressions)
  • New functionality has accompanying tests

Biological Accuracy (required for any model, feature, or claims change)

  • Q1 Mechanism - Any new biological claim has a primary literature citation (not just a tool reference)
  • Q2 Scope - New claims specify which viruses, alleles, peptide lengths, and assay types they apply to
  • Q3 Limitation - New claims include corresponding limitation language
  • Q4 Fairness - Any benchmark comparison uses equivalent evaluation conditions, or asymmetry is disclosed
  • docs/claims_register.md updated with any new public-facing claims

Model / Feature Changes (if applicable)

  • docs/feature_glossary.md updated if feature set changed
  • docs/model_cards/ updated if model performance changed
  • config.yaml feature_mode and model_path updated if a new model is canonical
  • docs/model_evaluation_summary.md updated with new AUC-PR result

Data Changes (if applicable)

  • New dataset validated against data/immunogenicity_dataset_v4_schema.json
  • docs/data_registry.md updated with row counts, class balance, and provenance
  • Overlap analysis run vs existing training set
  • antigen_processing_cache_path updated if new peptides introduced

Documentation

  • CHANGELOG.md updated (under [Unreleased])
  • docs/limitations_statement_v1.md updated if a new limitation is introduced
  • docs/antigen_accessions.md updated if new viruses or accessions added

Testing Evidence

pytest -q
... passed, ... skipped in ...s

Before / After (for model changes)

Metric Before After
AUC-PR
AUC-ROC
ISSR@10

Reviewer Notes

Checking ancestry against origin/main rejected a legitimate pattern: a
CHANGELOG entry citing an earlier commit of the same pull request. That
commit is not an ancestor of the base branch until the PR merges, so the
gate would have failed correct work.

HEAD is the right target. For a pull request it is the merge commit, which
is the state a reader clones after merge. A commit reachable from no ref at
all is still caught - verified by pointing the check at an older ref, which
produces 12 detections rather than passing vacuously.

Signed-off-by: Gavin Borges <gavinmborges1104@gmail.com>
@Gavin-Borges
Gavin-Borges merged commit a472614 into main Jul 25, 2026
19 checks passed
@Gavin-Borges
Gavin-Borges deleted the scratch/gate-review branch July 25, 2026 04:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant