---
name: submit-producti-directories-merged
description: 外链自动提交合并版：在当前授权范围内处理目录投递和一对一官方 Contact 邮件申请，包含去重、验证、结果取证与可恢复审计。
---

# 外链自动提交合并版

## 适用范围

本技能用于受控批量处理产品目录、资料页、项目展示页和一对一官方 Contact 邮件申请。目标是高效完成简单、可验证的动作，并把需要人工处理的页面完整交接。

不适用于付费链接、强制互链、虚构资料、群发、自动跟进、绕过验证码、请求对方发布文章，或任何超出当前授权的动作。

本公开版不得携带或示例化任何任务专属的品牌、域名、账号、联系人、凭据、本机路径、历史站点或执行结果。

## 每批次开始前

每个批次都必须重新确认以下事项；不得继承其他任务的资料、登录状态或长期授权。

1. 已核实的产品资料：公开名称、规范网址、可用文案、图片、类别和联系方式别名。
2. 可执行范围：站点清单、允许的入口类型、是否允许登录、无费用营销订阅、官方 Contact 邮件，以及授权有效期。
3. 自动化边界：选用 CDP（浏览器调试协议直连）还是 CU（Computer Use，桌面操控）；确认可用浏览器、已授权账号和必要权限。
4. 记录与证据：读取已有记录，确认本批次的授权引用和保存位置。

只有当前批次明确授权时，才可登录、注册、勾选无费用营销订阅或发送官方 Contact 邮件。付费、自动续费、捐赠、强制互链、账号归属异常、强反自动化绕过、群发和自动跟进始终需要单独授权。

## 读取资源

执行前阅读以下文件：

- [EXEC-CHECKLIST.md](EXEC-CHECKLIST.md)
- [references/workflow.md](references/workflow.md)
- [references/status-model.md](references/status-model.md)
- [assets/submission-record-template.md](assets/submission-record-template.md)

没有记录时，从模板复制一份。读取文件不等于执行：每站最终动作前和结果判断后，都必须通过检查单并记录 `checklist PASS/FAIL`。

## 建队列与基础边界

1. 规范化站点域名和投递路由，删除记录中的跟踪参数；必须保留的路由参数放入受控证据。
2. 以“平台域名 + 产品标识 + 账号别名 + 路由”生成幂等键。已有 `submitted`、`awaiting approval`、`published` 或结果不明的同一幂等键不得重新执行。
3. 先做可达性、相关性、真实性、免费路径和条款预检。付费链接、强制互链、无关分类、不可达或禁止自动化的路由直接分流。
4. 可选互链字段保持为空；不得因为一个付费或合作入口就停止，应回到首页继续寻找正常的免费入口。
5. 记录状态必须使用正式状态模型：`already_listed` 映射为 `duplicate — no action`；`captcha_wait` 映射为 `blocked — manual verification`。

不得虚构产品、公司、价格、地址、联系人、资质、数据、奖项、合作或法律事实。未知的可选字段留空；未知的必填字段应阻塞该站。

## 发现入口和内容面分类

每个站从规范首页开始，通过导航、页脚、登录后区域、站内搜索和真实链接/按钮发现当前入口。保存的深链只能作线索，不能直接当成有效投递路由。

优先识别可公开展示规范网址的非内容编辑器入口，例如商家通道、资料页、目录收录、项目展示、免费广告、新闻稿、账号资料链接位，以及当前批次已授权的官方 Contact 邮件入口。

短贴、长文和无法可靠分类的内容编辑器一律不执行：分别记录 `short note — no action`、`long post — no action` 或 `unknown — no action`，不得填写内容、预填、保存草稿、交人工、提交或发布。界面写着 `Post` 不构成例外。只有内容编辑器的站点记为 `ineligible`。

只有常规手段找不到任何可验证入口时，才进行视觉兜底：按页面首、中、尾逐段查找，并记录每段结论。视觉发现后仍须核验真实控件、链接或最终路由；视觉判断不能替代路由、免费性、身份和条款预检。

## 站内去重是硬门槛

在填写任何字段前，用站点真实的搜索控件完成固定查询集：

1. 规范网址，包括带和不带尾部斜杠的变体；
2. 裸域名；
3. 官方品牌或产品拼写；
4. 从标题或候选结果发现的词序、空格、连字符和大小写变体。

每次查询都要记录输入词、触发方式、结果网址、结果数量和可见候选标题。还要检查账户后台、近期列表和分类列表。每个候选必须打开或读取其实际出站网址，再与规范网址和域名归一化比对；标题相同或不同都不能单独作为结论。

