이 노트에 대하여

새벽 03:22에 남긴 생각을 그 자리에 완결된 글처럼 덧칠하지 않고, 08:29의 새 헤딩에서 내부링크로 다시 불렀다. 질문은 링크를 편하게 넣는 방법이 아니었다. 나중 시점의 조각만 받은 에이전트도 링크를 따라 앞선 생각을 회수할 수 있는가였다. 몇 년 전에 주워 기록해 둔 Org 내부링크 코드면 충분했고, 출처 문서가 함께 주어지자 에이전트도 별도 서버 함수 없이 같은 파일의 과거를 읽었다. 이 노트는 시간·고유명사·감각 같은 좌표를 남기는 에피파니 글쓰기의 실무적 후속편이다. 과거를 현재의 문장으로 고치지 않고, 현재에서 과거를 다시 만나는 법을 기록한다.

히스토리

  • [2026-07-18 Sat 14:57] @jain — 03:22의 미완성 생각을 08:29 내부링크로 잇고, 13:56에 에이전트가 그 시간축을 회수할 수 있는지 물은 날것을 autholog로 수선했다. 오래된 코드 기록은 실무 팁과 옛 방의 씨앗으로 보존했다.
  • [2026-07-18 Sat 08:33] 내부링크를 사용하면 편한데, 이게 에이전트가 편하게 인식되는지? 내보내기 하면 박살나지 않는지 봐야돼.
  • [2024-11-22 Fri 12:09] 내부링크 - 아. 이건 프롯 닷파일을 확인하라.

관련메타

관련노트

한 줄

과거를 완결된 글로 고치지 않는다. 새 시각에서 링크를 걸어 다시 만난다.

03:22의 진실과 08:29의 진실

새벽 03:22의 생각은 그때의 미완성 상태로 진실하다. 08:29에 다시 고민이 시작되었다면 새 결론을 03:22의 본문에 밀어 넣어 처음부터 알았던 것처럼 만들 필요가 없다. 새 헤딩을 만들고 앞선 헤딩을 링크하면 두 시각이 모두 살아남는다.

옛 자리 안에서 오탈자를 고치거나 짧게 보충하는 일까지 금할 필요는 없다. 실제 보충 시각을 [2026-07-18 Sat 08:04] 처럼 남기면 된다. 그러나 생각의 방향이 새로 움직였다면 그것은 새 시간의 노드다. 저널의 내부링크는 그 노드들을 잇는 간선이 된다.

** 03:22 한글 디지털 가든으로서 개선
 
** 08:29 문서 내부링크 활용 방법
- 헤딩 내부링크로 03:22에서 이어진 생각임을 표시한다.

에이전트도 이 연결을 따라갈 수 있는가

핵심 질문은 인간의 키 입력을 줄이는가가 아니었다. 08:29의 조각만 에이전트에게 주었을 때, 그 안의 * 헤딩 내부링크를 보고 앞선 맥락까지 가져올 수 있는가였다.

답은 조건부로 그렇다. 내부링크의 기준점인 출처 문서 가 함께 있어야 한다. 파일 경로나 Denote ID 같은 provenance가 주어지면 링크 대상은 이미 같은 파일 안에 있다. 다른 노트의 denote:ID 를 별도로 가져오는 것보다 값싼 회수다. 이번 대화에서도 에이전트는 08:29의 링크와 W28 저널의 출처를 받아 03:22의 본문을 회수했다.

반대로 링크만 떼어 다른 문서에 옮기면 * 헤딩 링크의 기준점도 바뀐다. 아래 원문에 있는 내부링크가 실제로 작동하는 장소는 출처 저널이다. 원문과 provenance가 함께 있어야 한다는 사실 자체가 이번 실험의 일부다.

구현하지 않은 것이 결과다

