Creator · petrkindlmann
Last updated · Sep 7, 2026
>-
Sandbox only
Install targets
Codex install prompt
Install the "contract-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/contract-testing. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: >- After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"petrkindlmann-contract-testing","task":"Install contract-testing","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
GitHub automation
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add petrkindlmann/qa-skills --skill contract-testing
Maintenance
active
3mo since push
Risk
Needs review
Dependency or permission surface needs review
GitHub quality
111
61/100 Quality · 68/100 Trust
Coverage tags
Review notes
Dependency or permission surface needs review · Permission surface may require sandboxing
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
PromisingUseful candidate, but compare it with alternatives before adopting.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Needs reviewA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
111 GitHub stars
Repo activity
111 stars, 22 forks
Maintenance
3mo since push
License
MIT
Install
npx skills add petrkindlmann/qa-skills --skill contract-testing
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add petrkindlmann/qa-skills --skill contract-testingDo not use when
Alternative
168.6K Stars
npx skills add mattpocock/skills --skill code-review
Alternative
40.8K Stars
npx skills add appsmithorg/appsmith
Alternative
175.7K Stars
npx skills add mattpocock/skills --skill implement
Alternative
30.9K Stars
npx skills add vercel-labs/agent-skills --skill vercel-react-best-practices
Agent safety v2
This skill should not be selected by an agent without explicit human security review.
Do not auto-install. Inspect the source, dependencies, and permission surface first.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill may drive a browser or interact with web pages.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20contract-testing%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20contract-testing%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/petrkindlmann-contract-testing/install
Agent should check
Copy prompt
Task: Use contract-testing in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20contract-testing%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/petrkindlmann-contract-testing/install
Install command: npx skills add petrkindlmann/qa-skills --skill contract-testing
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/petrkindlmann-contract-testing/install
LLM text format
/api/skills/petrkindlmann-contract-testing/install?format=text
Find alternatives
/api/skills/search?q=contract-testing&limit=3
Agent prompt
Use contract-testing for this task. Review https://www.openagentskill.com/api/skills/petrkindlmann-contract-testing/install, then install with: npx skills add petrkindlmann/qa-skills --skill contract-testingRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/petrkindlmann-contract-testing
LLM text
/api/registry/manifest/petrkindlmann-contract-testing?format=text
Install alias
/api/registry/install/petrkindlmann-contract-testing
Recommend
/api/registry/recommend?task=Use%20contract-testing%20in%20an%20agent%20workflow&limit=3
Agent fit
GitHub automation
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Prototype with this skill first; keep a fallback candidate ready.
Role in stack
Fallback candidate
Primary fit
GitHub automation
Trust label
Prototype first
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
INFO111 GitHub stars
Stars/forks activity
CHECK111 stars, 22 forks; issue activity unavailable in current metadata
Recent maintenance
PASS3mo since push
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Useful candidate, but compare it with alternatives before adopting.
Workflow fit
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Verify behavior
I need my agent to test a web app, reproduce bugs, and verify fixes.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Turn skills into distribution
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Alternative shortlist
Similar skills that may fit this task.
Review a branch or diff against repository standards and the originating spec in two independent analysis passes.
Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
Implement work from an approved spec or ticket set, run focused and full tests, invoke code review, and commit the result to the current branch.
React and Next.js performance guidance for writing, reviewing, and refactoring production UI code.
--- name: contract-testing description: >- Implement consumer-driven contract testing with Pact-JS (v16). Covers consumer test writing, broker-driven provider verification, Pact Broker setup, can-i-deploy as a deployment gate, webhook-triggered verification, pending pacts, and schema-first vs consumer-first approaches (OpenAPI/Ajv, Schemathesis). Use when: "contract test," "Pact," "consumer-driven," "API contract," "provider verification," "can-i-deploy." Not for: stubbing or mocking a dependency to isolate a test — use service-virtualization; general REST/GraphQL endpoint assertions against your own API — use api-testing. Related: api-testing, service-virtualization, ci-cd-integration, test-environments. license: MIT metadata: author: kindlmann version: "2.0" category: infrastructure ---
<objective> A provider renames a response field. Both services pass their own unit tests, and the mismatch only surfaces in production when the consumer's frontend breaks. Contract testing catches that in CI: the consumer declares exactly what it needs, the provider verifies it can deliver, and `can-i-deploy` blocks the deploy until the broker confirms both sides are compatible. This skill produces Pact consumer tests, broker-driven provider verification, and the deployment gate that ties them together — so services can be deployed independently without a shared integration environment. </objective>
## Discovery Questions
Check `.agents/qa-project-context.md` first — if it exists, use it and skip anything already answered there. Then:
1. **Architecture:** Microservices, monolith with separate consumers (mobile/SPA), or BFF pattern? Contract testing matters most when teams deploy independently. 2. **Who owns the contract?** Consumer-driven (consumers define what they need) or provider-driven (provider publishes a spec)? Most teams benefit from consumer-driven. 3. **API versioning strategy:** URL-based (`/v1/`, `/v2/`), header-based, or none? Contracts must account for version negotiation. 4. **How many consumer-provider pairs?** Start with the highest-traffic or most-fragile integration. Do not try to contract-test everything at once. 5. **Existing API specs:** Is there an OpenAPI/Swagger spec? If yes, consider schema-first contracts (or Schemathesis) as a starting point. 6. **HTTP or async?** Request/response APIs use the HTTP examples here; queue/topic integrations (Kafka, SNS/SQS) use Pact message contracts (see Pact-JS Setup).
## Core Principles
**1. Consumers define what they need, providers verify they can deliver.** The consumer writes a test declaring "I will call `GET /users/123` and expect `{ id, name, email }`." The provider runs this test against its real implementation. If the provider cannot satisfy the contract, the build breaks before deployment.
**2. The broker is the shared source of truth.** Not documentation, not Slack threads, not "just deploy and see." Pacts and verification results live in the Pact Broker; provider verification pulls pacts from the broker (`pactBrokerUrl` + `consumerVersionSelectors`), not from local files, because the broker knows which consumer versions are actually live.
**3. Contract tests replace integration environments, not integration tests.** You still need integration tests for complex multi-step workflows. Contract tests eliminate the need to deploy consumer and provider together just to verify the interface.
**4. Break the build on contract violation.** A contract test that logs a warning but allows deployment provides zero value. Contracts must be deployment gates.
**5. Test the contract, not the business logic.** Consumer tests verify response shape and status codes. Provider verification ensures the contract is satisfiable. Business rules belong in unit and integration tests.
## Pact-JS Setup
Install `@pact-foundation/pact` as a dev dependency on both the consumer and provider sides. The workflow has two halves:
- **Consumer test:** the consumer declares what it needs from the provider (request shape + expected response). Running the test generates `pacts/<consumer>-<provider>.json` — the contract file. Use `Matchers` (`Matchers.like`, `Matchers.eachLike`, `Matchers.integer`, `Matchers.string`, `Matchers.regex`) so contracts assert types and formats, not brittle exact values. - **Provider verification:** the provider runs the consumer's pact against its **real** implementation (not mocks), using `stateHandlers` to set up the data each `given(...)` state expects, and publishes the verification result back to the broker.
> **Pact-JS v16 (current as of June 2026) renamed `PactV4` → `Pact` and `MatchersV3` → `Matchers`.** The old names were removed in v16. If you copy from older blog posts/examples, update the imports. The API behavior is unchanged.
For event-driven systems, the same `Pact` class supports **message pacts** (Kafka, SNS/SQS, RabbitMQ) — the consumer asserts the shape of a message it expects and the provider verifies what its producer emits.
See `references/pact-js-setup.md` for the install commands, the consumer test (single user, 404, paginated list), the broker-driven provider verification spec with state handlers and pending pacts, the Pact Broker Docker Compose, and the message-contract pointer.
## Pact Broker
The Pact Broker is the central registry where pact files are published and provider verification results are recorded. It enables the `can-i-deploy` workflow. Run it locally with Docker Compose backed by Postgres; consumer CI publishes pacts to it tagged with a commit SHA and branch.
**Inject every credential from the environment** — Postgres password, broker DB URL, and basic-auth password. Hardcoding any of them in the compose file leaks secrets into version control. Pin the broker image to a released tag, not `:latest`.
See `references/pact-js-setup.md` for the `docker-compose.pact-broker.yml` and the `pact-broker publish` command.
## Consumer-Driven Workflow
The full cycle:
``` 1. Consumer writes contract test └── Generates pact JSON file
2. Consumer CI publishes pact to broker └── Broker stores pact tagged with consumer version + branch
3. Broker webhook triggers provider verification └── Provider CI pulls latest pact, runs verification
4. Provider publishes verification result to broker └── Broker records: "provider v2.3.1 satisfies consumer v1.5.0"
5. Before deploy: can-i-deploy check └── "Can consumer v1.5.0 be deployed? Yes, provider v2.3.1 is in production and verified." ```
Both pipelines run contract tests, publish results to the broker, and gate deployment on `can-i-deploy`. The provider pipeline also listens for a `repository_dispatch` event so a new pact triggers verification automatically.
See `references/ci-pipelines.md` for the consumer CI workflow, the provider CI workflow (with Postgres service + migrations), and the standalone `can-i-deploy` / `record-deployment` commands.
### Pact Broker Webhooks
Configure webhooks in the Pact Broker to trigger provider verification via `repository_dispatch` when a new pact is published. The webhook sends a `POST` to `https://api.github.com/repos/myorg/user-service/dispatches` with event type `pact-changed`, which the provider pipeline listens for (see the `repository_dispatch` trigger in `references/ci-pipelines.md`).
### Pending Pacts (Incremental Adoption)
Set `enablePending: true` (plus `includeWipPactsSince`) on the provider `Verifier` so a brand-new consumer interaction can land without breaking the provider build — it is reported but does not fail until the consumer marks it expected. This is the standard safety net when adding contracts incrementally.
## Schema-First vs Consumer-First
### Consumer-First (Pact)
Consumers define what they need; contracts emerge from real usage patterns.
**Best for:** Teams where consumers have specific needs that differ across clients (mobile needs fewer fields than web), APIs that evolve organically, microservice ecosystems.
### Schema-First (OpenAPI + Validation)
Provider publishes an OpenAPI spec; consumers validate their usage against the spec.
**Best for:** Public APIs with many consumers, APIs designed upfront before implementation, teams with strong API design governance.
> OpenAPI 3.0 is not plain JSON Schema (`nullable: true` etc.) — vanilla Ajv defaults to draft 2020-12 and mis-validates real 3.0 specs. Configure Ajv for the OpenAPI dialect with `ajv-formats`, or use an OpenAPI-aware validator. See the caveat in `references/schema-first.md` for the Ajv config and the OpenAPI-against-spec validation helper.
### Hybrid Approach
Use OpenAPI as the design artifact and Pact as the enforcement mechanism.
1. Design API with OpenAPI spec (provider team leads design). 2. Generate Pact consumer tests from the OpenAPI spec as a baseline. 3. Consumers add specific interactions beyond the baseline. 4. Provider verifies against Pact contracts (a subset of the OpenAPI spec).
### Bi-Directional Contracts (PactFlow / SmartBear)
PactFlow (by SmartBear) offers bi-directional contract testing that decouples consumer pacts from provider verification — the provider supplies an OpenAPI spec, the consumer supplies a pact, and PactFlow checks compatibility without requiring the provider to run pact verification. It is a paid PactFlow/SmartBear feature, not part of Pact OSS. Useful when:
- The provider team can't or won't run a Pact verifier in their CI. - The provider already publishes an OpenAPI spec as the source of truth. - You want contract coverage without tight coupling between consumer and provider repos.
Trade-off: bi-directional checks are coarser than full pact verification — they validate spec/contract overlap, not exact runtime behaviour. Use it as the on-ramp; promote to full verification once both teams are bought in.
### Schemathesis (Property-Based, Spec-Driven)
For OpenAPI-first projects, **Schemathesis (v4.x)** runs property-based tests against a live API directly from the spec — generating thousands of valid+invalid requests and checking response conformance. Catches a different class of bugs than Pact (encoding, edge-case payloads, status-code drift). Pair them: Pact for consumer-driven *interactions*, Schemathesis for spec-driven *coverage*. In CI, prefer the `schemathesis/action@v3` Action over a raw shell line.
> **Avoid: `schemathesis run --base-url ... --hypothesis-deadline=2000` (Schemathesis ≤ v3, dead as of v4.0, 2025-06).** v4 removed `--hypothesis-deadline` and renamed `--base-url` to `--url`; the schema is now the positional arg. Current form: `schemathesis run ./openapi.yaml --url <base> --checks all`. See `references/schema-first.md`.
## can-i-deploy
The `can-i-deploy` command is the deployment gate. It checks the Pact Broker matrix to answer "given everything the broker knows, is this exact version compatible with what is already in the target environment?" After a successful deploy, record it with `record-deployment` so the matrix stays accurate.
Always pass `--retry-while-unknown <n> --retry-interval <s>`. This fixes the single most common real-world failure: the consumer just published a pact and the provider hasn't finished verifying it yet, so without retries the gate hard-fails on a race instead of waiting for the result to land.
**Never deploy without a passing `can-i-deploy` check, and never skip it on `main`.** `main` is what reaches production — a skipped gate there ships a version the broker has not confirmed compatible, which is the exact break contract testing exists to prevent.
See `references/ci-pipelines.md` for the `can-i-deploy` and `record-deployment` commands with annotated output and the retry flags.
## Anti-Patterns
**Testing business logic in contracts.** Keep contracts thin: status codes, field presence, field types, field format. Business logic belongs in unit and integration tests.
**Provider-driven contracts without consumer input.** If the provider team defines contracts alon
Source provenance
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for contract-testing, ready for a manual X post.
Before you hand an agent the next repo task, give it a repeatable starting point. contract-testing: >- 111 stars https://www.openagentskill.com/skills/petrkindlmann-contract-testing?ref=x
Listing + install path for contract-testing: https://www.openagentskill.com/skills/petrkindlmann-contract-testing?ref=x Install: npx skills add petrkindlmann/qa-skills --skill contract-testing
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to petrkindlmann but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/petrkindlmann-contract-testing?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/petrkindlmann-contract-testing?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/petrkindlmann-contract-testing/audit)
[](https://www.openagentskill.com/skills/petrkindlmann-contract-testing?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)petrkindlmann
@petrkindlmann
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Code Review
Review a branch or diff against repository standards and the originating spec in two independent analysis passes.
168.6K StarsAppsmith
Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
40.8K StarsImplement
Implement work from an approved spec or ticket set, run focused and full tests, invoke code review, and commit the result to the current branch.
175.7K StarsVercel React Best Practices
React and Next.js performance guidance for writing, reviewing, and refactoring production UI code.
30.9K StarsPermission surface
secrets or environment access, shell or command execution
Agent outcomes
No agent outcome data yet
Docs
Usable metadata, review docs
Risk summary
Install readiness