Build, configure, and debug ConnectRPC services and clients across Go, Python, and TypeScript (React/Angular), with Buf-based protobuf generation and practical guidance for transport choice, interceptors, and cross-language RPC workflows.
npx skills add owezzy/connectrpc-skillUse this skill when the user is:
- building a ConnectRPC service from
.protofiles - generating clients or handlers with Buf
- working with
connect-go,connect-es,connect-query, orconnect-python - deciding between Connect, gRPC, and gRPC-Web
- wiring ConnectRPC into React or Angular
- debugging streaming, metadata, CORS, or code generation issues
- Go backend: handlers, interceptors, streaming, testing, CORS, reflection
- TypeScript frontend: React (connect-query + TanStack), Angular (manual DI), interceptors, error handling
- Python backend: ASGI/WSGI, interceptors, OpenTelemetry, FastAPI mount
- Buf tooling: lint, breaking changes, BSR, managed mode, polyglot code generation, CI/CD
SKILL.md — Routing-first workflow, defaults, gotchas, troubleshooting
references/
go.md — Go backend patterns
typescript.md — TypeScript frontend (React + Angular)
python.md — Python backend patterns
buf-tooling.md — Buf CLI and proto toolchain
scripts/
gen.sh — portable buf generate helper for a target repo
validate-proto.sh — portable buf lint + breaking helper for a target repo
evals/
evals.json — Starter skill evaluation prompts and assertions
The skill now ships two portable shell scripts for use against a real ConnectRPC repository:
./scripts/gen.sh --help
./scripts/validate-proto.sh --helpExamples:
./scripts/gen.sh --dir /path/to/repo
./scripts/validate-proto.sh --dir /path/to/repo --against '.git#branch=main'They are non-interactive, idempotent, and emit JSON to stdout so an agent can call them safely.
Security note: the scripts treat target repositories and .proto files as untrusted data. They require a trusted, already-installed buf binary and do not parse shell command strings or run network-based execution fallbacks.
This repo includes a starter evaluation file:
evals/evals.json
Use it to compare the skill with and without activation, then extend the prompts and assertions as the skill evolves.
Owen Adirah (@owezzy)
MIT