---
name: public-copy-scrubber
description: Use when batch-reviewing webpages, HTML, Markdown, or JSON content for internal/editorial/process wording such as OCR说明, 脱敏说明, 已移除..., AI辅助整理, 本页不复用..., provenance notes, or editing-log phrasing, and the goal is a natural public-facing version, usually followed by direct upload/deploy of cleaned public files.
---

# Public Copy Scrubber

## Overview

Turn draft webpage copy into a public-facing version. Remove backstage narration such as OCR notes, sanitization logs, editing-process explanations, and “already removed” statements; keep the real观点、结论、方法、适用场景与风险提示。

核心原则：**读者应看到最终内容，而不是编辑过程。**

## Quick Command

脚本入口：

```bash
python3 ~/.claude/skills/public-copy-scrubber/scripts/public_copy_scrubber.py <path-or-paths>
```

推荐默认用法：

```bash
# 自动清理成可发布版 + 自动上传（最适合你的日常流程）
python3 ~/.claude/skills/public-copy-scrubber/scripts/public_copy_scrubber.py   public/ai-skills   --auto-publish   --report-dir /tmp/public-copy-report
```

其他常用命令：

```bash
# 只扫描并生成报告
python3 ~/.claude/skills/public-copy-scrubber/scripts/public_copy_scrubber.py   public/ai-skills   --report-dir /tmp/public-copy-report

# 只删明显内部句，不自动上传
python3 ~/.claude/skills/public-copy-scrubber/scripts/public_copy_scrubber.py   public/ai-skills   --apply-safe   --report-dir /tmp/public-copy-report

# 更激进地改成可发布版，但先不上传
python3 ~/.claude/skills/public-copy-scrubber/scripts/public_copy_scrubber.py   public/ai-skills   --apply-public   --report-dir /tmp/public-copy-report

# 生成上传计划，但先不真正上传
python3 ~/.claude/skills/public-copy-scrubber/scripts/public_copy_scrubber.py   public/ai-skills   --auto-publish   --dry-run-deploy   --report-dir /tmp/public-copy-report
```

模式说明：
- `--apply-safe`：只删除明显内部语句
- `--apply-public`：进一步移除常见编辑口吻，尽量直接变成对外版
- `--deploy`：清理后自动上传
- `--auto-publish`：等同于 `--apply-public --deploy`
- `--dry-run-deploy`：只生成上传计划，不真正上传

输出内容：
- `report.md`：适合直接看
- `report.json`：适合后续程序处理
- 使用上传模式时，会输出计划上传路径与线上 URL

自动上传规则：
- 仅支持 `public/` 目录内的文件
- 会按 `public/` 相对路径上传到 `/var/www/medaibox/`
- 例如 `public/ai-skills/demo.html` 会上传到 `/var/www/medaibox/ai-skills/demo.html`

## Natural-Language Invocation

如果你平时不想人工复核，直接说“自动清理后上传”即可。默认推荐就是 `auto-publish` 这条链路。

可直接这样说：

- 用 `$public-copy-scrubber` 自动清理这一批页面，然后直接上传到 medaibox。
- 用 `$public-copy-scrubber` 把 `public/ai-skills` 这批页面改成对外版，改完自动部署。
- 用 `$public-copy-scrubber` 扫一下这个目录，内部语句直接清掉并上传，不用再人工逐条确认。
- 用 `$public-copy-scrubber` 处理这些 HTML 和 JSON，保留真实结论，不写处理过程，然后自动发布。
- 用 `$public-copy-scrubber` 先 dry-run 看看要上传哪些文件，没问题再正式上传。

如果你只想保守一点，也可以这样说：

- 用 `$public-copy-scrubber` 先做 safe 清理，不要上传。
- 用 `$public-copy-scrubber` 先扫一遍并出报告，我再决定要不要自动发布。

## Use This Skill For

- 一批 HTML / Markdown / JSON 页面需要统一审查内部语句
- 页面已经基本成形，但对外读起来还像“处理日志”或“编辑说明”
- 文案里混有 `OCR说明`、`脱敏说明`、`已移除...`、`AI辅助整理`、`本页不复用...`、`抓取说明`、`整合阅读版`、`兜底页` 等内部口吻
- 需要保留真实结论，但去掉“这是如何整理出来的”这类过程描述
- 需要输出“可公开发布版本”，而不是审查报告

不要把这个 skill 用于：
- 从零抓取网页、做 OCR、下载素材
- 处理法律声明、来源透明度专页、合规专页
- 页面主题本身就是 OCR / 脱敏 / 去标识化方法学时的内容删除

