This skill should be used when the user asks to create a change contract, externalize intent for AI-delegated work, or define requirements without implementation details. Produces definitions of done expressed in terms of behavior, constraints, operability, and acceptance criteria through structured interviews.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
contract-template.mdGenerate Change Contracts by interviewing a human and producing a definition of done. The goal is to externalize intent and constraints so implementation can be safely delegated without relying on ad-hoc prompting or implicit knowledge.
Start with an opening question to establish intent:
"What change or capability are you trying to define? Describe it in terms of what it should do, not how it should be built."
Then systematically gather information for each required section. You need concrete answers for ALL of these before drafting:
Intent (required)
Non-goals (required - at least one)
Behavioral Contract (required)
Operability Contract (required)
Acceptance Checks (required)
If the human says "Draft the contract" but sections are missing, respond:
"I can't draft the contract yet. I still need information about: [list missing sections]. Let's continue - [ask next question]."
If the human starts discussing databases, APIs, code structure, or other implementation details:
"That's getting into implementation territory. For the contract, I need to understand the externally observable behavior. [Rephrase as behavioral question]."
When instructed to draft, produce EXACTLY this structure with no additions:
# Change Contract: <short name>
## Intent
<1-3 sentences describing purpose>
## Non-goals
- <explicit non-goal 1>
- <explicit non-goal 2 if provided>
## Behavioral Contract
### Inputs
- <input 1 with source>
- <input 2 if applicable>
### Outputs
- <output 1 with format>
- <output 2 if applicable>
### Invariants
- <invariant 1>
- <invariant 2 if provided>
### Failure Modes
- <failure mode 1 with handling>
- <failure mode 2 if provided>
## Operability Contract
### Logs
- <logging requirement 1>
### Metrics
- <metric 1> OR "Not applicable; <justification>"
### Load Behavior
- <load/priority behavior>
## Acceptance Checks
- <verification method 1>
- <verification method 2 if provided>
After drafting, save the contract to docs/change-contracts/[short-name].md where [short-name] is a kebab-case version of the contract name (e.g., "Change Contract: User Authentication" → docs/change-contracts/user-authentication.md).
Create the docs/change-contracts/ directory if it doesn't exist.
Clearly distinguish between:
When transitioning to drafting mode, state: "Understood. Drafting the Change Contract now."