Agent skill

Output Contract Enforcer

by curiositech in curiositech/some_claude_skills

Validates that a DAG node's output matches its declared JSON schema before passing to downstream nodes.

MITAuto-check passedDevelopment

Install Output Contract Enforcer

skills CLI
$ npx skills add curiositech/some_claude_skills --skill output-contract-enforcer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install curiositech/some_claude_skills output-contract-enforcer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/curiositech/some_claude_skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/output-contract-enforcer .claude/skills/output-contract-enforcer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
output-contract-enforcer
GitHub stars
243
Token cost
~1.6k tokens
SKILL.md length
367 words
Files
2
Skills in repo
95
Repo updated
First seen
Licence
MIT

At a glance

Validates that a DAG node's output matches its declared JSON schema before passing to downstream nodes.

  • Works in 4 steps: Every field B requires is present in A's… → Types match (A produces string, B… → A's output constraints are compatible… → …
  • Checking output contract compliance
  • SKILL.md covers When to Use, Validation Process, Schema Generation and Anti-Patterns
  • Calls node

What it does

Output Contract Enforcer is an agent skill from curiositech/some_claude_skills. Validates that a DAG node's output matches its declared JSON schema before passing to downstream nodes. The glue that makes multi-agent DAGs reliable. Use when checking output contract compliance, generating validation schemas from descriptions, or debugging contract mismatches between nodes. Activate on "validate output", "output contract", "schema validation", "contract mismatch", "output doesn't match". NOT for content quality assessment (use dag-quality), skill grading (use skill-grader), or general JSON…

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `.claude-plugin/plugin.json`).

It sits in Development, covering Forms and validation. The repository describes itself as: Claude skills that make my life easier. The licence is MIT.

When your agent uses it

  • Checking output contract compliance
  • Generating validation schemas from descriptions
  • Debugging contract mismatches between nodes

Example prompts

  • “validate output”
  • “output contract”
  • “schema validation”
  • “/output-contract-enforcer”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Edit, Grep

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Every field B requires is present in A's output schema
  2. Types match (A produces string, B expects string)
  3. A's output constraints are compatible with B's input constraints
  4. If A produces optional fields that B requires → incompatible

What it can do on your machine

Read from SKILL.md and the folder at commit 6713fc7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Output Contract Enforcer loads about 1.6k tokens when it runs. Until then it costs about 143 tokens; SKILL.md has 367 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~143
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from curiositech/some_claude_skills at commit 6713fc7, republished under its MIT licence (© curiositech). 367 words, ~1,550 tokens.

Download SKILL.mdSave it as .claude/skills/output-contract-enforcer/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
output-contract-enforcer
description
Validates that a DAG node's output matches its declared JSON schema before passing to downstream nodes. The glue that makes multi-agent DAGs reliable. Use when checking output contract compliance, generating validation schemas from descriptions, or debugging contract mismatches between nodes. Activate on "validate output", "output contract", "schema validation", "contract mismatch", "output doesn't match". NOT for content quality assessment (use dag-quality), skill grading (use skill-grader), or general JSON schema work outside DAG context.
allowed-tools
Read, Write, Edit, Grep
argument-hint
[output-json] [schema]
metadata.tags
output, contract, enforcer, validate-output, output-contract

Output Contract Enforcer

Validates that a DAG node's output matches its declared JSON schema before passing to downstream nodes. The glue that makes multi-agent DAGs reliable. Without this, downstream nodes receive unpredictable input and the DAG breaks.


When to Use

✅ Use for:

  • Validating a node's output against its declared schema
  • Generating output schemas from natural-language output descriptions
  • Debugging why a downstream node rejected its input
  • Ensuring contract compatibility between connected nodes

❌ NOT for:

  • Assessing content quality or correctness (use dag-quality)
  • Grading skill quality (use skill-grader)
  • General JSON schema work outside DAG context

Validation Process

mermaid
flowchart TD
  O[Node output] --> P[Parse as JSON]
  P -->|Parse error| E1[FAIL: Not valid JSON]
  P -->|Valid JSON| S[Check against schema]
  S --> R{Required fields?}
  R -->|Missing| E2[FAIL: Missing required field X]
  R -->|Present| T{Type check?}
  T -->|Wrong type| E3[FAIL: Field X expected string, got number]
  T -->|Correct| C{Constraints?}
  C -->|Violated| E4[FAIL: Field X violates constraint Y]
  C -->|Met| V[PASS: Contract satisfied]
