跳转到正文

在线批阅与自动改稿

能源知识库采用“公开阅读、登录批阅”的方式。任何人都可以阅读文章、搜索知识点和运行交互动画;只有授权维护者登录后,页面才会显示划线批阅入口。

使用流程

  1. 点击导航中的“登录批阅”,完成 GitHub 身份验证。
  2. 在文章正文中划选需要修改的文字。
  3. 填写修改要求并加入批阅清单,然后继续在当前或其他文章中添加批注。
  4. 打开批阅清单检查或删除项目,最后一次提交;每批最多 20 条,只生成一个 Cloud Codex 任务。
  5. n8n 将整批页面、选区、上下文和要求转交给 Cloud Codex 统一修改。
  6. Cloud Codex 修改 Markdown 或动画代码、运行构建,并生成可审查的任务差异。
  7. molt 上的受限发布器应用差异,并用仅绑定本仓库的 Deploy Key 推送一个 codex/review-* 临时分支。
  8. 仓库 Action 自动检查文件范围、安全规则和 VitePress 构建,随后创建并 squash 合并一个 PR;GitHub Pages 自动发布新版。

未提交的批阅清单保存在当前浏览器会话中,站内切换文章不会丢失;关闭该浏览器会话后会自动清除。提交失败时清单会保留,方便修正后重试。

登录与会话

登录由 GitHub OAuth 负责,不在知识库中维护密码。网关使用 state 和 PKCE 保护登录回调,只读取 GitHub 公开身份和当前用户对本仓库的权限;只有 GitHub 返回 push 权限(含 maintain 与 admin)的用户才能批阅。随后网关返回只能使用一次、两分钟过期的授权码,网站用它换取 15 分钟批阅令牌。OAuth 临时令牌、ChatGPT Token 和服务密钥不会发送给浏览器或 n8n,也不会写入磁盘。

未登录或令牌过期时,批阅接口返回 401,页面保持只读。网关只接受正式知识库来源,并限制每位维护者的提交频率;n8n Webhook 不对公网开放,只能由同机网关访问,隔离执行器再通过独立凭据执行仓库边界和内容策略验证。

自动修改范围

默认允许:

  • docs/**/*.md
  • docs/.vitepress/theme/components/**/*.vue
  • docs/.vitepress/theme/components/**/*.ts
  • docs/.vitepress/theme/components/**/*.css
  • docs/public/demos/**/*.{html,js,css,svg,json,csv}

默认拒绝 .github/、依赖文件、VitePress 全局配置、服务器文件、符号链接、子模块和其他仓库。动画代码不得加入外部脚本、动态代码执行、凭据读取或未经批准的网络请求。

自动合并门禁

molt 只运行受限的任务提交、状态查询和差异发布器,不持有个人 GitHub OAuth Token 或 PAT。发布器使用只对本仓库有效的写 Deploy Key,且只能根据服务端生成的请求 ID 推送 codex/review-* 临时分支;它不能通过这条链路直接写入 main。仓库内的 GitHub Action 创建 PR、执行自动合并,并依次检查:

  1. 选中的原文仍能在目标文章中唯一定位。
  2. 修改文件全部位于白名单内。
  3. 动画代码通过静态安全检查。
  4. npm run check 成功。
  5. PR 的必需检查全部通过。

任何一步失败都会停止合并并保留任务记录,便于维护者检查和重试。

内容与代码许可证待项目确认