Skip to content

feat(queue): make #966 open-PR merge trains executable - #968

Draft
seonghobae wants to merge 138 commits into
docs/gap-baseline-2026-08-31from
docs/bandscope-product-readiness-baseline
Draft

seonghobae wants to merge 138 commits into
docs/gap-baseline-2026-08-31from
docs/bandscope-product-readiness-baseline

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 20, 2026 •

Copy link
Copy Markdown
Collaborator

Outcome

Executable queue-control owner for Issue #966, stacked on canonical baseline #1116 without becoming a second baseline, Project Persistence or formatter writer.

Exact current stack

This PR remains Open / Draft / mergeable. Fresh #1116→#968 compare reports ahead 137 / behind 0, merge base exact 9c7cac0..., and exactly 23 queue-owned changed files. docs/product-technical-gap-baseline.md is absent from the final delta, so canonical baseline single-writer ownership remains #1116.

Current base-adoption repair

#1116 moved from f69afac... to 9c7cac0... to replace stale .github#2040 CodeQL authority with the live central topology: .github#2352 integration, .github#2275 fail-closed GHAS analyses-read credential selector, and .github#2276 target permission/canary.

This queue branch first adopted that exact baseline blob in ordinary history at 767cf4162570d0bc863813e37ea218efe5fcce87, then created ordinary two-parent descendant dde02dbaf6ea2b82d85a81c3092073d816d898f7 with parents 767cf416... and current baseline 9c7cac0.... The final tree preserves every queue-owned file and makes current #1116 the exact merge base. Ref movement was fast-forward/non-force; no destructive rebase or Force Push was used.

Current RCA — invalid GitHub GraphQL CheckRun app projection

Historical open-pr-queue-live run 33867414924 is causally classified. Queue refresh and manifest verification succeeded, then Collect exact-head check, review, and thread readiness failed with the live GitHub GraphQL diagnostic:

Field 'app' doesn't exist on type 'CheckRun'

The current GitHub GraphQL schema exposes the producing GitHub App through CheckRun.checkSuite.app, not CheckRun.app. RED 0429202705e3f70f89ddeb3b83ff42733b6ffd47 models that live shape; repair 48f64f9337d808d445529f1115df2c37a6dc9950 changes selection to checkSuite { app { databaseId } }; alignment 8ead94a953084b646fc2cc150207aae4dedc2bb8 moves the fixture to the same schema; doctoring 5ff44679ac447dd9538b703863f62a6a7814f377 records the current API references and claim boundary.

This is a source-backed repair, not a runner retry. Historical failure is RCA only and not current-head GREEN.

Exact-head workflow authority

The workflow binds PR-triggered checkout and artifact identity to ${{ github.event.pull_request.head.sha || github.sha }} and admits branch-scoped push plus pull_request opened/reopened/synchronize.

Fresh current-head inventory for dde02dba... has no hosted workflow generation. The same is true for current #1116 9c7cac0.... Zero runs are missing evidence, not GREEN; do not manufacture freshness with a no-op commit, blind rerun, force-push or synthetic status.

Executable #966 contract retained here

refresh_open_pr_queue.py owns bounded live inventory and exact identities; verify_open_pr_queue.py validates graph/disposition consistency; collect_open_pr_readiness.py admits only unchanged canonical-active entries with terminal app-bound required checks, qualifying exact-head approval, zero actionable threads and complete decision metadata; .github/workflows/open-pr-queue-live.yml preserves read-only live refresh/verification/parity evidence.

Live dependency context

#970 exact 3dfd77e... has adopted canonical #1254 timing policy through ancestry and repaired its persisted-cache consumer, but the stacked exact head has no hosted generation. Its latest direct-develop CI found one canonical #1176 formatter file plus four still-unresolved #970-owned Ruff-format files.

#1241 exact b29b7b52... retains receipt-bound Score Storage and ScoreView freshness controls. Native macOS/Windows owner jobs are GREEN, while the focused Ubuntu UI lane failed at raw npm ci before the ScoreView regression; npm runtime ownership remains #896.

#1176 exact 8fe6b6d... remains the common one-file formatter prerequisite. Repository CI/build/SBOM/Security/Semgrep are GREEN on that unchanged head, but delegated CodeQL remains blocked by the central GHAS identity-permission boundary. .github#2352 producer validation and settlement are terminal SUCCESS; Python/Actions scans complete exact-source analysis and clean Medium+ SARIF, then fail only because code-scanning/analyses returns HTTP 403. .github#2275/#2276 own that repair. No qualifying independent current-head approval exists for #1176.

Verification / merge gate

Keep Draft. Normal integration order remains canonical-prerequisite first: central GHAS analyses-read permission/canary must be repaired, #1176 must satisfy authentic required CodeQL/review governance and reach protected ancestry, #1116 then ordinary/non-force reconciles and obtains exact-head evidence, and this queue lane ordinary/non-force follows while preserving its queue-owned delta and reacquiring hosted exact-head evidence plus qualifying independent non-author review.

Any future #1116 source move must be adopted ordinary/non-force. No force-push, destructive rebase, baseline/formatter/product source copy, self-approval, gate weakening, blind rerun, source-neutral wake commit, synthetic status, or stale-evidence transfer.

@coderabbitai

coderabbitai Bot commented Aug 20, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
📝 Walkthrough

Walkthrough

