用途
openpress-apply-comments 是 open-press 的工作流技能,用于把待办的 @openpress-comment 标记转化为源码修改。一条评论只有在所请求的源码改动已完成、且标记已被移除时,才算被解决。
该技能只负责标记的机械操作。至于代理应当提议、刷新、应用已审阅的预览,还是直接编辑,由 openpress-collaborate 决定。如果用户要求应用 .openpress/review/current.json,应回到 openpress-collaborate,而不是把这些评论当作独立的直接编辑批次来处理。
主要能力
- 列出待办的 @openpress-comment 标记。
- 读取解码后的评论备注、提示、源码路径以及附近的源码。
- 将请求的编辑作为小范围源码改动来应用。
- 编辑完成后移除标记。
- 对模糊或失败的评论保持原样。
- 在报告完成前进行验证。
边界
- 不确定时,使用 openpress 获取权威的源码/生成路径对照表。
- 编辑源码,而不是生成产物。
- 默认编辑包含该标记的源码文件。
- 将领域性较强的工作路由给对应技能:
- openpress-create-pages:负责页面文案、层级、图注、主张、语气、叙述、页面主题和页面组件。
- openpress-create-slide:负责演示文稿叙述、幻灯片密度、直接幻灯片源、活动主题令牌、核心 Object API 组合、Tailwind 语义样式和可复用 UI 原语。
- openpress-plugins:负责外部图表、可视化工具和写作辅助工具。
- 在解决一条评论时,不要重写无关章节。
使用方式
-
发现评论: rg "@openpress-comment" press -n 如需解码后的备注且框架辅助函数存在,可使用: node --input-type=module -e 'import { listCommentMarkers } from "./packages/core/engine/react/comment-marker.mjs"; console.log(JSON.stringify(await listCommentMarkers({ root: process.cwd() }), null, 2));'
-
选择请求的范围:
- 如果用户指定了某条评论,只解决该评论。
- 如果用户说 apply comments 但没有给出 id,则按源码顺序处理待办评论。
- 一次处理一条评论;不要在一个标记下批量处理无关的重写。
-
检查目标:
- 读取包含该标记的源码文件。
- 编辑前检查附近的代码行。
- 在存在标记提示和渲染对象元数据时使用它们,但要对照源码进行核实。
-
应用编辑:
- 做出满足该评论的最小源码改动。
- 保留本地风格、组件 API 和 MDX 结构。
- 如果请求模糊,请要求澄清并保留标记。
-
移除已解决的标记:
- 仅在源码编辑完成后删除 @openpress-comment 标记。
- 不要仅仅因为读过就清除标记。
- 只有在用户明确要求时,才在不应用编辑的情况下清除标记。
-
验证: npm run build build 会校验结构并渲染完整输出。在快速迭代内部步骤时: node engine/cli.mjs validate . # 仅结构检查,不渲染 node engine/cli.mjs export . # 仅重写 document.json,不打包 Vite
完成报告
报告内容应包括:
- 解决了哪些评论 id;
- 哪些文件发生了变更;
- 哪些评论因模糊或失败而保留;
- 运行了哪些验证命令以及是否通过。
常见错误
- 不要编辑 public/openpress/、dist-react/、.deploy/ 或 .openpress/。.openpress/review/current.json 仅由单独的 openpress-collaborate 工作流负责。
- 不要移除未解决的评论。
- 除非评论明确要求,否则不要重写大段章节。
- 在需要导出时,源码尚未导出前,不要声称浏览器已发生变化。