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

@mean-weasel/contract-ledger

v0.1.8

Published

SQLite-backed local CLI contract ledger for agent completion receipts.

Readme

Contract Ledger

SQLite-backed local CLI contracts for grounding agent work in explicit definitions of done, verifiers, receipts, failure modes, and audit logs.

Install

From npm:

npm install --global @mean-weasel/contract-ledger
contract version

Run without a global install:

npx @mean-weasel/contract-ledger version
npm exec --package @mean-weasel/contract-ledger -- contract version

For local development:

npm install
npm run build

First Use

Create a contract from any project directory. The first command creates .contracts/ledger.sqlite in that directory; keep running contract from the same directory to keep using the same ledger.

contract init "Fix billing settings regression" --intent "Canceled users cannot access premium export" --scope "Billing settings"
contract accept ctr_xxx
crit_id=$(contract criteria-add ctr_xxx "Canceled users cannot access premium export" --requires command)
contract criteria-set-status "$crit_id" --status satisfied
contract todo-add ctr_xxx "Verify premium export is hidden"
ver_id=$(contract verifier-add-command ctr_xxx billing-tests -- npm test -- billing)
contract failure-modes-add ctr_xxx "Tests pass but browser state fails" --why "No browser proof exists" --check "Run a smoke check"
contract receipt-run ctr_xxx --criterion "$crit_id" --verifier "$ver_id" -- npm test -- billing
contract next ctr_xxx
contract show ctr_xxx
contract export ctr_xxx
contract close ctr_xxx

For one-off use without installing globally, replace contract with:

npx @mean-weasel/contract-ledger

The full first-use flow, including what each command records in the ledger, is documented in docs/getting-started.md.

Local Development Usage

During development, run the CLI with npm run dev --:

npm run dev -- init "Fix billing settings regression" --intent "Canceled users cannot access premium export" --scope "Billing settings"
npm run dev -- accept ctr_xxx
crit_id=$(npm run --silent dev -- criteria-add ctr_xxx "Canceled users cannot access premium export" --requires command)
npm run dev -- criteria-set-status "$crit_id" --status satisfied
npm run dev -- todo-add ctr_xxx "Verify premium export is hidden"
ver_id=$(npm run --silent dev -- verifier-add-command ctr_xxx billing-tests -- npm test -- billing)
npm run dev -- failure-modes-add ctr_xxx "Tests pass but browser state fails" --why "No browser proof exists" --check "Run a smoke check"
npm run dev -- receipt-add ctr_xxx --criterion "$crit_id" --verifier "$ver_id" --summary "Reviewed command output and browser state" --status pass
npm run dev -- receipt-run ctr_xxx -- node -e "console.log('proof')"
npm run dev -- export ctr_xxx
npm run dev -- close ctr_xxx

Use -- before child commands for receipt-run and verifier-add-command. That pass-through marker keeps child flags such as node -e or nested separators such as npm test -- billing attached to the child command instead of being parsed as Contract Ledger options.

receipt-run can also link command evidence directly to closeout gates:

npm run dev -- receipt-run ctr_xxx --criterion crit_xxx --verifier ver_xxx -- npm test -- billing

Read-only helpers:

npm run dev -- adapter-list
npm run dev -- profile-list
npm run dev -- status
npm run dev -- show ctr_xxx
npm run dev -- next ctr_xxx
npm run dev -- audit-log ctr_xxx
npm run dev -- failure-modes-list ctr_xxx
npm run dev -- audit-weak-closeouts

Agent skill install:

contract skill-install

Adapter hook example:

contract adapter-add custom-limner \
  --kind visual_fidelity \
  --source-type github \
  --source-name neonwatty/limner \
  --source-url https://github.com/neonwatty/limner \
  --repo-url https://github.com/neonwatty/limner \
  --docs-url https://github.com/neonwatty/limner#readme \
  --artifact-patterns-json '[".limner/runs/*/manifest.json"]' \
  --skill-refs-json '[{"kind":"codex-skill","name":"limner-contract-verifier","recommended":true,"url":"https://github.com/neonwatty/limner/tree/main/skills/limner-contract-verifier"}]' \
  --requires-judgment
contract verifier-add-adapter ctr_xxx custom-limner "Visual compare" --config-json '{"target":"checkout-mobile"}'

Patch existing adapters without restating the full manifest:

contract adapter-update limner --source-version 0.1.1
contract adapter-update custom-limner --docs-url https://github.com/neonwatty/limner#readme

Adapter references are intentionally lightweight. Store source and documentation links in the ledger so agents can discover where the tool lives, but keep full usage instructions in the linked docs, repository, package, plugin, or skill. Sub-agent routing is not adapter metadata; record those decisions in contracts, verifiers, and receipts.

After building, the installed binary is contract:

npm run build
contract version

The ledger is stored at .contracts/ledger.sqlite in the current working directory. Generated artifacts and exports also live under .contracts/, which is ignored by git by default.

For cross-repo dogfooding, keep the npm package installed globally and point the CLI at one global ledger:

npm install --global @mean-weasel/contract-ledger
contract --global-ledger ledger-info
contract --global-ledger init "Shared audit demo" --intent "Use one ledger across repos"

--global-ledger stores SQLite and generated artifacts under ~/.contract-ledger/. The command still records and uses the current working directory as the repo path, so receipts run from the repo where the agent is standing. To make global storage the default for a shell or agent session, set:

export CONTRACT_LEDGER_SCOPE=global

For tests or custom storage, use an explicit SQLite path:

export CONTRACT_LEDGER_PATH=/tmp/contract-ledger/ledger.sqlite
contract ledger-info

Package And Release

Package readiness checks:

npm run check
npm pack --dry-run

GitHub CI runs the same check and dry-run pack verification on pushes and pull requests. npm publishing is gated through the release workflow, which uses npm trusted publishing and provenance. The workflow only publishes after a pushed v* tag that matches package.json or a manual dispatch that confirms publish-npm; it does not publish to GitHub Packages.

Operator handoff steps and expected npm pack contents are documented in docs/package-and-release.md.

Docs

  • docs/getting-started.md: install options, first-use CLI flow, and what gets written to .contracts/ledger.sqlite.
  • docs/loops.md: repeated improvement loop examples for route/Ralph work, coverage expansion, UX gaps, and Limner visual verification.
  • docs/package-and-release.md: npm package contents, GitHub CI, trusted publishing, and release handoff.
  • examples/loop-conveyors.md: copyable conveyor templates that map each loop to contracts, criteria, verifiers, failure modes, receipts, and closeout.
  • skills/contract-ledger/SKILL.md: agent-facing workflow for using the CLI to create contracts, gather receipts, disprove failure modes, and close work.

Design

The current design lives in docs/superpowers/specs/2026-06-11-local-contract-ledger-design.md.