Skip to content

ci: decouple Project Intake metadata sync from product test health #2114

Description

@codeforester

Goal

Ensure GitHub Project metadata synchronization failures do not make Base product CI appear broken or block engineering feedback.

Background

On 2026-09-05 the latest Base and base-cli Project Intake workflows failed while their core test and packaging workflows were green. The observed failures involved delayed Project item visibility and GraphQL/API quota pressure. The workflow has bounded retries and a REST fallback, but a metadata service outage still produces a red repository signal.

Scope

  • Separate core product validation status from Project metadata synchronization status.
  • Keep issue creation and metadata synchronization idempotent and retryable.
  • Prefer REST for reads and bounded writes where it covers the operation; reserve GraphQL for fields that require it.
  • Make quota, visibility, and transport failures visible as a distinct non-product condition.
  • Preserve exact Project-field readback when synchronization succeeds.
  • Document the required versus advisory status of the metadata job.

Acceptance Criteria

  • A Project API quota or delayed-visibility failure cannot report Base tests as failed.
  • A core test failure remains required and clearly distinct from a Project synchronization failure.
  • Re-running synchronization does not duplicate Project items or overwrite non-empty fields unexpectedly.
  • Logs identify whether the failure is authentication, quota, visibility, transport, or field validation.
  • CI documentation and workflow status names describe the separation.
  • Focused fixtures cover quota exhaustion, delayed visibility, REST fallback, and successful exact-field readback.

Validation

  • Run the Project Intake unit and workflow-contract tests.
  • Rehearse a quota or delayed-visibility fixture without writing production Project state.
  • Verify a green core test run remains green when metadata synchronization is unavailable.
  • Verify a successful synchronization reads back Status, Priority, Size, Area, and Initiative.
  • git diff --check.

Non-Goals

  • Do not remove Project metadata from the engineering workflow.
  • Do not hide genuine issue or field-validation failures.
  • Do not broaden Base into a general GitHub Project management product.

Project Fields

  • Status: Backlog
  • Priority: P1
  • Size: M
  • Area: CI
  • Initiative: Contract Hardening

Ownership

Related: #1620, #2109.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

ciContinuous integration, tests, automation, or release workflows

Type

No type

Projects

  • Status
    Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions