세션 간 맥락을 연결해야 할 때. — MUST TRIGGER: 세션 시작 시 NOVA-STATE.md 읽기, 커밋 후 상태 갱신, 스프린트 전환 시.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add TeamSPWK/nova --skill context-chain --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Context Chain?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/teamspwk-context-chain)More formats (shields.io, HTML) on the badges page.
---
name: context-chain
description: "세션 간 맥락을 연결해야 할 때. — MUST TRIGGER: 세션 시작 시 NOVA-STATE.md 읽기, 커밋 후 상태 갱신, 스프린트 전환 시."
description_en: "Use when session-to-session context must carry over. — MUST TRIGGER: reading NOVA-STATE.md on session start, updating state after commit, or on sprint transitions."
user-invocable: false
---
# Nova Context Chain
## 적용 규칙 (on-demand 로드)
- `docs/nova-rules.md §8` 세션 상태 유지 (Known Gaps 필수, 즉시 업데이트 트리거, 커밋 전 일괄 갱신)
- `docs/nova-rules.md §10` 관찰성 계약 — NOVA-STATE(사람용) × JSONL(기계용) 역할 분담
세션이 끊겨도 작업 맥락이 유지되도록 한다. `NOVA-STATE.md`를 단일 진입점으로 사용한다.
> 외부 대안 비교: `docs/comparison/context-chain-vs-external.md` — Nova vs claude-mem(vector DB)·Continuous-Claude-v3(ledger+handoffs) 차별점 표.
## 역할 분담: NOVA-STATE(사람용) × `.nova/events.jsonl`(기계용) — v5.44.0+ 재정의
| 기록 | 용도 | 수명 | 손편집 책임 |
|------|------|------|-------------|
| `NOVA-STATE.md` 본문(Current/Goal/Phase/Risks/Refs) | **사람·AI가 읽는 현재 상태 스냅샷** | 프로젝트 생애 | AI/사용자 직접 편집 (작은 영역, 트림 불필요) |
| `NOVA-STATE.md` v3 marker 영역 | **자동 렌더 — Active Tree + 최근 work-item 활동** | 프로젝트 생애 | 손편집 금지 (`scripts/registry-render-state.sh` 자동 갱신) |
| `.nova/events.jsonl` | **활동 시계열 단일 진실원** — 11 타입 × timestamp | rotation (10MB/5 파일/30일) | `hooks/record-event.sh` 자동 (AI 호출 X) |
**핵심 원칙 (v5.44.0+)**:
- **시계열 진실원은 events.jsonl 하나.** NOVA-STATE.md의 Recent Activity 표 / Recently Done 표는 v3 marker가 있으면 자동 렌더, 없으면 사용자 손편집 영역(자연 안정화).
- **AI는 STATE 본문 스냅샷만 손편집** — Current/Goal/Phase/Refs/Risks. 시계열 표에 행 추가 X.
- **트림 의무 없음.** 본문 스냅샷은 본질적으로 작고, marker 영역은 스크립트가 상수 크기로 유지.
**KPI 집계**: `scripts/nova-metrics.sh`가 JSONL을 집계하여 `/nova:next`가 표시. NOVA-STATE.md는 수치 해석/맥락 역할.
## 세션 시작 프로토콜
1. 프로젝트 루트에 `NOVA-STATE.md`가 있으면 읽고 현재 상태를 파악한다
- Current → 지금 뭘 하고 있었는지
- Tasks → 진행 중/대기 중인 작업 (Status: todo/doing/done)
- Blocker → 막혀 있는 것이 있는지
- Refs → 관련 설계/검증 문서
2. `NOVA-STATE.md`가 없으면 다음을 스캔하여 상태를 추론한다:
- `git log --oneline -10` — 최근 작업 방향
- `docs/plans/`, `docs/designs/` — 진행 중인 설계
- `docs/verifications/` — 최근 검증 결과
- 추론 결과로 `NOVA-STATE.md`를 자동 생성한다
## 자동 갱신 트리거 (이벤트 기반) — v5.44.0+ 재정의
| 이벤트 | NOVA-STATE.md 손편집 (AI/사용자) | 자동 기록 |
|--------|--------------------------------|----------|
| 작업 시작 | Tasks에 행 추가 (Status: doing) | — |
| git commit | 관련 Task의 Status 업데이트 | `hooks/record-event.sh` (commit 이벤트) |
| `/nova:plan` 완료 | Current Goal/Phase, Refs Plan 경로 | events.jsonl + marker 자동 렌더 |
| `/nova:design` 완료 | Phase → building, Refs Design 경로 | events.jsonl + marker 자동 렌더 |
| `/nova:deepplan` 완료 | Phase → planning, Refs Plan 경로 | events.jsonl + marker 자동 렌더 |
| `/nova:run` 완료 | Phase 갱신 (PASS→done, FAIL→building), Tasks 제거 | events.jsonl + marker 자동 렌더 |
| `/nova:auto` 완료 | (필요 시) Current/Phase 정리 | events.jsonl + marker 자동 렌더 |
| `/nova:review` 완료 | Refs의 Last Verification | events.jsonl + marker 자동 렌더 |
| `/nova:check` 완료 | Refs의 Last Verification | events.jsonl + marker 자동 렌더 |
| `/nova:ux-audit` 완료 | (Critical 있으면) Known Risks 추가 | events.jsonl + marker 자동 렌더 |
| 작업 완료 | Tasks에서 제거 | events.jsonl (work_item_transitioned) |
**v5.44.0+ 단일 진실원 모델**: AI는 NOVA-STATE.md의 시계열 영역(Recent Activity 표, Recently Done 표)에 직접 행을 추가하지 않는다. 시계열은 `hooks/record-event.sh`가 `.nova/events.jsonl`에 자동 기록 + Stop hook이 `scripts/registry-render-state.sh`로 v3 marker 영역을 자동 갱신. 8개 진입점은 본문 스냅샷(Current/Phase/Refs/Risks)만 손편집한다.
**v3 marker 영역**: NOVA-STATE.md의 `<!-- nova:registry-rendered:start -->` ~ `<!-- nova:registry-rendered:end -->` 사이는 `scripts/registry-render-state.sh`가 자동 렌더한다. **손편집 금지**. work-item index는 `.nova/work-items/index.json`이 진실원. v2/v1 STATE(marker 부재)는 자동 렌더 silent skip — 시계열 영역이 빈 채로 유지되며 사용자가 활동을 보려면 `/nova:status` HTML 대시보드(events.jsonl 기반) 사용.
## Last Activity 포맷
NOVA-STATE.md의 Last Activity는 **반드시 1줄**로 기록한다:
```
## Last Activity
- /nova:review → PASS — src/api/ | 2026-04-02T15:30:00+09:00
```
4줄(커맨드/시각/결과/대상) 포맷은 사용하지 않는다.
## 아카이빙 규칙 — v5.44.0+ 재정의
- **시계열 아카이브는 events.jsonl rotation이 담당** (10MB/5 파일/30일). AI는 시계열 표를 트림하지 않는다.
- **본문 스냅샷 영역**(Current/Phase/Refs/Risks)은 본질적으로 작음 — 명시적 임계값 없음. 사용자가 가독성을 위해 필요 시 직접 정리.
- 검증 상세는 `docs/verifications/`에 보존됨 — STATE에서 지워도 유실 없음.
## Known Gaps 해결 표기 규칙 — v5.44.0+ 재정의
- 해결된 Known Gaps 항목은 **행을 삭제한다** (취소선 처리 금지)
- 해결 사실은 다음 진실원에 자동 보존됨 — STATE 시계열 표에 옮기지 않는다:
- `git log` (해결 커밋 + 메시지)
- `.nova/events.jsonl` (`work_item_transitioned` to=resolved, 자동 기록)
- `.nova/work-items/index.json` (v3 registry — status 갱신)
- 규칙 목적: Known Gaps가 줄어들지 않으면 실제 해결 여부 판단 불가. 진실원은 분리, NOVA-STATE는 *현재 미해결만* 노출.
## 세션 종료 프로토콜
1. `NOVA-STATE.md`가 최신 상태인지 확인한다
2. 미완료 작업이 있으면 Blocker 필드에 사유를 기록한다
3. Tasks의 todo 항목을 다음 세션에서 바로 실행할 수 있는 수준으로 구체화한다
## Context Reset 전략
- 스프린트 간 새 서브에이전트로 컨텍스트 오염 방지
- `NOVA-STATE.md` + Design 문서로 새 세션에서 상태 복원
- 이전 auto-handoff 핸드오프 메커니즘은 더 이상 사용하지 않는다 — `NOVA-STATE.md`가 대체
## 세션-수준 압축은 별도 스킬 (v5.21.0+, v5.44.0 갱신)
본 스킬은 *상태-수준* 데이터 모델(events.jsonl 단일 진실원 + NOVA-STATE 본문 스냅샷)을 다룬다. Claude Code 세션 컨텍스트 창 자체의 `/clear`·`/compact` 시점은 `skills/strategic-compact/SKILL.md`. 둘은 별도 트리거·별도 효과 — 토큰 압박은 `/clear`·`/compact`로 해소.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!