- 设置面板:三步引导 / AI 配置 / API Key / 规则管理 / 连接测试 - Provider 重构:统一 OpenAICompatibleProvider 基类,新增 Gemini/Claude/混元/智谱等 - 审查面板 Webview:三 Tab、统计卡片、问题列表、postMessage 通信 - esbuild 构建脚本 + 生产打包 + PMD 下载 - 保存文件自动静态分析(500ms debounce)
88 lines
3.6 KiB
Markdown
88 lines
3.6 KiB
Markdown
# 开发范式:Stage-Driven Agent Development (SDAD)
|
||
|
||
## 阶段流程(必须严格遵守,不可跳过或合并)
|
||
① 用户提出 → ② 需求澄清 → ③ 方案设计 → ④ 人类审批 → ⑤ 编码实现 → ⑥ 审查验证
|
||
|
||
## 强制规则
|
||
- 阶段顺序不可调换,每个阶段完成后才进入下一阶段
|
||
- Stage ④ 人类审批是必经门,未通过不得进入编码
|
||
- 编码过程中发现方案有遗漏/矛盾,先暂停提问,不自作主张
|
||
|
||
## 日志规则(自动执行)
|
||
每次创建或修改代码文件后,在项目根目录的 `_AI_USAGE_LOG.md` 中追加一条记录,必须包含以下字段:
|
||
- **日期时间**:文件修改时间(用 `Get-Item LastWriteTime` 或 `Get-Date` 获取),不可乱填或估算
|
||
- **范式步骤**:当前已完成的阶段累积链(如 `① 用户提出 → ② 需求澄清`),按实际执行顺序
|
||
- **修改摘要**:简要描述改了什么
|
||
- **中间产物**:AI 交互过程中被淘汰的草稿或过程稿,包括但不限于:先给了伪代码后改正式实现、输出了多个方案选了其中一个、调试时生成的废弃代码版本、类型试错(如先用 `typeof import()` 后改 `interface`)、先改文件 A 后发现不够又改了文件 B
|
||
- **涉及文件**:文件路径列表
|
||
- **使用模型**:当前使用的模型名
|
||
|
||
## 阶段执行指引
|
||
- Stage ① @用户提出:load skill stage-1-propose
|
||
- Stage ② @需求澄清:load skill stage-2-clarify
|
||
- Stage ③ @方案设计:load skill stage-3-design
|
||
- Stage ④ @人类审批:load skill stage-4-approve
|
||
- Stage ⑤ @编码实现:load skill stage-5-implement
|
||
- Stage ⑥ @审查验证:load skill stage-6-verify
|
||
|
||
---
|
||
|
||
# 项目:vscode-code-reviewer
|
||
|
||
VSCode 代码审查与规范检查一体化插件。
|
||
|
||
## 开发者命令
|
||
|
||
| 命令 | 说明 |
|
||
|------|------|
|
||
| `npm run compile` | TypeScript 编译(tsc -p ./) |
|
||
| `npm run watch` | tsc watch 模式 |
|
||
| `npm run lint` | ESLint 检查 `src/` |
|
||
| `npm test` | 编译 → lint → 运行测试 |
|
||
| F5 (VSCode) | 启动 Extension Dev Host |
|
||
|
||
测试运行器:`@vscode/test-cli`,配置在 `.vscode-test.mjs`,测试文件匹配 `out/test/**/*.test.js`。
|
||
|
||
验证顺序:`lint → compile → test`
|
||
|
||
## 架构
|
||
|
||
三层架构,见 `docs/superpowers/specs/2026-07-10-code-reviewer-design.md`:
|
||
|
||
```
|
||
UI 层 — TreeView 面板 / Inline Diagnostic / Code Action
|
||
核心层 — Linter 管理器 + AI 审查引擎(均实现 Analyzer 接口)
|
||
基础层 — 配置管理 / 规则管理 / 报告导出
|
||
```
|
||
|
||
所有 linter 和 AI 审查器统一实现 `Analyzer` 接口(定义在 `src/analyzers/analyzer.ts`)。
|
||
|
||
## 文件结构
|
||
|
||
```
|
||
src/
|
||
├── extension.ts # 入口:activate/deactivate
|
||
├── activation/ # 注册命令、视图、CodeAction
|
||
├── analyzers/ # Analyzer 接口 + 各 linter/AI 实现
|
||
├── manager/linterManager.ts # Linter 管理器
|
||
├── views/ # TreeView 提供者
|
||
├── services/ # AI API、配置服务
|
||
├── utils/ # 工具函数
|
||
└── types.ts # 公共类型
|
||
```
|
||
|
||
命令 ID 前缀统一为 `codeReviewer.`(如 `codeReviewer.analyzeFile`)。
|
||
|
||
## 代码规范
|
||
|
||
- 变量/函数:camelCase,类:PascalCase
|
||
- 导入风格:ESM(import/export)
|
||
- 不加注释
|
||
- 异步用 async/await
|
||
- ESLint 配置:`eslint.config.mjs`(typescript-eslint parser)
|
||
|
||
## 设计文档
|
||
|
||
设计 spec 存放路径:`docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md`
|
||
编码须严格遵循已批准的 spec,不得自作主张。
|