命中规范网址或域名时，记录 `duplicate — no action` 并停止。站内去重能力不存在时，记录 `Duplicate check: not available — user-authorized direct attempt`；能力存在但无法完整核验时，记录 `Duplicate check: inconclusive — user-authorized direct attempt`。两种例外都必须有具体缺口、已完成检查、证据和当前批次的明确直接尝试授权，且只允许一次最终提交尝试。提交时出现“网址已存在”或同等回执，即判为重复并停止；不得重试。

## 验证、预填与人工交接

先做只读预检，识别登录、邮箱验证、验证码、上传和其他阻塞点。普通原生验证只可在当前授权范围内按有限次数尝试；不得绕过强反自动化验证。

若验证无法自动完成，先填写所有已核实且适用的字段，上传合规素材，并只在当前授权允许时选择无费用营销订阅。未知或不适用字段才可留空，且必须在记录中说明原因。保留原标签页、当前网址、目标标识和待办动作，绝不留下空表单或关闭交接页。

完成验证后，先重新读取页面和短时效令牌状态，再继续已授权的下一步。不得通过修改浏览器管理客户端、账号设置或指纹配置来解决页面问题；这类改动需要单独的当前授权。

## 自动化、重试与标签页纪律

CDP 报错、超时、空响应或找不到元素不等于可以重跑。每次受控重试前都要留下：

1. 证据：精确错误、失败命令、当前目标、网址和页面状态；
2. 假设：至少两个可区分的原因；
3. 判别：能区分这些原因的最小只读检查。

只有产生新证据、且下一次操作与上次实质不同，才允许一次受控重试。相同脚本、目标、参数和等待条件不得重复执行。最终 Submit、Publish 和 Gmail Send 零次重试。没有新假设、受控重试失败，或可能已经发生最终动作时，停止该站该动作并按事实记录。

若当前授权允许，可对 CDP 无法得出明确结论的站点使用一次 CU 复核；CU 不能绕开一次最终动作、去重或验证码规则。打开新批次前关闭无关旧标签页，但必须保留人工交接页和结果不明页。

## 表单、官方 Contact 邮件与最终动作

表单填写后要回读受控字段值，确认名称、描述、网址和必填项没有因页面刷新而丢失。上传完成前不得继续下一步。第一个明确页面错误立即停止该站，不做脚本盲重试。

官方 Contact 邮件仅在当前批次明确授权、已核验 Gmail 发件别名、且收件人来自目标站官方 Contact/投稿/资源推荐/合作页面时可用。发送前在 Gmail Sent、Drafts、All Mail 和现有记录中按品牌、规范网址、目标域名和联系路由去重。每个目标域名和官方联系路由最多发送一封初始邮件；不得 CC/BCC、群发、重发、自动跟进或伪造身份。邮件只可请求对方自愿考虑收录规范网址，不得索要 dofollow、排名承诺、互链或内容发布。

最终 Submit、Publish 或 Gmail Send 只点击一次。提交前启动结果捕获：立即采样网址、页面状态和原生文本，并在可用时读取网络响应。确认成功需要三类互相一致的信号：状态或路由变化、与当前动作相关的原生正向回执、以及后台/邮箱/公开页等独立确认。点击、跳转、清空表单、草稿或泛化感谢页都不算成功。

最终动作后没有明确回执时，进行两到三轮只读核验。表单可查当前页、后台、邮箱和公开页；邮件只查撰写页或线程、Sent/All Mail、Drafts/Outbox。仍无回执时记录结果不明，保留页面供人工核验，绝不重投或重发。

## 记录、审计与交付

公开记录只能保存别名和受控证据标识，不得保存密码、一次性验证码、Cookie、会话标识、原始邮箱、电话号码、令牌化网址或其他敏感数据。记录必须以 `shareable` 范围通过审计。

在技能根目录运行：

```bash
python3 scripts/audit_submission_record.py path/to/batch-record.md
python3 scripts/audit_submission_record.py path/to/batch-record.md --json
```

交付时逐站说明入口类型、去重证据、最终状态、阻塞原因、保留页面和下一步。目录已提交、待审、已发布、邮件已发送和邮件结果不明必须分别统计；邮件发送不代表送达、回复、收录、外链或发布。

## 资源

- [EXEC-CHECKLIST.md](EXEC-CHECKLIST.md)：逐站执行检查单。
- [references/workflow.md](references/workflow.md)：队列、分片、交接和恢复流程。
- [references/status-model.md](references/status-model.md)：记录字段与状态约束。
- [assets/submission-record-template.md](assets/submission-record-template.md)：可公开分享的记录模板。
- `scripts/audit_submission_record.py`：记录完整性和敏感信息审计。
