aspectcore-dev-review
AspectCore-Framework 开发与 Code Review 规范指导。当在 AspectCore 项目中进行开发、提交 PR 或进行 Code Review 时使用此 skill。
来源信息
- 仓库
- dotnetcore/AspectCore-Framework
- 最近来源活动
- 2026年7月19日 15:53
- 检测到的 SKILL.md 语言
- 中文
- 星标
- 1,764
- 分支
- 331
安装方式
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
检查来源文件
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
正在显示 SKILL.md
SKILL.md
来源说明 · 只读预览- name
- aspectcore-dev-review
- description
- AspectCore-Framework 开发与 Code Review 规范指导。当在 AspectCore 项目中进行开发、提交 PR 或进行 Code Review 时使用此 skill。
# AspectCore 开发与 Review 规范 Skill
## 何时使用
- 在 AspectCore-Framework 仓库中进行任何代码变更时
- 准备提交 PR 前进行自查时
- 对 PR 进行 Code Review 时
- 需要选择正确的 build/test 命令粒度时
## 核心原则
### 1. 先识别工程结构,再动代码
进入仓库后,按以下顺序识别:
1. `AspectCore-Framework.sln` — solution 入口
2. `src/*/*.csproj` — 项目类型与 TargetFramework
3. `build/common.props` — 全局编译约定(LangVersion=10.0、TargetFrameworks)
4. `tests/Directory.Build.props` — 测试覆盖率配置
5. `.github/workflows/*.yml` — CI/CD 行为
**关键:** 不要跳过识别步骤直接改代码。
### 2. 根据改动范围选择命令粒度
| 改动类型 | 命令粒度 |
|---------|---------|
| 改 `build/common.props` 或公共接口 | solution 级 `dotnet build/test` |
| 改单个类库 | project 级 `dotnet build` + 依赖它的测试项目 |
| 改单个测试类 | `--filter` 精确到那个类 |
| 新 clone / 切分支 | solution 级 `dotnet restore` |
### 3. 遵守架构约束(CRITICAL)
- **依赖方向:** `Abstractions ◄── Core ◄── Extensions`,永不反向
- **公共 API:** 接口/属性放 `AspectCore.Abstractions`,实现放 Core/Extensions
- **双引擎一致性:** DynamicProxy 和 Source Generator 行为必须一致
- **切面激活:** 服务解析必须经过 `IAspectActivatorFactory`,不绕过拦截器
### 4. 代码风格
- block-scoped namespaces(非 file-scoped)
- 私有字段 `_` 前缀
- 公共 API 必须有 `/// <summary>` XML 文档
- 提交前运行 `dotnet format`
## 开发流程
### 变更前
1. 识别工程结构与目标框架
2. 确认改动范围与影响面
3. 选择正确的命令粒度
### 变更中
1. 遵守依赖方向与公共 API 位置
2. 保持双引擎一致性
3. 热路径控制分配,避免 LINQ 链式枚举
4. 正确传播 `CancellationToken`
### 变更后
1. 先写最小失败测试复现问题(如适用)
2. 运行 `--filter` 精确测试
3. 扩大到 project 级测试
4. 涉及公共接口时跑 solution 级验证
5. 运行 `dotnet format` 检查风格
## Code Review 检查清单
### BLOCKING(必须修复)
- [ ] 依赖方向未被破坏
- [ ] 公共 API 在 `AspectCore.Abstractions`
- [ ] 双引擎行为一致
- [ ] 切面激活管道未被绕过
- [ ] 覆盖率达标(unit 95% / E2E 80%)
- [ ] 所有 TFM 编译通过
- [ ] CI 全部通过
### 建议改进
- [ ] 热路径无不必要分配
- [ ] 无 `!` 强压 nullable 警告
- [ ] 无 `.Result`/`.Wait()` 同步阻塞
- [ ] 性能优化有 benchmark 证据
## 常用命令
```bash
# Solution 级
dotnet restore AspectCore-Framework.sln
dotnet build AspectCore-Framework.sln -c Release
# Project 级
dotnet build src/AspectCore.Core/AspectCore.Core.csproj -c Release
# 测试(带覆盖率)
dotnet test ./tests/AspectCore.Core.Tests/AspectCore.Core.Tests.csproj \
--configuration Release -f net9.0 \
/p:CollectCoverage=true /p:CoverletOutputFormat=cobertura \
/p:CoverletOutput=./TestResults/ "/p:Include=[AspectCore.Core]*"
# 精确测试
dotnet test tests/AspectCore.Core.Tests/AspectCore.Core.Tests.csproj \
--filter "FullyQualifiedName~ServiceResolverTests"
# 格式检查
dotnet format src/AspectCore.Core/AspectCore.Core.csproj --verify-no-changes
```
## 参考文档
- [开发规范](../../../docs/development/development-guidelines.md)
- [Code Review 规范](../../../docs/development/code-review-guidelines.md)
- [AGENTS.md](../../../AGENTS.md)
在 GitHub 查看