Skip to content

Restore the GitHub editorial source/projection inventory validator on main #302

Description

@alexeygrigorev

Raw user intake — needs PM grooming. Surfaced while grooming #301.

Symptom

main is currently red on this gate, independently of any in-flight work:

$ uv run python scripts/validate_github_editorial_source_projection_inventory.py
GitHub editorial source/projection inventory validation failed: manifest preferred content source drift
$ echo $?
1

scripts/tests/test_github_editorial_source_projection_inventory.py::test_inventory_matches_the_exact_checked_in_snapshot reportedly fails for the same reason. (Verified the script failure directly; the test failure is reported by grooming and should be confirmed.)

What appears to be wrong

The validator carries pinned digests and counts that no longer match the checked-in projection:

  • its pinned media.json digest (around scripts/validate_github_editorial_source_projection_inventory.py:90/:180) does not match the live content/public_projection/manifest.json value;
  • its podcast counts reportedly disagree with content/public_data.py;
  • grooming reports this is one of several stale pins rather than a single bad constant.

Why this needs care rather than a quick re-pin

Re-pinning the digests to whatever main currently holds would make the gate green while silently accepting the face8e4 projection drift that #253 ("Reconcile non-reproducible public projection after face8e4") exists to reconcile. The same hazard applies to content_sync/dtc_content/contract.py:34, where PROJECTION_TREE_SHA256 and PROJECTION_MANIFEST_SHA256 already differ from the live manifest and parity is opt-in behind DTC_CONTENT_ACCEPTED_CHECKOUT.

So the PM should determine whether this is:

  1. genuinely stale pins that should be refreshed against an accepted projection; or
  2. a true drift signal that belongs to Reconcile non-reproducible public projection after face8e4 #253 and should be closed as a duplicate/absorbed there.

Relationship to other issues

Suggested non-goal

Making the gate green by re-pinning without establishing which projection is authoritative.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Important follow-upbugSomething isn't workingcontentArea: contentoperationsArea: operationstestingArea: testing

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions