Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions .codebuddy/plans/batch-openspec-platform-upgrades_b4ada4da.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
name: batch-openspec-platform-upgrades
overview: 一次性创建 10 个 OpenSpec changes,覆盖用户提出的所有平台升级方向:Markdown 解析引擎、评论升级、存储优化、WebSocket 实时通知、埋点监控、新一代编辑器、无头浏览器截图、AI 智能总结、RAG+插件系统、前端子应用拆分。仅落地设计文档,不涉及代码实现。
todos:
- id: openspec-frontend-split
content: Use [skill:openspec-propose] 创建前端子应用拆分评估的 OpenSpec change
status: completed
- id: openspec-md-parser
content: Use [skill:openspec-propose] 创建 Markdown 解析引擎包的 OpenSpec change
status: completed
- id: openspec-storage-opt
content: Use [skill:openspec-propose] 创建后端存储优化的 OpenSpec change
status: completed
dependencies:
- openspec-md-parser
- id: openspec-comment-upgrade
content: Use [skill:openspec-propose] 创建评论系统升级的 OpenSpec change
status: completed
- id: openspec-websocket
content: Use [skill:openspec-propose] 创建 WebSocket 实时通知的 OpenSpec change
status: completed
- id: openspec-analytics
content: Use [skill:openspec-propose] 创建埋点+监控系统的 OpenSpec change
status: completed
- id: openspec-editor
content: Use [skill:openspec-propose] 创建新一代文档编辑器的 OpenSpec change
status: completed
dependencies:
- openspec-frontend-split
- openspec-md-parser
- id: openspec-screenshot
content: Use [skill:openspec-propose] 创建无头浏览器截图服务的 OpenSpec change
status: completed
- id: openspec-ai-summary
content: Use [skill:openspec-propose] 创建文章智能总结系统的 OpenSpec change
status: completed
- id: openspec-rag-plugins
content: Use [skill:openspec-propose] 创建 RAG 检索增强+插件系统的 OpenSpec change
status: completed
dependencies:
- openspec-ai-summary
---

## Product Overview

用户在体验现有社区平台后,提出了一系列升级方向。核心诉求是将所有想法以 OpenSpec 设计文档形式落地到代码仓库中,即使不立即实现,也要确保思路被持久化。

## Core Features

需要为以下 9 个升级方向 + 1 个前端拆分评估创建完整的 OpenSpec 变更文档(proposal + design + tasks):

1. **前端子应用拆分评估** — 从 main 拆出 apps/article(文章详情+编辑)+ apps/search(搜索),评估 profile 拆分
2. **Markdown 解析引擎包** (`@luhanxin/md-parser`) — 自定义 MD 解析、AST 提取、GFM 扩展、作为 packages 共享
3. **后端存储优化** — 文章 content 压缩存储、新增 article_ast JSONB 列存 TOC/元数据、迁移脚本
4. **评论系统升级** — 无限滚动、排序(热门/最新)、评论点赞、Markdown 评论渲染
5. **WebSocket 实时通知** — Gateway 新增 /ws 端点、前端 WS client 替代轮询、NATS→WS 桥接
6. **埋点+监控系统** (`@luhanxin/tracker`) — 自研 SDK、ClickHouse 存储、Grafana Dashboard、告警规则
7. **新一代文档编辑器** (`@luhanxin/editor`) — 类飞书/语雀块编辑器、Yjs 协同编辑、版本历史、公开分享
8. **无头浏览器截图服务** — Playwright 服务端渲染、OG 图片生成、PDF 导出、页面归档追溯
9. **文章智能总结系统** — AI 摘要生成、自动标签提取、阅读时间估算、相关推荐
10. **RAG 检索增强 + 插件系统** — 向量检索、开发者插件 API、平台增强市场

## Tech Stack

- 现有技术栈不变(Rust + Axum + Tonic + SeaORM + React + Garfish + Protobuf)
- OpenSpec 工作流:使用 `[skill:openspec-propose]` 逐个生成变更文档
- 新增基础设施组件:ClickHouse(埋点)、pgvector(RAG)、Playwright(截图服务)

## Implementation Approach

使用 `openspec-propose` skill 为每个升级方向生成完整的 proposal + design + tasks 三件套。按照依赖关系排序:

- 先做基础设施/拆分评估(不影响现有代码但影响后续设计)
- 再做核心包和存储优化
- 最后做复杂特性(编辑器、AI、RAG)

每个 change 的 proposal 遵循已有格式:Why / 非目标 / 与现有设计文档的关系 / What Changes。Design 文档中涉及 API 使用 Protobuf 定义,前端使用 TypeScript,后端使用 Rust。

此任务不涉及 UI 创建或改造,纯粹是 OpenSpec 文档生成工作。

## Agent Extensions

### Skill

- **openspec-propose**
- Purpose: 为每个升级方向快速生成完整的 OpenSpec 变更文档(proposal + design + tasks)
- Expected outcome: 10 个 OpenSpec change 目录,每个包含完整的提案、设计和技术任务拆分文档
83 changes: 83 additions & 0 deletions .deepsource.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# DeepSource Configuration
# https://deepsource.io/docs/config/

