Standardize Radiology Obsidian notes to V4, organize video/lecture content, and summarize papers. Trigger on: 整理, 修正, cleanup, V4, 影片整理, 字幕, 論文筆記, paper summary, YAML fix, footnote conversion, 閱片 callout, subtitle/audio organization, Paper L3 creation, SRT分段, JSON導航, 課程筆記, course listing. 7-task pipeline: (1) YAML V4 frontmatter fix, (2) citation→footnote, (3) 閱片 table→callout, (4) video content from subtitles/audio/slides, (5) paper PDF summarization with L3 deep-study template + visual canvas map, (6) SRT→segmented JSON for web player navigation, (7) course series listing note with media links. Use even for partial requests like "fix the YAML", "整理這個影片", "幫我摘要這篇論文", "製作分段JSON", or "建立課程筆記". Also trigger for: 讀書筆記, 章節整理, textbook, 教科書, 深度閱讀, 字幕導航, 更名, 目錄.
التثبيت
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Standardize Radiology Obsidian notes to V4, organize video/lecture content, and summarize papers. Trigger on: 整理, 修正, cleanup, V4, 影片整理, 字幕, 論文筆記, paper summary, YAML fix, footnote conversion, 閱片 callout, subtitle/audio organization, Paper L3 creation, SRT分段, JSON導航, 課程筆記, course listing. 7-task pipeline: (1) YAML V4 frontmatter fix, (2) citation→footnote, (3) 閱片 table→callout, (4) video content from subtitles/audio/slides, (5) paper PDF summarization with L3 deep-study template + visual canvas map, (6) SRT→segmented JSON for web player navigation, (7) course series listing note with media links. Use even for partial requests like "fix the YAML", "整理這個影片", "幫我摘要這篇論文", "製作分段JSON", or "建立課程筆記". Also trigger for: 讀書筆記, 章節整理, textbook, 教科書, 深度閱讀, 字幕導航, 更名, 目錄.
Obsidian V4 Cleanup Skill
You are working with a Radiology Obsidian vault. Depending on the user's request, you apply one or more of 7 tasks. Always read the file first, assess which tasks apply, then execute them in order.
For cleanup (Tasks 1-3): Every file needs Task 1. Tasks 2 and 3 only apply if the file has inline citations or quiz-format 閱片 tables respectively.
Tasks 4-7 are standalone — they create new notes or files from source materials. Task 6 (SRT→JSON) is often an upstream step for Task 4 (影片整理).
noteVer: - v4 (list) → v4 (scalar). Any other version → v4
tags: null/empty → []. Remove tags that duplicate the subspecialty (e.g., #NR when subspecialty is already NR)
subspecialty: - NR (single-item list) → NR (scalar). Only use list when genuinely cross-specialty
已完成: null/empty → false
date: If it's a list like [2021-06-23, 2022-08-06], keep only the earliest date. If comma-separated string, take the first date
DateRev: If missing, add it with today's date. If present, update to today's date
source: Extract from the note body — look for lecturer names, course titles, URLs, book references. Format as list of quoted strings: - "description". If empty, set - ""
sibling :: links notes covering the same topic across different years or versions (e.g., sibling :: [[2024乳疑陽課程]] in the 2025 version). Only add when there's a clear sibling relationship.
Replace template placeholder text like {筆記和什麼有關...} with actual [[wikilinks]] based on the note's content
For Parent Link, add the corresponding index page based on subspecialty:
subspecialty
Index page
NR
[[=NR]]
H&N
[[=H&N]]
ABD
[[=ABD]]
CH
[[=CH]]
CV
[[=CV]]
IR
[[=IR]]
MSK
[[=MSK]]
PED
[[=PED]]
US
[[=US]]
Physics
[[=物理]]
Old Inline Metadata to DELETE
Remove these lines entirely (they were migrated to YAML in V4):
Status :: #...
Source type :: #📥/...
Source URL :: ...
Note Type :: #...
Subspecialty :: [[=...]]
source :: <br>
完成度 :: ...
Author :: ...
score :: ...
Section Structure
Ensure the note body follows this skeleton (add missing sections as empty headers):
Top-level # headings in the body (like # Anatomy, # 治療) should be demoted to ## so they sit under # Note (layer 1-3)
Sub-sections adjust accordingly (## → ###, etc.)
Task 2: Inline Citation → Footnote Conversion
Only applies if the file contains [Text](URL) patterns that are external references (not wikilinks, not image embeds).
Rules
Each unique URL gets a [^n] number starting from 1
Same URL appearing multiple times → same footnote number
All [^n]: definitions go in the ### 參考來源 block (between note body and ## 題目)
Convert citations in quiz answers too
Before → After
<!-- Before -->
起源於 pituicytes [PubMed](https://pubmed.ncbi.nlm.nih.gov/20403698/)。
<!-- After -->
起源於 pituicytes [^1]。
### 參考來源
[^1]: https://pubmed.ncbi.nlm.nih.gov/20403698/
DO NOT Convert
Synology NAS links (jieyu166.synology.me): These are personal video/lecture files. Keep them as [影片](url) or [講義](url) — never convert to footnotes
Blockquote book references: > [[Essentials of Osborn's brain]] — leave as-is
Wikilinks: [[other note]] — leave as-is
Image embeds: ![[image.png]] — leave as-is
Radiopaedia/internal links used as inline references: [Anisotropy](https://radiopaedia.org/...) — these are contextual links for quick reference, convert them to footnotes like other URLs
Task 3: 閱片 Table → Callout Conversion
Only applies if the file contains quiz-format 閱片 tables. These are tables where each row is a case with an image and an answer, designed for self-testing.
How to Identify Quiz-Format Tables
Quiz-format tables look like this — they have #閱片 in the header and an Ans column:
Any table where the purpose is reference/learning rather than self-testing
The key distinction: if a table has #閱片 + Ans columns and each row is an image case to diagnose, it's a quiz table → convert. If it's organizing information for reference, leave it alone.
Task 4: 影片/講座內容整理
Applies when the user provides video-related materials (subtitle files, audio files, slides/PDFs) and asks to organize the content into an Obsidian note.
Input Materials (one or more)
Subtitle files: .srt, .vtt, .txt transcript files
Audio files: .mp3, .m4a, .wav — use speech-to-text if needed
Slide images(投影片截圖): .png, .jpg files in a companion folder — these are the primary visual reference and should be read with the Read tool to see their actual content (text, tables, diagrams, case images). The filenames typically encode a timestamp (e.g., Modifier S-0934.png = screenshot at 09:34).
Slides/講義 PDF: .pdf, .pptx — supplementary visual reference (when slide images are not available)
Multiple sources: Different lecturers or versions on the same topic
Workflow
Check for Task 6 JSON — if a corresponding .json navigation file doesn't exist for the subtitle, run Task 6 first to generate it. The JSON provides pre-segmented structure that helps organize the note.
Check for slide images — look for a companion folder with the same name as the video/SRT file (e.g., Modifier S/ for Modifier S.zh.srt). If it contains .png/.jpg files, these are slide screenshots and are a critical input.
2b. 無投影片資料夾但有影片檔 → 自動抓換頁截圖(2026-06-24 新增):若步驟 2 找不到投影片截圖,但同層有同名影片檔,執行:
以它為準校正逐字稿:ASR 常把專有名詞、數字、史實聽錯(甚至整段漏聽或誤解因果)。官方筆記 > 投影片截圖 > ASR 逐字稿。
範例(實證):某 AI 講座 ASR 把「Naval 三槓桿」誤傳為四槓桿、把「增冊」說成別的詞、整段 Chomsky/Claude routine 被壓縮——皆靠官方 .html 筆記校回。
Read all provided materials:
官方筆記/講義 = 最高優先文字 ground truth(術語/數值/史實/因果以此為準)
Subtitles = primary spoken content source
Slide images = primary visual/structural reference. Use the Read tool to view each image — they contain the actual slide text, tables, figures, and diagrams that the speaker is referencing. ASR transcripts are often garbled for medical/technical terms; the slide images are the ground truth for correct terminology, numbers, and proper nouns.
PDF/PPTX = fallback visual reference when slide images are not available
If Task 6 JSON exists, use its segment structure as a starting scaffold.
Cross-reference subtitles with slide images — use timestamp-encoded filenames to align slides with the corresponding transcript segment. The slide content takes priority over the transcript for: English terminology, proper nouns, numeric values, table data, and classification criteria.
Identify the topic and subspecialty from content
Choose Prompt mode:
Multiple sources/lecturers → use Prompt A (multi-version) format
Single source → use Prompt B (single source) format
Generate structured note following the template at 1. Projects/AI相關/=影片學習流程與Prompt Template(通用版).md
Embed slide images in the note — insert ![[filename.png]] at the corresponding sections so the reader can see the original slides inline. Place each image embed above or below the content it illustrates.
Slide image embeds: When slide images exist (手動投影片資料夾,或由 scripts/slide_frames.py 自動抓的 frames/*.png), embed them at the matching note sections with ![[filename.png]]. Every major section should have at least one relevant slide image if available. Place the embed right after the section heading or before the content it illustrates. 自動換頁截圖的檔名帶時間碼(<stem>-MMSS.png),可依此對齊到對應段落。
Slide image reading strategy: For large slide sets (>20 images), read them in batches or use filenames' timestamps to prioritize slides that correspond to the current transcript segment. You don't need to read every single image upfront — read them as you process each section of the transcript.
Subtitle File Parsing
# SRT format: strip timestamps and sequence numbersimport re
defparse_srt(filepath):
withopen(filepath, 'r', encoding='utf-8') as f:
content = f.read()
# Remove sequence numbers and timestamps
lines = re.sub(r'\d+\n\d{2}:\d{2}:\d{2},\d{3} --> \d{2}:\d{2}:\d{2},\d{3}\n', '', content)
# Merge lines, remove duplicates from overlapping subtitles
paragraphs = [line.strip() for line in lines.split('\n\n') if line.strip()]
return'\n'.join(paragraphs)
Task 5: PDF 閱讀筆記
Applies when the user provides a PDF (journal paper, textbook chapter, or reference material) and asks for reading notes. This task always produces L3 deep-study notes plus a visual canvas map.
Core Design: Two-Stage Model
This is the most critical design decision. Splitting the work into two stages prevents the quality collapse that happens when translation, comprehension, restructuring, and condensation all compete in a single pass.
Stage 1 — 忠實翻譯底稿
Translate the original text segment by segment into Taiwan Traditional Chinese (正體中文). Every definition, numeric value, condition, causal chain, and clinical implication must survive intact.
Stage 2 — 結構重組
Working from the Stage 1 draft, do two things:
Restructure(重排): Convert flat prose into a hierarchical outline. Each paragraph's internal logic — cause/effect, conditions, comparisons, general→specific — becomes visible through indentation levels.
Distill(去蕪): Remove filler words that carry no information. But preserve all logical connectors: 因為、所以、導致、若、則、除非、然而、但是、僅、所有. When in doubt, keep the word.
Workflow
Read the PDF using available tools (Read tool for PDF, or pdftotext)
Determine subspecialty from the content
Stage 1: Translate the full text faithfully
Stage 2: Restructure + distill into hierarchical outline
Output the L3 deep-study note (.md)
Create visual canvas (.canvas) in Learning Map/ subfolder
Add canvas link to the .md # Summary section
Writing Rules (apply to all levels)
Title Structure: Mirror the Original
Section headings precisely reproduce the original document's hierarchy, including original numbering. Each heading is bilingual:
This is essential because the reader will cross-reference the notes against the original — matching structure enables fast lookup.
Figure and Table Analysis
Figures and tables often contain information not mentioned in the body text. Skipping them is a significant loss.
For each figure, add a collapsible analysis block:
> [!figure]- **Figure 3.4** 椎間盤退化分級|Pfirrmann Classification> **結構描述**:(describe the figure so the reader can understand it without seeing it)> **關鍵數值/縮寫**:Grade I–V, NP = nucleus pulposus, AF = annulus fibrosus> **與本節關聯**:illustrates the MRI grading system described in 3.2.1> **常見誤解**:Grade III often confused with Grade IV when NP signal is intermediate> **臨床情境**:used in pre-surgical planning to determine candidacy for disc replacement
For each table, translate and reconstruct in markdown, then add a collapsible reading guide:
| Grade | NP Signal | NP Structure | Disc Height | ... |
|-------|-----------|-------------|-------------|-----|
| I | Bright | Homogeneous | Normal | ... |
> [!table-guide]- 讀表教學> **行列意義**:rows = Pfirrmann grades I–V; columns = MRI characteristics> **鑑別診斷用法**:compare NP signal + structure to distinguish Grade III vs IV> **教學用途**:systematic grading approach for residents> **常見陷阱**:disc height preserved in early degeneration (Grade II) may be falsely reassuring
The collapsible design is intentional — expand when first learning, collapse afterward for quick review.
Language Rules
台灣正體中文,避免中國大陸譯法(如:影像 not 图像,椎間盤 not 椎间盘)
學術名詞首次出現括號保留英文(如:核磁共振(MRI)),之後可只寫中文
藥物學名一律英文
若涉及方程式,以 LaTeX 表示
不做的事
不把階層結構攤回散文 — the whole point is the hierarchy
不過度精簡 — preserve all logical connectors and reasoning chains
不加引用標記(citation markers like [1], [2])
不保留章末參考文獻(the original bibliography is omitted)
不加開場白和收尾語(no preamble like "以下是筆記整理...")
L3 Output: 深度筆記(唯一產出格式)
L3 outputs both stages: the full faithful translation (Stage 1) followed by the restructured outline (Stage 2), plus additional deep-dive sections and a visual canvas map.
---
title: "Paper/Chapter Title"
date: YYYY-MM-DD
DateRev: YYYY-MM-DD
aliases: []
noteVer: v4
tags:
- "L3"
subspecialty: XX
已完成: false
source:
- "Author et al. Journal. Year" or "Author(s). Book Title. Edition. Publisher, Year. Chapter X."
---
Topics :: [[relevant topics]] <br>
Parent Link :: [[=索引頁]] <br>
Related Papers :: [[]] <br>
---
# Summary
[[Note Title.canvas]]
## One-liner> 一句話核心價值## KEY TAKEAWAYS- 臨床要點
- 考試要點
- 教學要點
## Slides Outline
(one teachable concept per slide, ready for Google Slides via Apps Script)
1.**Slide title** — key message
2.**Slide title** — key message
3. ...
# Note (Stage 1 — 忠實翻譯)
(segment-by-segment faithful translation, every definition/value/condition preserved)
(bilingual section headings mirroring original structure)
(figure and table callouts included inline)
# Note (Stage 2 — 結構重組)## Background|背景- 為什麼這個題目重要?
- 臨床上的問題或困境是什麼?
## X.1 第一節標題|Original Section Title
(hierarchical outline — indented, logical connectors preserved)
> [!figure]- **Figure X.1** ...> (figure analysis)## X.2 第二節標題|Original Section Title
(more content...)
| Column 1 | Column 2 | ... |
|----------|----------|-----|
> [!table-guide]- 讀表教學> (table reading guide)## Key Imaging Findings|影像發現### CT- ...
### MRI- ...
### US- ...
(if paper only covers one modality, fill that and mark others N/A)
## Differential Diagnosis|鑑別診斷
| 診斷 | 影像特徵 | 鑑別重點 |
|------|---------|---------|
| | | |
(at least 3 rows)
## Classification / Staging|分類分期- ...
## Clinical Significance & Pitfalls|臨床意義與陷阱- ...
## 我應該記住的 3 件事1.2.3.## Important Figures|重要圖片- Fig X: {描述}
# Anatomy / Pathophysiology|解剖與病理生理- ...
# Management & Treatment|處置與治療- 影像在治療決策中的角色
- Follow-up protocol
# Pearls1. ...
2. ...
# 和我的知識庫的連結- 與 [[existing note]] 的關聯
- 補充了 [[another note]] 中關於___的不足
# Questions for Further Study
- ...
### 參考來源
## 題目
## 閱片
Visual Canvas Map(.canvas 視覺化摘要)
After writing the L3 .md note, create a companion .canvas file that provides a visual overview of the note's structure and concept relationships. This is valuable because it allows the reader to see the "big picture" at a glance in Obsidian's canvas view.
Canvas Location
Place the .canvas file in a Learning Map/ subfolder relative to where the .md file is saved. Create the folder if it doesn't exist.
Example: if the .md is at 2. Areas/NR相關知識/2024 RG Paper Title.md, the canvas goes to 2. Areas/NR相關知識/Learning Map/2024 RG Paper Title.canvas.
Canvas Design Pattern
Follow the JSON Canvas Spec 1.0 format. The canvas should visualize the note's knowledge structure, not just list sections:
Central node (color "6" purple, ~500×300, at position 0,0):
Group nodes to cluster related sub-concepts (e.g., a "Radiotherapy" group containing Hypofractionation + Boost + Cardiac Protection nodes).
Edges with Chinese labels describing the logical relationship between concepts (e.g., "切緣標準", "復發處理", "鑑別診斷").
File node linking back to the original .md (path: vault-relative, e.g., 2. Areas/NR相關知識/2024 RG Paper Title.md).
Layout Guidelines
Spread nodes across x range -900 to 900, y range -500 to 700
Don't just make a column of nodes — arrange them spatially to reflect logical groupings
Use 50-100px spacing between nodes
Keep text concise in nodes — bullet points, not paragraphs
Use \n for newlines in JSON text strings (not literal newlines)
Generate unique 16-character lowercase hex IDs for all nodes and edges
Canvas Link in .md
After creating the canvas, add a wikilink in the .md file's # Summary section, right after the # Summary heading. The link MUST include the .canvas extension (Obsidian requires it for non-.md files):
# Summary
[[Note Title.canvas]]
Minimal Canvas
If the source note has very little content (<15 meaningful lines), create a minimal canvas with just the central summary node + file node.
JSON Validation
After writing each canvas file, validate:
JSON parses without errors
All id values are unique across nodes and edges
Every fromNode and toNode in edges references an existing node ID
Required fields present for each node type
Additional Rules for Task 5
每個定義、數值、條件、因果推理、臨床意涵都必須保留,一個都不能丟
source 欄位格式:期刊用 "First Author et al. Journal Abbreviation. Year;Volume:Pages";書籍用 "Author(s). Book Title. Edition. Publisher, Year. Chapter X."
Applies when subtitle files (.srt/.vtt) need to be processed into structured JSON for web player navigation. This is the upstream step of Task 4 — the JSON enables time-coded navigation when viewing lectures online.
When to Use
User provides SRT/VTT files and asks for segmentation or JSON generation
Task 4 is triggered but no corresponding .json exists for the subtitle file
User says: 分段, json, 字幕整理, 導航, navigation
Reference Materials for Correction
ASR-generated subtitles are often riddled with errors — especially for English medical terms embedded in Chinese speech. To produce an accurate JSON, you need a reference source for ground-truth terminology. Check for these in priority order:
Slide images(投影片截圖) — A companion folder with .png/.jpg files named by timestamp (e.g., Modifier S-0934.png = slide at 09:34). Use the Read tool to visually read each image — they contain the actual slide text, tables, classification criteria, and proper nouns that the speaker is referencing.
PDF 講義 — A same-name .pdf file. Extract text with pdftotext for terminology cross-reference.
No reference available — Rely on domain knowledge; mark uncertain terms with「(可能為 XXX)」.
Why slide images matter: A typical medical lecture SRT will have dozens of garbled English terms (e.g., "Lunnerate" → "Lung-RADS", "Arteryal Calculification" → "Arterial Calcification", "Infisima" → "emphysema"). The slide images show the correct spelling on screen. Without reading them, the JSON will propagate these errors into segment titles and summaries.
Prompt Template
The following is the complete prompt to use (or provide to the user for API usage):
frame / frames 欄位(2026-06-24 新增,影片截圖整合):當影片檔存在時,由
scripts/slide_frames.py 自動填入。frames = 該段時間範圍內偵測到的所有「換頁截圖」
相對路徑;frame = 代表圖(該段第一張換頁;若該段無換頁則為段落開始時螢幕上那張)。
web player 可用 frame 顯示縮圖、用 frames 做段內輪播。無影片檔時這兩個欄位省略。
Workflow
Read the .srt file content (handle encoding: check for UTF-16/UTF-8 BOM)
Check for slide images — look for a companion folder with the same base name as the SRT (e.g., Lecture Name/ for Lecture Name.zh.srt). If it contains .png/.jpg files:
a. List all image files and note their timestamp-based filenames
b. Read each slide image using the Read tool to extract the visual content (slide titles, English terminology, tables, classification criteria, numeric thresholds, proper nouns)
c. Build a correction map: ASR-garbled term → correct term from slide
d. For large slide sets (>30 images), read in batches aligned with SRT timestamp ranges
If no slide images exist, check if a same-name .pdf exists — if so, extract text with pdftotext for terminology correction
Correct the SRT transcript before segmentation — apply the correction map from slide images to fix English medical terms, Chinese ASR errors, and proper nouns throughout the transcript. Optionally save the corrected SRT back to the same file (convert to UTF-8 if originally UTF-16).
Segment the corrected transcript into 8–15 chapters based on topic transitions (aligned with slide changes where possible)
Generate the JSON output with corrected terminology in all titles, summaries, and bullet points
Validate output JSON: all required keys present, segments in chronological order, no time overlaps
Save as <same-name>.json in the same directory as the SRT file (e.g., Modifier S.zh.json). If the SRT follows YYYYMMDD-NN.srt naming, save as YYYYMMDD-NN.json.
Existing wikilinks: [[any link]] — never break these
Bulk Processing
When the user asks to process an entire folder:
List all .md files in the folder
Write a Python script to assess all files and categorize issues
Write a bulk YAML fix script that handles all files programmatically
Run footnote conversion on files that need it (can be scripted or manual)
Handle 閱片 conversion manually per-file (requires judgment on table type)
Verify final state
For bulk YAML processing, use ruamel.yaml (preserves formatting better than PyYAML) or write YAML blocks manually with Python string operations to avoid serialization issues. Be careful with the source field — YAML serializers can split strings into individual characters if the field type is ambiguous.
Common Bulk Script Pattern
import os, re, yaml
NONSTD_FIELDS = {'keyperson', 'PrivateData', '到期日', 'source_PDF', 'location'}
OLD_INLINE_PATTERNS = [
r'^Status\s*::.*', r'^Source type\s*::.*', r'^Source URL\s*::.*',
r'^Note Type\s*::.*', r'^Subspecialty\s*::.*', r'^完成度\s*::.*',
r'^source\s*::\s*<br>\s*$', r'^Author\s*::.*',
]
# For each file:# 1. Parse YAML (handle errors gracefully — some files have malformed YAML)# 2. Fix fields per checklist# 3. Remove non-standard fields# 4. Write back# 5. Remove old inline metadata lines from body
Verification
Tasks 1-3 (Cleanup)
YAML parses without errors
All required V4 fields present with correct types
No non-standard fields remain
No old inline metadata lines remain
Footnotes properly numbered and defined (if converted)
閱片 callouts use correct format (if converted)
SR comments untouched
Image embeds untouched
Task 4 (影片整理)
V4 YAML complete (source lists lecturer/course)
Topics and Parent Link filled with actual wikilinks