Skip to content

docs(exploration): Sprint 3 — suminerProxy cherry-pick plan (foundation 부재 발견 → 다음 sprint plan) - #9

Merged
tgkim-openerd merged 2 commits into
mainfrom
chore/sprint-3-suminerProxy-raw-strip-2026-05-28
May 28, 2026
Merged

tgkim-openerd merged 2 commits into
mainfrom
chore/sprint-3-suminerProxy-raw-strip-2026-05-28

Conversation

@tgkim-openerd

Copy link
Copy Markdown
Collaborator

Sprint 3 boundary 조정

원 의도: suminerProxy HIGH 6건 중 가장 작은 fix (6871973 CODEX_EVENTS_RAW=0 raw payload strip, 1일 추정) cherry-pick.

실제 발견: 본 fork (opnd-io) 에 `appendJobEvent` / `resolveJobEventsFile` / `events.ndjson` foundation 자체가 없음 (grep code-only 결과 0). 6871973 은 foundation 의존 → 단독 port 불가능.

→ Sprint 3 = plan doc 만, actual cherry-pick 다음 sprint 위임.

본 PR 산출물

`docs/exploration/2026-05-28-suminerProxy-cherry-pick-plan.md` (신규 +95 lines):

suminerProxy HIGH 6건 dependency graph

  • c30b664 (foundation: appendJobEvent / resolveJobEventsFile)
  • a3f4181 (의존 c30b664): normalizeNotification + on-notification hook
  • 9332c29 (의존 c30b664 + a3f4181): events 서브커맨드 + stall watchdog
  • 4baaf19 (의존 ↑ all): token usage in /codex:status
  • 6871973 (의존 c30b664): CODEX_EVENTS_RAW=0 raw strip
  • 30f3a26 (의존 ↑ all): task-stream push + /codex:stream

Port plan

Apache 2.0 attribution + HARD PRECONDITION

  • NOTICE / commit message / plugin.json contributors[] 절차 명시
  • HARD PRECONDITION (BLOCKING): suminerProxy fork license 실측 확인 후만 cherry-pick 진행 (Apache 2.0 정합 시만)

Codex pair R1

`agentId a7fba2e8dec48f3dc`:

  • HIGH 0 + MEDIUM 2 (plugin.json 경로 + license precondition 강화) + LOW 2 (정상 확인)
  • dependency graph verdict: 정합
  • 0 수렴 (R2 불필요) + squash GO

R1 MEDIUM 2 commit `3874bb7` 에 적용 — plugin.json 경로 `plugins/opnd-codex/.claude-plugin/plugin.json` 명시 + license HARD PRECONDITION (cherry-pick BLOCKING) 강화.

R2 skip 사유: R1 squash GO + MEDIUM cosmetic 만 (Section F "Document Count Consistency" lesson — cosmetic R3+ loop 회피).

Sprint 3 의 lesson learned

actual cherry-pick 의 prerequisite (dependency graph) 가 evaluation report (Phase B 의 suminerProxy-fork-evaluation.md) 의 "HIGH cherry-pick 강력 권고" 표현 시 미확인 → Sprint 3 진입 후 foundation 부재 발견. quality-review-agent Section F (Document Count Consistency) 의 family 패턴: doc 의 "가능" 단정이 실제 codebase prerequisite 확인 없이 작성될 위험.

Commit history (squash 시 1 commit)

```
3874bb7 fix(sprint-3): R1 MEDIUM 2 — plugin.json 경로 명시 + license HARD PRECONDITION 강화
69e53f2 docs(exploration): Sprint 3 — suminerProxy cherry-pick plan (foundation 부재 발견 → 다음 sprint plan)
```

다음 actor (사용자 결정)

  1. suminerProxy fork license 실측 (`gh api repos/suminerProxy/codex-plugin-cc --jq .license`)
  2. license Apache 2.0 정합 시 NOTICE + plugin.json attribution 사전 commit
  3. Phase 1 1a (c30b664 port) 시작 — 가장 작은 단위 + foundation 확보

변경 파일 (2 files / +95 +1)

  • `docs/exploration/2026-05-28-suminerProxy-cherry-pick-plan.md` (신규)
  • `plugins/opnd-codex/CHANGELOG.md` (+1)

merge 전략

Squash merge 권장 — 2 commits → 1 commit `docs(exploration): Sprint 3` 로 main history clean.

…on 부재 발견 → 다음 sprint plan)

## Sprint 3 boundary 조정

원 의도: suminerProxy HIGH 의 가장 작은 fix (6871973 CODEX_EVENTS_RAW=0 raw payload strip,
1일 추정) cherry-pick 후 PR + merge.

실제 발견: 본 fork (opnd-io) 에 `appendJobEvent` / `resolveJobEventsFile` / `events.ndjson`
foundation 자체가 없음 (grep 결과 0). 6871973 은 foundation 의존 → 단독 port 불가능.

## 본 PR 산출물

`docs/exploration/2026-05-28-suminerProxy-cherry-pick-plan.md` 신규:

