Skip to content

feat: prove github and local tracker cycles end to end (#278)#303

Merged
sungjunlee merged 7 commits into
mainfrom
relay/issue-278-dual-mode-proof
Jul 11, 2026
Merged

feat: prove github and local tracker cycles end to end (#278)#303
sungjunlee merged 7 commits into
mainfrom
relay/issue-278-dual-mode-proof

Conversation

@sungjunlee

@sungjunlee sungjunlee commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • add one table-driven acceptance matrix that proves the full GitHub and offline local tracker cycles
  • freeze legacy GitHub argv, mirror/progress state, local decimal refs, archive behavior, and zero-provider authority
  • provide one structured unsupported-capability contract with custom-backlog remediation
  • align the README, skill references, tracker design, and governed spec surfaces with the executable runtime
  • make human status honor configured custom local stores

Verification

  • node --test skills/*/scripts/*.test.js — 652 passed, 1 pre-existing opt-in skip
  • bash skills/dev-backlog/scripts/smoke-test.sh — 157/157 passed
  • objectives, component, capabilities, and backlog validators passed
  • NPM_CONFIG_CACHE=/tmp/dev-backlog-npm-cache npx --yes skills add . -l found exactly 2 skills
  • git diff --check passed
  • fresh independent hardened code review: LGTM, no actionable findings

Review assurance note

The retained relay run preserves the hardened advisory attempts. OpenCode timed out on the large review payload, Cline did not emit its required structured result event, and the authenticated Pi/OpenCode-Go route returned its weekly usage-limit response. These provider failures made no source changes. Publication proceeds under operator recovery with the independent code review and the full deterministic gate set above; GitHub CI and unresolved-thread checks remain mandatory before merge.

Closes #278

Summary by CodeRabbit

  • 새 기능
    • GitHub 또는 로컬 트래커를 선택해 작업의 기준 저장소로 사용할 수 있습니다.
    • 스프린트 계획과 작업 참조가 두 트래커 모드에서 일관되게 처리됩니다.
    • 트래커에서 지원하지 않는 기능은 표준 JSON 또는 안내 메시지로 명확히 표시됩니다.
  • 개선 사항
    • 초기 설정 및 상태 조회가 선택된 트래커에 맞춰 동작합니다.
    • 로컬 모드에서는 오프라인 작업과 파일 기반 작업 관리를 지원합니다.
  • 문서
    • 설정, 작업 흐름, 파일 형식, 트래커 연동 및 검증 절차를 전반적으로 업데이트했습니다.
  • 테스트
    • GitHub·로컬 모드의 전체 작업 주기와 오류 처리를 검증하는 테스트를 추가했습니다.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@sungjunlee, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 52 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 68404c7c-2248-4623-9abf-e344352afc12

📥 Commits

Reviewing files that changed from the base of the PR and between 24db26c and 1100b01.

📒 Files selected for processing (2)
  • skills/dev-backlog/references/file-format.md
  • skills/dev-backlog/scripts/tracker-cycle.acceptance.test.js

Walkthrough

GitHub 미러와 local canonical task store를 설정으로 선택하는 듀얼 트래커 계약을 문서화하고, 어댑터 capability 오류 처리와 GitHub/local 전체 사이클 수용 테스트를 추가했다.

Changes

트래커 계약 및 워크플로

Layer / File(s) Summary
듀얼 모드 및 워크플로 계약
README.md, skills/dev-backlog/SKILL.md, skills/dev-backlog/references/*, spec/capabilities.md
단일 configured tracker, 정규화 ref, 모드별 task 권위·동기화·완료·capability 규칙을 문서화했다.

런타임 라우팅

Layer / File(s) Summary
어댑터 해석 및 capability 오류
skills/dev-backlog/scripts/tracker.js, skills/dev-backlog/scripts/{progress-sync,sprint-init,sprint-mirror,tracker-capability}.js, skills/dev-backlog/scripts/{status.sh,tracker-status-list.js}
backlogDir 기반 설정 해석과 typed error 직렬화, JSON/human CLI 오류 출력을 연결하고 상태 행에 task.ref fallback을 추가했다.

듀얼 모드 수용 증명

Layer / File(s) Summary
GitHub/local core cycle 및 오류 검증
skills/dev-backlog/scripts/tracker-cycle.acceptance.test.js, skills/dev-backlog/scripts/github-capabilities.test.js, skills/dev-backlog/scripts/tracker.test.js
GitHub와 local의 생성부터 완료·아카이브까지의 사이클, local의 provider 호출 0회, unsupported capability의 출력·무변경 계약을 검증한다.

설계 및 시스템 증거

Layer / File(s) Summary
어댑터 설계와 시스템 맵
docs/tracker-adapter-design.md, spec/system-map.md
런타임 경계, capability gate, 저장소 흐름, dual-mode executable proof와 프로젝트 불변식을 갱신했다.

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

Sequence Diagram(s)

sequenceDiagram
  participant Operator
  participant CLI
  participant TrackerAdapter
  participant GitHubOrLocalStore
  participant SprintFiles
  Operator->>CLI: create / plan / work / complete
  CLI->>TrackerAdapter: resolve configured tracker
  TrackerAdapter->>GitHubOrLocalStore: create, read, update, close
  GitHubOrLocalStore-->>TrackerAdapter: normalized task ref and state
  TrackerAdapter->>SprintFiles: update Plan, Progress, and completion state
  SprintFiles-->>Operator: sprint status and next work
Loading

Possibly related PRs

Poem

깡충, 두 트래커 길이 열렸네
GitHub 거울, local 정본 반짝이네
태스크는 ref를 들고 달리고
오류는 JSON으로 또렷이 노래해
토끼도 이제 스프린트를 닫고
당근처럼 깔끔히 아카이브해 🐇

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.71% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목이 GitHub/local 트래커 순환의 종단 간 증명이라는 핵심 변경을 정확히 요약합니다.
Linked Issues check ✅ Passed 수용 매트릭스, GitHub/local 사이클 검증, 지원 불가 capability 에러, 업그레이드 문서와 스크립트 정리가 #278 요구와 맞습니다.
Out of Scope Changes check ✅ Passed 변경은 트래커 사이클 증명과 관련 문서/에러 계약/테스트에 집중되어 있어 명백한 범위 밖 작업은 보이지 않습니다.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch relay/issue-278-dual-mode-proof

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@skills/dev-backlog/references/file-format.md`:
- Around line 55-57: Update the fenced code block containing the filename format
`{PREFIX}-{N[.M]} - {Title-Slug}.md` to specify a text language identifier, such
as text, eliminating the markdownlint MD040 warning.

In `@skills/dev-backlog/scripts/tracker-cycle.acceptance.test.js`:
- Line 364: Update the progress body assertion and mirror body pattern in the
acceptance test to derive the sprint filename slug dynamically from
init.sprintFile instead of hardcoding 2026-07-cycle.md or sprint=2026-07-cycle.
Preserve the existing assertion and matching behavior while using the
runtime-generated sprint value in both locations.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d605a811-a22c-44aa-b5fe-0bb4dcec85ce

📥 Commits

Reviewing files that changed from the base of the PR and between 2e12e47 and 24db26c.

📒 Files selected for processing (19)
  • README.md
  • docs/tracker-adapter-design.md
  • skills/dev-backlog/SKILL.md
  • skills/dev-backlog/references/file-format.md
  • skills/dev-backlog/references/integration-contract.md
  • skills/dev-backlog/references/process.md
  • skills/dev-backlog/references/scripts.md
  • skills/dev-backlog/scripts/github-capabilities.test.js
  • skills/dev-backlog/scripts/progress-sync.js
  • skills/dev-backlog/scripts/sprint-init.js
  • skills/dev-backlog/scripts/sprint-mirror.js
  • skills/dev-backlog/scripts/status.sh
  • skills/dev-backlog/scripts/tracker-capability.js
  • skills/dev-backlog/scripts/tracker-cycle.acceptance.test.js
  • skills/dev-backlog/scripts/tracker-status-list.js
  • skills/dev-backlog/scripts/tracker.js
  • skills/dev-backlog/scripts/tracker.test.js
  • spec/capabilities.md
  • spec/system-map.md

Comment thread skills/dev-backlog/references/file-format.md Outdated
Comment thread skills/dev-backlog/scripts/tracker-cycle.acceptance.test.js Outdated
@sungjunlee sungjunlee merged commit d3c4903 into main Jul 11, 2026
2 checks passed
@sungjunlee sungjunlee deleted the relay/issue-278-dual-mode-proof branch July 11, 2026 18:47
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.

test: prove github and local core sprint cycles end to end

1 participant