trpc-type-safety
Audited by Runlayer on Feb 21, 2026
Malicious tool definition detected
Tool: SKILL.md [1/6] Description: --- name: trpc-type-safety description: "tRPC end-to-end type-safe APIs for TypeScript with React Query integration and full-stack type safety" progressive_disclosure: entry_point: summary: "tRPC end-to-end type-safe APIs for TypeScript with React Query integration and full-stack type safety" when_to_use: "When working with trpc-type-safety or related functionality." quick_start: "1.
Tool: SKILL.md [2/6] Description: getUser: t.procedure .input(z.string()) .query(({ input }) => { return db.user.findUnique({ where: { id: input } }); }), // Query with multiple inputs searchUsers: t.procedure .input(z.object({ query: z.string(), limit: z.number().default(10), })) .query(({ input }) => { return db.user.findMany({ where: { name: { contains: input.query } }, take: input.limit, }); }), }); ``` ### Mutation Procedures (Write Operations) ```typescript const router = t.router({ create
Tool: SKILL.md [3/6] Description: | Server error | ### Custom Error Handling ```typescript const router = t.router({ deleteUser: t.procedure .input(z.string()) .mutation(async ({ input, ctx }) => { try { return await ctx.db.user.delete({ where: { id: input } }); } catch (error) { if (error.code === 'P2025') { // Prisma not found throw new TRPCError({ code: 'NOT_FOUND', message: 'User not found', cause: error, }); } throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'Failed to delete u
Tool: SKILL.md [4/6] Description: } from '@trpc/server/adapters/ws'; import ws from 'ws'; const wss = new ws.Server({ port: 3001 }); applyWSSHandler({ wss, router: appRouter, createContext, }); console.log('WebSocket server listening on port 3001'); ``` ### Subscription Procedure ```typescript import { observable } from '@trpc/server/observable'; import { EventEmitter } from 'events'; const ee = new EventEmitter(); const router = t.router({ onPostAdd: t.procedure.subscription(() => { return obse
Tool: SKILL.md [5/6] Description: createPaginatedProcedure((cursor, limit) => db.post.findMany({ skip: cursor, take: limit }) ), users: createPaginatedProcedure((cursor, limit) => db.user.findMany({ skip: cursor, take: limit }) ), }); ``` --- ## Testing Strategies ### Unit Testing Procedures ```typescript import { createCaller } from '../routers'; describe('User Router', () => { it('should create user', async () => { const ctx = { db: mockDb, session: null, }; const caller = createCaller(ctx); c
Tool: SKILL.md [6/6] Description: (req.method === 'GET') { const user = await db.user.findUnique({ where: { id: req.query.id } }); res.json(user); } else if (req.method === 'PATCH') { const user = await db.user.update({ where: { id: req.query.id }, data: req.body, }); res.json(user); } } // Client const response = await fetch(`/api/users/${id}`); const user = await response.json(); // No types!
Malicious tool definition detected
Tool: metadata.json Description: { "name": "trpc", "version": "1.0.0", "category": "toolchain", "toolchain": "typescript", "tags": [ "trpc", "api", "typescript", "type-safety", "react-query", "nextjs", "end-to-end-types", "rpc", "websocket", "real-time" ], "entry_point_tokens": 70, "full_tokens": 12046, "related_skills": [ "../../validation/zod", "../../../nextjs", "../../state/zustand", "../../testing/vitest" ], "author": "claude-mpm-skills", "license": "MIT", "subcategory": "api", "requires":