## Batch Workflow

### 1. Confirm the boundary

先确认这轮任务的对象：
- 指定文件列表
- 某个目录
- 某类页面（如卡片页、详情页、JSON 数据源）

默认目标是**对外公示版**，不是内部审校版。

### 2. Run a first-pass scan

先用关键词筛出可疑句子或区块，再逐条判断，不要直接全局替换。

```bash
rg -n --glob '*.html' --glob '*.md' --glob '*.json' \
  "OCR说明|脱敏说明|已移除|AI辅助整理|本页不复用|整合阅读版|兜底页|抓取说明|整理说明|平台痕迹|短链|昵称|日期|自动分段与去噪显示|基于.*OCR|只保留" \
  <path-or-paths>
```

如果命中很多，优先检查：
- 页面首屏导语
- 卡片副标题
- 图片说明 / caption
- 页尾说明
- JSON 内的 `summary`、`description`、`note`、`intro`

### 3. Classify every hit

对每条命中内容，只做这三类判断：

| 判断 | 处理方式 | 适用情况 |
|---|---|---|
| 删除 | 整句删掉 | 只有处理过程，没有真实内容 |
| 改写 | 去掉过程口吻，保留真实结论 | 一句里既有处理过程，也有内容价值 |
| 保留 | 不动 | 该词是页面主题本身，或属于必要合规/来源说明 |

拿不准时，**标记人工复核，不要编造新内容。**

### 4. Rewrite to finished public copy

改写时遵守这些规则：

- 删除“我们如何处理素材”的叙述
- 保留“用户真正需要知道的内容”
- 把 `本页聚焦...`、`这里整理了...` 这类编辑口吻，改成直接陈述主题
- 不写 `已移除昵称/日期/短链/平台痕迹`；这类说明默认不对外展示
- 不写 `基于 OCR 脱敏整理`、`AI辅助整理`、`自动分段与去噪显示`
- 如果某句只有空泛占位作用，例如 `概览研究背景、方法与主要结果`，优先删除；只有在你知道具体内容时才改成实义句
- 保持原页面的信息层级、HTML 结构、JSON schema 与链接字段不变

### 5. Preserve the right things

必须保留：
- 真实结论
- 真实方法
- 真实使用场景
- 必要的风险、限制与适用边界
- 页面主题本身涉及的专业词

不要因为命中了关键词就误删这些内容：
- `DICOM 脱敏流程`
- `OCR 工具教程`
- `去标识化方法`
- `短链脂肪酸`
- `公开发布数据集`
- `噪声去除算法`

遇到这类情况，说明关键词是**内容主题**，不是内部语句。

### 6. Verify before finishing

完成改写后至少做两轮检查：

1. 再跑一次同样的 `rg` 搜索
2. 逐页目视检查首屏、标题、卡片文案、页尾说明

只把以下内容留在结果中：
- 明确属于方法学页面的专业术语
- 明确属于合规、来源、法律、透明度说明的必要句子

最终回报时输出：
- 已清理文件列表
- 仍需人工复核的文件或句子
- 刻意保留的例外项及原因

## Quick Rewrite Rules

### 直接删除

删除只表达处理过程、来源处理、平台去痕迹的句子。

典型例子：
- `基于一则公开长图分享的 OCR 脱敏整理。`
- `已移除昵称、日期、短链与平台痕迹。`
- `本页不复用原始截图。`
- `AI辅助整理，便于快速阅读。`

### 改写保留结论

把“过程 + 观点”混在一起的句子，改成只保留观点。

- 不要写：`基于 OCR 脱敏整理后可以看到，很多时候更累的不是写代码。`
- 改成：`很多时候更累的不是写代码，而是持续切换、协作、验收与追踪。`

### 保留必要说明

只有当页面本身讨论来源透明度、合规边界、去标识化方法、OCR 方法误差时，才保留相关说明。

如果不确定，读取 `references/example-phrases.md` 里的删 / 改 / 留示例后再判断。

## Common Mistakes

- 只靠关键词全局替换，误删专业内容
- 把原本该删除的内部句子，换成另一种内部口吻
- 保留“整合阅读版 / 兜底页 / 抓取说明”这类内部命名
- 在 JSON 中改了文案却破坏字段结构
- 为了去掉内部语句，把原本具体的结论改成空泛口号

## Output Standard

完成后的页面应满足：
- 读起来像最终公开页，而不是编辑日志
- 只呈现真实对外结论
- 没有内部处理过程外露
- 语气自然、专业、中性
