agentleFS
AsiaOstrichAsiaOstrich/EngramGraph/.agents/skills/contract-test-assistant/SKILL.md

contract-test

Skill4 starsChanged 29 days agoMITView on GitHub

[UDS] Guide contract testing strategy for APIs and microservices. Use when: API contracts, microservices, consumer-driven testing, provider verification. Not for: designing the API surface in the first place — use /api-design; user-visible flows through a UI — use /e2e. Keywords: contract test, Pact, OpenAPI, consumer-driven, provider.

4 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

2 rules. 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Write consumer expectations or OpenAPI spec

    line 52
  2. Very specific:

    When /contract-test is invoked:

    line 120

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Contract Test Assistant | 合約測試助手

Language: English | 繁體中文

Guide contract testing strategy selection, setup, and verification for APIs and microservices.

引導 API 和微服務的合約測試策略選擇、設定和驗證。

What is Contract Testing? | 什麼是合約測試?

Contract testing verifies that services can communicate correctly by testing the agreements (contracts) between consumers and providers — without requiring all services to be running.

合約測試透過測試消費者和提供者之間的協議(合約)來驗證服務間的通訊正確性,不需要所有服務同時運行。

Strategy Selection | 策略選擇

StrategyBest ForTool適用場景
Consumer-DrivenInternal microservices, team owns both sidesPact內部微服務,團隊同時擁有兩端
Provider-DrivenPublic APIs, OpenAPI-first designOpenAPI + Prism公開 API,OpenAPI 優先設計
Bi-DirectionalMixed ownership, gradual adoptionPact + OpenAPI混合所有權,漸進採用

Workflow | 工作流程

ASSESS ──► CHOOSE ──► DEFINE ──► IMPLEMENT ──► VERIFY
  評估架構    選擇策略    定義合約     實作測試      驗證合約

1. ASSESS — Evaluate Architecture | 評估架構

  • How many services communicate?
  • Who owns consumer vs provider?
  • 有多少服務互相通訊?誰擁有消費者/提供者?

2. CHOOSE — Select Strategy | 選擇策略

  • Consumer-Driven (Pact) vs Provider-Driven (OpenAPI)
  • 消費者驅動 (Pact) vs 提供者驅動 (OpenAPI)

3. DEFINE — Create Contract | 定義合約

  • Write consumer expectations or OpenAPI spec
  • 撰寫消費者期望或 OpenAPI 規格

4. IMPLEMENT — Write Tests | 實作測試

  • Consumer tests generate contracts
  • Provider tests verify against contracts
  • 消費者測試產生合約;提供者測試驗證合約

5. VERIFY — Run Verification | 驗證

  • CI pipeline verifies contracts on every PR
  • CI 管線在每個 PR 上驗證合約

Commands | 指令

CommandAction說明
/contract-testInteractive strategy selection互動式策略選擇
/contract-test consumerGuide consumer test setup引導消費者測試設定
/contract-test providerGuide provider test setup引導提供者測試設定
/contract-test verifyCheck contract coverage檢查合約覆蓋率

Contract Coverage Report | 合約覆蓋率報告

## Contract Coverage Report

| Consumer | Provider | Endpoint | Status |
|----------|----------|----------|--------|
| web-app | user-api | GET /users/:id | ✅ Verified |
| web-app | user-api | POST /users | ✅ Verified |
| mobile-app | auth-api | POST /login | ⚠️ Consumer only |
| admin-ui | report-api | GET /reports | ❌ No contract |

**Coverage**: 50% (2/4 endpoints verified both sides)

Integration | 與其他技能的整合

SkillIntegration整合方式
/api-designDefine API contracts during design設計時定義 API 合約
/ci-cdAdd contract verification to pipeline管線中加入合約驗證
/testingContract tests as part of test strategy合約測試作為測試策略一部分
/migrateCapture legacy response fixtures during API migration; verify new impl preserves structural equivalenceAPI 遷移時捕獲 legacy response fixture,驗證新實作保持結構性等價

Migration Contract Tests — When Replacing an Implementation | 遷移合約測試(替換實作時)

When migrating an API endpoint from one tech stack to another (PHP → .NET, Express → Spring, etc.), a contract test against a legacy reference fixture catches missing fields, renamed fields, and placement drift that unit tests on the new DTO cannot. See migration-assistant § API Migration Contract Tests for the fixture capture protocol and audit checklist.

當 API endpoint 從一個技術棧遷至另一個(PHP → .NET、Express → Spring 等),對 legacy 參考 fixture 的 contract test 可捕捉「缺漏欄位」「rename」「層級漂移」等新 DTO 單元測試無法覆蓋的缺陷。詳見 migration-assistant § API Migration Contract Tests。

Next Steps Guidance | 下一步引導

After /contract-test completes:

合約測試引導完成。建議下一步:

  • 執行 /ci-cd 將合約驗證加入 CI 管線
  • 執行 /api-design 完善 API 設計
  • 執行 /testing 整合到整體測試策略

Reference | 參考

  • Detailed guide: guide.md — contract testing strategy and setup. Read it when configuring Pact/OpenAPI or wiring contract tests into CI.
  • Detailed guide: contract-testing.md
  • Related: api-design-assistant

AI Agent Behavior | AI 代理行為

When /contract-test is invoked:

  1. Assess — Ask about architecture (monolith, microservices, number of APIs)
  2. Recommend — Suggest strategy based on architecture
  3. Guide — Walk through setup for chosen strategy
  4. Generate — Create example contract test files
  5. Verify — If verify subcommand, scan for contracts and report coverage

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.