| name | botlog |
| description | 봇 노트 — 공개 botlog(기본=리포 담당자 문서)와 비공개 llmlog(임시 작업기, 최소 생성). Use when user says 'botlog', 'llmlog', '담당자 문서', '노트 만들어', '기록해', '지침 남겨', '전달해', '작업기록', 'write a note', or wants agent work saved as a denote note. |
| user_invocable | true |
botlog / llmlog — Agent Notes
Identity
Two modes, different jobs. Do not treat botlog as an infinite dump of agent essays.
| botlog (~/org/botlog/) | llmlog (~/org/llmlog/) |
|---|
| Public | Digital garden | Private |
| Default role | 담당자 문서 — one living public face per repo/workstream | Temporary work scratch / rare handoff body |
| Tag | :botlog: required | :llmlog: required |
| Growth | Prefer update existing over create | Prefer do not create |
#+description: / #+hugo_lastmod: | required (hugo SEO) | omit |
[!abstract] 이 노트에 대하여 | required | required if file exists |
Default mode = botlog as 담당자 문서.
llmlog only when GLG explicitly wants a private work body, or a short-lived scratch that cannot live in repo NEXT.md / llmlog heading append.
botlog center — 담당자 문서
A 담당자 문서 is the public steward note for a repo (or stable workstream). Title usually carries §<repo> (or the established project sigil). It answers: what this house owns, what it refuses, where code/docs live, and the current judgment — not a session diary.
Reference shapes (read outline / abstract first; do not full-dump):
20260223T040400 — §memex-kb 담당자 문서 (current strong pattern)
20260220T201100 — §garden2wikidocs 프로젝트 공개 시간축·담당 허브
What belongs in the 담당자 문서
- Scope and non-scope (맡은 것 / 맡지 않는 것)
- SSOT paths (
~/repos/gh/<repo>/, run.sh, skills, AGENTS)
- Current architecture or operating picture in durable language
- Boundaries, retirements, and open confirms that still matter next month
- Outgoing links: 관련메타, 큰그림/실행 계약, 독립 사례 문서는 이웃으로 (do not absorb long journeys)
- Dated 현재 보고 headings when the steward posture actually changed
- 히스토리 lines with model-with-version on agent passes (same authorship legibility as autholog-mend)
What does not belong
- Blow-by-blow session logs (use repo
NEXT.md, agenda stamp, or a short llmlog heading if unavoidable)
- One-off research essays that are not the repo’s public face (separate botlog only when GLG asks, or when the piece must stay public and is not a steward update)
- Absorbing every case study into the steward note — keep case docs as neighbors
- Creating a second 담당자 문서 for the same repo
Create vs update (botlog)
denotecli search "§<repo>" --dirs ~/org/botlog --max 8
denotecli search "<repo-keyword>" --dirs ~/org/botlog --max 8
| Found | Action |
|---|
Existing §repo 담당자 문서 | Update — 히스토리 + 현재 보고 heading + links. Do not create another. |
| Empty botlog room reserved for this repo | Reopen that room (title/tags/body). Prefer empty rooms over new IDs. |
| Only unrelated botlogs | Create one 담당자 문서 (or ask GLG which empty room). |
| GLG names an empty room ID | Use that ID. Example pattern: recovered empty botlog rooms after autholog move. |
Do not grow botlog count by default. One steward face per repo is enough; depth goes into updates and neighbor case docs.
담당자 문서 — standard shape
#+title: §<repo>: <one-line steward posture>
#+date: [YYYY-MM-DD Day HH:MM]
#+filetags: :botlog:<repotag>:...:
#+hugo_lastmod: [YYYY-MM-DD Day HH:MM]
#+identifier: YYYYMMDDTHHMMSS
#+export_file_name: YYYYMMDDTHHMMSS.md
#+description: <1-2 sentence SEO card — not the same sentences as abstract>
#+reference: <optional bib keys>
#+begin_quote
[!abstract] 이 노트에 대하여
이 노트는 <repo> 담당자가 지금 무엇을 맡고 무엇을 맡지 않는지 기록하는 자리다. ...
#+end_quote
* 히스토리
- [YYYY-MM-DD ...] @mitsein/<model-with-version> — ...
* 관련메타
- [[denote:...][† ...]]
* 관련노트
** 담당자의 큰그림과 실행 계약
- =~/repos/gh/<repo>/= — SSOT
- [[denote:...][...]] — ...
** 독립된 사례 문서 — 합치지 않고 이웃으로 둔다
- [[denote:...][...]] — why it stays separate
* [YYYY-MM-DD] 담당자의 현재 보고 — <title> :LLMLOG:
durable posture, boundaries, judgment...
** 지금 맡은 것
** 현재 경계와 남은 확인
** 담당자의 판단
Not every section is mandatory on day one; the steward posture and “update not multiply” rule are.
When reopening an empty room, keep identifier; rewrite title/tags/abstract/body; leave a 히스토리 line for the prior vacancy/recovery if useful; optional * 옛 방의 씨앗 / ARCHIVE only when a displaced prior use must stay named.
llmlog — minimal temporary work body
llmlog is not the default continuity surface anymore.
Prefer instead
- Repo
NEXT.md / NEXT--<branch>.md — disposable handoff, concrete next step (see next-handoff skill)
- Append heading on an existing llmlog or botlog 담당자 문서 when the workstream already has a home
- Agenda stamp for “what was done”
- autholog-mend when the material is GLG raw public voice — not botlog
Create llmlog only when
- GLG explicitly says
llmlog / private work note
- A multi-hop entwurf needs a private append-only body and no NEXT/existing note fits
- The content must not be garden-public and cannot live in the repo
llmlog anti-patterns
- New llmlog per session “just in case”
- Duplicating NEXT into a long llmlog that later needs deletion
- Using llmlog as a second 담당자 문서
If an llmlog is created, keep it short, append-only by heading, and point back to repo NEXT / 담당자 botlog. Deletion debt is real — do not make files you expect someone to clean up.
Shared mechanics
Headers
| Header | botlog | llmlog |
|---|
#+title | ✅ often §repo: ... | ✅ |
#+date | ✅ | ✅ |
#+filetags | ✅ :botlog:...: | ✅ :llmlog:...: |
#+identifier | ✅ | ✅ |
#+export_file_name | ✅ | ✅ |
#+description | ✅ required | — |
#+hugo_lastmod | ✅ required | — |
#+reference | optional | optional |
Abstract
Right after headers, before * 히스토리:
#+begin_quote
[!abstract] 이 노트에 대하여
...
#+end_quote
botlog: #+description: and abstract must be different sentences (card meta vs body lead-in).
Authorship in 히스토리
- GLG:
@junghan
- Agent: model with version visible (e.g. nearby pattern
@mitsein/sonnet5, @mitsein/grok-4.5). Harness-only (pi alone) is not enough.
- Read live session model (
PI_MODEL / PI_AGENT_ID); never invent.
Body conventions
- First heading:
* 히스토리 (reverse chronological)
- Content headings that are agent synthesis:
:LLMLOG: tag on the heading is fine even inside botlog (garden convention)
- Org syntax only (no markdown tables)
- Tags:
[a-z0-9] only, alphabetically sorted, prefer established magnets (tag-mend if new/suspicious)
Create file (only after search / empty-room decision)
TS=$(TZ='Asia/Seoul' date '+%Y%m%dT%H%M%S')
Prefer Emacs/denote front-matter rename when reopening or retitling an existing ID. Do not raw-mv Denote files casually.
Update existing (emacs skill)
ec '(agent-denote-add-history "ID" "@mitsein/<model> — what changed")'
ec '(agent-denote-add-heading "ID" "[YYYY-MM-DD] 담당자의 현재 보고 — ..." "LLMLOG" "body")'
ec '(agent-denote-add-link "ID" "TARGET-ID" "link description")'
Stamp agenda
{skillsDir}/agenda/scripts/agenda-stamp.sh "botlog: §repo steward update — ..." "botlog:tag"
If the script fails after reasonable retries, STOP and report — do not substitute Write/Edit/heredoc on ~/org/botlog/agenda/. See agenda skill → Single Writer Rule.
dblock
Same garden rule: no dblock refresh/eval so magnets “catch up” while writing. GLG export scripts refresh. Regexp definition fixes only when broken.
Decision cheat-sheet
| GLG intent | Surface |
|---|
| Repo steward public face / progress posture | botlog 담당자 문서 (update or one empty room) |
| Long case journey under a repo | Neighbor botlog/case note — link from 담당자, don’t merge |
| Next session handoff | Repo NEXT.md |
| Private scratch GLG asked for | llmlog (minimal) or append existing |
| GLG raw public voice | autholog-mend, not botlog |
| Tag/filename magnet hygiene | tag-mend |
New repo steward (e.g. zotero-config)
When GLG asks a repo 담당자 to write “one botlog”:
- Search
botlog for §<repo> / repo keywords — update if a steward face already exists
- Prefer a 빈 botlog 방 GLG designates (rooms emptied after autholog recovery, etc.). Do not mint a new identifier when an empty room is offered
- Write one 담당자 문서: scope, non-scope, SSOT path, current judgment, neighbor links
- Later progress = 히스토리 + 현재 보고 update — not a new botlog each time GLG says “갱신”
- Session ops / handoff stay in that repo’s
NEXT.md, not a fresh llmlog