{"id":"2052078a-2b97-4196-8836-343a50b4f6cb","shortId":"ApUbXt","kind":"skill","title":"702-technologies-wiremock","tagline":"Use when you need framework-agnostic WireMock guidance — stub design, JSON or programmatic mappings, precise request matching, response bodies and faults, classpath fixtures, isolation and reset between tests, verification of calls, dynamic ports and base URLs, and avoiding flaky","description":"# WireMock best practices\n\nHelp teams use **WireMock** effectively for HTTP dependency stubbing with **stable, isolated** tests.\n\n**What is covered in this Skill?**\n\n- Stub **isolation**: per-test registration, `resetAll()`, avoiding leaked global stubs\n- **Request matching**: method, path, headers, query, body patterns; when broad patterns are acceptable\n- **Responses**: status, headers, JSON/XML bodies, `bodyFileName` / classpath fixtures, fault simulation (delays, errors)\n- **Dynamic ports** and propagating base URLs into the system under test\n- **Verification** of outbound HTTP calls and debugging unmatched requests\n- Clear **delegation** to framework integration-test skills for test class layout and extensions\n\n**Scope:** Portable WireMock behavior only. For **`BaseIntegrationTest`**, `WireMockExtension`, and stack-specific integration tests, use `@132-java-testing-integration-testing`, `@322-frameworks-spring-boot-testing-integration-tests`, `@422-frameworks-quarkus-testing-integration-tests`, or `@522-frameworks-micronaut-testing-integration-tests`. For **OpenAPI** contract quality, use `@701-technologies-openapi`.\n\n## Constraints\n\nKeep recommendations at the WireMock and HTTP-stub layer unless the user explicitly asks for framework integration. After editing this repository's XML sources, regenerate skills and verify the build.\n\n- **MANDATORY**: Run `./mvnw compile` or `mvn compile` before proposing Java or Maven changes in the same change set\n- **FRAMEWORK**: Defer `@SpringBootTest` / `@QuarkusTest` / `@MicronautTest` and extension setup to `@132-java-testing-integration-testing` or the matching `322` / `422` / `522` integration-test skill\n- **CONTRACTS**: Defer OpenAPI document structure and linting to `@701-technologies-openapi`\n- **MANDATORY**: Regenerate skills with `./mvnw clean install -pl skills-generator` after editing skill or system-prompt XML in this repo\n- **VERIFY**: Run `./mvnw clean verify` or `mvn clean verify` before promoting changes\n- **EDGE CASE**: If the user goal is ambiguous, stop and ask a clarifying question before editing files or running project-wide commands\n- **EDGE CASE**: If required context, files, credentials, or tools are missing, report the blocker explicitly and ask whether to proceed with setup or fallback guidance\n- **EDGE CASE**: If requested changes conflict with project constraints or safety boundaries, explain the conflict and ask for user confirmation on the preferred trade-off\n\n## When to use this skill\n\n- Design or review WireMock stubs (JSON mappings or Java DSL)\n- Improve request matching, isolation, or reset strategy for HTTP mocks\n- Add or fix verification of outbound HTTP calls to a WireMock server\n- Debug flaky tests involving WireMock or unmatched request journals\n- Stub external HTTP APIs in tests with stable fixtures and dynamic ports\n\n## Workflow\n\n1. **Read reference and assess project context**\n\nRead `references/702-technologies-wiremock.md` and inspect current API/context artifacts before proposing changes.\n\n2. **Gather scope and decide target improvements**\n\nIdentify requested outcomes, constraints, and the minimum safe set of changes to apply.\n\n3. **Apply technology-aligned changes**\n\nImplement or refactor artifacts following the reference patterns and project conventions.\n\n4. **Run verification and report results**\n\nExecute appropriate checks and summarize what changed, what was verified, and any follow-up actions.\n\n## Reference\n\nFor detailed guidance, examples, and constraints, see [references/702-technologies-wiremock.md](references/702-technologies-wiremock.md).","tags":["702","technologies","wiremock","cursor","rules","java","jabrena","agent-skills","ai-skills","claude","claude-code","claude-code-skills"],"capabilities":["skill","source-jabrena","skill-702-technologies-wiremock","topic-agent-skills","topic-ai-skills","topic-claude","topic-claude-code","topic-claude-code-skills","topic-claude-code-subagents","topic-claude-skills","topic-cursor-agent","topic-cursor-ai","topic-cursor-skills","topic-cursorai","topic-github-copilot"],"categories":["cursor-rules-java"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/jabrena/cursor-rules-java/702-technologies-wiremock","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add jabrena/cursor-rules-java","source_repo":"https://github.com/jabrena/cursor-rules-java","install_from":"skills.sh"}},"qualityScore":"0.631","qualityRationale":"deterministic score 0.63 from registry signals: · indexed on github topic:agent-skills · 362 github stars · SKILL.md body (3,598 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-26T12:53:39.610Z","embedding":null,"createdAt":"2026-04-18T22:02:31.121Z","updatedAt":"2026-04-26T12:53:39.610Z","lastSeenAt":"2026-04-26T12:53:39.610Z","tsv":"'/mvnw':224,281,301 '1':444 '132':152,249 '2':461 '3':481 '322':158,258 '4':498 '422':166,259 '522':174,260 '701':186,273 '702':1 'accept':90 'action':519 'add':410 'agnost':11 'align':485 'ambigu':318 'api':434 'api/context':456 'appli':480,482 'appropri':505 'artifact':457,490 'ask':205,321,350,375 'assess':448 'avoid':43,74 'base':40,107 'baseintegrationtest':143 'behavior':140 'best':46 'blocker':347 'bodi':24,84,95 'bodyfilenam':96 'boot':162 'boundari':370 'broad':87 'build':221 'call':36,118,417 'case':312,335,360 'chang':234,238,310,363,460,478,486,510 'check':506 'clarifi':323 'class':133 'classpath':27,97 'clean':282,302,306 'clear':123 'command':333 'compil':225,228 'confirm':378 'conflict':364,373 'constraint':190,367,471,526 'context':338,450 'contract':183,265 'convent':497 'cover':63 'credenti':340 'current':455 'debug':120,422 'decid':465 'defer':241,266 'delay':101 'deleg':124 'depend':55 'design':15,390 'detail':522 'document':268 'dsl':399 'dynam':37,103,441 'edg':311,334,359 'edit':210,289,326 'effect':52 'error':102 'exampl':524 'execut':504 'explain':371 'explicit':204,348 'extens':136,246 'extern':432 'fallback':357 'fault':26,99 'file':327,339 'fix':412 'fixtur':28,98,439 'flaki':44,423 'follow':491,517 'follow-up':516 'framework':10,126,160,168,176,207,240 'framework-agnost':9 'frameworks-micronaut-testing-integration-test':175 'frameworks-quarkus-testing-integration-test':167 'frameworks-spring-boot-testing-integration-test':159 'gather':462 'generat':287 'global':76 'goal':316 'guidanc':13,358,523 'header':82,93 'help':48 'http':54,117,198,408,416,433 'http-stub':197 'identifi':468 'implement':487 'improv':400,467 'inspect':454 'instal':283 'integr':128,149,156,164,171,179,208,253,262 'integration-test':127,261 'involv':425 'isol':29,59,68,403 'java':154,231,251,398 'java-testing-integration-test':153,250 'journal':430 'json':16,395 'json/xml':94 'keep':191 'layer':200 'layout':134 'leak':75 'lint':271 'mandatori':222,277 'map':19,396 'match':22,79,257,402 'maven':233 'method':80 'micronaut':177 'micronauttest':244 'minimum':474 'miss':344 'mock':409 'mvn':227,305 'need':8 'openapi':182,189,267,276 'outbound':116,415 'outcom':470 'path':81 'pattern':85,88,494 'per':70 'per-test':69 'pl':284 'port':38,104,442 'portabl':138 'practic':47 'precis':20 'prefer':381 'proceed':353 'programmat':18 'project':331,366,449,496 'project-wid':330 'promot':309 'prompt':294 'propag':106 'propos':230,459 'qualiti':184 'quarkus':169 'quarkustest':243 'queri':83 'question':324 'read':445,451 'recommend':192 'refactor':489 'refer':446,493,520 'references/702-technologies-wiremock.md':452,528,529 'regener':216,278 'registr':72 'repo':298 'report':345,502 'repositori':212 'request':21,78,122,362,401,429,469 'requir':337 'reset':31,405 'resetal':73 'respons':23,91 'result':503 'review':392 'run':223,300,329,499 'safe':475 'safeti':369 'scope':137,463 'see':527 'server':421 'set':239,476 'setup':247,355 'simul':100 'skill':66,130,217,264,279,286,290,389 'skill-702-technologies-wiremock' 'skills-gener':285 'sourc':215 'source-jabrena' 'specif':148 'spring':161 'springboottest':242 'stabl':58,438 'stack':147 'stack-specif':146 'status':92 'stop':319 'strategi':406 'structur':269 'stub':14,56,67,77,199,394,431 'summar':508 'system':111,293 'system-prompt':292 'target':466 'team':49 'technolog':3,188,275,484 'technologies-openapi':187,274 'technologies-wiremock':2 'technology-align':483 'test':33,60,71,113,129,132,150,155,157,163,165,170,172,178,180,252,254,263,424,436 'tool':342 'topic-agent-skills' 'topic-ai-skills' 'topic-claude' 'topic-claude-code' 'topic-claude-code-skills' 'topic-claude-code-subagents' 'topic-claude-skills' 'topic-cursor-agent' 'topic-cursor-ai' 'topic-cursor-skills' 'topic-cursorai' 'topic-github-copilot' 'trade':383 'trade-off':382 'unless':201 'unmatch':121,428 'url':41,108 'use':5,50,151,185,387 'user':203,315,377 'verif':34,114,413,500 'verifi':219,299,303,307,513 'whether':351 'wide':332 'wiremock':4,12,45,51,139,195,393,420,426 'wiremockextens':144 'workflow':443 'xml':214,295","prices":[{"id":"0efd8ead-5138-487d-9d34-c5695e386931","listingId":"2052078a-2b97-4196-8836-343a50b4f6cb","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"jabrena","category":"cursor-rules-java","install_from":"skills.sh"},"createdAt":"2026-04-18T22:02:31.121Z"}],"sources":[{"listingId":"2052078a-2b97-4196-8836-343a50b4f6cb","source":"github","sourceId":"jabrena/cursor-rules-java/702-technologies-wiremock","sourceUrl":"https://github.com/jabrena/cursor-rules-java/tree/main/skills/702-technologies-wiremock","isPrimary":false,"firstSeenAt":"2026-04-18T22:02:31.121Z","lastSeenAt":"2026-04-26T12:53:39.610Z"}],"details":{"listingId":"2052078a-2b97-4196-8836-343a50b4f6cb","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"jabrena","slug":"702-technologies-wiremock","github":{"repo":"jabrena/cursor-rules-java","stars":362,"topics":["agent-skills","ai-skills","claude","claude-code","claude-code-skills","claude-code-subagents","claude-skills","cursor-agent","cursor-ai","cursor-skills","cursorai","github-copilot","intellij-idea","java","prompting","system-prompts"],"license":"apache-2.0","html_url":"https://github.com/jabrena/cursor-rules-java","pushed_at":"2026-04-26T12:50:01Z","description":"A curated and opinionated collection of Skills and Agents to be used in modern SDLC workflows for Java Enterprise development with your favorite AI Agent harness.","skill_md_sha":"a4642334e9d782445e8b0352c36855f7d9fcca5f","skill_md_path":"skills/702-technologies-wiremock/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/jabrena/cursor-rules-java/tree/main/skills/702-technologies-wiremock"},"layout":"multi","source":"github","category":"cursor-rules-java","frontmatter":{"name":"702-technologies-wiremock","license":"Apache-2.0","description":"Use when you need framework-agnostic WireMock guidance — stub design, JSON or programmatic mappings, precise request matching, response bodies and faults, classpath fixtures, isolation and reset between tests, verification of calls, dynamic ports and base URLs, and avoiding flaky stubs — without choosing Spring Boot, Quarkus, or Micronaut. This should trigger for requests such as Design or review WireMock stubs (JSON mappings or Java DSL); Improve request matching, isolation, or reset strategy for HTTP mocks; Add or fix verification of outbound HTTP calls to a WireMock server; Debug flaky tests involving WireMock or unmatched request journals. Part of cursor-rules-java project"},"skills_sh_url":"https://skills.sh/jabrena/cursor-rules-java/702-technologies-wiremock"},"updatedAt":"2026-04-26T12:53:39.610Z"}}