BandScope 1.0 제품 준비도와 병합 트레인을 문서화했습니다. GitHub open PR 큐 manifest를 갱신하고 검증하는 스크립트를 추가했습니다. quickcheck와 회귀 테스트가 manifest 구조, SHA, 페이지네이션, API 경로를 검증합니다.

Changes

제품 준비도 및 PR 큐

Layer / File(s) Summary
제품 준비도 기준과 병합 트레인
docs/architecture/decisions/..., docs/doctoring/PRODUCT_READINESS_REFERENCES.md, docs/product-technical-gap-baseline.md
제품 경계, 증거 기준, 완료 조건, T0–T7 병합 트레인, 참고문헌과 스냅샷 한계를 문서화했습니다.
PR 큐 manifest와 정적 검증
docs/product-readiness/open-pr-queue.json, scripts/checks/verify_open_pr_queue.py
open PR 스냅샷을 추가했습니다. 검증기는 스키마, 저장소, 브랜치, 트레인, PR, URL과 SHA 상태를 검사합니다.
GitHub 기반 manifest 갱신
scripts/checks/refresh_open_pr_queue.py
GitHub API에서 bounded pagination으로 PR을 수집합니다. 기존 라우팅 정보를 보존하고 신규 PR을 T8로 추가합니다. 검증된 manifest를 fsync 후 원자적으로 저장합니다.
검증 회귀 테스트와 quickcheck 연결
scripts/harness/quickcheck.sh, services/analysis-engine/tests/test_open_pr_queue_*.py
manifest 오류, 페이지 한도, 중복 PR, SHA와 base ref 오류, API 경로 제한 및 quickcheck 연결을 테스트합니다.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant RefreshScript
  participant GitHubAPI
  participant ManifestFile
  participant Quickcheck
  RefreshScript->>GitHubAPI: develop SHA와 open PR 목록 요청
  GitHubAPI-->>RefreshScript: PR JSON 페이지 반환
  RefreshScript->>ManifestFile: 검증된 manifest 원자적 저장
  Quickcheck->>ManifestFile: manifest 로드
  Quickcheck->>Quickcheck: verify_open_pr_queue.py 실행
Loading

Merge Risk: 🟡 Moderate · up to 735f3

The PR adds a live-refreshable PR queue, but invalid disposition values and records missing head revisions can currently pass validation and misroute follow-up actions. A required formatting check also remains failed, so merge should wait for these fixes and a clean exact-head check run.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring check was indeterminate for this PR — some files could not be analyzed in time. Not blocking.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 open PR merge train을 실행 가능하게 만드는 핵심 변경을 명확하고 간결하게 설명합니다. 실제 변경에는 큐 갱신, 검증기, quickcheck 통합, 회귀 테스트가 포함되며 제목은 이 범위를 대표합니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/bandscope-product-readiness-baseline

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae seonghobae changed the title docs: establish BandScope 1.0 product-readiness baseline feat(readiness): establish BandScope 1.0 product-readiness baseline Aug 20, 2026
@opencode-agent opencode-agent Bot added area: operations Operability, observability, readiness, SLO, backup, or retention priority: medium Normal-priority or P2 work status: draft Draft pull request type: feature New or expanded product capability labels Aug 22, 2026

Copy link
Copy Markdown
Collaborator Author

@opencode-agent Continue only the existing canonical branch docs/bandscope-product-readiness-baseline if its exact head is still 6456d325ac32d41f11670ee37fb216e28701e40c; do not create another branch/PR. Fresh live BandScope evidence now reports 111 open PRs targeting develop, while docs/product-readiness/open-pr-queue.json at this head still declares open_pr_count: 83 and snapshot_date: 2026-08-20. This is not a request to hand-edit 111 entries or weaken the offline verifier: implement the next bounded #966 root-cause slice that makes live refresh executable and reproducible. TDD first: add fixture-driven tests for a live-queue refresh/generator that deterministically consumes GitHub PR metadata, rejects pagination truncation/incomplete results, duplicate PR numbers, wrong base refs, malformed/missing immutable head SHAs and unsupported dispositions, and emits a manifest whose declared count exactly matches the fetched complete open-PR set. Keep required CI network-independent by testing against recorded/local fixtures; any live GitHub call must be an explicit operator command, bounded, paginated, fail-closed and use no write token. Generate the human table from the same source or add an exact parity check rather than maintaining a second hand-edited count. Preserve the existing intrinsic verifier and current train/ownership semantics; do not claim check/review readiness from generated status-only data and do not touch #783 dependency/security ownership. Run focused tests, canonical quickcheck and exact-head CI, then report the resulting exact head/evidence. If the branch moved, inspect the intervening delta and adapt rather than racing it.

github-advanced-security[bot]

This comment was marked as resolved.

@opencode-agent

opencode-agent Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Queued @opencode-agent for PR #968 at head aed2af9844d9705ae1641c805318ed24d1c9f06e. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@seonghobae seonghobae added the enhancement New feature or request label Sep 7, 2026 — with ChatGPT Codex Connector
Restack the queue/readiness owner on the canonical #1116 baseline update without copying baseline ownership. Preserve queue implementation unchanged while consuming the current Workspace/GrooveMap consolidation record.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: operations Operability, observability, readiness, SLO, backup, or retention enhancement New feature or request priority: medium Normal-priority or P2 work status: draft Draft pull request type: feature New or expanded product capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants