contracts

Contract lifecycle management - creation, consumption, modification, and resolution.

25 stars

Best use case

contracts is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Contract lifecycle management - creation, consumption, modification, and resolution.

Teams using contracts should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/contracts/SKILL.md --create-dirs "https://raw.githubusercontent.com/ComeOnOliver/skillshub/main/skills/aiskillstore/marketplace/clouder0/contracts/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/contracts/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How contracts Compares

Feature / AgentcontractsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Contract lifecycle management - creation, consumption, modification, and resolution.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Contracts Skill

Contracts define interfaces between parallel tasks. They enable safe concurrent implementation by making dependencies explicit.

## When to Load This Skill

- Architect: When defining contracts in design
- Executor: When materializing contracts before implementation
- Implementer: When implementing or consuming contracts
- Contract-Resolver: When modifying contracts

## Contract Lifecycle

```
DESIGN → MATERIALIZE → IMPLEMENT → VERIFY → (RESOLVE if blocked)
   ↓          ↓            ↓          ↓            ↓
Architect  Executor   Implementer  Verifier  Contract-Resolver
```

## Phase 1: Design (Architect)

Architect defines contracts in design output (compact JSON):

```json
{"contracts":[{"name":"user-repository","description":"Interface for user data access","definition":"interface UserRepository { getById(id: string): Promise<User | null>; save(user: User): Promise<void>; }","used_by":["task-001","task-002","task-003"]}]}
```

**Rules for Architects:**
- Define contracts for ANY cross-task dependency
- Make contracts minimal but complete
- Specify who provides vs consumes
- Include in `execution_plan.contracts_first`

## Phase 2: Materialize (Executor)

Before spawning implementers, executor writes contracts to files:

```
FOR each contract in final_design.contracts:
  Write to memory/contracts/{name}.json (compact JSON)
```

**Location:** `memory/contracts/{contract-name}.json`

Contract file structure:
```json
{"name":"user-repository","version":1,"status":"active","created_at":"ISO-8601","source_design":"memory/reports/final_design.json","definition":{"type":"interface","language":"typescript","spec":"interface UserRepository { ... }"},"description":"Interface for user data access","consumers":[{"task_id":"task-001","role":"provider"},{"task_id":"task-002","role":"consumer"}],"history":[{"version":1,"date":"ISO-8601","change":"Initial contract from design"}]}
```

## Phase 3: Implement (Implementer)

Implementer receives contract paths and must:

1. **Read contracts** before coding
2. **Implement exactly** what contract specifies
3. **Report implementation** in output:

```json
{"contracts_implemented":[{"name":"user-repository","location":"src/repositories/user.ts","role":"provider"}]}
```

**If contract is insufficient:**
- Status: `blocked`
- Reason: `contract_change`
- Include suggested contract modification

## Phase 4: Verify (Verifier)

Verifier checks:
- Provider implements all contract methods
- Consumer only uses contract-defined interfaces
- Types match contract specification

## Phase 5: Resolve (Contract-Resolver)

When implementer is blocked on contract:

1. **Read the block** - What change is needed?
2. **Assess impact** - Who else uses this contract?
3. **Decide action:**
   - `modify`: Update contract, mark breaking if needed
   - `extend`: Add to contract without breaking
   - `reject`: Suggest alternative approach

4. **Update contract file** - Increment version, add to history

5. **Instruct executor** on affected tasks

## Contract Types

### Interface Contract
```json
{"definition":{"type":"interface","language":"typescript","spec":"interface PaymentGateway { charge(amount: number, token: string): Promise<ChargeResult>; refund(chargeId: string): Promise<RefundResult>; }"}}
```

### Data Structure Contract
```json
{"definition":{"type":"data_structure","language":"typescript","spec":"type User = { id: string; email: string; createdAt: Date; }"}}
```

### API Contract
```json
{"definition":{"type":"api","spec":"POST /api/users | Request: { email: string, password: string } | Response: { id: string, token: string } | Errors: 400 (validation), 409 (exists)"}}
```

### Event Contract
```json
{"definition":{"type":"event","spec":"Event: user.created | Payload: { userId: string, email: string, timestamp: ISO8601 } | Emitted by: UserService | Consumed by: EmailService, AnalyticsService"}}
```

## Contract Discovery

To find contracts for a task:

```
1. Read task description
2. Glob("memory/contracts/*.json")
3. Filter where task_id in consumers
4. Separate by role (provider vs consumer)
```

## Breaking Changes

A change is **breaking** if:
- Method signature changed
- Required field added to input
- Field removed from output
- Type changed incompatibly

Breaking changes require:
- Re-verification of all consumers
- Potentially re-implementation

## Principles

1. **Contracts before code** - Materialize all contracts before spawning implementers
2. **Single provider** - Each contract has exactly one provider task
3. **Explicit consumers** - All consumers must be listed
4. **Version everything** - Never modify without incrementing version
5. **History is immutable** - Never edit past history entries

Related Skills

generating-api-contracts

25
from ComeOnOliver/skillshub

Generate API contracts and OpenAPI specifications from code or design documents. Use when documenting API contracts and specifications. Trigger with phrases like "generate API contract", "create OpenAPI spec", or "document API contract".

validating-api-contracts

25
from ComeOnOliver/skillshub

This skill validates API contracts using consumer-driven testing and OpenAPI validation. It leverages Pact for consumer-driven contract testing, ensuring that API providers adhere to the expectations of their consumers. It also validates APIs against OpenAPI specifications to guarantee compliance and identify breaking changes. Use this skill when the user asks to generate contract tests, validate API responses, check backward compatibility, or validate requests/responses using the terms "contract-test", "ct", "Pact", "OpenAPI validation", or "consumer-driven contract testing".

Daily Logs

25
from ComeOnOliver/skillshub

Record the user's daily activities, progress, decisions, and learnings in a structured, chronological format.

Socratic Method: The Dialectic Engine

25
from ComeOnOliver/skillshub

This skill transforms Claude into a Socratic agent — a cognitive partner who guides

Sokratische Methode: Die Dialektik-Maschine

25
from ComeOnOliver/skillshub

Dieser Skill verwandelt Claude in einen sokratischen Agenten — einen kognitiven Partner, der Nutzende durch systematisches Fragen zur Wissensentdeckung führt, anstatt direkt zu instruieren.

College Football Data (CFB)

25
from ComeOnOliver/skillshub

Before writing queries, consult `references/api-reference.md` for endpoints, conference IDs, team IDs, and data shapes.

College Basketball Data (CBB)

25
from ComeOnOliver/skillshub

Before writing queries, consult `references/api-reference.md` for endpoints, conference IDs, team IDs, and data shapes.

Betting Analysis

25
from ComeOnOliver/skillshub

Before writing queries, consult `references/api-reference.md` for odds formats, command parameters, and key concepts.

Research Proposal Generator

25
from ComeOnOliver/skillshub

Generate high-quality academic research proposals for PhD applications following Nature Reviews-style academic writing conventions.

Paper Slide Deck Generator

25
from ComeOnOliver/skillshub

Transform academic papers and content into professional slide deck images with automatic figure extraction.

Medical Imaging AI Literature Review Skill

25
from ComeOnOliver/skillshub

Write comprehensive literature reviews following a systematic 7-phase workflow.

Meeting Briefing Skill

25
from ComeOnOliver/skillshub

You are a meeting preparation assistant for an in-house legal team. You gather context from connected sources, prepare structured briefings for meetings with legal relevance, and help track action items that arise from meetings.