What Gets Checked
CheckExampleFailure Message
JSON parseable{broken json"Output is not valid JSON"
Required fieldsstatus missing"Missing required field: status"
Field typesstatus: 42 (expected string)"Field 'status' expected string, got number"
Enum valuesstatus: "maybe""Field 'status' must be one of: pass, warn, fail"
String constraintssummary: "" (minLength: 1)"Field 'summary' must have minLength 1"
Number constraintsscore: 1.5 (maximum: 1.0)"Field 'score' must be ≤ 1.0"
Array constraintsitems: [] (minItems: 1)"Field 'items' must have at least 1 item"
Nested objectsMissing sub-field"Field 'metadata.cost' is required"
The Standard Output Contract

Every DAG node should produce output matching this base schema (fields can be extended):

json
{
  "type": "object",
  "required": ["status", "summary"],
  "properties": {
    "status": {
      "type": "string",
      "enum": ["pass", "warn", "fail"]
    },
    "summary": {
      "type": "string",
      "minLength": 1,
      "description": "1-3 sentence description of what was produced"
    },
    "artifacts": {
      "type": "array",
      "items": { "type": "string" },
      "description": "List of files created or modified"
    },
    "data": {
      "type": "object",
      "description": "Node-specific output data (schema varies per node)"
    },
    "risks": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Remaining risks or assumptions"
    }
  }
}
Show full SKILL.md (163 more words)Show less
Contract Compatibility Check

When connecting Node A's output to Node B's input, verify:

  1. Every field B requires is present in A's output schema
  2. Types match (A produces string, B expects string)
  3. A's output constraints are compatible with B's input constraints
  4. If A produces optional fields that B requires → incompatible
Node A output: { status: string, recommendations: string[] }
Node B input:  { status: string, recommendations: string[], priority: number }

Result: INCOMPATIBLE — Node B requires 'priority' but Node A doesn't produce it.
Fix: Add 'priority' to Node A's output, or add a transformer node between A and B.

Schema Generation

When a node description says "produces a list of recommendations with priorities," generate:

json
{
  "type": "object",
  "required": ["status", "summary", "data"],
  "properties": {
    "status": { "type": "string", "enum": ["pass", "warn", "fail"] },
    "summary": { "type": "string", "minLength": 1 },
    "data": {
      "type": "object",
      "required": ["recommendations"],
      "properties": {
        "recommendations": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "required": ["text", "priority"],
            "properties": {
              "text": { "type": "string" },
              "priority": { "type": "integer", "minimum": 1, "maximum": 5 }
            }
          }
        }
      }
    }
  }
}

Anti-Patterns

No Contract at All

Wrong: Nodes produce free-form text with no schema. Why: Downstream nodes can't reliably parse the input. The DAG is fragile. Right: Every node declares its output schema. Every output is validated before passing downstream.

Overly Strict Contracts

Wrong: Requiring exact character counts, specific formatting, or field values that depend on runtime context. Right: Constrain structure (types, required fields), not content. Let dag-quality handle content assessment.

Ignoring Optional Fields

Wrong: Treating all fields as required. Right: Use required only for fields that downstream nodes absolutely need. Mark everything else as optional.

© curiositech, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .claude/skills/output-contract-enforcer of curiositech/some_claude_skills.

  • SKILL.md
  • .claude-plugin/plugin.json

Open the folder on GitHubat commit 6713fc7

Compare with similar skills

Output Contract Enforcer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Output Contract Enforcer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Output Contract Enforcer this skillcuriositech/some_claude_skills243—~1.6kAutomated safety check: PassMIT
Zodjasonjgardner/blockbench-mcp-plugin4953 repos~1.4kAutomated safety check: PassGPL-3.0
Figma Typings Auditawdr74100/figwright995—~3.3kAutomated safety check: PassMIT
Corvus Benchmarkscorvus-dotnet/Corvus.JsonSchema199—~1.2kAutomated safety check: PassApache-2.0
Handsontable Validator Developmenthandsontable/handsontable22k—~742Automated safety check: PassCustom licence
Hono Idiomsirahardianto/awesome-agv157—~3kAutomated safety check: PassMIT

Similar skills

  • Zod

    jasonjgardner/blockbench-mcp-plugin

    Zod schema validation best practices for type safety, parsing, and error handling.

    495 GitHub starsUsed in 3 repos~1.4k tokens
    DevelopmentAuto-check passed
  • Figma Typings Audit

    awdr74100/figwright

    Upgrade @figma/plugin-typings and absorb what the new version exposes.

    995 GitHub stars~3.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Corvus Benchmarks

    corvus-dotnet/Corvus.JsonSchema

    Run, interpret, and maintain BenchmarkDotNet benchmarks for JSON Schema validation and query languages.

    199 GitHub stars~1.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Handsontable Validator Development

    handsontable/handsontable

    Rules for writing a Handsontable cell validator: a callback-based function bound to the cell properties that must always call back and never modify data or the DOM.

    22k GitHub stars~742 tokensUpdated today
    DevelopmentAuto-check passed
  • Hono Idioms

    irahardianto/awesome-agv

    Hono lightweight web framework patterns: type-safe route handlers, middleware composition, Zod validation, and RPC clients for Cloudflare Workers, Node, or Bun.

    157 GitHub stars~3k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Tavern Card Builder

    LiarMTTT/TavernWeave

    Plan and author maintainable SillyTavern character cards, including card-type and capability detection, runtime-dependency ledgers, text cards, MVU or MVU Zod cards, custom CoT design and authoring…

    153 GitHub stars~2.8k tokensUpdated 5 days ago
    DevelopmentAuto-check passed

