CodeSpirit 代码审查采用三级优先级体系:
明确需要审查的文件列表(通过 git status、文件列表等方式)。
按优先级依次检查,发现严重问题立即标记:
安全与数据保护 → 📖 详细规范
[JsonIgnore])数据库与迁移 → 📖 详细规范
ValueGeneratedNever() 配置IMultiTenant 接口异步编程 → 📖 详细规范
Task.Result 或 Task.Wait() 阻塞调用反射调用(新增)
依赖注入 → 📖 详细规范
包管理 → 📖 详细规范
多语言国际化 → 📖 详细规范
_localizer)[Display] 特性DTO 规范 → 📖 详细规范
[Required]、[StringLength])QueryDtoBase控制器规范 → 📖 详细规范
[DisplayName] 特性使用 report-template.md 生成结构化审查报告:
CodeSpirit 采用自动权限生成,大部分情况无需配置 [Permission] 特性。
[RequirePermission](框架自动生成)[Permission] 配置[AllowAnonymous]示例:
// ✅ 自动生成权限(无需配置)
[HttpPost]
[DisplayName("创建用户")]
public async Task<ActionResult> Create(CreateDto dto) { }
// ✅ 需要权限继承时才配置
[HttpPut("{id}")]
[Permission(AllowInheritedPermissions = new[] { "users_manage" })]
[DisplayName("更新用户")]
public async Task<ActionResult> Update(long id, UpdateDto dto) { }
// ❌ 错误
method?.Invoke(null, new object[] { services, configuration });
// ✅ 正确:使用回调委托
this.ConfigureStandardInfrastructureServices(services, configuration, (s, c) =>
{
s.AddCodeSpiritMultiTenant(c);
});
// ❌ 错误
return SuccessResponse("操作成功!");
// ✅ 正确
return SuccessResponse(message: _localizer["Common.Save"].Value);
// ❌ 错误
var result = _repository.GetListAsync().Result;
// ✅ 正确
var result = await _repository.GetListAsync();
// ❌ 错误
public class Question : AuditableEntityBase<long> { }
// ✅ 正确
public class Question : AuditableEntityBase<long>, IMultiTenant
{
public string TenantId { get; set; } = string.Empty;
}
Task.Result、Task.Wait()、method.Invoke、硬编码字符串ActionResult<ApiResponse<T>>服务类规范 → 📖 详细规范
BaseCRUDService 或实现 IBaseCRUDServiceEF Core 查询优化
AsNoTracking()Include())Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).