---
title: Align GitHub Project Status for league tracking issues
type: task
status: completed
description: >-
  Realign the upstream GitHub project Status field for six league tracking issues so the local
  state-mismatch-no-plan detector no longer misfires. Ensures the project's Status single-select
  includes a Draft option and sets each issue to its correct lifecycle stage.
base_uri: user:task/league/align-github-project-status-for-tracking-issues.md
created_at: '2026-06-08T15:10:22.311Z'
entity_id: 33e0cc5c-e063-4b67-99ef-321c99551b8e
finished_at: '2026-06-08T15:28:10.894Z'
observations:
  - ████████████████████████████████████████████████
  - ████████████████████████████████████████████████
owner_identity_uri: █████████████████████████
priority: Medium
public_read: true
started_at: '2026-06-08T15:12:17.806Z'
tags:
  - user:tag/league-xo-football.md
updated_at: '2026-06-08T15:28:39.106Z'
visibility_analyzed_at: '2026-11-06T00:17:40.034Z'
---

## Context

Six GitHub-synced tracking issues under `user:task/github/mistakia/league/` carry `status: Started` from the upstream GitHub project Status field, but their bodies are tracking-issue prose with no local `## Plan` section. The orchestrator-loop's `state-mismatch-no-plan` detector fires on each, proposing local revert-to-Draft hygiene. Reverting locally would conflict with the next sync because the source of truth is the GitHub project Status column.

Root cause: the upstream Status values do not reflect the actual lifecycle stage of these issues. Aligning the GitHub project Status field upstream eliminates the misfire at the source.

Sync path: `libs-server/integrations/github/normalize-github-issue.mjs` `map_status` reads the project field `Status` (via `PROJECT_FIELD_MAPPINGS.status` extractor calling `format_status`); `format_status` recognizes `'draft'` and maps to `TASK_STATUS.DRAFT` (line 67-68). `update-github-project-item.mjs` supports single-select field updates.

## Plan

- [x] Query the league project's Status field via GraphQL and list its single-select options. Confirm a "Draft" option exists; create one via `updateProjectV2Field` mutation if missing.
- [x] Read each of the six issues and decide its correct project Status:
  - [[user:task/github/mistakia/league/147-tracking-issue-for-data-views-related-tasks.md]]
  - [[user:task/github/mistakia/league/168-show-player-betting-markets-on-selected-player-view.md]]
  - [[user:task/github/mistakia/league/217-feat-add-various-off-season-and-in-season-views-for-players-page.md]]
  - [[user:task/github/mistakia/league/234-tracking-issue-for-selected-player-pageoverlay.md]]
  - [[████████████████████████████████████-████-██████-███-███████████-████-███████-███-███████-████████]]
  - issue 316 (add a pre-combine parameter to prospect scores)
- [x] Update each issue's project Status field via `update_github_project_item({ project_item_id, field_updates: { <status_field_id>: <draft_option_id_or_other> } })`. Use `get-github-project-item-for-issue.mjs` to resolve `project_item_id` per issue.
- [x] Trigger a GitHub-sync pass for these issues and verify local entities reflect the new status.
- [x] Confirm the next orchestrator-loop triage no longer surfaces these six as `state-mismatch-no-plan` hygiene rows.

## Notes

- Scope is upstream realignment; do NOT edit local entity frontmatter directly -- the sync will overwrite.
- If an issue genuinely is in progress (open PR, recent commits referencing it), keep its Status accordingly. The default is Draft for tracking-style issues with no plan section.
