# 开发范式:Stage-Driven Agent Development (SDAD) ## 阶段流程(必须严格遵守,不可跳过或合并) ① 用户提出 → ② 需求澄清 → ③ 方案设计 → ④ 人类审批 → ⑤ 编码实现 → ⑥ 审查验证 ## 强制规则 - 阶段顺序不可调换,每个阶段完成后才进入下一阶段 - Stage ④ 人类审批是必经门,未通过不得进入编码 - 编码过程中发现方案有遗漏/矛盾,先暂停提问,不自作主张 ## 日志规则(自动执行) 每次创建或修改代码文件后,在项目根目录的 `_AI_USAGE_LOG.md` 中追加一条记录,必须包含以下字段: - **日期时间**:文件修改时间(用 `Get-Item LastWriteTime` 或 `Get-Date` 获取),不可乱填或估算 - **范式步骤**:当前已完成的阶段累积链(如 `① 用户提出 → ② 需求澄清`),按实际执行顺序 - **修改摘要**:简要描述改了什么 - **中间产物**:AI 交互过程中被淘汰的草稿或过程稿,包括但不限于:先给了伪代码后改正式实现、输出了多个方案选了其中一个、调试时生成的废弃代码版本、类型试错(如先用 `typeof import()` 后改 `interface`)、先改文件 A 后发现不够又改了文件 B - **涉及文件**:文件路径列表 - **使用模型**:当前使用的模型名 **排除项**:打包工程(生产打包 VSIX,`npm run package-prod` / `vsce package`)不需要记录 ## 阶段执行指引 - 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--design.md` 编码须严格遵循已批准的 spec,不得自作主张。