Note: This page is reproduced verbatim from the project's Korean-language source documentation. No English version of this document exists in the source repository yet — only the top-level README has an English translation.
User Manual: Updates & Pack Operations
English summary: updates — dual channel + zero-downtime#
| Badge | Channel | How |
|---|---|---|
! |
App (binary) | Tauri updater signature verify → session guard → install/restart → pack applied + nodes auto-return |
↻ |
Pack (OS) | Zero-downtime — minisign verify → atomic transaction → live-node re-injection. No restart; sessions and daemon survive |
Checked quietly at startup and every 6 hours. If a "disk has the new version, process is
the old daemon" skew remains after reinstall, it resolves via a badge-click handover or
idle auto-handover (when there are 0 live sessions — lossless). Diagnose/repair with
cys doctor [--fix]; self-diagnose the installed build's code-signing seal with
cys doctor app-seal.
Coexists with customization: updates never destroy user-modified files — user-owned
files are preserved with the new version placed alongside as .new, system files are
preserved as .user before healing, and the ~/.cys/local/ overlay (directive append,
skill shadowing, hook trailing) is invisible to updates. Preview with cys pack-plan;
merge with cys pack-merge (3-way / AI).
The Korean-language detail follows below.
11. 업데이트#
업데이트는 두 채널이고, 상단바 Update 배지 하나로 수렴합니다. 시작 시 + 6시간마다
조용히 확인합니다.
| 배지 | 뜻 | 동작 |
|---|---|---|
! |
앱(바이너리) 업데이트 | 클릭 → 라이브 세션 있으면 확인 → 다운로드·설치 → 재시작 → 팩 반영+노드 자동 복귀 |
↻ |
팩만 변경 (무중단) | 클릭 → 서명 검증 → 원자 반영 → 라이브 노드 재주입. 재시작 0, 세션·데몬 생존 |
0 |
최신 | — (확인 실패 시엔 마지막 검증 상태를 보존) |
- 재설치(rename-swap) 후 "디스크는 새 버전·프로세스는 구 데몬" 스큐가 남으면 상단바에 "데몬 vX · 앱 vY — 세션 보존 중" 배지가 뜸니다. 클릭해 교대하거나, 라이브 세션이 0이 되면 자동 교대됩니다(무손실).
- 수동 팩 업데이트:
cys pack-update --from <디렉토리>(pack.tar.gz + pack-manifest.json + .minisig). 서명·신선도·replay 검증은 전건 fail-closed입니다. - 업데이트 전 미리보기:
cys pack-plan— 무엇이 갱신/보존/치유/병합대기/정리되는지 설치 전에 표시합니다(쓰기 0). 팩을 커스텀마이즈해 쓰고 있다면 §12.7을 꿅 읽으세요 — 수정본은 파괴되지 않고.new(신버전 병치)/.user(보존본)로 관리되며cys pack-merge로 병합합니다. - 진단·수리:
cys doctor [--fix]— 팩 스쿠·stale lock·고아 소켓·훅 등록을 진단하고,--fix는 사용자 데이터·팩 본체·DB를 건드리지 않는 범위만 수리합니다.
12. CYSJavis 팩 운용#
팩은 터미널을 "멀티에이전트 회사"로 만드는 운영체계입니다. 개념은 Architecture & Philosophy §2–4 참조.
12.1 설치·구성#
cys init-pack # ~/.cys/pack 설치 (사용자 수정 파일 보존)
cys init-pack --install-hook --claude-settings ~/.claude/settings.json # (선택) Claude Code 훅 강화 주입구성: 절대지침 6(directives/ — master·worker·CSO·reviewer·RSI 학습·CEO 템플릿) ·
결정론 도구 56(bin/) · 훅 18(hooks/) · 스킬 102(skills/) · 스키마 3(schemas/) ·
설정 6(acl·agents·board-catalog·alerts-config·schedule·trusted-keys) · 비어 있는 골격
(soul.md·memory/ — 사용자가 채움).
12.2 역할 선언 부트스트랩#
프로젝트 루트에 CLAUDE.md.template를 복사해 두면, 에이전트에게 "너는 마스터다/워커다"
라고 선언하는 것만으로 부트스트랩됩니다: 해당 디렉티브+soul.md 각성 → cys claim-role →
(마스터면) 결정론 프리플라이트:
python3 "${CYS_PACK_DIR:-$HOME/.cys/pack}/bin/javis_preflight.py" --fix존재·매핑·훅 등록 검증은 이 스크립트의 출력만이 사실입니다(자연어 재추론 금지).
12.3 위임 루프 (orchestra)#
P=${CYS_PACK_DIR:-$HOME/.cys/pack}/bin
python3 $P/javis_orchestra.py check # 필수 노드 생존 결정론 확인
python3 $P/javis_orchestra.py task-prompt --task "<T>" --scope "<범위>" --success "<기준>" # 위임 티켓 생성
python3 $P/javis_orchestra.py gate-status --task "<T>" # 게이트 수렴 판정 (CONVERGED=다음 단계)
python3 $P/javis_orchestra.py next-action # 다음 액션 큐 결정론 추출12.4 보조 결정론 도구#
python3 $P/javis_route.py --request "<요청>" # fast/deliberate/slow 3단 사고 라우팅
python3 $P/javis_report.py # 진행% 결정론 산출 (todo 체크박스 산술)
python3 $P/javis_memory.py add --type <t> --name <slug> --desc "..." --body "..." # 장기기억 증류(색인 원자 동기)
python3 $P/javis_task.py checkout <id> --owner <역할> # 원자적 태스크 체크아웃 (충돌=exit 9)
python3 $P/javis_resource_gate.py check # 착수 전 자원 게이트 (0 allow / 1 soft / 2 hard)
python3 $P/javis_event.py emit <type> ... # 닫힌 enum 이벤트 방출 (미지 타입 거부)
python3 $P/javis_wakeup.py enqueue --to <역할> --task <key> --reason "..." # 코얼레싱 웨이크업 큐12.5 RSI 학습·페르소나#
cys learn # RSI 학습 루프 — 제안 생성·라운드 상태 (Control Center 학습 탭과 연동)
cys persona list-params # 노드 페르소나·운영 노브 (안전핵은 잠김)
cys persona show / set / reset12.6 pro 채널 (선택)#
cys license install / status # 서명 라이선스 설치·진단 (검증 전용)
cys pack-repair-channel # 채널 상태 진단·복구
cys pack-downgrade-to-free # pro → free 강등의 유일 경로 (명시적)12.7 커스텀마이징 — 업데이트와 공존하는 방법#
팩·앱을 자기에게 맞게 고쳐 쓰는 것은 지원되는 사용 방식입니다. 다만 어디를 고치느냐에 따라 업데이트와의 관계가 다릅니다. 원칙은 하나 — 출하 파일을 직접 고치지 말고, 사용자 전용 계층에 두면 업데이트가 절대 건드리지 않습니다.
사용자 전용 오버레이 ~/.cys/local/ (업데이트·치유·정리가 존재 자체를 모르는 영역):
| 위치 | 효과 |
|---|---|
local/directives/<ROLE>_DIRECTIVE.local.md |
역할 지침 뒤에 자동 append (예: WORKER_DIRECTIVE.local.md에 "보고는 존대말로") |
local/skills/<이름>/SKILL.md |
동명 팩 스킬을 shadowing(내 버전이 이김) · 자작 스킬 추가 |
local/hooks/<이벤트>.d/*.sh |
팩 훅 뒤에 후행 실행 (관측 전용 — 에이전트 차단 불가) |
local/notes/ |
자유 메모 영역 (USER-NOTES.md 등 — 관례상 여기에) |
단, 오버레이는 안전핵(정지 경계·복원 프로토콜·중단 스위치·운영 헌장)을 뒤집을 수 없습니다 — 해당 키워드 줄은 주입에서 자동 제외되고, 안전핵 재선언이 항상 마지막에 붙습니다. 로컬 스키은 승격 시 정적 스캔 경고(차단 아님)를 출력합니다 — 사용자 책임 영역입니다.
출하 파일을 이미 직접 고쳤다면 — 업데이트가 파괴하지 않습니다:
- user-owned 파일(디렉티브·soul.md·CLAUDE.md·schedule.json): 수정본은 절대 덮지 않고,
vendor 신버전이 나오면
<파일>.new로 옷에 병치됩니다(병합 대기). - system 파일(bin·hooks·skills 등): 무결성을 위해 vendor 본으로 치유되지만, 덮기 전에
내 수정본을
<파일>.user로 보존합니다(파괴 0).
cys pack-plan # 업데이트 전 드라이런 — 갱신/보존/치유/병합대기/정리를 미리 표시
cys pack-merge # 병합 대기 목록
cys pack-merge --file <경로> --take-new # vendor 신버전 채택
cys pack-merge --file <경로> --keep-mine # 내 수정 유지 (이번 신버전 소화)
cys pack-merge --file <경로> # diff3 3-way 자동 병합 (조상=.pristine)
cys pack-merge --file <경로> --ai # AI 3-way 병합 — 내 수정 "의도"를 신버전 위에 재적용
cys pack-merge --file skills/<이름>/SKILL.md --to-local # 스킬 수정본을 오버레이로 승격(권장)앱 번들(.app/설치 폴더) 내부 수정은 지원하지 않습니다 — 업데이트가 번들을 통채로 교체하며 코드사이닝이 깨집니다. 위 오버레이 채널을 사용하세요. 테마·키바인딩·스케줄·페르소나 노브는 각각 전용 채널(§4 테마 버튼·§12.5 persona·§8 schedule)이 이미 업데이트와 무관하게 보존됩니다.
Continue: Reference → · Back: Control Center