--- name: tolaria-update description: 更新Tolaria笔记库(~/Desktop/Tolaria笔记库/)中的Markdown文件。当需要修改、插入、替换Tolaria笔记内容时使用。包含可靠的文件写入方法和验证步骤。 --- # Tolaria笔记库文件更新技能 ## 触发条件 - 需要更新 `~/Desktop/Tolaria笔记库/` 中的任何 `.md` 文件 - 需要同步更新笔记库和移动硬盘JZAO上的对应内容 ## 核心规则 ### 路径映射 ``` Tolaria笔记库(人类可读层): ~/Desktop/Tolaria笔记库/ 移动硬盘JZAO(资产实际层): /Volumes/JZAO/光湖项目/短剧视频AI/ ``` 读笔记时 -> 映射到JZAO硬盘核实最新状态 写笔记时 -> 两边同步更新 ### 文件写入方法(按优先级) #### 方法一:单行替换 -> sed ```bash sed -i '' 's/旧文本/新文本/' "文件路径" ``` - macOS用 `sed -i ''`(空字符串表示不备份) - 适合替换一行内的文本 - 含中文/特殊Unicode符号也能正常工作 #### 方法二:多行插入 -> Python readlines + insert ```python filepath = '文件路径' with open(filepath, 'r', encoding='utf-8') as f: lines = f.readlines() for i, line in enumerate(lines): if '定位关键词' in line: insert_after = i break new_content = ''' 新内容行1 新内容行2 ''' lines.insert(insert_after + 1, new_content) with open(filepath, 'w', encoding='utf-8') as f: f.writelines(lines) ``` - 逐行读取 -> 找到位置 -> insert -> 逐行写回 - **不要**用 `read().replace().write()`,会静默失败 #### 方法三:创建新文件 -> cat heredoc ```bash cat > "文件路径" << 'ENDOFFILE' 文件内容 ENDOFFILE ``` - 适合在JZAO移动硬盘上创建新文件 - 用单引号防止变量展开 ### 绝对禁止 - **禁止** Python `str.replace()` 全文件替换 -> Mac上含中文/emoji/特殊Unicode的Markdown会静默失败 - **禁止** 只改一边 -> 笔记库和JZAO必须同步 - **禁止** 写入后不验证 ## 验证步骤 每次写入后**必须**用grep验证: ```bash grep -n "关键词" "文件路径" ``` - 确认新内容出现了 - 确认旧内容已消失(如果是替换) - grep返回空 = 写入失败,需要重试 ## 完整工作流 ``` 1. 读Tolaria笔记 -> 映射到JZAO硬盘核实实际状态 2. 确定要更新的内容 3. 选择写入方法(sed / Python readlines / cat heredoc) 4. 执行写入 5. grep验证是否生效 6. 如果涉及JZAO文件,同步更新 7. 再次验证两边一致 ```