### suminerProxy HIGH 6건 dependency graph
- c30b664 (foundation: appendJobEvent / resolveJobEventsFile)
- a3f4181 (의존 c30b664: normalizeNotification + on-notification hook)
- 9332c29 (의존 c30b664 + a3f4181: events 서브커맨드 + stall watchdog)
- 4baaf19 / 6871973 / 30f3a26 (각각 foundation 의존)

### Port plan
- **Phase 1 — Foundation (3-4일)**: 1a c30b664 → 1b test → 1c a3f4181 → 1d 9332c29
- **Phase 2 — Application (1-3일)**: 2a 6871973 (CODEX_EVENTS_RAW=0, 0.5d) / 2b 4baaf19 (token usage, 1d) / 2c 30f3a26 (push mode UX, 2-3d)

### Apache 2.0 attribution 절차
- NOTICE: `Cherry-picked from suminerProxy/codex-plugin-cc commits ... (Apache 2.0)`
- 각 commit message: `Cherry-picked from suminerProxy/codex-plugin-cc#{sha}`
- plugin.json contributors[]: suminerProxy 추가
- suminerProxy license 확인 (gh api)

### 다음 actor (사용자 결정)
1. suminerProxy fork license 확인
2. NOTICE + plugin.json attribution 사전 commit
3. Phase 1 1d (c30b664 port) 시작 — 가장 작은 단위

## Sprint 3 의 lesson learned

actual cherry-pick 의 prerequisite 확인이 plan 단계에서 누락된 사례. evaluation report
(2026-05-28-suminerProxy-fork-evaluation.md) 의 "HIGH cherry-pick 강력 권고 6건" 표현이
dependency graph 미명시 → 본 sprint 진입 후 foundation 부재 발견.

CLAUDE.md (toolkit) 의 quality-review-agent Section F (Document Count Consistency) 와 같은
family: doc 의 "cherry-pick 가능" 표기가 실제 codebase 의 prerequisite 확인 없이 작성될 위험.

## scope discipline

본 Sprint 3 = plan doc 만. actual cherry-pick (Phase 1 foundation + Phase 2 application)
은 별 sprint — 1주+ 추정. CLAUDE.md § Scope Discipline 정합.
@tgkim-openerd
tgkim-openerd merged commit e2bc3bd into main May 28, 2026
@tgkim-openerd
tgkim-openerd deleted the chore/sprint-3-suminerProxy-raw-strip-2026-05-28 branch May 28, 2026 14:47
tgkim-openerd added a commit that referenced this pull request May 28, 2026
…ne + telemetry UX + Windows fixes (#10)

## Version bump 2.1.0 → 2.2.0 (semver minor — additive only, BREAKING 없음)

- package.json / package-lock.json / plugins/opnd-codex/.claude-plugin/plugin.json / .claude-plugin/marketplace.json 4 file version sync (scripts/bump-version.mjs 2.2.0)

## CHANGELOG release entry — 2.2.0 (2026-05-28)

본 release 의 main commits (9 PR squash):
- #1 daily-evolve pipeline Phase 0~6 + 1.5a + budget
- #3 /analyze Recommendations + /doc-sync + PII redact
- #4 broker false-negative 해소 (BROKER_BUSY_RPC_CODE + timeout 분기)
- #5 Phase A telemetry UX + setup advisory + verified-no-change
- #6 Phase B suminerProxy eval + upstream classification
- #7 Sprint 1 upstream comment body 8건
- #8 Sprint 2 openai#331 + openai#333 fix + 6 plan
- #9 Sprint 3 suminerProxy cherry-pick plan

## semver minor 정합

모두 additive (BREAKING 없음):
- 신규 daily-evolve pipeline (별도 commands/skills, 기존 영역 안 건드림)
- 신규 HEALTH_STATUS.TRANSIENT enum (existing 5 enum 보존)
- 신규 parseReviewArgv() (기존 parseArgs/parseCommandInput 보존)
- 신규 SELF_FORKS Set (fork-research 의 fork list filter — false-positive 제거만)
- 신규 inspectPluginHomeFreshness() + pluginHomeAdvisory field (additive)
- 신규 isUsageLimitError / annotateUsageLimitError (별도 helper)
- 기존 isStaleAuthCacheError pattern 확장 (backward compatible)
- broker busy / timeout 분기 추가 (catch fallback 보존)
- Windows process.mjs cmd.exe 래핑 (behavior change 가능성, e2e 검증 미완 — fork-cover 표기)

## marketplace install 즉시 가능

본 commit + 후속 push + main merge + tag v2.2.0 + gh release 후:

```bash
/plugin marketplace add opnd-io/opnd-codex-plugin
/plugin install opnd-codex@opnd-codex-plugin
/reload-plugins
/opnd-codex:setup
```

marketplace.json source = ./plugins/opnd-codex (main branch HEAD) → 사용자 install 시 v2.2.0 모든 변경 즉시 포함.

## 다음 sprint backlog (Unreleased)

- suminerProxy NDJSON event stream foundation cherry-pick (Phase 1, 3-4d)
- upstream HIGH port 6건 (openai#330 openai#345 openai#350 openai#349 openai#336 openai#295)
- quality-review-agent frontmatter description "3 영역 → 6 영역" (classifier 차단, 사용자 인가 후)
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.

1 participant