npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

condicio-schema

v0.1.4

Published

Open schema for structured contract intelligence data: parties, clauses, obligations, risks, dates, financial terms, and more.

Readme

Condicio Schema

Open standard for contract intelligence data — parties, clauses, obligations, risks, dates, and financial terms.

npm PyPI License JSON Schema GitHub Pages


What is Condicio?

Condicio (Latin: agreement, condition, stipulation) defines a universal schema for representing structured contract intelligence data. Every contract extraction tool — CLM platforms, AI engines, obligation trackers — invents its own output format. Condicio is the missing standard.

{
  "condicio": "https://raw.githubusercontent.com/docfide/condicio/main/schema/condicio.schema.json",
  "contract": {
    "title": "Mutual Non-Disclosure Agreement",
    "type": "NDA",
    "status": "executed",
    "jurisdiction": "Delaware"
  },
  "parties": [
    { "name": "Acme Corporation", "role": "disclosing party" },
    { "name": "Beta Inc", "role": "receiving party" }
  ],
  "obligations": [
    {
      "description": "Maintain Confidential Information in strict confidence.",
      "obligor": "Beta Inc",
      "deadlineType": "ongoing"
    }
  ]
}

A common schema means interoperability, portability, and an ecosystem of tools that work together out of the box.


Table of Contents


Why Condicio

Every contract intelligence tool produces structured data — but they all use different schemas.

| Problem | Consequence | |---------|-------------| | Proprietary output formats | Vendor lock-in, costly migrations | | No standard for obligations | Each tool tracks them differently | | Inconsistent date representations | Parsing errors, missed deadlines | | Non-portable risk flags | Risk intelligence trapped in one platform |

Condicio solves this by providing a vendor-neutral, open schema that any tool can produce and consume.

Principles

  • Open by default — Apache 2.0 license, community-governed
  • Extraction-first — designed for what contract intelligence tools produce, not for drafting
  • Composable — use only the sections you need (just parties? just obligations?)
  • Language-agnostic — JSON Schema core with first-class YAML support
  • Confidence-aware — every extracted field can carry a confidence score from the extraction engine

Schema Overview

The schema is defined in schema/condicio.schema.json using JSON Schema 2020-12.

| Section | Type | Description | |---------|------|-------------| | contract | object | Document-level metadata — title, type, jurisdiction, governing law, status, IDs | | parties | [party] | Named parties with roles, identifiers, type (corporation, individual, llc), contact info | | dates | [date] | Key dates — execution, effective, expiry, renewal windows, notice periods | | clauses | [clause] | Extracted clauses with classification, full text, and confidence | | obligations | [obligation] | Actionable items — deadlines (fixed, recurring, conditional, ongoing), responsible parties, clause references | | financials | object | Monetary terms — total contract value, currency, payment schedule, line items, late payment penalties | | risks | [risk] | Risk flags — severity (low/medium/high/critical), category, impact, affected party | | definitions | [definition] | Defined terms and their definitions as they appear in the contract | | metadata | object | Extraction provenance — engine name/version, confidence score, source document info, timestamps |

Design approach

  • Uses $defs for composable reusable types (party, clause, obligation, financialTerm, payment, risk, date, contactInfo, address)
  • additionalProperties: false at root enforces strict compliance
  • A top-level condicio const URI identifies the schema version
  • Every extraction field includes optional confidence (0.0–1.0) for AI-engine uncertainty

Quick Start

Try it now: Live Validator — paste a Condicio document and validate in your browser.

npm

npm install condicio-schema

# Validate your contract data
npx ajv validate -s node_modules/condicio-schema/schema/condicio.schema.json -d your-contract.json

Or validate programmatically:

import Ajv from 'ajv/dist/2020.js'
import addFormats from 'ajv-formats'
import condicio from 'condicio-schema'

const ajv = new Ajv()
addFormats(ajv)
const validate = ajv.compile(condicio)

if (validate(myContractData)) {
  console.log('Valid Condicio document')
} else {
  console.error(validate.errors)
}

Python

pip install condicio

# Validate a document
condicio validate your-contract.json

# Inspect a document
condicio inspect your-contract.json
from condicio.validator import validate_document
import json

with open('your-contract.json') as f:
    data = json.load(f)

errors = validate_document(data)
if not errors:
    print('Valid Condicio document')

Local development

git clone https://github.com/docfide/condicio
cd condicio
npm install
npm test          # Validates all examples against the schema

Examples

Ready-to-use examples in both JSON and YAML format:

| Example | Highlights | |---------|------------| | NDA | Mutual confidentiality, exclusions, survival period, auto-renewal | | Service Agreement | Milestone-based payments ($150K), IP assignment, liability cap | | Employment | Salary + bonus + equity, non-compete, severance, at-will | | License Agreement | Perpetual license, maintenance SLA, audit rights, usage restrictions |

YAML equivalents are available alongside each JSON example.


Use Cases

| Use Case | How Condicio Helps | |----------|-------------------| | AI contract extraction | Standard output format for any extraction engine | | CLM data portability | Export contracts from one CLM, import into another | | Obligation tracking | Structured obligations with deadlines, owners, status | | Risk assessment | Portable risk flags with severity, category, impact | | Contract analytics | Aggregate across portfolios with consistent field definitions | | Regulatory reporting | Standard date, party, and clause representations | | M&A due diligence | Uniform contract data from disparate sources | | ISDA/derivatives processing | Extensible for financial contract specifics |


Comparison with Related Work

| Standard | Focus | Status | Relationship to Condicio | |----------|-------|--------|------------------------| | Accord Project | Smart legal contracts (Cicero, Ergo) | Active | Complementary — Condicio covers extraction output, Accord covers executable contracts | | SALI | Contract standards alliance (tags, classifications) | Active | Compatible — Condicio can reference SALI classification IDs | | LEDES | Legal billing/invoicing | Active | Different domain — billing data, not contract intelligence | | LegalXML | Court filings, legislative documents | Maintained | Different domain — e-filing, not commercial contracts | | OCDS (Open Contracting) | Public procurement | Active | Different domain — government procurement transparency | | ODCS (Open Data Charter) | Contract publication | Active | Different domain — contract publication, not extraction |

No existing standard addresses the output of contract intelligence extraction — that is the gap Condicio fills.


Contributing

Contributions are welcome and encouraged.

How to contribute

  1. Review existing examples — understand the patterns before proposing changes
  2. Open an issue — discuss your use case or proposed extension
  3. Submit a PR — with schema changes, examples, and validation passing (npm test)
  4. Add examples — new contract types in both JSON and YAML formats

Guidelines

  • Preserve backward compatibility where possible
  • Add new optional fields before changing required fields
  • Every field should include a description
  • New $defs should follow the existing composable pattern
  • Every schema change should include updated examples

License

Apache 2.0. See LICENSE.


Built by Docfide.
Website · Schema Browser · Live Validator