WebHooker/docs-plan.md
2026-08-13 22:46:35 +00:00

174 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# WebHooker 文档评估与优化计划
> 生成日期2026-08-13
> 范围:`docs/`VitePressen+zh、`README.md` / `README.zh.md`、`AGENTS.md`、`config.example.yaml`、`.env.example`
---
## 一、现状总览
| 文档 | 规模 | 状态 |
| -------------------------------------- | ----------------- | ------------------------------------------------------------------------------ |
| `docs/`VitePressen+zh 镜像) | 11 页 ×2约 75KB | 结构完整但存在事实错误、覆盖缺失、信息架构混乱 |
| `README.md` / `README.zh.md` | 363 行 | 与 docs 大量重复secrets、GitHub App 设置、部署),已出现漂移 |
| `AGENTS.md` | 222 行 | 基本同步,个别过时 |
| `config.example.yaml` / `.env.example` | — | 良好,但 README/AGENTS 中 `DOCS_URL` 等变量名与代码不符(`.env.example` 正确) |
---
## 二、事实错误(需修复)
1. **`GITHUB_APP_ID` / `GITHUB_PRIVATE_KEY` "未被代码使用"说法过时**
- `server/lib/github/oauth.ts:27-69` 已用它们生成 App JWT 查询安装账号install 绑定流程)
- 过时位置configuration.md:18-21、README.md:60-61/198、deployment.md:40-44、getting-started.md:40-42en/zh 共 8 处)
- **deployment.md 内部自相矛盾**40-44 行说"无需设置"125-127 行又要求生成私钥保存到 `GITHUB_PRIVATE_KEY`
2. **`DOCS_URL` / `GITHUB_REPO_URL` / `LEGAL_CONTACT` 变量名错误**
- README.md:74-76 与 AGENTS.md:218 使用旧名
- 代码实际读取 `NUXT_PUBLIC_DOCS_URL` / `NUXT_PUBLIC_REPO_URL` / `NUXT_PUBLIC_LEGAL_CONTACT`nuxt.config.ts + runtimeConfig`.env.example` 正确)
3. **`DELETE /auth/token/:userId` 鉴权标注 "None"**api/overview.md:23
- 实际要求 admin sessionoauth.ts:371-377无 session 返回 401
4. **Generic fallback 描述过时**events/supported.md:60en/zh
- 声称"原始 payload 代码块(截断 1000 字符)"
- 实际 `server/lib/formatters/generic.ts` 只输出 title + color + author无 payload 代码块
5. **事件数量口径不一**
- "28"docs/index、configuration、deployment、READMEvs "29"contributing.md、AGENTS.md:126
- 实际 `server/lib/formatters/index.ts` switch 有 29 个 case`custom`
- 建议统一为:"28 种 GitHub/Gitea 事件 + `custom`"
6. **events/supported.md 事件表缺 `custom` 行**en/zh 都缺)
7. **`src/formatters/colors.ts` 旧路径残留**events/supported.md:40en/zh应为 `server/lib/formatters/colors.ts`
8. **api/overview.md 端点表缺 9 个端点**
- `POST/GET /admin/api/groups/:id/invites``DELETE /admin/api/invites/:token`
- `GET /admin/api/audit``GET /admin/api/groups/:id/webhook``POST .../webhook/regenerate``DELETE .../webhook`
- `GET /admin/logout``GET /admin/invite?token=`
- configuration.md 里反而齐全——两处清单已漂移
9. **providers 校验接受不存在的 `gitlab` 值**admin.ts:288
- 错误信息为 `"github" | "gitea" | "gitlab"`,但无 gitlab provider 实现
- 需决定:删掉(与文档 github/gitea 对齐)或保留(为未来扩展)
---
## 三、覆盖缺失
1. **KV 布局表缺 `tenant:{groupId}`**configuration.md:326-343en/zh 都缺)
- 租户态 dedup key `delivery:{groupId}:{id}` 只散见正文
2. **`NUXT_PUBLIC_DOCS_URL` / `NUXT_PUBLIC_REPO_URL` / `NUXT_PUBLIC_LEGAL_CONTACT` 未收录**
- configuration.md Secrets 表en/zh都未记录这三个变量
3. **bot 命令文档碎片化**
- Discord `/gh` 命令只在 READMEBot Commands 段落)
- Telegram `/gh` 命令只在 deployment.md
- 无独立页面sidebar 无入口
4. **无独立页面/章节**
- 调度任务cron `*/5`discord-sync / telegram-sync / audit-prune
- i18n 消息语言与 `i18n:*` KV 覆盖机制
- 消息格式规范(只在 AGENTS.md属开发内部文档
- 发送日志send_logs字段与错误码说明
- FAQ / 故障排查
5. **次要缺失**
- 路由上限 200 / 分组上限 100admin.ts:76,257
- `X-Gitea-Delivery` 头参与去重providers/gitea/parse.ts:60
- install 选择页需要登录 sessionoauth.ts:153-158
- logTarget 摘要消息只列前 10 条 route×target + "+N"dispatch.ts:88-100
---
## 四、结构问题("杂乱"的主因)
1. **configuration.md 是 356 行巨型文档**
- 密钥、提供方、Web UI、端点、自定义 webhook、租户隔离、路由、分组、角色、过滤器、KV/D1 布局全挤一页
2. **API 参考混乱**
- admin API 同时在 configuration.mdWeb UI→端点表、api/overview.md、README 出现三份,已开始漂移
3. **sidebar 信息架构**
- 只有 Guide / API / Events 三类
- `docs/contributing.md` 不在 sidebar孤儿页
- 无 Bot 命令、无 FAQ、无故障排查入口
4. **README 与 docs 严重重复**
- secrets 表、GitHub App 设置、Discord/Telegram bot 设置、部署步骤在 README 和 docs/deployment.md 各写一遍
5. **docs 配置引用不存在的 `logo.svg`**
- `docs/.vitepress/config.ts` 引用 `/logo.svg`favicon + 主题 logo文件不存在404
6. **footer copyright 仍写 2025**(当前 2026
---
## 五、中英一致性zh 滞后)
| 严重度 | 文件 | 差异 |
| ------ | ------------------------ | ---------------------------------------------------------------------------------------------- |
| 高 | guide/introduction.md | zh 技术栈仍是"Nux3 静态 SPA"en 已为"Nuxt 4 (Vue 3 + Tailwind CSS v3)" |
| 高 | guide/getting-started.md | zh 脚本表缺 `bun run build``bun test` 两行;`bun run dev` 描述不一致wrangler vs Nuxt HMR |
| 中 | api/overview.md | zh 漏"or manage a group"准入条件;漏"空过滤器仅 fallback 路由允许" |
| 低 | guide/configuration.md | 可选密钥表行序不同keyword 示例 zh 多 `*release-*`"manage everything" 译作"管理路由" |
| 低 | guide/filters.md | zh 一处"`/` 包裹"应为"`//` 包裹"(同文件其他处正确) |
| 低 | index.md | 2 处 feature 描述中文略精简(未列签名头部、未列 slash commands and buttons |
完全一致的文件对guide/deployment.md、api/actions.md、api/oauth.md、events/supported.md、contributing.md。
---
## 六、建议的重构方案
### A 阶段:事实修正(低风险,必做)
- 修复"二"中全部 9 项 + "三"的 KV/变量 2 项
- 修复中英"高/中"级差异
- logo.svg补文件或从 config 移除引用、footer 年份
- 统一事件数量口径28 + custom
### B 阶段:信息架构重构
建议新结构:
```text
指南 Guide
Introduction / Getting Started / Deployment保留现状
核心概念(从 configuration.md 拆出):
Routes & Targets
Groups & Access Control角色/邀请/自助注册)
Webhook Ingress & Tenancy全局/分组端点、custom、App 隔离)
消息与命令(新):
Discord /gh Commands合并 README 的 Bot Commands 段落)
Telegram /gh Commands
Message Format & i18n新页标题规范、emoji 开关、语言覆盖)
运维(新):
Scheduled Tasks
Storage LayoutKV / D1 布局)
Send Logs & Audit Logs
FAQ & 故障排查
参考 Reference
API拆分 Public API 与 Admin API与 configuration 去重)
Supported Events补 custom 行、修 generic 描述)
配置(单一权威来源)→ configuration.md 瘦身为"完整参考"
README → 精简为 features + quick start + 命令摘要 + 指向 docs 的链接
```
### C 阶段README 瘦身
- README 保留简介、features、quick start、/gh 命令摘要、部署速览、License
- 移除与 docs 重复的完整表格secrets、GitHub App 设置、bot 设置细节),改为链接指向 docs
---
## 七、待用户确认的决策点
1. **范围**:只做 A还是 A+B重构结构或 A+B+C含 README 瘦身)?
2. **configuration.md**:按上述拆分成多个页面(改动大、导航清晰),还是保留单页只做内容修正?
3. **`gitlab` 校验值**:代码放行但无实现——删掉(与文档对齐)还是保留(为未来扩展)?
4. **新页面**Bot 命令页、i18n/消息格式页、FAQ 页是否都需要?