mcpField
P
project-setup

project-setup

github.com/codewithmukesh开发7912.9k 次安装12 周前更新
代码仓库

关于 project-setup

面向 .NET 项目的技术栈顾问技能,说明工具包的默认选择及其取舍。它帮助开发者按需选择数据库、认证、缓存等方案,并将初始化、评估和迁移任务交给专门技能。

主要功能

  1. 01提供八类技术栈默认建议
  2. 02说明选择理由与取舍
  3. 03优先考虑 .NET 内置能力
  4. 04关注依赖的许可证
  5. 05将其他流程路由至专门技能

适用场景

  1. 01为新项目选择数据库和认证方案
  2. 02评估缓存或消息传递需求
  3. 03确定可观测性与测试组件
  4. 04将初始化或迁移请求交给对应技能

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/codewithmukesh/dotnet-claude-kit --skill project-setup

安装后在 Claude Code 中输入/project-setup确认已加载。

详细介绍

项目设置 — 技术栈顾问

此技能只负责一件事:本工具包推荐的技术栈默认选项及其原因。使用这些推荐选项的工作流位于其他地方:

  • 初始化项目 / 生成 CLAUDE.md → dotnet-init(交互式流程、架构问卷、CLAUDE.md 生成)
  • 评估现有代码库 → health-check(权威的 8 维度分级评估)
  • EF Core 架构、NuGet 或 .NET 版本迁移 → migrate
  • 选择架构 → architecture-advisor(始终先询问再给出建议)

核心原则

  1. 推荐默认选项,解释原因,让用户选择 — 每个维度都有工具包默认选项,但默认选项只是起点,并非硬性规定。用一句话说明权衡,让用户知情后再做选择。
  2. 优先使用 .NET 内置功能,而非第三方方案 — 使用 HybridCache 而非 Redis 客户端封装,使用内置限流而非软件包,使用内置 OpenAPI 而非 Swashbuckle。依赖越少,许可方面的意外和升级问题就越少。
  3. 选择时考虑许可证 — MediatR(v13+)、MassTransit(v9+)和 FluentAssertions(v8+)已转为商业许可。工具包默认选择 MIT 许可的替代方案:Mediator、Wolverine、xUnit 原生断言。
  4. 消息传递可以稍后添加,而非永不添加 — 大多数项目第一天并不需要消息总线。默认选择“无(稍后添加)”,待异步工作流真正出现时再考虑使用 Wolverine。

模式

技术栈维度与默认选项
维度选项默认选项原因
数据库PostgreSQL、SQL Server、SQLitePostgreSQL开源;除 SQL Server 外,EF Core 提供程序中支持最佳;一流的 Testcontainers 支持
身份验证JWT Bearer、OIDC(Keycloak/Auth0)、无JWT Bearer对 API 而言,这是最简单且安全的默认选项;存在外部 IdP 时再迁移到 OIDC
缓存HybridCache、Redis、无HybridCache内置功能,具备防击穿保护和 L1+L2;仅在 Redis 用作 L2 后端时才添加
消息传递Wolverine(RabbitMQ)、MassTransit、无无(稍后添加)过早引入消息传递会增加运维负担;有需要时使用 Wolverine(MIT)
可观测性Serilog + OpenTelemetry、基本日志记录Serilog + OTEL从第一天起就添加结构化日志和跟踪,成本很低;事后补上则不然
弹性Polly v8 管道、基本重试Polly v8只需一行 AddStandardResilienceHandler(),即可获得适用于生产环境的默认配置
API 文档内置 OpenAPI + ScalarOpenAPI + Scalar由框架维护规范生成;Scalar 可替代 Swagger UI
测试xUnit v3 + TestcontainersxUnit v3 + Testcontainers在测试中使用真实数据库;内存提供程序会掩盖真实错误

选定各维度后,dotnet-init 会将这些选择写入生成的 CLAUDE.md,并将每个选择映射到在对应领域工作时要加载的技能(ef-core、authentication、caching、messaging、serilog、opentelemetry、resilience、openapi、scalar、testing)。

反模式

未经询问就指定技术栈
# BAD — assuming the kit defaults apply everywhere
"You should use PostgreSQL and Wolverine."
# The team runs SQL Server enterprise-wide and has zero async workflows.

# GOOD — default + trade-off + question
"Kit default is PostgreSQL (best OSS EF provider). Any organizational
constraint — existing SQL Server licenses, DBA support — that should
override it?"
重复运行此技能不负责的工作流
# BAD — improvising a health grading or init flow from this skill
"Let me grade your codebase across 5 categories..."
# That grading conflicts with the canonical one.

# GOOD — route to the owner
Init/CLAUDE.md → dotnet-init | Assessment → health-check | Upgrades → migrate

决策指南

场景转到
“为 Claude Code 设置此项目”dotnet-init
“我应该使用哪种数据库 / 身份验证 / 缓存?”此技能 — 见上表
“此代码库的健康状况如何?”health-check
“升级到 .NET 10” / “更新软件包”migrate
“哪种架构合适?”architecture-advisor
已选定技术栈,准备开始构建使用 scaffold 创建第一个功能

评论

支持 Markdown