用途:为 ClawHub 仓库中所有 Convex 相关改动提供仓库级边界规范,并将通用框架行为交给管理型 Convex 技能处理。开始前先阅读 convex/_generated/ai/guidelines.md。执行命令前须指明目标运行时(local、dev 或 prod),已知时写出确切部署名,并说明函数/模式代码是否已推送。
路由:查询成本、索引、读放大、订阅或 OCC 用 convex-performance-audit;生产迁移、回填、模式收窄或表重塑用 convex-migration-helper 与 create-and-cleanup-migration;表、TTL 字段、清理 cron、保留、认证/会话清理、指标去重清理或弃用表移除用 convex-retention;认证、可复用组件或初始化用匹配的管理型 Convex 技能。不要编辑上游管理的 Convex 技能来存放 ClawHub 策略。
命令:convex run 前先推送变更函数,dev 用 bunx convex dev --once,prod 按 clawhub-production-release 工作流部署,明确需要非交互直接生产部署时用 bunx convex deploy -y。若登录后 bunx convex run --env-file .env.local ... 返回 401 MissingAccessToken,去掉 --env-file,改用 --deployment <name> 或 --prod 指定部署。API/模式变更后用 bunx convex codegen 重新生成提交的 API/类型。mutation 从 convex/functions.ts 导入而非 convex/_generated/server,以触发 ClawHub 触发器包装;类型导入仍可来自 _generated/server。普通直接部署不要禁用类型检查。
测试:模拟 ctx 只覆盖纯业务逻辑;涉及分页、索引、校验器、认证身份、内外边界、调度器、action 调用函数、HTTP action、存储或 OCC 时,还要跑真实 Convex 路径,如 bunx convex dev --once、bunx convex run ...、HTTP action 冒烟或 bun run test:pw:local-auth。通过 ._handler 调用 mutation 的测试需要带 normalizeId: vi.fn() 的模拟数据库。
迁移边界:生产数据改动默认使用 @convex-dev/migrations;组件级全表回填放 convex/migrations.ts,自定义修复、管理员门控操作和故障专用工作流放 convex/maintenance.ts;一次性运维迁移不要放进 .github/workflows/deploy.yml,生产应用并验证后在下个 PR 删除临时迁移函数。
查询与带宽:详细规则见 convex-performance-audit;写或审性能敏感查询前,可用时检查部署健康:bunx convex insights --details、bunx convex logs --failure,优先实测信号。热路径约定:公开列表与浏览页用一次性 ConvexHttpClient.query(),除非需要实时更新;存在 skillSearchDigest 行时用 digestToOwnerInfo(digest) 解析所有者数据;通过现有 convex-helpers 触发器保持反规范化表同步并在派生字段未变时跳过写入;计算结果在客户端分页,避免每页重跑完整管线;为响应式订阅表的回填批次加 delayMs;超出事务预算的读取拆分为 action-query-mutation。
技能统计契约:skills 表对四个迁移统计保留兼容形状,stats.downloads/stats.stars/stats.installsCurrent/stats.installsAllTime 对应顶层 statsDownloads/statsStars/statsInstallsCurrent/statsInstallsAllTime。用 convex/lib/skillStats.ts 的 readCanonicalStat() 读取,用 applySkillStatDeltas() 写入增量。直接 patch 这些值必须同时更新两种形状;stats.comments 与 stats.versions 仍可只读嵌套字段。新增迁移统计字段时使用同样双写形状并添加基于游标的回填。
限制:以上为资料中说明的仓库约定与命令;未提供的功能、收费、平台或效果信息暂未提供。