mcpField
C
cdrf-expert

cdrf-expert

github.com/vintasoftware开发166523 次安装14 周前更新
代码仓库

关于 cdrf-expert

cdrf-expert 是一项帮助 Django REST framework 开发者理解基于类的视图内部机制的技能。它依据 DRF 版本、类继承关系和请求生命周期,推荐合适的视图类与最小覆盖点,并提示回归风险和测试方向。

主要功能

  1. 01按请求类型分类 DRF 问题
  2. 02依据版本查阅 CDRF 参考
  3. 03追踪类继承与方法来源
  4. 04选择合适的视图类和覆盖钩子
  5. 05检查常见回归风险并建议测试

适用场景

  1. 01选择 APIView、泛型视图或 ViewSet
  2. 02定位请求到响应的执行流程
  3. 03调试方法解析顺序与来源
  4. 04比较不同 DRF 版本的行为

安装

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

$npx skills add https://github.com/vintasoftware/django-ai-plugins --skill cdrf-expert

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
class-selection-matrix.md
lifecycle-and-overrides.md
mro-debugging-playbook.md
version-check-workflow.md

详细介绍

CDRF 专家

说明

  1. 对请求进行分类。

将用户请求归入一个或多个类别:

  • 类选择(APIView 与 GenericAPIView、具体泛型视图、ViewSets)
  • 生命周期追踪(请求到响应的流程)
  • 覆写策略(自定义哪个钩子)
  • MRO 调试(方法来自哪个 mixin / 基类)
  • 版本差异(DRF 不同版本之间行为的变化)
  1. 仅阅读所需的参考文件。

加载最少的必要上下文:

  • 类选择:references/class-selection-matrix.md
  • 钩子位置和生命周期:references/lifecycle-and-overrides.md
  • MRO / 方法来源追踪:references/mro-debugging-playbook.md
  • DRF 版本比较:references/version-check-workflow.md
  1. 按版本优先原则浏览 cdrf.co。
  • 根据用户提供的上下文确定项目的 DRF 版本。
  • 如果未知,询问版本,或提供与版本无关的答案,并明确标注假设。
  • 首先打开匹配的 CDRF 版本命名空间(例如 https://www.cdrf.co/3.16/)。
  • 打开目标类页面并提取:
    • 祖先类和 MRO
    • 可用方法及每个方法所属的源类
    • 影响行为的默认属性(queryset、serializer_class、分页 / 过滤后端)
  1. 选择最精简的覆写点。
  • 优先使用精细的钩子(perform_create、perform_update、perform_destroy),而不是范围更广的方法(create、update、destroy)。
  • 对每个请求的行为,优先使用 get_queryset 和 get_serializer_class,而不是硬编码类属性。
  • 将 HTTP 流程编排保留在视图方法中,并将业务 / 领域逻辑放在视图之外。
  • 除非请求需要改变行为,否则保留 DRF 默认行为。
  1. 根据方法流程给出有依据的答案。

返回:

  • 建议使用的类
  • 要覆写的方法
  • 这些方法在 MRO / 生命周期中为何合适
  • 简洁的代码补丁或框架
  • 风险 / 回归问题及建议添加的测试
  1. 定稿前进行验证。

检查常见回归问题:

  • 意外绕过权限 / 身份验证 / 过滤 / 分页钩子
  • 在序列化器和视图之间重复对象保存逻辑
  • 只需覆写精细钩子时却覆写了范围更广的方法
  • 依赖所选 DRF 版本中不存在的方法

错误处理

  1. 如果 cdrf.co 无法访问,说明这一限制,并改用 DRF 官方文档和已安装的源码。
  2. 如果用户无法提供 DRF 版本,提供与版本无关的方案,并明确标注假设。
  3. 如果有多个可行的覆写点,优先建议最精简的钩子,并解释其中的权衡。

输出规则

  • 引用 CDRF 中准确的类名和方法名。
  • 如果 DRF 版本未知,说明相关假设。
  • 聚焦于 DRF 基于类的视图内部机制和可执行的代码改动。

评论

支持 Markdown