You are an expert TypeScript test-infrastructure engineer. You will generate a production-grade, reusable “Backend Conformance Kit†that validates common enterprise web-application behaviors (insurance-grade) using black-box HTTP tests. This kit must be framework-agnostic and reusable across any backend (Node, Bun, Laravel, Spring Boot, Go, etc.) by configuration only. Do NOT use any framework-native testing utilities. Treat the target system as an external HTTP API.
/plugin marketplace add judigot/ai/plugin install judigot-ai@judigot/aiThis skill inherits all available tools. When active, it can use any tool Claude has access to.
You are an expert TypeScript test-infrastructure engineer. You will generate a production-grade, reusable “Backend Conformance Kit†that validates common enterprise web-application behaviors (insurance-grade) using black-box HTTP tests. This kit must be framework-agnostic and reusable across any backend (Node, Bun, Laravel, Spring Boot, Go, etc.) by configuration only. Do NOT use any framework-native testing utilities. Treat the target system as an external HTTP API.
Build a TypeScript monorepo (or single package) that provides:
Primary design principle: One test kit for my whole career. New services should require minimal work: only implement endpoints + fill out a config file + optional seed hooks.
dotenv/config or explicit dotenv.config()), plus process.env accessGenerate a repo with:
Provide a runnable example:
pnpm test:conformance -- --config ./conformance.config.example.ts
or similar.The kit should be used like this:
conformance.config.example.ts to conformance.config.tsbaseUrlpnpm test runs all conformance suitespnpm test:auth runs only auth suiteBASE_URL=http://localhost:3000 pnpm testConfig must be strongly typed and validated at startup. Missing fields should fail fast with human-readable errors.
Each suite:
Allow enabling/disabling suites and individual tests via config flags:
features: { csrf: true, idempotency: true, audit: false, ... }
Allow custom “service adapters†if an org has multiple API styles.Implement these suites in v1:
Config fields:
Notes:
Purpose: enforce consistent API error shape across endpoints. Config fields:
Config fields:
selectItems(json): unknown[]selectNextCursor(json): string | null (cursor mode)selectTotal(json): number | null (optional)
Assertions:Config fields:
Config fields:
Implement a harness that provides:
createClient() returns:
assertStatus(response, allowedStatuses)assertHeader(response, name, predicate)assertSetCookieHasAttributes(setCookieHeaders, cookieName, attributes[])assertCookieCleared(setCookieHeaders, cookieName)assertJsonSchema(data, schema) using AjvparseJson(response) with robust JSON parsing and helpful errorswithFreshClient() utility to test “no cookie†scenariossuite runner that can:
Also include a small retry wrapper:
.env provides ENVIRONMENT-SPECIFIC overrides and sensitive values (base URL, credentials).Do not let .env become “the real config.†If it changes the meaning of the standard, it belongs in TypeScript config.
.env.example (committed): shows required env vars and safe defaults.env (gitignored): developer/CI-specific valuesconformance.config.example.ts (committed): uses env vars but keeps standards in codeSupport these env vars:
BASE_URL (string) - base URL of the target APITEST_EMAIL (string) - seed user emailTEST_PASSWORD (string) - seed user passwordREQUIRE_SECURE_COOKIE ("true" | "false") - whether to enforce Secure on cookiesHTTP_TIMEOUT_MSHTTP_RETRY_COUNT.env values loaded by dotenvimport "dotenv/config" at the entry point OR an explicit dotenv.config() in a dedicated module.env.ts helper:
getEnvString(name, { required, defaultValue })getEnvBoolean(name, { defaultValue })Add scripts:
pnpm test -> vitest runpnpm test:auth -> vitest run (only auth suite)pnpm typecheckpnpm lint (optional; keep minimal if too much)Write a README that explains:
Include:
conformance.config.example.ts.env.exampleany. Use proper types and narrowings.pnpm install then pnpm test (assuming BASE_URL points to a running API).Now generate the repo.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.