More from curiositech/some_claude_skills

All 95 skills in this repo
  • Crisis Detection Intervention AI

    curiositech/some_claude_skills

    Detect crisis signals in user content using NLP, mental health sentiment analysis, and safe intervention protocols.

    243 GitHub starsUsed in 2 repos~3.8k tokens
    Auto-check passed
  • Form Validation Architect

    curiositech/some_claude_skills

    End-to-end form handling with react-hook-form, Zod schemas, validation patterns, error messaging, field arrays, and multi-step wizards.

    243 GitHub stars~3.8k tokensUpdated 1 mo ago
    Auto-check passed
  • GitHub Actions Pipeline Builder

    curiositech/some_claude_skills

    Build production CI/CD pipelines with GitHub Actions. An agent skill from curiositech/some_claude_skills.

    243 GitHub stars~2.8k tokensUpdated 1 mo ago
    Auto-check: notes
  • Background Job Orchestrator

    curiositech/some_claude_skills

    Expert in background job processing with Bull/BullMQ (Redis), Celery, and cloud queues.

    243 GitHub stars~3.2k tokensUpdated 1 mo ago
    Auto-check passed
  • Competitive Cartographer

    curiositech/some_claude_skills

    Strategic analyst that maps competitive landscapes, identifies white space opportunities, and provides positioning recommendations.

    243 GitHub stars~1.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Computer Vision Pipeline

    curiositech/some_claude_skills

    Build production computer vision pipelines for object detection, tracking, and video analysis.

    243 GitHub stars~4k tokensUpdated 1 mo ago
    Auto-check passed

Questions about Output Contract Enforcer

What does Output Contract Enforcer do?

Validates that a DAG node's output matches its declared JSON schema before passing to downstream nodes. Output Contract Enforcer is an agent skill from curiositech/some_claude_skills. Validates that a DAG node's output matches its declared JSON schema before passing to downstream nodes.

When should I use Output Contract Enforcer?

Output Contract Enforcer fits situations like: checking output contract compliance; generating validation schemas from descriptions; debugging contract mismatches between nodes.

How do I install Output Contract Enforcer in Claude Code?

Run `npx skills add curiositech/some_claude_skills --skill output-contract-enforcer -a claude-code`. Or copy the skill folder (.claude/skills/output-contract-enforcer in curiositech/some_claude_skills) into .claude/skills/output-contract-enforcer in your project. Claude Code loads it when a task matches its description.

How do I install Output Contract Enforcer in Codex?

Run `npx skills add curiositech/some_claude_skills --skill output-contract-enforcer -a codex`. Or copy the skill folder (.claude/skills/output-contract-enforcer in curiositech/some_claude_skills) into .agents/skills/output-contract-enforcer in your project. Codex loads it when a task matches its description.

Can I use Output Contract Enforcer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add curiositech/some_claude_skills --skill output-contract-enforcer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/output-contract-enforcer, .gemini/skills/output-contract-enforcer, .github/skills/output-contract-enforcer and .opencode/skills/output-contract-enforcer in your project.

What does Output Contract Enforcer need to run?

Going by SKILL.md and its folder, Output Contract Enforcer needs the command-line tools its instructions call (node). Its frontmatter pre-approves these tools: Read, Write, Edit, Grep.

Does Output Contract Enforcer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Output Contract Enforcer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Output Contract Enforcer use?

Output Contract Enforcer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Output Contract Enforcer use?

About 1.6k tokens (SKILL.md is roughly 6.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Output Contract Enforcer?

Skills that share tags, products or a category with Output Contract Enforcer: Zod (jasonjgardner/blockbench-mcp-plugin, 495 stars), Figma Typings Audit (awdr74100/figwright, 995 stars), Corvus Benchmarks (corvus-dotnet/Corvus.JsonSchema, 199 stars) and Handsontable Validator Development (handsontable/handsontable, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Output Contract Enforcer?

curiositech (a GitHub organization) maintains it in curiositech/some_claude_skills, which has 243 GitHub stars. The repository holds 95 skills in this directory. The repository was last updated on September 6, 2026.

Source: curiositech/some_claude_skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.