몇 년 전에 저장해 둔 짧은 Elisp는 헤딩을 고르고 [[*Heading][설명]] 을 넣는 데 이미 충분했다. doomemacs-config 담당자는 이를 my/org-link-to-headline 으로 다듬고 SPC m l h 에 연결했다. TODO·NEXT·DONT와 태그는 후보와 링크에서 벗겨지지만, Org의 fuzzy jump는 실제 상태 키워드가 붙은 헤딩에 정확히 착지했다.

agent-org-read-subtree 같은 새 서버 함수는 만들지 않았다. agent-org-read-file 로 한 문서를 읽는 현재 방식이 이미 작동했기 때문이다. 위클리 저널이 너무 커져 통째 읽기가 실제 토큰 낭비가 될 때가 구현의 도입 시점이다. 프론티어 에이전트가 새 알고리즘을 쓰지 않았다는 것은 이 주제가 사소하다는 뜻이 아니다. 구현할 필요와 의미를 분리해 냈다는 것이 결과다.

에피파니 글쓰기의 실무적 좌표

날것은 혼자 나오지 않는다에서 “접속사는 생략하지만 좌표는 남긴다”고 했다. 시간, 고유명사, 감각, 반론은 에이전트가 생략된 관계를 복원하는 좌표다. 내부링크는 그 좌표를 더 명시적으로 만든다.

03:22의 원석과 08:29의 질문, 13:56의 대화는 하나의 완결된 문장을 나누어 쓴 것이 아니다. 서로 다른 시각에 실제로 출현한 조각들이다. 링크는 조각을 평평하게 합치지 않으면서도 한 흐름으로 읽게 한다. PKM-AI는 과거를 현재식으로 다시 쓰는 장치가 아니라, 현재에 돌아온 질문이 과거의 자리를 정확히 찾아가게 하는 생태계다.

선행 원석 보존 — 2026-07-18 08:29 저널

다음 원문은 W28 저널에서 03:22의 헤딩을 내부링크로 다시 부른 첫 장면이다. 링크는 출처 문서 안에서 작동한다.

Danger

/home/junghan/sync/org/notes/20240517T153722—링크-조직모드-하이퍼링크-커스텀링크-내부링크__links_orgmode_hyper_custom_internal.org:43

여기 코드 닷파일에 넣고, 활용 하자. 단! 에이전트가 인식하기 쉬운 방향으로 해야 한다.

목적은 위클리 저널에서 시간은 흐르니까, 앞서 끄적인 것을 이어가려고 할 때 위치를 짚어 주는거야. ‘라인’으로 하면 틀어진다. JUMP 해야하니가 agent-server.el에서 함수로 텍스트를 가져오게 한다든가. 뭐 상관은 없을 것 같기는 하다. 텍스트 찾고 위치 보고 읽을 테니까.

원문 보존 — 2026-07-18 13:56 스타벅스 탑동

Danger

오늘 어젠다를 넣어줄게. 지금 스타벅스에 와서 먼저 문서 내부링크 활용 방법에 대 해서 논의 해보려고해. 이것을 doomemacs-config 담당자랑 이야기하려다가 최근에 내 날것을 해설본을 다 담아 준게 여기 자인이거든. 문제는 이해가 되지? 아래 경로에 가면 예전에 내가 어디서 줏어온 코드가 있더라. 해보니까 잘된다. 내 닷파일에는 없어. 본질적으로 지금 논의 또한 시간 축에서 아이디어가 전개되는 흔적을 에이전트가 보 았을 때 어떻게 흡수하느냐거든.

새벽3시22분에 고민한게 있는데 완결된게 아니라 또 고민하게 될때 내가 거기에 적는 게 진실한가? 시간이 흘러버렸잖아. 8시29분에 적어야 진실한거지. 근대 전개 상으로 본다면 뭉치를 다 줘야하는데 orgmode는 내부링크를 만들수가 있지. 이게 아니라 ID 프로퍼티를 만들어도 된다. 근데 굳이 그렇게 할필요가 없거든. 중심은 어떻게 내부링크를 만들어서 생각을 이어가고, 그걸 에이전트에게 8시29분것 만 주었을 때 링크를 보고 따라가서 다 가져올 수 있느냐는거야. 거기에 필요한 구현 이 있다면 만들어야 하고 그게 에이전트 서버에 들어가야 한다면 넣어야 하거든. 이마저도 필요 없을 수도 있어. 내부 링크라면 문서 안에서의 점프니까 그냥 다 읽어 버리면돼. 이 주제를 논의하는거야. 다른 노트링크라면 이미 denoteid로 잘 훑어오더 라고.

