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

@colmbyrne/specflow

v0.3.3

Published

Specs that enforce themselves. Contract tests, journey hooks, and agent orchestration for LLM-driven development.

Readme

Specflow

Specs that enforce themselves.

LLMs drift. You write a rule; three iterations later the model "helpfully" ignores it. Specflow turns your specs into contract tests that break the build when violated — so drift can't ship.


The Problem

// Your spec: "Service workers MUST NOT use localStorage"
// LLM adds this anyway after iteration 3:
const token = localStorage.getItem('auth') // No crash. Just drift.

LLMs don't read. They attend. Your spec competes with millions of training examples. You can't fix this with better prompts. You need a gate.


The Solution

Contract tests scan your source code for forbidden patterns. Break a rule → build fails. Journey tests run Playwright against your critical flows. If a journey doesn't pass, the feature isn't done.


Get Started

npx @colmbyrne/specflow init .

Creates CLAUDE.md, contracts, hooks, agents, and tests. Then fill in the Project Context section in CLAUDE.md (Repository, Board, CLI, Tech Stack).

Commands

npx @colmbyrne/specflow init .          # Set up Specflow (safe to re-run)
npx @colmbyrne/specflow verify          # Check installation (13 sections)
npx @colmbyrne/specflow update . --ci   # Update hooks + install CI workflows
npx @colmbyrne/specflow audit 500       # Audit issue #500 for compliance
npx @colmbyrne/specflow graph           # Validate contract cross-references

What You Get

| Layer | What it does | |-------|-------------| | Contract tests | YAML rules scan source for forbidden patterns — break a rule, build fails | | Journey tests | Playwright tests for critical user flows — if a journey doesn't pass, the feature isn't done | | Hooks | Auto-trigger tests on build/commit, catch violations on Write/Edit, reject commits without issue numbers | | CI workflows | PR compliance gate + post-merge audit — no contract violations merge to main | | 30+ agents | Orchestrate wave execution, write contracts, audit boards, simulate specs |


FAQ

Isn't this just more testing? No. Tests verify behaviour. Contracts verify architecture. "No localStorage in service workers" survives any refactor.

What if I don't have a perfect spec? Start with "document what works today." Your first contract can be: whatever we're doing now, don't break it.

Can LLMs actually follow contracts? Even if they don't, tests catch it. You don't need the LLM to behave. You need it to be checkable.


Links

| | | |---|---| | Detailed Setup | Manual paths, updating, SKILL.md | | Agent Library | 30+ agents for wave execution | | Contract Schema | YAML format for contracts | | CI Integration | GitHub Actions setup | | npm | @colmbyrne/specflow | | Issues | Bugs and ideas |