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

test-casebook

v1.0.4

Published

Testing methodology and AI-agent playbook for exhaustive, data-test-driven test suites

Readme

test-casebook

A testing methodology and AI-agent playbook for exhaustive, strictly-typed, data-test-driven test suites.

test-casebook is the doctrine half of the testing workflow: the conventions, strategy, scenario guide, and the agent playbook (AGENTS.md) that an AI coding agent applies to a target project to produce complete, reliable tests.

It pairs with env-attr-cleaner — the build-time tool that strips data-test-* attributes from production. The dependency is one-way: the methodology knows about the cleaner, the cleaner knows nothing about the methodology.

What's inside

  • AGENTS.md — the playbook. Handed to an AI coding agent, it drives: detect the stack, (optionally) wire the cleaner, plan every case in task-test.md, execute block by block with a reviewer, enforce strict typing and coverage, and verify. Includes the permission matrix for permission-gated units and the anti-mock-drift rules.
  • .claude/skills/test-task/(project manager, upstream) turns a story into a shared test-task.md: interviews to close gaps (permissions, gated capabilities, regression surface) and reads the real permission model, so the contract is complete before dev.
  • .claude/skills/test-casebook/ + .claude/agents/{test-writer,test-reviewer}(developer, downstream) executes that contract on the code — plan per unit, write, review, verify.
  • docs/strategy.md — why data-test-* over CSS / structural / text selectors.
  • docs/conventions.md — naming rules for data-test-id / data-test-class.
  • docs/testing-guide/ — ready-to-use scenario snippets.

The flow

Story → test-task skill (PM) writes one test-task.md → given to the front and back developer → each runs the test-casebook skill on their side, deriving expected outcomes from that same test-task.md. One contract, two implementations; permission cases assert both layers, so a front/back divergence surfaces immediately.

Core idea

Write dedicated data-test-* attributes for testing. The same selectors drive unit, integration and E2E tests, never reach production (stripped by env-attr-cleaner), and stay stable across refactors because they're decoupled from style, structure and text.

The playbook's job is to make coverage exhaustive instead of happy-path: plan from reading the source, enumerate every case (props, branches, states, interactions, guards, permissions), and verify each one — not re-implement a few examples.

How it's consumed

Three channels, one source of truth (this repo's AGENTS.md + docs), never re-authored per channel:

  • Claude Code skill + sub-agents.claude/skills/test-casebook/ orchestrates the run; .claude/agents/test-writer and .claude/agents/test-reviewer execute and gate each block. Open the repo (or a project it's been scaffolded into) in Claude Code and invoke the test-casebook skill.
  • npx scaffoldernpx test-casebook init drops AGENTS.md, docs/ and .claude/ (skill + agents) into any project (agent-agnostic). Use --force to overwrite existing files.
  • Docs — the guides in docs/.

Status

Pre-release (not yet published to npm). Usable today via the Claude Code skill, the scaffolder (node bin/test-casebook.mjs init), or by handing AGENTS.md to any agent; marketplace packaging is in progress.

License

MIT