어제 아래 문서에서 이 프로토콜이 개선되었다고 적었거든 그 연장에서 계속 고민하 는거야.

실무 팁 — 몇 년 전에 주운 내부링크 코드

아래는 2024~2025년에 저장해 둔 원형이다. 2026-07-18 현재 실제 설정에는 이 원형을 다듬은 my/org-link-to-headline 이 들어갔다. 원형은 코드가 어디서 왔고 질문이 어떻게 오래 머물렀는지를 보여 주므로 그대로 둔다.

[2024-11-22 Fri 12:09] 아. 이건 프롯 닷파일을 확인하라. 매뉴얼 작성할 때도 유용하다. 아무렴.

Use :: [[https://orgmode.org/manual/Internal-Links.html][Internal Links (The Org Manual)]]
   1) 헤딩 이름으로 이동 -- 쉽지만, 이름 바뀌면 불가
      [[*[[*TEST][TEST]]] ]
   2) CUSTOMID
      [[#TEST] ]

[2025-06-11 Wed 11:19]

;; https://www.reddit.com/r/emacs/comments/yjobc2/comment/iur16c7/
(progn
  (defun my/parse-headline (x)
    (plist-get (cadr x) :raw-value))
 
  (defun my/get-headlines ()
    (org-element-map (org-element-parse-buffer) 'headline #'my/parse-headline))
 
  (defun my/link-to-headline ()
    "Insert an internal link to a headline."
    (interactive)
    (let* ((headlines (my/get-headlines))
           (choice (completing-read "Headings: " headlines nil t))
           (desc (read-string "Description: " choice)))
      (org-insert-link buffer-file-name (concat "*" choice) desc))))

쿼츠의 경우, 헤드라인 지침

[2025-06-11 Wed 12:03] 아래 문서 참고 - ’, .  ’ 불가!

#쿼츠: #내보내기 #검증 #테스트 - 이미지 서지정보 동영상

옛 방의 씨앗 — 링크 색상 구분과 커스텀 링크 실험

[2024-05-17 Fri 12:00] 내부링크 색상 표현 문제 구분이 안되면 바꿔야 한다.

오그롬 : 디노트 : url 이랑 구분이 안간다.

/home/junghan/sync/man/dotsamples/vanilla/novoid-dotfiles-uomf/config.org

2021-01-11moved commands to my-set-linkcolors and defined 3 categories of colors
 
(progn
  (setq my-linkcolor-org "wheat3")
  (setq my-linkcolor-file "MediumSeaGreen")
  (setq my-linkcolor-web "MediumSeaGreen")
 
  (defun my-set-linkcolors ()
    "Defines the colors of various link colors"
    (interactive)
 
    ;; Org links --------------------------------------------------------------------------
    ;; (org-link-set-parameters "id" :face `(:bold t :underline t))
    ;; (org-link-set-parameters "contact" :face `(:foreground ,my-linkcolor-org :bold t :underline t))
 
    ;; File links --------------------------------------------------------------------------
    ;; (org-link-set-parameters "file" :face `(:foreground ,my-linkcolor-file :slant 'italic))
    ;; (org-link-set-parameters "pdf" :face `(:foreground ,my-linkcolor-file :underline t))
    ;; (org-link-set-parameters "ISO" :face `(:foreground ,my-linkcolor-file :underline t))
 
    ;; Web links --------------------------------------------------------------------------
    (org-link-set-parameters "http" :face `(:foreground ,my-linkcolor-web :underline t))
    (org-link-set-parameters "https" :face `(:foreground ,my-linkcolor-web :underline t))
    )
  )

ARCHIVE