From enterprise
Knowledge skill for API contracts and endpoint patterns. Injected into Builder and Validator agents during engage to enforce consistent API design, error handling, and request/response schemas. Not user-invocable.
npx claudepluginhub nathanvale/side-quest-plugins --plugin enterpriseThis skill uses the workspace's default tool permissions.
This knowledge skill provides context about API design patterns and contracts. Injected into Builder (Scotty) and Validator (McCoy) agents during engage.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Retrieves current documentation, API references, and code examples for libraries, frameworks, SDKs, CLIs, and services via Context7 CLI. Ideal for API syntax, configs, migrations, and setup queries.
Uses ctx7 CLI to fetch current library docs, manage AI coding skills (install/search/generate), and configure Context7 MCP for AI editors.
This knowledge skill provides context about API design patterns and contracts. Injected into Builder (Scotty) and Validator (McCoy) agents during engage.
// Routes follow RESTful conventions
GET /api/{resource} -- List resources
GET /api/{resource}/:id -- Get single resource
POST /api/{resource} -- Create resource
PUT /api/{resource}/:id -- Update resource (full replace)
PATCH /api/{resource}/:id -- Update resource (partial)
DELETE /api/{resource}/:id -- Delete resource
export const handleGetResource = async (req: Request): Promise<Response> => {
// 1. Parse and validate input
const params = validateParams(req);
// 2. Execute business logic
const result = await service.getResource(params.id);
// 3. Return structured response
return Response.json({ data: result });
};
All API errors follow a consistent shape:
interface ApiError {
error: {
code: string; // Machine-readable: 'NOT_FOUND', 'VALIDATION_ERROR'
message: string; // Human-readable description
details?: unknown; // Additional context (validation errors, etc.)
};
}
// 400 - Validation error
{ "error": { "code": "VALIDATION_ERROR", "message": "Invalid input", "details": { "field": "name", "issue": "required" } } }
// 404 - Not found
{ "error": { "code": "NOT_FOUND", "message": "Resource not found" } }
// 500 - Internal error
{ "error": { "code": "INTERNAL_ERROR", "message": "An unexpected error occurred" } }
| HTTP Status | Error Code | When to Use |
|---|---|---|
| 400 | VALIDATION_ERROR | Invalid input, missing required fields |
| 401 | UNAUTHORIZED | Missing or invalid authentication |
| 403 | FORBIDDEN | Authenticated but not authorized |
| 404 | NOT_FOUND | Resource does not exist |
| 409 | CONFLICT | Resource already exists, version conflict |
| 422 | UNPROCESSABLE | Valid syntax but semantic error |
| 500 | INTERNAL_ERROR | Unexpected server error |
validateRequired, validateJson from core utilities// Success response
{ "data": T }
// List response
{ "data": T[], "meta": { "total": number, "page": number, "limit": number } }
// Error response
{ "error": { "code": string, "message": string } }
Authorization header{ data } or { error })code or message)