feat(issue-tracker): PR 랜딩 시점 잔여 작업의 티켓화 정책 (FOLLOW-UPS 슬롯) - #5
Merged
Conversation
부분 해결 PR이 이슈를 닫을 때 잔여/후속 작업이 조용히 증발하는 사각지대를 막는다. 베이스라인 테스트에서 워커 3/3이 후속 작업을 표면화는 했지만 정의된 운반 수단이 없어 각기 다른 즉흥 JSON(proposal 스키마 오용)을 발명했음을 확인. - Worker Protocol: PR을 여는 턴 종료 메시지에 FOLLOW-UPS 섹션 필수 (잔여 작업 각 1줄 + 잘린 이유, 없으면 명시적 "FOLLOW-UPS: none") - Deferral rule: 트리거에 PR 랜딩 시점 추가 + 부분 해결 PR도 티켓을 닫고 (done = landed) 잔여분은 --spawned-by <n> 새 티켓으로 이관함을 명문화 - Dispatch loop 6단계: finalize 시 FOLLOW-UPS 항목 등록 → outcome 코멘트에 후속 티켓 번호 명기 순서 규정 검증: 개정 문안으로 워커 3/3이 동일한 FOLLOW-UPS 형식으로 수렴, 오케스트레이터 2/2가 finalize→등록→코멘트 순서 준수. tests/issue-tracker 전부 통과.
SSFSKIM
marked this pull request as ready for review
July 7, 2026 10:08
SSFSKIM
added a commit
that referenced
this pull request
Jul 10, 2026
Two-tier trust (review #1, human design call): developer feedback — the server-resolved role snapshot in TRIAGE_TRUSTED_ROLES (default admin), or a stripped .env #TRIAGE_DEV_CODE body prefix — is read as instruction (R1/R4 waived: dev ideas can be born ready-for-agent, labeled source:dev-feedback); user feedback keeps the conservative gate, residual risk explicitly accepted in the Decision Log. The dev code is stripped before the body reaches the prompt or ticket so it never leaks into a public issue. The rest of the review, all fixed: - #2 R2 requires a REAL file citation (path-shaped after :line strip; unknown:12 no longer counts) - #3 R3 scans risk SYMBOLS (assertStudentAccess, supabaseAdmin, RLS, generate-plan layout fns, past_exam_problems, SUPABASE_SERVICE_ROLE_KEY) in addition to paths - #4 claim issues a lease token; writeback is lease-conditional (late writeback after reclaim throws instead of clobbering); reclaim window validated at config load; second idempotency check right before registerTicket - #5 findExisting fails closed on gh search errors - #6 ticket body temp files: mkdtemp dir, mode 0600, removed in finally - #7 TRIAGE_ENABLED checked before config parsing - #8 spec drift fixed (feedback-dispatch.ts references, two-kill-switches) p86 DDL note gains triage_lease UUID. New src/trust.ts. 91 tests green, tsc clean.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
문제
issue-tracker 정책에는 설계 시점 스코프-아웃의 티켓화 규칙(deferral rule)과 머지-시-닫힘(
Closes #N) 규정은 있었지만, PR이 이슈를 부분적으로만 해결하거나 non-blocking 후속 작업을 남기는 랜딩 시점은 사각지대였다. 베이스라인 테스트(sonnet 워커 시뮬레이션 3회)에서 워커들이 후속 작업을 표면화는 하지만 정의된 운반 수단이 없어 3가지 서로 다른 즉흥 JSON 형식(상태 전이용 proposal 스키마를"ticket":"new"로 오용)을 발명하는 것을 확인 — 실제 환경이라면 reconcile 파싱이 깨지고 후속 작업이 증발하는 경로다.변경 (skills/issue-tracker/SKILL.md만, +29/−7)
FOLLOW-UPS섹션 필수 — 잔여 작업 각 1줄 + 잘린 이유, 없으면 명시적FOLLOW-UPS: none(Hard Gate의 'silence is not N/A' 관용구와 일치). JSON proposal 블록은 상태 변경 전용임을 명시.--spawned-by <n>새 티켓으로 이관, outcome 코멘트가 후속 티켓을 명기.검증 (writing-skills RED→GREEN)
--spawned-by등록→코멘트 순서 준수tests/issue-tracker/test-board-scripts.sh전부 통과 (스크립트 무변경)