用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ArtisanCloud/PowerXPlugin --skill crud-grpc命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | crud-grpc |
| description | 基于内嵌规则 的 CRUD over gRPC 规范。用于校对 gRPC 依赖 SDK、反射调试、拦截器链与服务复用。 |
本文件内嵌规则。面向插件侧 gRPC 传输层的人读说明。
目标:统一 proto 命名/拦截器/metadata/错误映射/生成路径;与 HTTP 共用 Service(PG-SVC-001)。
github.com/ArtisanCloud/PowerX/api/grpc/gen/go,仓库内不维护业务 .proto。go get -u 同步 SDK 版本;禁止手动改写生成文件。powerx.plugin.base.v1 等)为准,与 HTTP DTO 字段保持语义一致。CreateTemplate(CreateTemplateRequest) returns (TemplateResponse)UpdateTemplate(UpdateTemplateRequest) returns (TemplateResponse)DeleteTemplate(DeleteTemplateRequest) returns (google.protobuf.Empty)GetTemplate(GetTemplateRequest) returns (TemplateResponse)ListTemplates(ListTemplateRequest) returns (ListTemplateResponse)metadata 读取并验证:authorization(JWT/HMAC)、tenant_uuid、x-request-id 等tenant_uuid 注入 DB 会话(RLS):SET LOCAL app.tenant_uuid = ?auth(验签/上下文注入)tenant(RLS/会话变量)logging(结构化日志,含 request_id/tenant_uuid)recovery(panic 捕获,统一错误)所有业务实现均复用同一 Service(PG-SVC-001),禁止把业务写在 gRPC handler 中。
google.rpc.Status 或自定义错误码与 HTTP 对齐:PERMISSION_DENIED ↔ 403UNAUTHENTICATED ↔ 401NOT_FOUND ↔ 404INVALID_ARGUMENT ↔ 400ALREADY_EXISTS ↔ 409INTERNAL ↔ 500internal/grpc/server/*.go 注册 Register*ServiceServer(...)。pb 包类型,避免本地自定义结构。pb 类型进行编解码与字段断言,确保版本升级不破坏语义。(相关 Gates:PG-CTX-001 / PG-SVC-001)
# CRUD over gRPC — 按「调试 vs 启动(生产/预发)」两种模式约束
# 调试:开启 gRPC Server Reflection,便于 grpcurl / evans 本地调试
# 启动:以 PowerX 提供的 Go SDK (api/grpc/gen/go) 为唯一协议来源,不在仓库内存放 .proto
kind: ruleset
id: crud_grpc
version: 1.1.0
summary: "gRPC 传输层契约(无本地 proto;依赖 PowerX Go SDK;调试可启用 reflection)"
params:
sdk_module: "github.com/ArtisanCloud/PowerX/api/grpc/gen/go" # 如你有自定义 module 路径,可在项目 rules.yaml 覆盖
requires:
- rulesets/crud/transport_grpc.yaml
- rulesets/crud/service.yaml
- rulesets/crud/test.yaml
- rulesets/crud/sdk_go.yaml
checks:
# 0) 禁止在仓库携带业务 .proto(测试夹带例外)
- id: grpc-no-local-proto
desc: 仓库不应包含 .proto(除 testdata/**)
assert:
type: fileban
target: backend/**
pattern:
- "*.proto"
allow:
- backend/testdata/**
# 1) 依赖 PowerX Go SDK(而非本地生成)
- id: grpc-use-powerx-sdk
desc: