| name | daily-book-update |
| description | Daily automated update of the student's Living Book chapters โ scans vault for new memos/imports, bootstraps an empty outline from staging notes, mirrors changes into the matching .canvas, enriches relevant chapter sections, folds in critique inbox items, and writes a daily diff log. Activate when scheduled (cron / launchd / Task Scheduler) or when the user says "update my book", "์ค๋ ์ฑ
์
๋ฐ์ดํธ", "daily book update". |
| metadata | {"version":"0.3","author":"jykim","created":"2026-05-02T00:00:00.000Z","updated":"2026-05-07T00:00:00.000Z","base":"https://github.com/johnfkoo951/cmds-vault โ Living Book scaffolding"} |
daily-book-update
Living Book ์ ์ฒซ ๋ฒ์งธ ๋ฉ์ปค๋์ฆ ("๋งค์ผ ์๋ผ๋ ์ฑ
") ์ ๊ตฌํํ๋ ์คํฌ. ํ์์ด ๋งค์ผ ์๋์ง ์์๋ ๋งค์ผ ํ ๋ฒ์ฉ ๋ณธ์ธ ์ฑ
์ฑํฐ๊ฐ ๋ณด๊ฐ๋๋ค.
When to Use
๋ค์ ์ค ์ด๋ ํ๋์ ํด๋นํ๋ฉด ํ์ฑํ:
- ์ค์ผ์ค๋ฌ (cron / launchd / Task Scheduler) ๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ํธ์ถ
- ์ฌ์ฉ์๊ฐ "update my book", "์ค๋ ์ฑ
์
๋ฐ์ดํธ", "daily book update", "๋งค์ผ ๊ฐฑ์ " ๋ฑ์ ๋งํจ
- W3 (Session 3) ์ดํ ํ์์ด ์ํฌํ๋ก์ฐ ๊ฐ๋ ๊ฒ์ฆ์ ์ํด ์๋ ์คํ
Pipeline
๊ฐ ์คํ์ ์๋ค โ ํ ๋ ๋จ๋ฝ ์์ค ๋ณ๊ฒฝ. 14์ผ ๋์ ๋๋ฉด ์ฑํฐ๊ฐ ๋์ ๋๊ฒ ์๋๋ค.
0. PREP
- vault ๋ฃจํธ ํ์ธ: CMDS.md / 70. Outputs/Book/ ์กด์ฌ
- 70. Outputs/Book/My Book Outline.md ์ฝ๊ธฐ โ core_question, chapter list ์ถ์ถ
- 70. Outputs/Book/My Book Outline.canvas ์กด์ฌยท๋ด์ฉ ์ฝ๊ธฐ (์์ผ๋ฉด โ JSON ํ์ฑ)
- 70. Outputs/Book/<chapter>.md ํ์ผ ๋ชฉ๋ก ์์ง
- 70. Outputs/Book/assets/ ์ cover ํ๋ณด ์ด๋ฏธ์ง ๊ฐ์ง (jpg/png/webp)
- outline template ์ํ ๊ฐ์ง:
- core_question ๋๋ chapter ํ์ "<...>" ํ๋ ์ด์คํ๋๊ฐ ๋จ์ ์์ผ๋ฉด โ 0.5 BOOTSTRAP ์ผ๋ก ๋ถ๊ธฐ
- ์ฑ์์ ธ ์์ผ๋ฉด โ 0.6 CANVAS SYNC (ํ์ ์) โ 1. SCAN ์ผ๋ก ์งํ
0.5 BOOTSTRAP (first-run only โ outline ์ด template ์ํ์ผ ๋๋ง ์คํ)
- 1. SCAN ์ ๋จผ์ ์คํํด ์ต๊ทผ 24h ์๋ฃ ์์ง
- ์ถ๊ฐ๋ก 70. Outputs/Book/ ์ธ๋ถ์ ๊ฐ๊น์ด staging note ๋ ํจ๊ป ์ฝ์
(e.g. CMDS=๐ 101 Interests / ๐ 102 Topics ์ inProgress ๋
ธํธ โ book ์๋๊ฐ ๋ช
์๋ hub note)
a. **CONCEPT INFERENCE** โ staging note ๊ฐ ingested ์ฑ
(์: `10. Raw Sources/13. Books/` ์ prior-art ์ฑ
) ์ 5๊ฑด ์ด์ ์ฐธ์กฐํ๋ฉด โ "prior-art tracking" ์ปจ์
์ฑํ. ๊ทธ ์ฑ
์ ์ฑํฐ ๊ตฌ์กฐ๋ฅผ 1:1 ๊ณจ์กฐ๋ก ์ฌ์ฉ. ๊ทธ ์ธ์๋ opportunity-gap ๋๋ hub-theme ๊ธฐ๋ฐ์ผ๋ก ์์จ ํฉ์ฑ.
b. **ํฉ์ฑ**:
- core_question (1โ3 ์ค) โ staging note ์ mission/intent ์ง์ ์์ ์ถ์ถ (concept ์ ๋ฐ๋ผ phrasing ์กฐ์ )
- target_reader โ staging note ๋๋ ๊ด๋ จ ๋ฏธํ
ยท๊ฒฝํ ๊ธฐ๋ก์์ ์ถ์ถ
- chapter candidates 5โ7๊ฐ โ concept ์ ๋ฐ๋ผ:
ยท prior-art tracking โ ์์ N์ฅ spine ๊ทธ๋๋ก + ๊ฐ ์ฅ์ "โ spine, โ ๊ฐฑ์ " annotation
ยท opportunity-gap โ ์๋ณ๋ gap ๋ค์ ์ฑํฐ๋ก
ยท hub-theme โ staging note ์ sub-theme ๋ค์ ์ฑํฐ๋ก
- Source Materials โ ํฉ์ฑ์ ์ฌ์ฉํ ๋
ธํธ๋ค์ [[wikilink]] ๋ชฉ๋ก (๊ทธ๋ฃน๋ณ: prior-art ingest / Permanent / Literature / Synthesis)
- Notes โ staging note ์ "์ ์ด ์ฑ
์ ์ฐ๋๊ฐ" ๋จ๋ฝ์ ๋ฐ์ท
- Cover (์์ผ๋ฉด) โ `70. Outputs/Book/assets/` ์ ํ๋ณด ์ด๋ฏธ์ง๋ฅผ `![[<filename>]]` embed ๋ก
c. **WIKILINK VERIFICATION** (ํ์): ํฉ์ฑ ๊ฒฐ๊ณผ์ ๋ค์ด๊ฐ ๋ชจ๋ [[wikilink]] ๋ ์์ฑ ์ filesystem ๊ฒ์ฆ.
- ์กด์ฌํ์ง ์๋ target ์ drop (๋๋ ํ
์คํธ ์ธ์ฉ์ผ๋ก demote)
- ์ด์ : `wikilink-rules.md` ์ ๋ฐ๋ผ broken wikilink ํด๋ฆญ ์ `00. Inbox/` ์ ๋น placeholder ํ์ผ ์์ฑ๋จ โ ์ธ๋ฐ์ค ์ค์ผ
- emoji-prefixed target (๐/๐/๐/...) ๋ ์ ํํ prefix ํฌํจํด์ ๊ฒ์ฆ
d. **OUTLINE WRITE** โ My Book Outline.md ์ ํด๋น ์น์
๋ง in-place ์นํ:
- frontmatter ํ์๊ณผ ๋ค๋ฅธ ์น์
์ ๋ณด์กด (refactor ๊ธ์ง)
- YAML ๊ท์น ์ค์: 2 spaces, ์ํค๋งํฌ๋ ํฐ๋ฐ์ดํ (CLAUDE.md ์ฐธ์กฐ)
- ์ถ๊ฐ ์น์
(Concept, Cover) ์ outline ์์๋ถ์ ์ฝ์
๊ฐ๋ฅ
e. **CANVAS SYNC** โ `0.6 CANVAS SYNC` ํธ์ถํ์ฌ outline ๋ณ๊ฒฝ์ canvas ์๋ ๋ฐ์
f. **LOG** โ Daily Update Log ์ "bootstrap" ๋ผ๋ฒจ๋ก ํ ์ค ๊ธฐ๋ก ํ ์ข
๋ฃ
(์ด๋ฒ ์คํ์์ ENRICH/CRITIQUE ๋ ๊ฑด๋๋ โ chapter ํ์ผ ์์)
0.6 CANVAS SYNC (outline โ canvas ๋ฏธ๋ฌ โ BOOTSTRAP ํ ๋๋ ์๋ ํธ์ถ)
- 70. Outputs/Book/My Book Outline.canvas ๊ฐ ์กด์ฌํ๋ฉด outline ์ ๋ณํ๋ฅผ ๋ฐ์ํ๋๋ก ์ฌ์์ฑ
- ๊ธฐ๋ณธ layout (vertical scan):
- cover (`type:file` ๋
ธ๋, ์์ผ๋ฉด) โ far-left anchor
- cover_caption โ ํ์ง ์ถ์ฒ ๋ฉ๋ชจ
- reader / core / sources โ header row
- concept (`color:5`) โ full-width row, "๋ณํ์ง ์๋ ๋ณธ์ง vs ์๋ก ํ์ํ ํ๋จ๋ ฅ" ๊ฐ์ high-level framing (prior-art tracking ์ปจ์
์ผ ๋ ๊ถ์ฅ)
- chapters (color:4) โ single column, top-to-bottom (vertical scan)
- chapter ideas (color:1) โ RHS, 1:1 aligned with chapters
- edges:
- cover โ concept, reader โ core, core โ sources
- core โ concept โ ch1 โ ch2 โ ... โ chN (์ฒด์ธ)
- ๊ฐ chapter โ ํด๋น ideas ์นด๋ (right side)
- ์์ ์ผ๊ด์ฑ ๊ท์น:
- ๋์ผํ ์ฒ๋ฆฌ(treatment) ๋ฐ๋ ์ฑํฐ๋ ๊ฐ์ ์
- reboot/gap ๋ฑ ์๋ฏธ ์นดํ
๊ณ ๋ฆฌ ๊ตฌ๋ถ ์์๋ง ์ ๋ค์ํ
- ์๋ customization ๋ณด์กด โ ๊ธฐ์กด canvas ์ ์ฌ์ฉ์ ์ถ๊ฐ ๋
ธ๋ (์: ์ฐํยท์ธ์ฉยท๋ฉ๋ชจ) ๊ฐ ์์ผ๋ฉด ํฉ์ฑ ๋์ LOG ์ "manual canvas detected, skipping auto-sync" ๊ธฐ๋ก
1. SCAN RECENT ACTIVITY
- ๋ค์ ํด๋์์ ์ต๊ทผ 24h ๋ด modified .md ํ์ผ ์์ง:
- 00. Inbox/ (Daily Notes, Clippings, AI Agent outputs ๋ฑ)
- 10. CMDS Process/ (Connect/Merge/Develop/Share ์์
๋ฌผ)
- 20. Literature Notes/ (์ธ๋ถ ์๋ฃ ์ํฌํธ)
- 30. Permanent Notes/ (์ ์ ๋ ๊ฐ์ธ ์ง์)
- ์ ์ธ: 00. Inbox/09. Legacy/, 00. Inbox/03. AI Agent/ ์ ๋น-md ์ฐ์ถ๋ฌผ (์ด๋ฏธ์ง/์์/์ฝ๋)
- ๋น ๊ฒฐ๊ณผ๋ฉด โ 4. PROCESS CRITIQUE INBOX ๋ก ์ ํ
2. MATCH TO CHAPTER
- ๊ฐ ์ entry ๋ง๋ค, chapter list ์ ์ด๋ ์น์
๊ณผ ๊ฐ์ฅ ๊ด๋ จ ์๋์ง ์ถ๋ก
- chapter file ์ ํค๋ + core_question ์ ์ปจํ
์คํธ๋ก
- ๋งค์นญ ์ ๋ขฐ๋ ๋ฎ์ผ๋ฉด (e.g. < 0.6) ์คํตํ๊ณ ๋ก๊ทธ์ unmatched ๋ก ๊ธฐ๋ก
- ๋งค์นญ๋ entry ๋ณ๋ก 1โ2 ๋ฌธ์ฅ ์์ฝ + [[wikilink]] ์ธ์ฉ ์์ฑ
3. ENRICH SECTION
- ๋งค์นญ๋ chapter ์ ํด๋น ์น์
๋์ 1โ2 ๋ฌธ์ฅ append
- ํ์: "<์์ฝ ๋ฌธ์ฅ>. โ [[<wikilink>]]"
- ์น์
์ด ๋น์ด ์์ผ๋ฉด: 90. Settings/92. Prompts/Book/Outline-to-Paragraph (OTP).md ํธ์ถํ์ฌ ์ฒซ ๋จ๋ฝ ์์ฑ
- **NEVER touch**:
- "## Author Voice / Reflection" ์น์
(read-only)
- "## Critique Received" ์ ์ฌ๋์ด ์ถ๊ฐํ ์๋ต ๋ถ๋ถ
- chapter frontmatter
4. PROCESS CRITIQUE INBOX
- 70. Outputs/Book/Critique Inbox/ ์์ ์ฒ๋ฆฌ๋์ง ์์ .md ํ์ผ ์์ง
- ๊ฐ ๋นํ ํ์ผ์์ ๋์ chapter ์ถ์ถ (frontmatter target_chapter ๋๋ wikilink)
- ๋์ chapter ์ "## Critique Received" ์น์
์ ๋นํ์ timestamp + ์ถ์ฒ์ ํจ๊ป append
- **์๋ ๋ฐ์ํ์ง ์์** โ ์ฌ๋์ด ์ฝ๊ณ ๋ณธ๋ฌธ์ ๋ฐ์. ๋นํ์ ๋ณด๊ด + ํ์๋ง.
- ์ฒ๋ฆฌํ ๋นํ ํ์ผ์ 70. Outputs/Book/Critique Inbox/_processed/ ๋ก ์ด๋
5. LOG
- 70. Outputs/Book/Daily Update Log.md ์ ํ ์ค append:
- "YYYY-MM-DD: <chapter A> +2 sentences from [[<source>]] ยท <chapter B> empty section seeded ยท 1 critique queued"
- ๋น ๋ ๋ ๊ธฐ๋ก: "YYYY-MM-DD: no changes (vault idle)"
Constraints
- Read-only ์์ญ: Author Voice / Reflection ์น์
, frontmatter (type/created/parent), ์ฌ๋์ด ์์ฑํ ๋ณธ๋ฌธ
- Append-only ์์ญ: section ๋ณธ๋ฌธ ๋, Critique Received, Daily Update Log
- Idempotent:
- ๊ฐ์ entry ๋ฅผ ์ด์ค ์ธ์ฉํ์ง ์๋๋ค (Daily Update Log ๋๋ chapter ๋ณธ๋ฌธ์์ wikilink ๊ฒ์์ผ๋ก dedupe)
- ์ฑ์์ง outline ์ BOOTSTRAP ์ฌ์คํํ์ง ์๋๋ค (template-state ๋ง ํธ๋ฆฌ๊ฑฐ; ์ฌ์ฉ์๊ฐ ๋ช
์์ ์ผ๋ก "re-bootstrap" ์์ฒญ ์ ์์ธ)
- ์ฌ์ฉ์ manual edit ์ด ๋ค์ด์จ canvas ๋ auto-sync ํ์ง ์๋๋ค
- Small steps: ํ ์คํ์์ chapter ๋น ์ต๋ 3 sentences ์ถ๊ฐ. ํญ์ฃผ ๋ฐฉ์ง.
- Wikilink safety: ๋ชจ๋ [[wikilink]] ๋ ์์ฑ ์ filesystem ๊ฒ์ฆ. ๋ฏธ์กด์ฌ target ์ drop. ์ด์ :
wikilink-rules.md ์ ๋ฐ๋ผ broken link ํด๋ฆญ ์ ์ธ๋ฐ์ค์ ๋น placeholder ํ์ผ ์์ฑ โ ์ธ๋ฐ์ค ์ค์ผ.
- Status when waiting: outline ์ฑ์์ก์ผ๋ chapter ํ์ผ ์์ โ ๋งค run ๋ง๋ค "waiting for W2: chapter stubs" ๋ผ๋ฒจ๋ก ๋ช
์ ๋ก๊ทธ (silent no-op ๊ธ์ง).
Setup
๊ฐ OS ๋ณ ์ค์ผ์ค๋ฌ ๋ฑ๋ก โ ํ์์ด W3 ์ค์ต ๋จ๊ณ 2์์ 1๋ฒ ์
์
ํ๋ฉด ๋.
macOS (launchd, ๊ถ์ฅ)
launchctl load ~/Library/LaunchAgents/com.cmds.daily-book-update.plist
.plist ํ
ํ๋ฆฟ์ references/launchd.plist.template ์ฐธ์กฐ (TODO: ์ถ๊ฐ ์์ ).
macOS / Linux (cron)
crontab -e
0 7 * * * cd ~/Documents/cmds-vault && claude run "use the daily-book-update skill" >> /tmp/daily-book-update.log 2>&1
Windows (Task Scheduler)
- Trigger: Daily 07:00
- Action: Start a program
- Program:
C:\path\to\claude.exe
- Arguments:
run "use the daily-book-update skill"
- Start in:
C:\Users\<you>\Documents\cmds-vault
Verification (first run)
1. Drop dummy memo: 00. Inbox/01. Daily Notes/2026-MM-DD.md
- content ์ ๋ณธ์ธ ์ฑํฐ ํต์ฌ ํค์๋ 1๊ฐ ํฌํจ
2. Manual run: claude run "use the daily-book-update skill"
3. Check:
- ๋งค์นญ๋ chapter ์ 1-2 ๋ฌธ์ฅ + [[wikilink]] append ๋จ
- 70. Outputs/Book/Daily Update Log.md ์ ํ ์ค append ๋จ
4. Re-run immediately:
- ๊ฐ์ entry ๊ฐ ๋ ๋ฒ ์ธ์ฉ๋์ง ์์ (idempotency check)
Cohort Context
W3 (Session 3) ์ ํต์ฌ ๊ฐ๋ ๋ฉ์ปค๋์ฆ. โ [Session 3 docs in jykim's GOBI vault]
TODO (PR welcome)
Changelog
- 0.3 (2026-05-07): ์ฒซ ๊ฐ๋ ํ lessons-learned ๋ฐ์.
- BOOTSTRAP ์ CONCEPT INFERENCE ์ถ๊ฐ โ staging note ๊ฐ ingested ์ฑ
์ ๋ค์ ์ฐธ์กฐํ๋ฉด prior-art tracking ์ปจ์
์๋ ์ฑํ (ํด๋น ์ฑ
์ ์ฑํฐ spine 1:1 ์ฌ์ฉ; ์: HelloDS-Reboot 7-chapter ingest โ DS ์ฑ
7์ฅ spine).
- WIKILINK VERIFICATION ์๋ฌดํ โ ๋ชจ๋ wikilink ์์ฑ ์ filesystem ๊ฒ์ฆ (์ธ๋ฐ์ค ์ค์ผ ๋ฐฉ์ง). ๋ฏธ์กด์ฌ target ์ drop ๋๋ ํ
์คํธ ์ธ์ฉ์ผ๋ก demote.
- ์ ๊ท step 0.6 CANVAS SYNC โ outline โ canvas ๋ฏธ๋ฌ; ๊ธฐ๋ณธ vertical-scan ๋ ์ด์์ (cover ๋
ธ๋ anchor, concept card, chapter chain, RHS ideas cards) ์ ์. manual-edited canvas ๋ ๋ณด์กด.
- Cover asset detection โ
70. Outputs/Book/assets/ ์ ํ์ง ํ๋ณด ์๋ embed (outline + canvas).
- Status logging ๊ฐํ โ outline ์ ์ฑ์์ก์ผ๋ chapter ํ์ผ ์๋ ๋จ๊ณ๋ ๋ช
์ ๋ก๊ทธ ("waiting for W2: chapter stubs"). silent no-op ๊ธ์ง.
- Idempotency ๋ช
๋ฌธํ โ filled outline ์ BOOTSTRAP ์ฌ์คํ ๊ธ์ง (์ฌ์ฉ์ ๋ช
์ ์์ฒญ ์ ์์ธ); manual-edited canvas ๋ auto-sync ์คํต.
- 0.2 (2026-05-07): SCAN scope ๋ฅผ
00. Inbox/ ~ 30. Permanent Notes/ ์ ์ฒด๋ก ํ์ฅ (์ด์ : Daily Notes + Literature Notes ๋ง). first-run BOOTSTRAP ๋จ๊ณ ์ถ๊ฐ โ outline ์ด template ์ํ๋ฉด SCAN ๊ฒฐ๊ณผ + staging note ๋ก outline ์๋ ์ฑ์.
- 0.1 (2026-05-02): ์ด๊ธฐ ๊ตฌํ.