$npx -y skills add jmstar85/oh-my-githubcopilot --skill resume-claudeIf no sessions found: > "외부 세션을 찾을 수 없습니다. .omc/ 디렉토리나 ~/.claude/projects/ 의 JSONL 파일이 존재하는지 확인해주세요."
| 1 | # /resume-claude — Resume Interrupted Claude Code / OMC Session |
| 2 | |
| 3 | ## Trigger |
| 4 | - Slash command: `/resume-claude` |
| 5 | - Keywords: "resume claude", "claude 이어받기", "이어서 작업", "rate limit" |
| 6 | |
| 7 | ## Purpose |
| 8 | Import an interrupted Claude Code or OMC session so GitHub Copilot can continue the work seamlessly. Handles both OMC (full state import) and vanilla Claude Code (lossy JSONL import). |
| 9 | |
| 10 | ## Workflow |
| 11 | |
| 12 | ### Step 1 — Detect |
| 13 | Call `omg_detect_external_session` to scan for available sessions. |
| 14 | |
| 15 | If no sessions found: |
| 16 | > "외부 세션을 찾을 수 없습니다. `.omc/` 디렉토리나 `~/.claude/projects/` 의 JSONL 파일이 존재하는지 확인해주세요." |
| 17 | |
| 18 | ### Step 2 — Compare |
| 19 | Call `omg_compare_checkpoints` to show timestamps side-by-side. |
| 20 | |
| 21 | Display to user: |
| 22 | ``` |
| 23 | 현재 OMG 체크포인트: {timestamp or "없음"} |
| 24 | 외부 세션: |
| 25 | - {source}: {timestamp} {newer_than_omg ? "← 더 최신" : ""} |
| 26 | ``` |
| 27 | |
| 28 | ### Step 3 — Confirm |
| 29 | Use `vscode_askQuestions` to confirm import: |
| 30 | |
| 31 | ``` |
| 32 | header: "resume-external" |
| 33 | question: "외부 세션을 import하시겠습니까?" |
| 34 | options: |
| 35 | - label: "{source} 세션 이어받기" |
| 36 | description: "{timestamp}, {details}" |
| 37 | recommended: true |
| 38 | - label: "취소" |
| 39 | allowFreeformInput: false |
| 40 | ``` |
| 41 | |
| 42 | If multiple sources exist, let user pick which one. |
| 43 | |
| 44 | ### Step 4 — Import |
| 45 | Call `omg_import_external_session` with the selected source. |
| 46 | |
| 47 | - If OMG checkpoint already exists and is newer, warn but allow `force: true` |
| 48 | - Previous checkpoint is automatically backed up to `session-checkpoint.previous.json` |
| 49 | |
| 50 | ### Step 5 — Summarize |
| 51 | Display the imported checkpoint summary: |
| 52 | |
| 53 | ``` |
| 54 | ✅ {source} 세션 import 완료 |
| 55 | |
| 56 | 📋 Import 결과: |
| 57 | - 소스: {source} (세션 {session_id}) |
| 58 | - Import된 파일: {imported_files count}개 |
| 59 | - 충돌 건너뜀: {conflicts count}개 |
| 60 | |
| 61 | 📝 마지막 작업 요약: |
| 62 | {imported_summary} |
| 63 | |
| 64 | 📁 수정된 파일: |
| 65 | {modified_files list} |
| 66 | ``` |
| 67 | |
| 68 | ### Step 6 — Continue |
| 69 | Ask the user what to do next: |
| 70 | ``` |
| 71 | header: "resume-next-action" |
| 72 | question: "어떤 작업부터 이어갈까요?" |
| 73 | options: |
| 74 | - label: "마지막 작업 이어서 진행" |
| 75 | recommended: true |
| 76 | - label: "PRD/Story 상태 확인" |
| 77 | - label: "수정된 파일 리뷰" |
| 78 | - label: "새로운 작업 시작" |
| 79 | ``` |
| 80 | |
| 81 | ## Error Handling |
| 82 | - If JSONL parsing fails partially: show what was extracted, note incomplete import |
| 83 | - If `.omc/` state files are corrupted: skip corrupted files, import what works |
| 84 | - If checkpoint backup fails: abort import, do not overwrite |
| 85 | |
| 86 | ## Notes |
| 87 | - OMC imports are lossless (same schema) |
| 88 | - Claude Code JSONL imports are lossy — extracts user intent, modified files, and assistant summary |
| 89 | - Checkpoint file permissions are set to 0600 for privacy |
| 90 | - The imported checkpoint includes `source_tool`, `source_session_id`, `imported_at` metadata for provenance tracking |