Skip to main content

drogon-claude-plugin

Drogon C++ 后端开发的 Claude Code 插件 — 提供 AI 辅助开发规则与代码生成技能,让 AI 写出正确的异步代码,避开回调/事件循环等高频陷阱。

MIT License PyPI version npm version Claude Code

基于 Drogon C++ HTTP 框架的应用项目提供 AI 辅助开发规则与代码生成技能,让 AI 写出正确的异步代码,避开回调/事件循环等高频陷阱。

安装

方式 A:通过 marketplace(推荐)

# 添加 marketplace 源(首次)
claude plugin marketplace add https://github.com/voidvec/drogon-claude-plugin

# 安装插件
claude plugin install drogon

# 更新到最新版
claude plugin update drogon

方式 B:通过 npm / PyPI(CLI 安装器)

# npm
npx drogon-claude-plugin install

# 或 PyPI
pipx install drogon-claude-plugin
drogon-plugin install

两种包共用同一份插件资产,CLI 提供 install / verify / uninstall 子命令,详见 CLI 安装器

方式 C:本地安装

git clone https://github.com/voidvec/drogon-claude-plugin
cd <你的 drogon 项目>
claude plugin install ../drogon-claude-plugin --scope project

验证安装

claude plugin details drogon

应显示 17 个技能和 2 个钩子(SessionStart + PostToolUse)。

CLI 安装器

drogon-claude-plugin 同时发布到 npmPyPI,两种包内置同一份插件资产(skills / hooks / CLAUDE.md / .claude-plugin),并提供一致的命令行界面(bin 名均为 drogon-plugin):

命令 作用
drogon-plugin install [--scope project|user|local] 将插件资产拷贝到当前项目(或指定 scope),并提示执行 claude plugin install 启用
drogon-plugin verify 校验插件的技能数 / 钩子 / manifest,输出结构报告
drogon-plugin uninstall 从当前项目(或由 --target 指定目录)移除已安装的插件资产
drogon-plugin version 显示 CLI 与内置插件版本

安装器只负责分发与落盘,不替换 Claude Code 官方插件机制——启用插件仍走 claude plugin install

功能组件

规则层(CLAUDE.md,自动注入会话上下文)

CLAUDE.md 采用精简路由设计:只保留跨所有任务的顶层纪律(异步回调模型、事件循环模型)+ Skill 路由表,详细知识(模板、API 速查、配置格式、禁止模式)全部下沉到各 Skill 的 references/code-guide.md 按需加载,避免常驻占用上下文。

顶层纪律覆盖:

  • A 异步回调模型:回调恰好一次、按值捕获、禁阻塞、优先协程、异常安全
  • B 事件循环模型(Trantor IO):不阻塞循环、重活走线程池、跨循环共享状态加锁
  • 通用纪律:所有 I/O 异步、异步操作双回调、异常不逃逸 handler、配置加载 try/catch、键名严格

代码生成技能(17 个)

每个技能提供准确的 drogon API 用法、代码模板与常犯错误警告。遇到对应任务时 AI 主动调用,按需加载详细知识:

