具有两层处理功能的 Markdown 格式化技能:
- 内容格式化:分析内容,提高可读性,并在需要时添加元数据或结构辅助。
- 结构兼容性修复:为数学公式、列表和表格块应用 mkdocs/material 安全的间距修复,而不重写文本内容。
您必须遵循下方 工作流程 部分中的工作流程,不得跳过任何必需步骤。
核心原则
- 尽可能保留原始含义和措辞。
- 在内容格式化模式(步骤 2-5)中,可以添加元数据和结构辅助,例如标题、摘要、标题、强调、列表、表格和警告框。
- 在步骤 6 结构修复模式中,脚本仅执行空白字符更改,绝不重写文本内容。
| 原则 | 要求 |
|---|
| 含义保留 | 尽可能保留作者的意图、语气和措辞。 |
| 结构添加 | 在格式化模式下,仅添加可提高可读性的元数据或格式结构。 |
| 仅修改空白字符 | 步骤 6 只能修改空白字符、空行和结构间距。 |
| 渲染安全性 | 确保所有更改都能提高 mkdocs/material 样式中 Markdown 渲染的稳定性。 |
| 可追溯性 | 每个有意义的更改都必须在最终报告中总结。 |
使用方法
工作流程有两个阶段:
- 分析和格式化内容(步骤 1-5)
- 应用结构兼容性修复,以支持 mkdocs/material 渲染(步骤 6)
Claude 首先执行内容分析和格式化,然后将结构兼容性脚本作为最终清理步骤运行。
工作流程
步骤 1:读取并检测内容类型
读取用户指定的文件,然后检测内容类型:
| 指示符 | 分类 |
|---|
包含 --- YAML 头信息 | Markdown |
包含 #、##、### 标题 | Markdown |
包含 粗体、斜体、列表、代码块、引用块 | Markdown |
| 以上均无 | 纯文本 |
如果检测到 Markdown,请询问用户:检测到现有的 markdown 格式。您想怎么做?
- 优化格式(推荐)- 分析内容,改进标题、粗体、列表、表格和可读性
- 之后运行结构兼容性脚本
- 输出:{filename}_formatted.md
- 保持原始格式 - 保留现有的 markdown 结构
- 仅在复制的文件上运行结构兼容性脚本
- 输出:{filename}_formatted.md
- 仅进行结构修复 - 直接在原始文件上运行结构兼容性脚本
- 不创建副本;直接修改原始文件
根据用户选择:
- 优化:继续步骤 2(完整工作流程)
- 保持原始:跳到步骤 5,复制文件,然后运行步骤 6
- 仅结构修复:跳到步骤 6,直接在原始文件上运行
Typos Found - [list any obvious typos with corrections, or "None found"]
---
Step 3: 检查/创建 Frontmatter、标题和摘要
检查 YAML frontmatter(--- 块)。如果缺失则创建。
| 字段 | 处理方式 |
|---|
title | 参见下面的标题生成 |
slug | 从文件路径推断或从标题生成 |
summary | 参见下面的摘要生成 |
coverImage | 检查同目录下是否存在 imgs/cover.png;如果存在,使用相对路径 |
标题生成
无论标题是否已存在,始终运行标题优化流程,除非设置了 auto_select_title。
准备工作 — 阅读完整文本并提取:
- 核心论点(一句话:"这篇文章是关于什么的?")
- 最有影响力的观点或结论
- 读者的痛点或好奇心触发点
- 最令人难忘的比喻或金句
生成 3-4 个风格差异化的候选标题:
| 风格 | 特征 | 示例 |
|---|
| 颠覆式 | 否定常见做法,制造冲突 | "All de-AI-flavor prompts are wrong" |
| 解决方案 | 直接给出答案,承诺价值 | "One recipe to make AI write in your voice" |
| 悬念式 | 揭示一半,激发好奇心 | "It took me six months to find how to remove AI flavor" |
| 具体数字 | 用数字增加可信度 | "150 lines of docs taught AI my writing style" |
呈现给用户:
Pick a title:
- [Title A] — (recommended)
- [Title B] — [style note]
- [Title C] — [style note]
Enter number, or type a custom title:
将最强的钩子放在第一位并标记为推荐。
标题原则:
- 前 5 个字符内设置钩子:制造信息缺口或认知冲突
- 具体 > 抽象:"150 lines" 优于 "a document"
- 否定 > 肯定:"you're doing it wrong" 优于 "the right way"
- 会话式:像和朋友聊天,而不是写论文标题
- 最多约 25 个字符:较长的标题在信息流中会被截断
- 准确,不做标题党:文章必须兑现标题的承诺
禁止的模式:
- "浅谈 XX"、"关于 XX 的思考"、"XX 的探索与实践"
- "震惊!"、"万字长文"、"建议收藏"
- 没有方向性的纯问题:"AI 写作的未来在哪里?"
如果 frontmatter 中存在 title 且正文内容中没有 H1,你必须将标题作为第一个 H1 插入(# {{title}})。不要删除它。
如果 frontmatter 已有 title,将其作为上下文包含,但仍需生成新的候选标题,除非配置允许跳过。
摘要生成
从不同角度生成 3 个候选摘要。呈现给用户:
Pick a summary:
- [Summary A] — [focus note]
- [Summary B] — [focus note]
- [Summary C] — [focus note]
Enter number, or type a custom summary:
摘要原则:
- 80-150 个字符,精确且信息丰富
- 传达对读者的核心价值,而不仅仅是主题
- 角度多样化:问题驱动型、结果驱动型、洞察驱动型
- 吸引读者:让他们想阅读完整文章
- 使用具体细节(数字、结果、特定方法)而非模糊描述
禁止的模式:
- "本文介绍了..."、"本文探讨了..."
- 纯主题描述,没有价值主张
- 用不同措辞重复标题
如果 frontmatter 已有 summary,跳过选择环节,直接使用它。
为了让摘要可见显示,请按照警告语法规则生成它。将其放在 H1 标题之后:
!!! example "Summary"
Here is the summary you generated.
EXTEND.md 跳过行为:
如果 EXTEND.md 中设置了 auto_select: true,跳过标题和摘要选择,直接生成最佳候选而不询问用户。用户也可以独立设置 auto_select_title: true 或 auto_select_summary: true。
Step 4: 格式化内容
根据 Step 2 的分析指导进行格式化。目标是使内容易于扫描,关键要点易于理解。
格式化工具包
| 元素 | 使用时机 | 格式 |
|---|
| 标题 | 自然的话题边界、章节分隔 | ##、### 层级 |
| 粗体 | 关键结论、重要术语、核心要点 | bold |
| 无序列表 | 并列项、功能列表、示例 | - item |
| 有序列表 | 顺序步骤、排名项目、流程 | 1. item |
| 高亮 | 关键细节、需要快速注意的重要比较 | ==text== |
| 颜色高亮 | 标准粗体不足以表达的颜色强调 | text |
| 表格 | 比较、结构化数据、选项矩阵 | Markdown 表格 |
| 代码 | 命令、文件路径、技术术语、变量名 | ` inline 或 fenced 块 |
| 引用块 | 值得注意的引用、重要警告、引用的文本 | > blockquote |
| 警告框 | 定义、示例、值得注意的警告、结论 | 遵循下面的警告语法规则 |
| 分隔符 | 主要主题转换 | --- |
警告语法规则
严格强制执行。当使用 MkDocs 风格的警告框(如 !!! note、!!! example、!!! warning)时,必须严格遵循这些缩进规则。Markdown 解析器要求块内的内容必须缩进。
正确的格式:
!!! note "Title Text"
This is the content. It must start with 4 spaces, and the above line is empty. This is a second paragraph. It also needs 4 spaces indentation.
- List items also follow.
The end line should have an empty line with no indent below.
This is the line outside admonition (correct).
错误的格式(请勿这样做):
!!! note "Title Text"
This content has no indent. (Wrong - breaks indentation rule)!!! note "Title Text"
First paragraph ok.
Second paragraph has no indent. (Wrong - breaks the block)
语法规则:
- 缩进:属于警告框的所有内容必须相对于 !!!
行缩进 4 个空格。
- 段落分隔:块内的空行也必须保持块结构;确保下一段以 4 个空格开头。
- 嵌套列表/代码:如果在警告框内使用列表或代码,总共缩进 8 个空格。
- 一致性:不要混合制表符和空格。始终使用 4 个空格。
格式化原则 — 不要做什么
- 不要添加编造的事实、解释或评论
- 不要在用户未明确要求的情况下删除或缩短有效的原始内容
- 除非任务明确要求,否则不要改写或重写作者的措辞
- 不要添加带有主观评价的标题(例如 "Amazing Discovery");使用中性的描述性标题
- 不要过度格式化:不是每个句子都需要粗体,也不是每个段落都需要标题
格式化原则 — 应该做什么
- 尽可能保留作者的 voice、tone 和措辞
- 将关键结论和核心要点加粗——读者可能会高亮的句子
- 当结构清晰时,将散文中的并列项提取为列表
- 在话题真正转换的地方添加标题
- 将散文中埋藏的比较或结构化数据使用表格
- 将金句、令人难忘的声明或重要警告使用引用块
- 仅在修正明确无误时修复明显的拼写错误
Step 5: 保存格式化文件
将格式化内容保存为新文件。输出文件名由原始文件名加上 EXTEND.md 中定义的后缀组成。
- 默认后缀:_formatted
→ {original-filename}_formatted.md
- 通过 EXTEND.md
覆盖:设置 output_suffix: _formatted → {original-filename}_formatted.md
覆盖前备份现有文件:
if [ -f "{filename}_formatted.md" ]; then
mv "{filename}_formatted.md" "{filename}_formatted.backup-$(date +%Y%m%d-%H%M%S).md"
fi
Step 5 保存格式化文件后,Step 6 必须在该保存的输出文件上原地运行。
Step 6: 执行结构渲染兼容性脚本
脚本存储在 scripts/ 子目录中。${SKILL_DIR} 是包含此 SKILL.md 的根目录。
此脚本专为 MkDocs + Material 渲染兼容性设计。它修复数学公式、列表和表格块周围的结构间距,同时保留文档内容。
运行时要求
- Node.js 18+
- 在 ${SKILL_DIR}
中一次性安装本地 npm 依赖
如果尚未安装依赖:
cd ${SKILL_DIR}
npm install
如果 package-lock.json 已存在,优先使用:
cd ${SKILL_DIR}
npm ci
脚本执行
node ${SKILL_DIR}/scripts/format-md.js "${output_file}"
其中 ${output_file}` 是 Step 5 中保存的格式化文件的路径。
脚本将:
- 读取输出文件
- 应用 MkDocs + Material 兼容性修复:
- 列表和表格周围的适当间距
- 数学公式块的渲染兼容性
- 嵌套结构的缩进一致性
Step 7: 最终检查与输出
完成所有格式化步骤后,进行最终检查:
- [ ] YAML frontmatter 完整且格式正确
- [ ] 标题已生成并呈现给用户选择
- [ ] 摘要已生成并按要求显示
- [ ] 所有格式化元素正确应用
- [ ] 警告框语法正确
- [ ] 文件已保存到正确位置
- [ ] 结构渲染兼容性脚本已执行
向用户报告完成状态和输出文件位置。
📋 步骤 7:完成报告
格式化完成文件:
- 分析报告:{filename}-analysis.md
- 格式化文件:{filename}_formatted.md
内容分析摘要:
- 发现亮点:X 个关键见解
- 精彩引用:X 个令人难忘的句子
- 修复的格式问题:X 项
应用的更改:
- Frontmatter:[已添加/已更新](标题、slug、摘要)
- 添加的标题:X 个(##: N,###: N)
- 添加的粗体标记:X 个
- 创建的列表:X 个(从散文转换为列表)
- 创建的表格:X 个
- 添加的警告提示:X 个
- 修复的拼写错误:X 个 [逐项列出:"原内容" → "正确内容"]
结构兼容性脚本:
- 处理的数学块:X 个
- 处理的列表块:X 个
- 处理的表格块:X 个
- 添加的空行:X 个
- 移除的数学内部空行:X 个
- 创建备份:[是/否]
Markdown formatting skill with two layers of processing:
- Content formatting: analyze content, improve readability, and add metadata or structural aids when needed.
- Structural compatibility fixing: apply mkdocs/material-safe spacing fixes for math, list, and table blocks without rewriting text content.
You MUST follow the workflow in the Workflow section below and must not skip required steps.
Core Principles
- Preserve original meaning and wording as much as possible.
- In content-formatting mode (Steps 2-5), metadata and structural aids may be added, such as title, summary, headings, emphasis, lists, tables, and admonitions.
- In Step 6 structural-fix mode, the script performs whitespace-only changes and never rewrites text content.
| Principle | Requirement |
|---|
| Meaning Preservation | Preserve the author's meaning, tone, and wording as much as possible. |
| Structural Additions | In formatting mode, only add metadata or formatting structures that improve readability. |
| Whitespace-Only Script | Step 6 may only modify whitespace, empty lines, and structural spacing. |
| Rendering Safety | Ensure all changes improve markdown rendering stability in mkdocs/material style. |
| Traceability | Every meaningful change must be summarized in the final report. |
Usage
The workflow has two phases:
- Analyze and format content (Steps 1-5)
- Apply structural compatibility fixes for mkdocs/material rendering (Step 6)
Claude performs content analysis and formatting first, then runs the structural compatibility script as the final cleanup step.
Workflow
Step 1: Read & Detect Content Type
Read the user-specified file, then detect content type:
| Indicator | Classification |
|---|
Has --- YAML frontmatter | Markdown |
Has #, ##, ### headings | Markdown |
Has bold, italic, lists, code blocks, blockquotes | Markdown |
| None of above | Plain text |
If Markdown is detected, ask the user:Detected existing markdown formatting. What would you like to do?- Optimize formatting (Recommended)
- Analyze content, improve headings, bold, lists, tables, and readability
- Run structural compatibility script afterward
- Output: {filename}_formatted.md- Preserve existing markdown structure
- Run structural compatibility script only on the copied file
- Output: {filename}_formatted.md- Run the structural compatibility script on the original file in-place
- No copy created; modifies the original file directly
Based on user choice:
- Optimize: Continue to Step 2 (full workflow)
- Keep original: Skip to Step 5, copy file, then run Step 6
- Structural fixes only: Skip to Step 6 and run on the original file directly
Step 2: Analyze Content (Reader's Perspective)
Read the entire content carefully. Think from a reader's perspective: what would help them quickly understand and remember the key information?
Produce an analysis covering these dimensions:
2.1 Highlights & Key Insights
- Core arguments or conclusions the author makes
- Surprising facts, data points, or counterintuitive claims
- Memorable quotes or well-phrased sentences (golden quotes)
2.2 Structure Assessment
- Does the content have a clear logical flow? What is it?
- Are there natural section boundaries that lack headings?
- Are there long walls of text that could benefit from visual breaks?
2.3 Reader-Important Information
- Actionable advice or takeaways
- Definitions and explanations of key concepts
- Lists or enumerations buried in prose
- Comparisons or contrasts that would be clearer as tables
2.4 Formatting Issues
- Missing or inconsistent heading hierarchy
- Paragraphs that mix multiple topics
- Parallel items written as prose instead of lists
- Code, commands, or technical terms not marked as code
- Obvious typos or formatting errors
Save analysis to file: {original-filename}-analysis.md
The analysis file serves as the blueprint for Step 3. Use this format:
# Content Analysis: {filename}Highlights & Key Insights
Structure Assessment
- Current flow: [describe]
- Suggested sections: [list heading candidates with brief rationale]
Reader-Important Information
- [list actionable items, key concepts, buried lists, potential tables]
Formatting Issues
- [list specific issues with location references]
Typos Found
- [list any obvious typos with corrections, or "None found"]
Step 3: Check/Create Frontmatter, Title & Summary
Check for YAML frontmatter (--- block). Create it if missing.
| Field | Processing |
|---|
title | See Title Generation below |
slug | Infer from file path or generate from title |
summary | See Summary Generation below |
coverImage | Check if imgs/cover.png exists in the same directory; if so, use relative path |
Title Generation
Whether or not a title already exists, always run the title optimization flow unless auto_select_title is set.
Preparation — read the full text and extract:
- Core argument (one sentence: "what is this article about?")
- Most impactful opinion or conclusion
- Reader pain point or curiosity trigger
- Most memorable metaphor or golden quote
Generate 3-4 style-differentiated candidates:
| Style | Characteristics | Example |
|---|
| Subversive | Deny common practice, create conflict | "All de-AI-flavor prompts are wrong" |
| Solution | Give the answer directly, promise value | "One recipe to make AI write in your voice" |
| Suspense | Reveal half, spark curiosity | "It took me six months to find how to remove AI flavor" |
| Concrete number | Use numbers for credibility | "150 lines of docs taught AI my writing style" |
Present to the user:
Pick a title:- [Title A] — (recommended)
- [Title B] — [style note]
- [Title C] — [style note]
Enter number, or type a custom title:
Put the strongest hook first and mark it as recommended.
Title principles:
- Hook in the first 5 chars: create an information gap or cognitive conflict
- Specific > abstract: "150 lines" beats "a document"
- Negation > affirmation: "you're doing it wrong" beats "the right way"
- Conversational: like chatting with a friend, not a paper title
- Max ~25 chars: longer titles get truncated in feeds
- Accurate, not clickbait: the article must deliver what the title promises
Prohibited patterns:
- "浅谈 XX"、"关于 XX 的思考"、"XX 的探索与实践"
- "震惊!"、"万字长文"、"建议收藏"
- Pure questions without direction: "AI 写作的未来在哪里?"
If title exists in frontmatter and there is no H1 in the body content, YOU MUST insert the title as the first H1 (# {{title}}). Do not remove it. If frontmatter already has title, include it as context but still generate fresh candidates unless skipped by configuration.
Summary Generation
Generate 3 candidate summaries with different angles. Present to the user:
Pick a summary:- [Summary A] — [focus note]
- [Summary B] — [focus note]
- [Summary C] — [focus note]
Enter number, or type a custom summary:
Summary principles:
- 80-150 characters, precise and information-rich
- Convey the core value to the reader, not just the topic
- Vary angles: problem-driven, result-driven, insight-driven
- Hook the reader: make them want to read the full article
- Use concrete details (numbers, outcomes, specific methods) over vague descriptions
Prohibited patterns:
- "本文介绍了..."、"本文探讨了..."
- Pure topic description without value proposition
- Repeating the title in different words
If frontmatter already has summary, skip selection and use it.
To make the summary appear visibly, generate it following the Admonition Syntax Rules. Place it after the H1 title:
!!! example "Summary" Here is the summary you generated.
EXTEND.md skip behavior: If auto_select: true is set in EXTEND.md, skip title and summary selection and generate the best candidate directly without asking. The user may also set auto_select_title: true or auto_select_summary: true independently.
Step 4: Format Content
Apply formatting guided by the Step 2 analysis. The goal is to make the content scannable and the key points easy to grasp.
Formatting toolkit
| Element | When to use | Format |
|---|
| Headings | Natural topic boundaries, section breaks | ##, ### hierarchy |
| Bold | Key conclusions, important terms, core takeaways | bold |
| Unordered lists | Parallel items, feature lists, examples | - item |
| Ordered lists | Sequential steps, ranked items, procedures | 1. item |
| Highlights | Critical details, important comparisons for quick attention | ==text== |
| Color highlight | Colored emphasis where standard bold is insufficient | text |
| Tables | Comparisons, structured data, option matrices | Markdown table |
| Code | Commands, file paths, technical terms, variable names | ` inline or fenced blocks |
| Blockquotes | Notable quotes, important warnings, cited text | > blockquote |
| Admonition | Definitions, examples, notable warnings, conclusions | Follow Admonition Syntax Rules below |
| Separators | Major topic transitions | --- |
Admonition Syntax Rules
Strict enforcement. When using MkDocs-style admonitions (e.g. !!! note, !!! example, !!! warning), you must follow these indentation rules strictly. Markdown parsers require content inside the block to be indented.
Correct format:
!!! note "Title Text" This is the content. It must start with 4 spaces, and the above line is empty.
This is a second paragraph. It also needs 4 spaces indentation.
- List items also follow. The end line should have an empty line with no indent below.
This is the line outside admonition (correct).
Incorrect format (DO NOT DO THIS):
!!! note "Title Text"
This content has no indent. (Wrong - breaks indentation rule)!!! note "Title Text"
First paragraph ok.
Second paragraph has no indent. (Wrong - breaks the block)
Syntax rules:
- Indentation: All content belonging to the admonition must be indented 4 spaces relative to the !!!
line.
- Paragraph breaks: Blank lines inside the block must also preserve block structure; ensure the next paragraph starts with 4 spaces.
- Nested lists/code: If using lists or code inside an admonition, indent them 8 spaces total.
- Consistency: Do not mix tabs and spaces. Use 4 spaces consistently.
Formatting principles — what NOT to do
- Do NOT add invented facts, explanations, or commentary
- Do NOT delete or shorten valid original content without user intent
- Do NOT rephrase or rewrite the author's wording unless the task explicitly requires it
- Do NOT add headings that editorialize (e.g. "Amazing Discovery"); use neutral descriptive headings
- Do NOT over-format: not every sentence needs bold, and not every paragraph needs a heading
Formatting principles — what TO do
- Preserve the author's voice, tone, and wording as much as possible
- Bold key conclusions and core takeaways — the sentences a reader would likely highlight
- Extract parallel items from prose into lists when the structure is clearly present
- Add headings where the topic genuinely shifts
- Use tables for comparisons or structured data buried in prose
- Use blockquotes for golden quotes, memorable statements, or important warnings
- Fix obvious typos only when the correction is unambiguous
Step 5: Save Formatted File
Save the formatted content as a new file. The output filename is built from the original filename plus a suffix defined in EXTEND.md.
- Default suffix: _formatted
→ {original-filename}_formatted.md
- Override via EXTEND.md
: set output_suffix: _formatted → {original-filename}_formatted.md
Backup existing file before overwrite:
if [ -f "{filename}_formatted.md" ]; then
mv "{filename}_formatted.md" "{filename}_formatted.backup-$(date +%Y%m%d-%H%M%S).md"
fi
After Step 5 saves the formatted file, Step 6 must run on that saved output file in-place.
Step 6: Execute Structural Rendering Compatibility Script
Scripts are stored in the scripts/ subdirectory. ${SKILL_DIR} is the root directory containing this SKILL.md.
This script is designed for MkDocs + Material rendering compatibility. It fixes structural spacing around math, list, and table blocks while preserving document content.
Runtime Requirements
- Node.js 18+
- Local npm dependencies installed once in ${SKILL_DIR}
If dependencies are not installed yet:
cd ${SKILL_DIR}
npm install
If package-lock.json already exists, prefer:
cd ${SKILL_DIR}
npm ci
Script
| Script | Purpose |
|---|
scripts/format-structure.mjs | Fixes mkdocs/material-sensitive spacing around math/list/table blocks |
Command
node ${SKILL_DIR}/scripts/format-structure.mjs [options]
CLI Options
| Option | Short | Description | Default |
|---|
--output | -o | Specify output file path | In-place |
--dry-run | -n | Preview changes without writing | false |
--no-backup | Skip backup of existing output file | false |
What the script fixes
- Ensures block math has blank lines before and after
- Handles standalone single-line block math such as $$E = mc^2$$
- Removes illegal inner blank lines immediately after opening $$
or before closing $$
- Ensures blank lines before and after markdown lists- Ensures blank lines before and after markdown tables- Uses Markdown AST to detect structural blocks
- Applies minimal text patches instead of re-stringifying the full document
- Preserves text content and existing writing style as much as possibleEXTEND.md Rule Toggles
The script reads simple
key: value
settings from EXTEND.md
.Supported keys:
output_suffix: \_formatted
fix_math_blocks: true
fix_list_blocks: true
fix_table_blocks: true
trim_math_inner_blank_lines: true
Usage in Workflow
- Full workflow: after Step 5 saves the formatted file, run the script in-place on that output file.
- Structural-fixes-only mode: run the script directly on the original file in-place.
Examples:
# In-place fix on already formatted output
node ${SKILL_DIR}/scripts/format-structure.mjs "{output-file-path}"# Write to a custom file
node ${SKILL_DIR}/scripts/format-structure.mjs article.md -o article_fixed.md
# Preview only
node ${SKILL_DIR}/scripts/format-structure.mjs article.md --dry-run
# Skip backup
node ${SKILL_DIR}/scripts/format-structure.mjs article.md --no-backup
Output and Backup Behavior
| Condition | Output Path |
|---|
| Default | Input file modified in-place |
With --output custom.md | custom.md |
| Step 5 + default suffix | {original-name}_formatted.md |
With output_suffix: _formatted in EXTEND.md | {original-name}_formatted.md |
If the target output file already exists and --no-backup` is
not set, the script creates a timestamped backup before writing.
📋 Step 7: Completion Report
Formatting CompleteFiles:
- Analysis: {filename}-analysis.md
- Formatted: {filename}_formatted.md
Content Analysis Summary:
- Highlights found: X key insights
- Golden quotes: X memorable sentences
- Formatting issues fixed: X items
Changes Applied:
- Frontmatter: [added/updated] (title, slug, summary)
- Headings added: X (##: N, ###: N)
- Bold markers added: X
- Lists created: X (from prose → list conversion)
- Tables created: X
- Admonitions added: X
- Typos fixed: X [list each: "original" → "corrected"]
Structural Compatibility Script:
- Math blocks processed: X
- List blocks processed: X
- Table blocks processed: X
- Empty lines added: X
- Math inner blank lines removed: X
- Backup created: [yes/no]