intent-contract is a Codex skill for turning an early request into a compact implementation, evaluation, writing, or handoff contract. It is designed for moments when the user wants the assistant to clarify intent before producing final work.
The skill enforces one important rule: the assistant must not output the final # Intent Contract: until the user has sent at least three messages in the current intent-contract interaction, unless the user explicitly says to skip clarification and write the contract immediately.
- Restates the user's request and asks material clarifying questions.
- Tracks the interaction through a three-message minimum protocol.
- Separates facts from assumptions and user decisions.
- Produces acceptance criteria that can be checked by tests, inspection, review, metrics, or user approval.
- Creates a final handoff contract for implementation, investigation, QA, review, writing, or normal response workflows.
.
|-- README.md
|-- SKILL.md
`-- references
|-- intent-contract-template.md
`-- question-bank.md
SKILL.md: the skill definition, trigger rules, workflow, and validation checklist.references/intent-contract-template.md: the final contract template used only after the three-message requirement is met or explicitly skipped.references/question-bank.md: focused question prompts for code, evaluation, writing, scope, and constraint discovery.
Copy this folder into your Codex skills directory:
mkdir -p ~/.codex/skills
cp -R intent-contract ~/.codex/skills/intent-contractThen restart Codex or reload skills if your environment supports dynamic skill reloads.
Invoke the skill explicitly in a prompt:
$intent-contract Build a data export feature for the analytics dashboard.
You can also use:
/intent-contract
intent-contract
The assistant should then follow this interaction pattern:
- After user message 1, restate the request, ask one to three material questions, and report
Turn status: 1/3. - After user message 2, summarize the narrowed understanding, optionally propose a direction, ask for confirmation or correction, and report
Turn status: 2/3. - After user message 3, produce the final
# Intent Contract:if no blocker remains, and reportTurn status: 3/3 complete.
User:
$intent-contract Add CSV import to the CRM.
Assistant:
I understand the request as creating a contract for a CRM CSV import feature.
Questions:
- Which entity should be imported first: contacts, companies, or deals?
- Should duplicate handling update existing records, reject rows, or ask the user?
- What evidence should prove the feature works?
Turn status: 1/3
After the third user message, the final output should use the contract template and include goal, scope, non-goals, context facts, decisions, acceptance criteria, verification plan, handoff, and clarity status.
Use this skill when you need a precise contract before doing work, especially for:
- implementation planning,
- QA or evaluation criteria,
- code review handoff,
- research or investigation framing,
- message or document drafting where tone and audience matter.
Do not use it for ordinary chat, direct debugging, quick commands, or simple edits unless the user explicitly invokes the skill.
Add a license file before distributing this repository publicly if you want to define reuse terms.
- Source: https://github.com/Q00/ouroboros
- Derived from: https://github.com/Q00/ouroboros