version = 1

# 全局配置
test_patterns = [
"tests/**",
"**/*_test.*",
"**/*.test.*",
"**/*.spec.*"
]

# 排除路径
exclude_patterns = [
"docs/**",
".github/**",
"node_modules/**",
"dist/**",
"build/**",
"*.min.js",
"*.min.css"
]

# 分析器配置
[[analyzers]]
name = "javascript"
enabled = true

[analyzers.meta]
runtime_version = "20.x"
environment = "browser"

[[analyzers]]
name = "typescript"
enabled = true

[analyzers.meta]
runtime_version = "20.x"
environment = "browser"

[[analyzers]]
name = "rust"
enabled = true

[analyzers.meta]
rust_edition = "2024"
rust_version = "1.85"

[[analyzers]]
name = "python"
enabled = true

[analyzers.meta]
runtime_version = "3.12.x"
type_checker = "mypy"

[[analyzers]]
name = "go"
enabled = true

[analyzers.meta]
go_version = "1.22"

# 安全分析器
[[analyzers]]
name = "secrets"
enabled = true

# Dockerfile 分析
[[analyzers]]
name = "dockerfile"
enabled = true

# YAML 配置分析
[[analyzers]]
name = "yaml"
enabled = true

# SQL 分析
[[analyzers]]
name = "sql"
enabled = true
122 changes: 122 additions & 0 deletions .github/AI_REVIEW_README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# 🤖 AI Code Review - 快速开始

## 一键配置

```bash
# 运行配置脚本
bash scripts/setup-ai-review.sh
```

## 手动配置(3 步完成)

### Step 1: 获取 API Keys

| 服务 | 获取链接 | 免费额度 |
|------|---------|---------|
| **OpenAI** | https://platform.openai.com/api-keys | 无(按使用付费) |
| **DeepSource** | https://deepsource.io/dashboard/ | 公开仓库免费 |
| **CodeRabbit** | https://github.com/apps/coderabbitai | 200 次/月 |

### Step 2: 设置 GitHub Secrets

```bash
# 方式 1: 使用 gh CLI
gh secret set OPENAI_API_KEY --body "sk-..." --repo <username>/<repo>
gh secret set DEEPSOURCE_DSN --body "..." --repo <username>/<repo>

# 方式 2: 在 GitHub 网页设置
# Settings → Secrets and variables → Actions → New repository secret
```

### Step 3: 提交配置文件

```bash
git add .github/ .deepsource.toml
git commit -m "feat(ci): add AI code review integration"
git push origin master
```

## 验证配置

### 创建测试 PR

```bash
# 创建测试分支
git checkout -b test-ai-review

# 修改一些代码
echo "// test" >> src/main.rs

# 提交并推送
git add .
git commit -m "test: AI review test"
git push origin test-ai-review

# 在 GitHub 创建 PR,观察 AI 分析结果
```

### 查看 Actions 运行状态

```
https://github.com/<username>/<repo>/actions/workflows/ai-code-review.yml
```

## 成本估算

### 月度成本(小型项目,~100 PRs)

| 服务 | 使用量 | 成本 |
|------|--------|------|
| CodeRabbit | 100 次 | **$0**(免费额度内) |
| DeepSource | 公开仓库 | **$0** |
| OpenAI API | ~100K tokens | ~$0.25 |
| **总计** | - | **~$0.25/月** |

### 中型项目(~500 PRs)

| 服务 | 使用量 | 成本 |
|------|--------|------|
| CodeRabbit | 500 次 | $12(需升级 Pro) |
| DeepSource | 私有仓库 | $5 |
| OpenAI API | ~500K tokens | ~$1.25 |
| **总计** | - | **~$18.25/月** |

## 常见问题

### Q: 免费额度用完了怎么办?

**A:** 切换到以下方案:
1. **DeepSource**(公开仓库永久免费)
2. **GitHub Copilot**(企业订阅 $19/月)
3. **自建 Ollama + Qwen**(完全免费,需本地部署)

### Q: 分析速度太慢?

**A:** 在 `.github/workflows/ai-code-review.yml` 中调整:

```yaml
with:
openai_light_model: gpt-4o-mini # 快速模型
openai_timeout_ms: 30000 # 减少超时
```

### Q: 如何跳过某些文件的分析?

**A:** 在 `paths-ignore` 中添加:

```yaml
paths-ignore:
- '**.md'
- 'docs/**'
- '**/*.test.*'
```

## 更多资源

- 📚 [完整配置指南](./docs/tech/10-github-ai-integration.md)
- 🔧 [DeepSource 配置](./.deepsource.toml)
- 🚀 [工作流定义](./.github/workflows/ai-code-review.yml)

---

**💡 提示**:首次使用建议先用测试分支验证配置是否正确,避免影响主分支开发流程。
Loading
Loading