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

@governancer-foundation/conformance-attestation

v0.2.0

Published

A regulatory-conformance predicate for in-toto attestations: which requirements a subject meets, on what evidence, and — mandatorily — what was not examined. Axis-agnostic; regulatory axes plug in as profiles.

Readme

@governancer-foundation/conformance-attestation

Which regulatory requirements a thing meets, on what evidence, and — mandatorily — what was not examined. As an in-toto predicate, not a new envelope.

The software supply-chain ecosystem settled the envelope, the signature and the verification path years ago. Build provenance, component inventories and vulnerability exploitability all travel as in-toto statements signed with DSSE. Between them they answer what a thing is made of, who built it, and which vulnerabilities apply to it.

None of them answers which regulatory requirements it meets. This is that missing predicate. Anything that already verifies in-toto statements accepts these records unchanged.

What it knows, and what it refuses to know

Four things: what was assessed, against which body of requirements, by what method, and under what limitations. Nothing about accessibility, artificial intelligence or carbon — a regulatory axis plugs in as a profile rather than appearing as a field, so adding one never changes this schema.

The rule the schema exists for

A record that does not say what it failed to examine is invalid. Not discouraged — rejected. That single requirement is the difference between a machine-readable assessment and an advertisement, and it is why the outcome vocabulary carries a notEvaluated value that the conformance-report vocabulary it borrows from lacks: without it, "we did not look" and "it passed" are indistinguishable.

Two more rules follow the same instinct:

  • A subject is pinned by digest or explicitly unpinned with a reason. Not every regulated subject is an artefact — a service changes between requests, and a duty to mark output attaches to output that does not exist yet. An omitted digest and an impossible one are different facts, and a reader has to be able to tell them apart.
  • An exemption claimed is a field, not prose. A requirement that never reached the subject and one lifted by an exemption the assessor claims look identical in a single "not applicable" value. The second is an assertion that can be false, and that is usually where liability sits.

Use

npm install @governancer-foundation/conformance-attestation
import { validateStatement } from "@governancer-foundation/conformance-attestation";

const result = validateStatement(record);
result.valid;   // boolean
result.errors;  // [{ path: "$.predicate.limitations", message: "…" }]

Errors are returned rather than thrown, and all of them at once: a caller checking a batch wants the whole picture, and half the rules are about honesty rather than syntax.

From a terminal:

npx @governancer-foundation/conformance-attestation ./records/    # check yours
npx @governancer-foundation/conformance-attestation --corpus      # check us

The second runs the shipped corpus of records with known verdicts through this implementation. If you have written your own validator, that is how you find out where it disagrees — and a disagreement is worth reporting, because it usually means the specification admits two readings rather than that your code is wrong.

Writing a profile

A profile declares the requirements it covers, the technique vocabulary it permits, and — required — how its requirements map onto the shared outcome vocabulary. That vocabulary is capability-shaped: it fits "is this control operable by keyboard" better than "did you tell the user they were talking to a machine". A profile whose requirements are duties has to say what it means by each value, or its records cannot be compared with anyone else's.

Known profiles:

| Profile | Requirements | Implemented in | |---|---|---| | ai-act/art-50 | EU AI Act, the conformance schema | conformance-attestation |

Status

v0.1. The predicate type URI shipped here is provisional and known to be. A predicate type must be stable, and the neutral home this schema should live under is not settled — publishing it under one product's domain would tie a deliberately neutral schema to a single brand. Pin your own if you need stability today; this one will change exactly once.

This package is intended to move to a neutral home. Its change procedure is already published — see GOVERNANCE.md — because a process announced after other people depend on you is not a process.

Two things there are worth knowing before you build on this: a profile needs nobody's approval, and from the second independently maintained profile onward, changing the shared schema needs the agreement of every shipped profile's maintainer.

License

Apache-2.0 (see LICENSE and NOTICE).


Maintained by Alexander Brichkin (Agonist Development AB).