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 与 PyPI 两种包内置同一份插件资产,bin 名均为 drogon-claude-plugin,提供 install / verify / uninstall / version 子命令。无需提前克隆本仓库。

# npm(免安装,直接跑)
npx drogon-claude-plugin install

# 或 PyPI(推荐,可持久使用)
pipx install drogon-claude-plugin
drogon-claude-plugin install

安装器只负责分发与落盘,不替换 Claude Code 官方插件机制——启用插件仍走 claude plugin install(安装器会在安装成功后提示你执行)。

方式 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),并提供一致的命令行界面:

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

CLI 的典型用法

# 在 drogon 项目根目录执行
npx drogon-claude-plugin install     # npm 免安装方式
drogon-claude-plugin install                # 已安装 pipx/npm -g 后

drogon-claude-plugin verify                 # 确认 17 技能 + 2 钩子全部到位
drogon-claude-plugin uninstall              # 移除插件资产(不会动你的代码)

功能组件

插件由三层组成,各司其职:

位置 作用
规则层 CLAUDE.md 每次会话自动注入的顶层纪律(异步回调、事件循环模型)
技能层 skills/(17 个) 按需调用的 drogon 代码生成 / 配置技能,含 references/code-guide.md 深度知识
检测层 hooks/(2 个) AI 编辑文件后自动扫描 drogon API 违规,即时提示修正

规则层(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
├── scripts/                  # 构建辅助(资产同步 + 冒烟测试)
│   ├── sync-assets.py/.mjs   # 同步 skills/hooks/CLAUDE.md 到 npm 与 PyPI 包
│   └── dev-smoke-test.py/.mjs
├── 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.1.tar.gz (51.1 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.1-py3-none-any.whl (70.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: drogon_claude_plugin-0.1.1.tar.gz
  • Upload date:
  • Size: 51.1 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.1.tar.gz
Algorithm Hash digest
SHA256 1aa5e3eb93e2fa3a255219799543b751ddcbd0345187300d2d666c4df04c738e
MD5 cd5bfaf00089405a9ab1d0ca005b7045
BLAKE2b-256 f5133770c478f58524b9477e73afbdeff2ea4a92163554912d35a62aa9bd7aae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for drogon_claude_plugin-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ce7753452ae982217c275115230dfc135e175203b00254bf8b29d492a39f4d8a
MD5 e45b2676a24423fb37da5c6fa8c5d07b
BLAKE2b-256 6808c698cb610655237b9a960189ab0f361ed2ebc22c7f6064cb7417dcc6fdae

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

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