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

@gitlode/plugin-assay-metrics

v0.2.0

Published

Official gitlode plugin for heuristic development activity metrics

Readme

@gitlode/plugin-assay-metrics

Official gitlode plugin for heuristic development activity metrics.

This plugin attaches assay metrics to per-file gitlode records.

Assay metrics are heuristic measures derived from diff data. They do not represent absolute ground truth about developer effort or code value, but provide quantitative signals that can surface patterns in development activity when aggregated across authors, time periods, or repositories.

These measures are intended to be compared over time or across repositories rather than interpreted as point-in-time absolute values.

Installation

npm install -g @gitlode/plugin-assay-metrics

Usage

Configure gitlode with --config:

{
  "version": 1,
  "extensions": {
    "assay-metrics": {
      "entrypoint": "@gitlode/plugin-assay-metrics"
    }
  }
}

Run gitlode with per-file output enabled:

gitlode -r main --per-file --config ./gitlode.config.json ./my-repo

Example output in each record:

{
  "extensions": {
    "assay-metrics": {
      "delta": -5,
      "churn": 25,
      "net-change": 15
    }
  }
}

Measures

All measures in this section are computed from per-file addition/deletion line counts and attached to per-file gitlode records.

delta

delta = additions - deletions

Signed difference between addition and deletion. Positive values indicate growth, negative values indicate reduction. This measure is direction-aware: a large rewrite with equal addition and deletion results in a delta of zero, even though substantial work occurred.

churn

churn = additions + deletions

Total lines touched, combining addition and deletion without offsetting them. Unlike delta, churn does not cancel out rewrites; a file with equal addition and deletion will show a non-zero churn, reflecting that work occurred even when the net line count did not change.

net-change

net-change = max(additions, deletions)

A heuristic measure intended to approximate the volume of deliberate code change while avoiding the double-counting that churn can introduce for rewrites. It rests on the assumption that, within a single commit, addition and deletion in the same file are likely to originate from related work rather than unrelated changes — and that under this assumption, the overlapping portion of addition and deletion represents the same underlying work rather than two separate units of work.

net-change does not distinguish between pure addition, pure deletion, and rewrites of equal size — all three are treated as comparable in volume. This is a deliberate simplification, not an attempt to model code value or correctness.

Interpreting these measures together

delta, churn, and net-change are not alternative formulas for the same underlying quantity — they represent different assumptions about what counts as "work," and are intended to be read alongside one another rather than in isolation. A divergence between them (for example, a near-zero delta alongside a large churn or net-change) can itself be a useful signal, suggesting rewrite-heavy activity rather than net growth or reduction.

As with all assay metrics, these values are heuristic. They do not measure developer effort or code value directly, and are best used in aggregate — across time periods, authors, or repositories — rather than interpreted from a single record.

Configuration

This plugin does not define any plugin-specific configuration.

You can omit config entirely:

{
  "version": 1,
  "extensions": {
    "assay-metrics": {
      "entrypoint": "@gitlode/plugin-assay-metrics"
    }
  }
}

Compatibility

This package declares:

"peerDependencies": {
	"gitlode": "^0.10.0"
}

If the running gitlode version does not satisfy this range, gitlode emits a warning and continues.

License

MIT

Changelog

Changelog