写作与公文
需要在 Proof 协作 Markdown 编辑器中发布…
当用户要求分享本地 Markdown 到 Proof、审阅共享文档、或从规划流程发布交接链接时,按 Proof API/MCP 配方完成发布、读取、评论、建议、编辑、拉取或删除。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要在 Proof 协作 Markdow特定
解决思路
- 通过 `Bash` 以 HTTP 访问托管 Web API `https://www.proofeditor.ai`;按需用 `Read`/`Write`/`WebFetch` 处理本地文件与网络内容。
- 首次对 Proof 做读取或变更(HTTP 或 MCP)前,先阅读 `references/api.md`,确认 `share/markdown`、v3 文档与编辑端点、presence、title、`DELETE /api/documents/<slug>`,以及操作表、错误/重试分类和 Claude Code 的 `curl` 权限提示。
- 在审阅共享文档前、创建并分享文档前、把文档拉取到本地文件前,阅读 `references/workflows.md` 并按其配方执行。
- 如果 harness 已提供 `proof_*` MCP 工具(`proof_share_markdown`、`proof_v3_document`、`proof_v3_edit`、`proof_presence`、`proof_document_title`、`proof_document_delete`、`proof_report_bug`),优先使用;否则使用 HTTP 配方。
- MCP 模式下由服务器注入 `by`、`X-Agent-Id` 和 presence 身份;对非当前登录用户拥有的文档做编辑和 presence 时,把 Proof URL 中的 `?token=` 值作为 `shareToken` 传入。
- 删除权限在 MCP 模式下不变:未认领文档仍需 `ownerSecret`,已认领文档需要 owner 的 session;作为 `shareToken` 传入的 editor `accessToken` 不能删除。
- 每次写入都用两个固定身份字段:机器 ID `ai:compound-engineering` 作为 `by` 发送,并作为 `X-Agent-Id` 头发送;显示名 `Compound Engineering` 在 `POST /presence` 中作为 `name` 发送,每个文档会话设置一次,使 Proof 将其绑定到该 agent ID;需要不同子 agent 拥有文档时可传不同的 `identity` 对;不要自造 `ai:compound` 等变体。
- 凭证使用:`accessToken` 是日常 bearer,用于读取、编辑、presence 和 events;`ownerSecret` 仅承载 owner 权限(删除和其他 owner 级操作),永不作为日常 bearer。
- 创建时捕获 `accessToken` 和 `ownerSecret`,并将会话用的 `ownerSecret` 与 `accessToken` 分开持久化到 shell 变量或等价位置;未认领文档的 owner 删除需要 `ownerSecret`。
- 不要把 `accessToken` 或 `ownerSecret` 放入 repo 跟踪文件、提交或持久日志;`ownerSecret` 永不出现在用户可见文案中。
- 给用户带 token 的链接(`tokenUrl`),不要给裸 `/d/<slug>`;该链接中的 token 也让已登录用户认领无主文档。
- 公开创建的文档在已登录 Every 用户在浏览器中认领前是无主的;认领会永久撤销 `ownerSecret`,而 `accessToken` 继续可用;此后删除需要 owner 的 Every session,向 owner 索取或使用其 session token。
- 若删除返回 `403` 且 `code: "DOCUMENT_DELETE_FORBIDDEN"`、`reason: "CREDENTIAL_NOT_OWNER"`,或出示创建时的 `ownerSecret` 返回 `401`,说明 secret 已被撤销;停止使用该 secret,不要重试。
- 若返回 `reason: "DOCUMENT_HAS_NO_OWNER"`,说明文档仍未认领,只有原始 `ownerSecret` 能删除它,Every session 不能删除。
- 不要把 secrets、credentials、API keys、private tokens 或敏感个人数据放进 Proof 文档,除非用户明确批准;不要静默用 Proof 链接替换 repo 跟踪的项目文档。
- 清空 markdown 不会清除评论标记;引用和评论对任何持有分享凭证的人仍可读,所以清空内容不是隐私清理;删除文档才是:未认领时用 `ownerSecret`,认领后以 owner 身份删除。
- 发布交接后不要自动删除;评审文档应保留。仅当用户要求,或完成明确临时的 scratch 文档时删除。
- 发布模式:读取现有本地 markdown 文件全文,将其内容作为新文档正文发布,并把可分享 URL 交给用户;本地文件仍是权威,发布不会同步回磁盘。
- 处理两个入口:一是用户直接点名本地 markdown 文件(如「share this to proof」「get me a proof link for this doc」),仅在文件不明确时询问是哪个文件,并预期没有上游调用者;二是来自 `ce-brainstorm`、`ce-ideate` 或 `ce-plan` 的交接,传入文件路径和标题。
- 只发布 markdown;如果源是 HTML unified plan,返回本地浏览器/打开路径,而不是上传它。
- 发布 unified plan 时,在已知 readiness 时按 readiness 标注标题,例如 `Plan: <title> (requirements-only)` 或 `Plan: <title> (implementation-ready)`。
- 发布源文件的字节,绝不手写或占位内容;按 `references/workflows.md` 的 `jq --rawfile` 配方正确转义换行、引号和反引号。
- 发布交接后,向用户展示 URL 并交回控制权。
- 编辑时,agent 只从 `GET /api/agent/<slug>/v3/document` 读取,只向 `POST /api/agent/<slug>/v3/edit` 写入。
- 评论、回复、解决、建议和内容更改都是 v3 edit body 中的 `operations`;未在 `references/api.md` 读到路径的 operation 就是自己臆造的,不要使用。
- 编辑前将 `v3/document` 读作 source of truth。
- 选择能表达更改的最窄操作:对散文用有作用域的 `replace`、`insert`、`delete`;当更改应显示为 tracked changes 时用 `suggest`;仅当用户要求整文档替换或无法窄表达时用 `set_document`。
- 目标定位在 `markdown` 中可见文本,绝不是原始 markdown 语法或 block refs。
- 从读取结果中的 `comments[]` 和 `suggestions[]` 获取审阅状态;按 id 回复、解决、取消解决、接受或拒绝;v3 没有删除评论操作。
- 标记为 `orphaned: true` 的评论仍可读、可回复,但其旧 quote 不再是 live anchor。
- 遇到 `TARGET_AMBIGUOUS` 时,anchor 匹配多次且未发生更改;用 `error.candidates` 中的 `occurrence` / `before` / `after` 消歧;绝不要假设静默首个匹配,也绝不盲重试评论。
- 遇到 `retryable: false` 时,修正请求;遇到 `retryable: true` 且带 `error.current` 时,基于 `current` 重新解析目标后重试一次。
- 遇到 `202` / `PENDING`,或 `ok: false` 带 `partial: true`,写入可能已提交;在继续串联或报告成功前重新读取 `v3/document`,并只重试失败的操作(重复使用相同 `Idempotency-Key` 可安全重放)。
- 在全新读取并安全重试一次后仍失败,按 `references/api.md` 报告 bug,不要循环。
- 把文档拉取到本地文件会覆盖该文件;当拉取是其他操作的副作用而非用户要求时,先确认路径。
- 确认操作:create 由返回的 `tokenUrl` 确认;mutation 由 `ok: true` 确认;遇 `202` 或 `partial: true` 需重新读取 `v3/document` 确认;pull 由写入的本地文件确认;read 由返回内容确认;完成后给用户结果和简短总结。
适用边界 · 注意事项
- 不要把 proof 理解为 proofread、数学、evidence 或 proof-of-concept;本技能只针对 Proof 协作 Markdown 编辑器。
- 没有 Proof 服务、API token/MCP 工具或分享链接时不要使用;该技能依赖 `https://www.proofeditor.ai` 的托管 API。
- 不要上传 HTML unified plan,也不要静默用 Proof 链接替换 repo 跟踪的项目文档;敏感数据默认不放入 Proof 文档,除非用户明确批准。