프로젝트 재개 (Resume project)
세션이 열리면 이전 세션에서 중요한 정보가 여러 곳에 흩어져 있습니다. 이 스킬은 그 길을 되짚습니다: 정보를 수집하고, 가장 최신 정보와 대조하여 몇 줄로 사용자에게 알려줌으로써, 사용자가 아무것도 기억하지 않아도 오늘 무엇을 작업할지 결정할 수 있게 합니다.
네 가지 요소가 작동 방식을 결정합니다:
- 읽기 전용. 파일, 노트, 데이터베이스, 메모리에 기록하지 않습니다. 따라서 각 단계마다 허가를 구하지 않습니다: 읽기는 아무것도 바꾸지 않습니다. 사용자 컴퓨터에서 파일을 세션으로 복사하여 읽는 것은 읽기에 해당합니다. 유일하게 허용된 쓰기는
git fetch --prune이며,references/claude-code.md에서 명시하는 경우에만 가능합니다. 세션에 새 저장소에 대한 접근 권한을 부여하는 것은 단순한 읽기가 아닙니다: 임의로 수행하지 마세요(0단계의 GitHub 행 참조). 다른 플러그인의 훅이 세션 열릴 때 기록할 수 있습니다(메모리 통합, 로그 저장): 이는 이 스킬이 쓰는 것이 아니며, 읽으려는 소스를 변경하지 않는 한 언급할 필요가 없습니다. - 파일을 읽고, 워크플로우를 실행하지 않습니다. 여러 스킬은 실행될 때 텔레메트리나 상태를 기록하고, 폴더를 만들고, 자체 출력 형식을 요구하거나 자체 질문으로 끝납니다. 스킬이 데이터를 저장하는 위치를 알고 있다면 해당 파일을 직접 읽으십시오. 다른 방법이 없을 때만 스킬을 실행하고, 그 경우 데이터를 가져오고, 마지막 질문과 형식을 건너뛰고, 쓰기 단계를 중단하십시오.
- 프로젝트 지침이 우선합니다. 프로젝트 지침,
CLAUDE.md또는 사용자 기본 설정에 상태 위치, 읽을 수 있는 폴더, 충돌 해결 방법, 하루 계획 방법이 명시되어 있다면, 이 스킬보다 우선합니다. - 질문과 인계로 끝납니다. 세션 종료 스킬(예: wrap-up)은 세션을 보관할 수 있다고 말하는 것으로 끝나지만, 이 스킬은 오늘 무엇을 작업할지 묻고 답변을 전달하는 것으로 끝납니다(6단계).
0. 인벤토리: 실제로 읽을 수 있는 것
환경 이름에서 소스를 선택하지 마십시오. 동일한 세션이 클라우드, claude.ai 프로젝트 내부, 사용자 컴퓨터에 동시에 연결될 수 있습니다. 무엇이든 읽기 전에, 세션이 가진 도구(지연된 도구도 포함, 검색하여)를 살펴보고 다음 기능 중 어떤 것이 있는지 기록하십시오:
| 기능 | 식별 방법 | 열리는 소스 |
|---|---|---|
| 저장소 내 터미널 | 작업 폴더가 사용자 저장소 중 하나이거나, 연결된 폴더에 저장소가 있는 사용자 컴퓨터의 터미널(device_bash 등)이 있음 | Git 및 원격(C), references/claude-code.md 포함 |
| 터미널 없는 컴퓨터 파일 | 터미널 없이 컴퓨터에서 파일을 나열하고 복사하는 도구 | 볼트(D), 세션 로그(B, 설정이 기록하는 경우), 핸드오프(E, 연결된 폴더에 있는 경우), 연결된 폴더에 있는 저장소의 CLAUDE.md(D). 로컬 git은 제외 |
| 저장소 내 터미널 없는 GitHub | 세션에 설치된 gh 또는 세션에 저장소를 추가하는 도구 | 원격의 풀 리퀘스트, 브랜치, 커밋(C2) |
| 프로젝트 관리자 | Notion 커넥터 또는 다른 프로젝트 관리자, 그리고 프로젝트를 보유한 데이터베이스나 페이지를 명시하는 지침 또는 CLAUDE.md | 상태, 다음 작업 및 태스크(A) |
| 이전 채팅 | 채팅을 검색하거나 나열하는 도구 | 채팅(F), references/claude-ai.md 포함 |
| Claude Code 세션 | 데스크톱 앱의 세션을 나열하거나 검색하는 도구(list_sessions, search_session_transcripts, list_events 등) | 이전 세션(F2), references/claude-code.md 포함 |
| 게시된 아티팩트 | 게시된 아티팩트, 페이지 또는 문서를 나열하는 도구(Artifact with list 등) | 저장소 외부 전달물(I) |
| 메모리 | 컨텍스트 내 메모리 또는 메모리 도구 | 메모리(G) |
| claude.ai 프로젝트 | 컨텍스트 내 프로젝트 지침 또는 파일, 또는 프로젝트 도구 | 지침 및 파일(H) |
참조 문서는 git(references/claude-code.md), claude.ai 채팅(references/claude-ai.md), 훅이 기록하는 프로젝트별 세션 로그(references/session-log.md)에 대한 세부 정보를 제공합니다. 보유한 기능에 의해 열리는 것만 읽고, session-log.md는 설정이 그러한 로그를 기록하는 경우에만 읽으십시오. 참조 문서에 어떤 것이 없다고(볼트, 디스크, git) 나와 있고 인벤토리에 있다고 나와 있으면 인벤토리가 우선합니다. 참조 문서가 없으면 이 파일의 내용을 따르십시오.
세션에 지연된 도구가 많으면 인벤토리를 위해 모두 로드하지 말고, 표의 단어(notion, session, transcript, chat, memory, project, repository, artifact)를 검색하고 사용할 도구에 대해서만 스키마를 로드하십시오. gh는 세션 도구가 아니라 프로그램입니다: gh auth status로 확인하십시오. 지연된 도구의 이름이 이미 컨텍스트에 표시되어 있으면 해당 목록에서 선택하고 해당 도구만 로드하고 검색하지 마십시오.
이 파일의 소스 문자(AI)는 H)와 다릅니다: 여기서 E는 핸드오프이고, 해당 참조에서 E는 claude-code.md의 문자(ACLAUDE.md입니다. 이 파일이 claude-code.md의 범주를 인용할 때는 이름으로 인용합니다: 문자로 찾지 말고 이름으로 찾으십시오.
허용된 폴더. 사용자가 세션에 연결했거나 지침이 읽도록 허용한 폴더만 읽고, 세션이 실제로 도달할 수 있는 폴더만 읽으십시오. 재개를 위해 이러한 폴더에 대한 접근 권한을 요청하지 마십시오. 도달할 수 없는 모든 것은 단일 "알림" 줄에 넣으십시오:
- 연결된 폴더 외부의 유용한 소스(예: 터미널이 없는 세션의 홈 폴더에 있는
~/.gstack) - 지침이 읽도록 허용했지만 연결되지 않은 폴더(예: 프로젝트 자체 폴더). 요약에 나타나는 프로젝트에 속하는 폴더가 있으면, 해당 프로젝트에 대해 알려진 모든 것은 프로젝트 관리자가 말하는 것이라고 덧붙이십시오.
1. 어떤 프로젝트인지
- 저장소, 폴더 또는 이름. 세션이 저장소에 있으면 그것이 프로젝트입니다. 사용자가 이름을 지정하면, 프로젝트 관리자(A)와 볼트(D)에서 대소문자를 구분하지 않고 메모리가 제공하는 별칭도 시도하여 찾으십시오: 이름이 일치하지 않을 수 있으며 프로젝트가 이름 변경 중일 수 있습니다.
- 우산 프로젝트. 컨텍스트가 여러 프로젝트가 있는 공간인 경우(claude.ai 프로젝트, 프로젝트 데이터베이스가 있는 프로젝트 관리자, 여러 폴더가 있는 볼트) 사용자가 하나를 지정하지 않으면 조용히 선택하지 마십시오. 최근 활동이 가장 많은 프로젝트와 지침이 단기 우선순위로 표시한 프로젝트로 다중 프로젝트 요약(4단계)을 작성하십시오.
- 사용자가 당연하게 여기는 것. 시작 메시지가 상태(완료되지 않은 git 작업, 브랜치, PR, 배포)를 주장하면, 소스를 읽자마자 확인하십시오: 빠른 git 스냅샷, GitHub, 또는 세션 로그가 있다면 그것. 일치하지 않으면 요약 전에 각각이 말하는 내용과 함께 한 줄로 말하십시오. 명명된 것이 다른 프로젝트(다른 폴더, 저장소 또는 노트)에 속하면, 더 읽기 전에 어느 것을 재개하는지 물으십시오; 사용자가 없는 세션에서는 작업 폴더의 프로젝트를 계속 진행하고 요약 상단에 그렇게 말하십시오.
- 재개할 내용 없음. 노트, 로그, 채팅, 커밋 없음: 한 문장으로 말하고 사용자가 원하는 대로 6단계로 이동하십시오.
동일한 프로젝트가 소스 간에 일치되는 방법
프로젝트 관리자, 볼트, 그리고 세션 로그가 있다면 각각 고유한 방식으로 프로젝트 이름을 지정합니다. 다음 순서로 키로 일치시키고, 단순한 이름으로 일치시키지 마십시오:
- 경로. 설정이 세션 로그를 기록하면, 해당 경로를 볼트 노트(D)의 머리말에 있는
path:필드와 대조합니다("경로로 일치"references/session-log.md에 설명됨). - 프로젝트 관리자 링크. 노트를 가리키는 프로젝트 관리자 필드(예: Notion의 "Obsidian note" 필드)를 노트의 폴더와 대조합니다.
- 이름. 대소문자 구분 없이 메모리의 별칭을 사용합니다.
프로젝트 관리자의 프로젝트가 노트에 링크되지 않았지만 노트가 존재하는 경우(경로 또는 이름으로 일치), "알림"에 한 줄로 말하십시오.
2. 소스, 읽기 순서
먼저 각 노트의 가치(실제로 일어난 일과 시기)를 알려주는 것, 그 다음 무엇이 다음인지 알려주는 것, 마지막으로 이유를 알려주는 것.
B. 세션 로그, 선택 사항. 설정이 기록하는 경우 references/session-log.md를 따르십시오.
C. Git 및 원격. 저장소 내 터미널이 있는 경우에만. "빠른 git 스냅샷" 및 references/claude-code.md의 "git 및 원격의 실제 상태" 범주를 따르십시오.
C2. 터미널 없는 GitHub. 로컬 소스가 알 수 없는 것을 확인하는 데 사용하십시오: 브랜치가 푸시되었는지, 풀 리퀘스트가 있는지, 병합되었는지. owner/repository는 프로젝트의 볼트 노트(url: 필드 또는 github.com/... 줄), CLAUDE.md, 또는 세션 로그가 있다면 Merge pull request #N from <owner>/... 커밋에서 가져오십시오.
- 먼저 세션이 읽기 접근 권한이 있는지 확인하십시오:
gh api "repos/<owner>/<repo>/pulls?state=all&sort=updated&direction=desc&per_page=10". REST API(gh api repos/...)를 사용하십시오:gh pr list는 GraphQL을 항상 사용할 수 없기 때문에 실패할 수 있습니다. 각 PR에는created_at과merged_at이 있습니다: 병합된 시점은 생성일이 아니라merged_at으로 제공됩니다. - 응답이 오면 브랜치(
repos/<owner>/<repo>/branches)와 메인 브랜치의 최신 커밋(repos/<owner>/<repo>/commits?per_page=5)도 읽으십시오. 이를 통해 다른 소스가 명명한 병합되지 않은 브랜치는 "공개 PR #N 있음", "병합됨" 또는 "원격에 없음"이 됩니다. - 메인 브랜치의 CI도 읽으십시오(
repos/<owner>/<repo>/actions/runs?branch=<main>&per_page=1). 마지막 실행이 실패하면 "보류"에 넣고, 통과했으면 언급하지 말며, 실행이 전혀 없으면(저장소에 CI가 없음) 언급하지 마십시오. - 저장소가 세션에 대해 활성화되지 않았다고 응답하면 직접 추가하지 마십시오: 저장소에 대한 접근 권한을 부여하는 것은 단순한 읽기가 아닙니다. "알림"에 기록하고 5단계에서 옵션으로 제공하십시오("GitHub에서 확인"). 사용자가 없는 세션에서는 건너뛰십시오.
A. 프로젝트 관리자. 지침이 상태, 우선순위 또는 다음 작업이 프로젝트 관리자(Notion 또는 다른 것)에 있다고 말하면 읽으십시오: 그것이 다음 작업의 소스입니다. 데이터베이스 주소는 지침이나 CLAUDE.md에서 가져오고, 이미 가지고 있으면 이름으로 검색하지 마십시오.
- Notion에서: 데이터베이스 스키마를 가져오고 행을 링크(
url), 이름, 영역 또는 브랜치, 상태, 우선순위, 주요 날짜, 다음 작업, 노트와 함께 쿼리하십시오. - 보관됨. Notion이 보관한 행과 데이터베이스에 자체 체크박스 또는 상태(예: "보관됨" 체크박스 또는 "마감됨" 상태)가 있는 경우 설정된 행도 제거하십시오.
- 편집 날짜. 쿼리는 마지막 편집 날짜를 반환하지 않습니다. 다른 소스와 대조할 행의 페이지를 열고, 우산 프로젝트에서는 지침이 단기 우선순위로 표시한 프로젝트의 페이지도 열고, 로그나 노트가 없더라도 마찬가지입니다: 이렇게 하면 코드가 없는 프로젝트도 "중단한 위치"에 포함될 수 있습니다.
- 대량 편집. 동일한 데이터베이스의 여러 페이지가 몇 초 간격으로 편집 날짜를 가지면, 이는 모든 페이지에 한 번에 적용된 변경(새 필드, 가져오기, 템플릿)이며 해당 프로젝트에 대한 작업이 아닙니다. 해당 날짜를 활동으로 사용하지 마십시오: 다른 소스가 날짜를 제공하지 않는 한 해당 프로젝트는 날짜 없는 상태로 두십시오.
- 태스크. 지침이 태스크 데이터베이스를 명명하면 스키마를 가져오고, 기한이 지났거나 향후 7일 이내에 마감되는 미완료 태스크를 쿼리하십시오. 요약에 나타나는 프로젝트의 태스크만 계산합니다: 일시 중지, 마감, 또는 요약 외부 프로젝트의 태스크는 기한이 지났더라도 보류 중이 아닙니다. 해당 프로젝트 항목 아래 "보류"에 날짜와 함께 넣습니다. 다음 작업이 없는 우선순위 프로젝트의 경우, 날짜 필터 없이 공개 태스크도 쿼리하십시오(아래 참조).
- 프로젝트가 없는 태스크. "보류"에 넣지 마십시오. 그러나 "알림" 경고와 일치하는 태스크가 있으면(예: 프로젝트가 자체 노트에 링크되지 않을 때 노트를 연결하는 태스크), 해당 경고에서 태스크를 명명하고 새로운 발견으로 제시하지 마십시오.
- 다음 작업이 없는 행은 보류 항목이 아닙니다: 임의로 만들지 마십시오. 프로젝트가 우선순위이면 "보류"에 "다음 작업 없음"으로 넣으십시오. 공개 태스크(날짜 유무에 관계없이)가 있으면 첫 번째 태스크(가장 가까운 날짜의 것, 또는 첫 번째 날짜 없는 것)를 명명하십시오: "다음 작업 없음; 공개 태스크: <태스크>". 이는 프로젝트 관리자의 데이터이지 제안이 아닙니다. 우선순위는 지침이 단기 우선순위로 표시한 것과 장기 우선순위 중 첫 번째를 의미합니다. 지침이 우선순위를 설정하지 않으면 프로젝트 관리자의 가장 높은 우선순위입니다. 프로젝트 관리자가 "높음"이라고 말하는 것만으로는 지침이 다른 것을 설정할 때 충분하지 않습니다.
- 맞지 않는 경우. "보류"는 최대 5개 항목입니다. 포함할 프로젝트가 더 있으면 단기 프로젝트와 다음 작업 또는 반쯤 완료된 것이 있는 프로젝트를 먼저 넣고, "다음 작업 없음"만 추가할 우선순위 프로젝트는 하나의 "알림" 줄로 그룹화하십시오: "다음 작업 없음: X, Y, Z".
- 프로젝트 관리자의 상태가 다른 더 최신 소스와 명백히 모순되는 경우(예: 프로젝트 관리자의 "아이디어"와 작업이 완료된 볼트 노트), 두 날짜와 함께 "알림"에 말하십시오.
D. 옵시디언 볼트. 볼트의 프로젝트 폴더에 있는 프로젝트 노트(지침이나 CLAUDE.md가 일반적으로 말함; PARA 스타일 볼트에서는 예를 들어 2 Projects/<project>/)와 updated: 필드. path: 필드가 있으면 일치 키입니다(1단계 참조). 헤더와 최신 항목을 읽고, 전체 노트를 읽지 마십시오. 읽는 데 스킬이 필요하지 않습니다. Claude Code에서 참조는 언제 볼트 스킬을 실행하고 언제 실행하지 않을지 말합니다.
- 저장소의
CLAUDE.md. 도달할 수 있으면(터미널 또는 저장소 폴더가 연결됨), 현재 상태 및 보류 섹션("Current state", "Pending")이 로컬에서 사용 가능한 가장 신뢰할 수 있는 보류 목록입니다; 해당 섹션만 읽으십시오. 터미널로, fo…
[이하 생략됨 - 전체 마크다운은 원본에 truncate 처리됨]