一键导入
qa-pact-writer
Generate consumer-driven contract tests using Pact for JavaScript and Python to verify microservice API compatibility between consumer and provider.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generate consumer-driven contract tests using Pact for JavaScript and Python to verify microservice API compatibility between consumer and provider.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | qa-pact-writer |
| description | Generate consumer-driven contract tests using Pact for JavaScript and Python to verify microservice API compatibility between consumer and provider. |
| output_dir | tests/contracts |
| dependencies | {"recommended":["qa-api-contract-curator"]} |
Write consumer-driven contract tests for microservice API compatibility. Transform API contracts (from qa-api-contract-curator) into Pact consumer tests and provider verification tests. Ensure consumer and provider services remain compatible without brittle end-to-end integration tests.
| Concept | Description |
|---|---|
| Consumer | Service that makes requests (e.g., frontend, API gateway, another microservice) |
| Provider | Service that serves requests (e.g., REST API, backend service) |
| Pact | Contract/agreement describing expected request/response between consumer and provider |
| Pact Broker | Central repository for publishing, versioning, and sharing pacts |
| Consumer-driven | Consumer defines expectations; provider verifies it meets them |
| Language | Library | Notes |
|---|---|---|
| JavaScript/TypeScript | @pact-foundation/pact | PactV4 (default), HTTP + async/sync messages |
| Python | pact-python | pytest integration, functional state handlers (v2.3+) |
pacts/ or published to brokergiven (provider state), uponReceiving (scenario name), request (method, path, headers, body), expected response (status, headers, body)like, eachLike, term, regex for flexible matchinggiven state| Pattern | JavaScript | Python |
|---|---|---|
| Consumer setup | new PactV4() / new Pact() | pact.Consumer(...).has_pact_with(...) |
| Provider verification | Verifier.verifyProvider() | Verifier(provider=...).verify_pacts() |
| Provider states | given() in interaction | state_handler / set_state |
| Matchers | like(), eachLike(), term() | Like, EachLike, Term |
| Pending pacts | pending: true | pending: True |
| WIP pacts | wip: true | wip: True |
See references/patterns.md for consumer tests, provider verification, matchers, provider states.
{consumer}-{provider}.json in pacts/ or brokerCan do (autonomous):
Cannot do (requires confirmation):
Will not do (out of scope):
npm test or pytest)Before delivering Pact tests:
given clauses| Symptom | Likely Cause | Fix |
|---|---|---|
| Pact mock server port conflict | Port already in use | Change port in Pact config; use random port |
| Provider verification fails | State handler not matching given | Ensure state handler name matches consumer given exactly |
| Pact not published to broker | Wrong URL, auth, or version | Verify PACT_BROKER_BASE_URL, PACT_BROKER_TOKEN; check version in publish |
| Matcher mismatch on provider | Provider returns different shape | Align consumer matchers with provider response; or fix provider |
| Consumer test passes, pact empty | Pact not written before teardown | Ensure executeTest() / verify() completes; check output path |
| Python state handler not called | Wrong state name or handler signature | Match given string; use state_handler with correct params (v2.3+) |
references/patterns.md — Consumer tests, provider verification, matchers, provider statesreferences/config.md — Pact Broker setup, CI integration, can-i-deployreferences/best-practices.md — Consumer-driven workflow, versioning, broker managementMaster skill coordinating all QA skills through pipeline modes (full-cycle, docs-only, testcases-only, write-tests, report), formalized handoff chains, scheduler rules, and framework/language selection based on project context.
QA project memory with auto-update. Structured log of bugs, decisions, tests, regressions, environments. Automatically updated after every QA task. Archive system with searchable index for large projects. Trigger phrases (EN): "initialize memory", "init qa memory", "find known bug", "search memory", "show what was done", "check regressions", "memory status", "archive memory", "log a bug", "add decision", "memory summary", "what bugs do we know", "update memory", "show test log". Trigger phrases (UA): "ініціалізувати пам'ять", "знайти відомий баг", "пошук у пам'яті", "показати що було зроблено", "перевірити регресії", "статус пам'яті", "архівувати пам'ять", "залогувати баг", "додати рішення", "зведення пам'яті", "які баги відомі", "оновити пам'ять", "показати лог тестів", "що ми вирішили про", "які тестові середовища є".
Analyze OpenAPI/Swagger spec (JSON or YAML) against existing test files and generate an HTML coverage report with QA automation tasks. Use when user provides an OpenAPI spec file and wants to know test coverage status.
Generate accessibility tests for WCAG 2.2 compliance using axe-core, Pa11y, and Lighthouse with automated checks for ARIA patterns, keyboard navigation, color contrast, and screen reader support.
Manage and formalize API contracts from existing endpoints, swagger/JSON, network traffic, or developer interviews into OpenAPI specifications.
Autonomously explore live web applications using Playwright MCP to collect page structure, form fields, validation rules, API endpoints, and user flows for test case generation.