ticket-bridgelisted
Install: claude install-skill kimsanguine/hplan
## Core Goal
GitHub Issues / Linear / Jira(system of record)와 hplan의 닫힌 실행 레이어(`sprint`의 `.track/`)를 잇는다.
ticket-bridge는 **번역기**다 — 추정치나 진척을 *생성*하지 않고, sprint/conductor의 산출물을 티켓 시스템 포맷으로 전달하거나 그 반대로 변환만 한다.
| 모드 | 책임 | 입력 → 출력 | LLM |
|---|---|---|---|
| `--mode pull` | 이슈 → WBS 태스크 후보 | `list_issues` → `harness/ticket-import.md` | ✅ body 분해만 |
| `--mode estimate` | `predicted.json` p50/p90 → 이슈 코멘트 | `.track/predicted.json` + `ticket-map.json` → `add_comment` | ✅ 산문만 |
| `--mode status` | `.track/` + git/PR/CI/review 상태 → 이슈 코멘트 | `actual_log.jsonl` + `list_commits`/`pull_request_read` → `add_comment` | ✅ 산문만 |
| `--mode push` | WBS 태스크 → 이슈 생성 | `harness/ticket-import.md` + `ticket-map.json` → `create_issue` | ✅ 제목/설명 생성만 |
> **기본값**: `--mode` 미명시 → fail loud + 모드 목록 안내. auto-run 금지.
---
## Rule 5 준수 경계
| 작업 | LLM 사용 | 근거 |
|---|---|---|
| Issue body → 태스크 후보 분해 (pull) | ✅ 분류 | 자연어 → sub-task 분류. sprint WBS와 동일 성격 |
| 코멘트 산문 생성 (estimate/status) | ✅ 자연어 생성 | Rule 5 허용 영역 |
| **size 라벨 → complexity bucket 매핑** | ❌ **결정론 lookup** | §매핑 규칙 순수 테이블 |
| **complexity → baseline percentile 전달** | ❌ **결정론** | predicted.json 값 직접 인용 |
| **태스크 ↔ 이슈 매칭** | ❌ 결정론 | `harness/ticket-map.json` 명시 매핑 lookup |
| **commit/PR ↔ 태스크 매칭** | ❌ 결정론 | ticket-map의 issue 번호 → commit/branch 정규식 |
| **중복 코멘트 감지** | ❌ 결정론 | 마커 문자열 + 태스크 ID grep |
> **자체 점검:** 라벨 매핑·estimate 전달·태스크 매칭에서 LLM 호출이 감지되면 즉시 fail — Rule 5 위반.
---
## Trigger Gate
### Use This Skill When
- "이 이슈��� 스프린트 계획에 넣어줘" → `--m