技能 用途
drogon-create-controller 生成控制器(Simple/Http/WebSocket),含路径前缀差异、:param、自动注册
drogon-gen-cmake 生成 CMakeLists.txt,含 Conan、插件过滤器编译
drogon-gen-csp-view 生成 CSP 视图模板,含 drogon_ctl create view 管线、布局
drogon-gen-db-config 生成数据库配置,含键名黑名单、SQL 注入防护、运行期异常
drogon-gen-filter 生成 Filter 请求拦截器
drogon-gen-middleware 生成 Middleware 处理链
drogon-gen-plugin 生成 Plugin 系统级扩展(连接池/SDK 初始化),含三者职责边界
drogon-gen-orm-crud 生成 ORM CRUD 代码,含禁 execSqlSync、事务纪律
drogon-gen-redis-config 生成 Redis 配置 + 单例/异步/订阅防泄漏用法
drogon-gen-test 生成 DROGON_TEST 测试,含断言宏、CMake 扫描
drogon-setup-config 生成完整配置文件,含路径解析、键名黑名单、多环境
drogon-gen-session-auth 生成 Session 登录/登出/鉴权 handler(防 fixation)
drogon-gen-file-upload 生成文件上传 handler(MultiPartParser + 校验 + 落盘)
drogon-gen-advice 生成 AOP Advice(11 切面,拦截型/观察型)
drogon-gen-coroutine-handler 生成协程 handler/中间件/ORM(参数按值,区分 Task/AsyncTask,含 forwardCoro
drogon-gen-http-client 生成出站 HttpClient 调用(异步/协程/反向代理)
drogon-gen-lambda-handler 生成 registerHandler lambda 路由({N} 参数绑定)

自动化检测钩子(PostToolUse)

在 AI 编辑文件后自动扫描 drogon API 违规:

文件类型 检测项
.h/.cc/.cpp FILTER_ADDADD_MIDDLEWAREMETHOD_LIST_ADDcreateDbClientAsyncTask+co_await 未兜异常、回调式 HttpMiddlewareco_await、同步 sendRequest 死锁、session->operator[]、Advice 在 handler 内注册
.csp {{ }}<%raw%><%viewpath@@key@@<%extends{% if %}
config.json/.yaml "password""username""ssl": "字符串"
test*.cc done()ASSERT_*createDbClient

v0.2.0 修复:C++ 标识符检测改为大小写敏感(不再误报 isDone());移除与 CLAUDE.md 示例冲突的 callback 变量名硬约束。

使用

在 drogon 项目中启用插件后,AI 自动生效。典型对话:

> 创建一个 /api/users 的 REST 控制器
AI: [使用 drogon-create-controller 技能] 生成 UserController.h/.cc...

> 添加一个 JWT 认证过滤器
AI: [使用 drogon-gen-filter 技能] 生成 JwtAuthFilter.h + registerFilter()...

> 写一个测试验证用户注册接口
AI: [使用 drogon-gen-test 技能] 生成 DROGON_TEST(UserRegister)...

> 这个 handler 代码有问题吗?
AI: [对照 CLAUDE.md 异步回调纪律] 这个 handler 的提前返回路径没有调用 callback...

前提

  • Claude Code CLI 已安装
  • 插件用于 依赖 drogon 框架的应用项目(drogon 本身作为库被安装)
  • Python 3 在 PATH 中(PostToolUse 钩子需要)

仓库结构

├── .claude-plugin/
│   ├── plugin.json
│   └── marketplace.json
├── .github/workflows/
│   ├── ci.yml              # 插件结构/CLI 冒烟测试
│   └── publish.yml         # tag 触发 → PyPI + npm + GitHub Release
├── hooks/
│   ├── hooks.json
│   └── posttooluse.py
├── src/drogon_plugin/      # PyPI 包(CLI 安装器)
│   ├── __init__.py
│   └── cli.py
├── npm/                    # npm 包(CLI 安装器)
│   ├── package.json
│   └── bin/cli.js
├── skills/
│   ├── drogon-create-controller/
│   ├── drogon-gen-advice/
│   ├── drogon-gen-cmake/
│   ├── drogon-gen-coroutine-handler/
│   ├── drogon-gen-csp-view/
│   ├── drogon-gen-db-config/
│   ├── drogon-gen-file-upload/
│   ├── drogon-gen-filter/
│   ├── drogon-gen-http-client/
│   ├── drogon-gen-lambda-handler/
│   ├── drogon-gen-middleware/
│   ├── drogon-gen-orm-crud/
│   ├── drogon-gen-plugin/
│   ├── drogon-gen-redis-config/
│   ├── drogon-gen-session-auth/
│   ├── drogon-gen-test/
│   └── drogon-setup-config/
├── CLAUDE.md
├── LICENSE
├── README.md
└── pyproject.toml           # PyPI 打包配置

许可

MIT — 详见 LICENSE

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drogon_claude_plugin-0.1.0.tar.gz (49.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

drogon_claude_plugin-0.1.0-py3-none-any.whl (70.5 kB view details)

Uploaded Python 3

File details

Details for the file drogon_claude_plugin-0.1.0.tar.gz.

File metadata

  • Download URL: drogon_claude_plugin-0.1.0.tar.gz
  • Upload date:
  • Size: 49.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for drogon_claude_plugin-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c2c4a6dd362462b4fe9212cf45dacb6be0f36419cd948df95aede9e6d6112411
MD5 9045dc968fb947f3076ca2335dcc5323
BLAKE2b-256 547c94c934201c70dfaebbf748b2f58096ed0045274e619242e8bed7a00a8833

See more details on using hashes here.

File details

Details for the file drogon_claude_plugin-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for drogon_claude_plugin-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b818d7d8aa9615f02f408a7b182dbc2f5679153140a38d1e118548550934f36e
MD5 111bae68096faf165dd5a03adc59fd0c
BLAKE2b-256 1149f4417362f23938bb8935fc8c8591fbe745e59bf839fe4e9d28a01934f56d

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.1

2 files

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page