이 노트에 대하여

이 노트는 nixos-config 담당자가 지금 무엇을 맡고 무엇을 맡지 않는지 기록하는 자리다. 이 집이 약속하는 것은 정확히 기계 까지이며, 코퍼스·인덱스·비밀은 일부러 선언 밖에 둔다. 그 경계를 흐리지 않는 것이 이 리포의 일이다.

히스토리

  • [2026-09-03 Thu 18:10] @claude-opus-5(claude-code, thinkpad) — GLG 지시로 이 ID를 §nixos-config 담당자 문서로 연다. 원래 이 방에 살던 비둘기 의미축 글은 2024년부터 비둘기 여기에 라는 이름으로 비워 둔 방(비둘기 — 상징의 전령이자 도시의 타자)으로 옮겼다. 첫 현재 보고 작성.
  • [2026-06-15 Mon 10:33] 수선 — 관련메타/관련노트 섹션을 canonical 순서로 분리 (당시 이 방의 주인은 비둘기 글)
  • [2026-06-15 Mon 10:06] 생성 — 비둘기 메타 노트의 의미축을 봇로그 글로 옮겨 정리 (그 글은 위 링크의 방으로 이사)

관련메타

관련노트

담당자의 큰그림과 실행 계약

독립된 사례 문서 — 합치지 않고 이웃으로 둔다

[2026-09-03 Thu] 담당자의 현재 보고 — 기계까지만 약속한다

이 집은 기억을 담지 않는다. 기억이 놓일 기계 를 선언으로 다시 세운다. flake.nixnixosConfigurationsoracle (aarch64 클라우드 VM) · nuc (홈서버) · laptop · thinkpad 넷이 있고, 어느 것이든 sudo nixos-rebuild switch --flake .#<profile> 한 줄로 선다.

지금 맡은 것

  1. 네 프로파일의 재현. hosts/ 디바이스 설정, users/junghan/ 홈매니저, modules/ 공용 모듈. 자리(디바이스) 인식이 정확성의 출발점이라 세션 시작에 ~/.current-device 부터 본다.
  2. 봇이 사는 호스트. OpenClaw 런타임은 oracle 위 docker에 산다. 업그레이드·restart·터널·pairing·스킬 배포는 run.sh 를 지나고, 상세는 ORACLE.mddocs/openclaw-gotchas.md 가 갖는다. 무엇이 사람 없이 도는가는 docs/openclaw-automations.md 가 SSOT다.
  3. 패키지 통제 3층. nix store(1층) → scripts/external-packages.sh (2층, nix가 못 담는 npm 글로벌·벤더 self-updater) → per-repo devShell(3층). 원칙은 복제 없음·한 목록·중앙 통제이고, 2층이 물리적으로 nix store 밖이라는 것을 정직한 이음새 로 문서에 박아 둔다.
  4. 디스크 회수. scripts/diskclean.sh 가 SSOT. nix.gc 만으로 store가 줄지 않는 이유(.direnv /=result= 가 GC root이고, 용량 대부분이 nix 밖)를 알고 순서를 지킨다.
  5. 커밋 안전 레일. 전역 core.hooksPath 훅이 공개 리포의 신원 용어와 모든 리포의 비밀을 막는다. 우회 플래그는 GLG가 이 세션에서 명시하지 않는 한 쓰지 않는다.

현재 경계와 남은 확인

  • 선언은 기계까지만 닿는다. 기억축이 실제로 서 있는 세 자리 — 세션 코퍼스 ~/repos/gh/session (2026-09-03 실측 3.0G), ~/org/ 노트, 비밀 SSOT ~/.env.local — 중 이 리포가 선언하는 것은 하나도 없다. syncthing도 machines/shared.nix 에서 서비스만 켜고 overrideDevices = false · overrideFolders = false 로 폴더 목록을 웹 UI에 남긴다. 의도된 경계이지만, 지금까지 AGENTS.md 는 패키지 3층에 대해서만 이 경계를 적었다. 기억축(코퍼스·인덱스·비밀)에 대해서는 아직 안 적혀 있다 — 이것이 이 리포의 다음 문서 부채다.
  • 기억축은 재현 불가능한 한 파일을 건넌다. andenken-sync-sessions.serviceEnvironmentFile=%h/.env.local 을 읽고 코퍼스 루트도 거기서 온다. 같은 파일이 이미 한 번 사고를 냈다 — 거기 박힌 export PATH= 스냅샷이 화석이 되어 home-manager의 home.sessionPath 를 통째로 덮었다.
  • 봇의 기억은 nix가 정하지 않는다. 오라클에서 봇 기억은 docker env_file 과 OpenClaw 설정이 정한다. 컨테이너 HOME=/home/node 라 호스트의 ANDENKEN_* 가 애초에 안 보인다. #5(세션 transcript memory에 sessions 소스 부재)와 #9(봇 컨테이너 dictcli 프로비저닝)가 그 층에 열려 있다.
  • 아직 어느 선언에도 없는 것. andenken-sync-sessions.timer (30분 주기)는 andenken 리포 scripts/systemd/ 에 있고 thinkpad에 미설치이며(2026-09-03 systemctl --user list-timers 실측) nixos-config에도 들어오지 않았다. 지금 켜려면 손으로 systemctl --user enable 을 쳐야 하고 그 손은 다음 기계에서 사라진다.
  • #7 OpenClaw 2026.8.1 업그레이드 판단, #3 tmux true-color는 계속 열려 있다.

담당자의 판단

재현 가능한 기계란 버릴 수 있는 기계다. flake가 하는 일은 기억을 지키는 게 아니라 기계를 하찮게 만드는 것이고, 하찮아진 기계 위에서만 코퍼스가 사람을 따라다닐 수 있다. 그래서 이 집의 성공은 커지는 것이 아니라, 어느 노트북을 잃어도 하루 안에 같은 자리로 돌아오는 상태다.

다만 이 집에 예외가 하나 있다. oracle은 버릴 수 없다. 봇들이 거기 살고, nucreal machine, not disposable 이라고 스스로 적혀 있다. 봇의 기억이 그 호스트를 떠나기 전까지 “파일이 주인”은 오라클에서만 조건부다. 이것을 약점이라 부르지 않고 경계라 부르려면, 어디까지가 선언이고 어디부터가 손인지가 문서에 적혀 있어야 한다.

자동화에 대한 이 자리의 의견은 하나다. 켜기로 한다면 손이 아니라 선언으로 켠다. 선언된 타이머는 자동화에 주인 자리를 넘기는 게 아니라, 자동화를 사람이 서명하고 되돌릴 수 있는 문서로 만드는 일이다 — nixos-rebuild --rollback 이 있는 자동화는 시스템의 것이 아니다. 설치 여부는 GLG의 선택이고 담당자가 대신 정하지 않는다.

마지막으로 이 리포가 GLG의 1KB 텍스트 하나로 존재를 재현한다 는 선언과 맺는 관계. 둘은 크기 다툼이 아니라 서로 다른 것을 재현한다. flake.lock 은 기계를 비트까지 같게 만들고도 존재를 하나도 옮기지 못하고, 1KB는 기계를 하나도 재현하지 못한 채 존재를 옮긴다. 방향은 하나다 — 기계 쪽 재현이 완전해질수록, 사람이 직접 들고 가야 할 것은 1KB 쪽으로 수렴한다. 3.0G 코퍼스는 존재가 아니라 발자국이다. 잃으면 아깝고, 잃어도 다시 걸을 수 있다.