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

@xfive/chisel-ai-toolkit

v1.4.0

Published

Chisel AI toolkit — skills, rules and reference docs for AI coding agents working on Chisel WordPress themes

Readme

@xfive/chisel-ai-toolkit

Skills, rules and reference docs for AI coding agents working on Chisel WordPress themes. Installing the package drops everything into the right place for Claude Code and writes an AGENTS.md pointer for other agents.

Install

npm i -D @xfive/chisel-ai-toolkit

A postinstall step runs the installer. Re-run it any time with npx chisel-ai-toolkit.

What gets installed

| Bundled | Installed to | | --- | --- | | skills/<name>/ | .claude/skills/<name>/ — invokable as /<name> | | rules/reference/ | .claude/chisel/reference/ | | rules/templates/ | .claude/chisel/templates/ | | rules/README.md | .claude/chisel/README.md — the "Using it" and "Verification" sections below, for whoever opens the theme repo | | rules/CLAUDE.md | spliced into the project's CLAUDE.md between managed markers | | rules/AGENTS.md | spliced into the project's AGENTS.md | | hooks/ | .claude/chisel/hooks/ + one entry in .claude/settings.json | | (manifest) | .claude/.chisel-ai-toolkit.json |

Using it

Seventeen skills ship. You type five of them; the other twelve are opened automatically by the skill doing the work.

Skills you run yourself

| You type | When | | --- | --- | | /chisel-change-new <Figma URL · screenshots · or describe it> | Starting anything new. Scopes it with you, then plans it in phases. Writes no code. | | /chisel-change-implement | Building a planned change, one phase at a time. | | /chisel-change-resume <NN-slug> | Picking an unfinished change up in a fresh session. | | /chisel-quick-fix <feedback> | Small fixes to work that already exists. No plan, no phases. | | /chisel-verify | Optional. Runs the mechanical checks by hand — implement already runs them for you. |

Skills picked automatically

Everything else — theme.json setup, base styles, header and footer, patterns, blocks, components, CPTs, options pages, the Figma import. /chisel-change-implement opens whichever one the phase it's building calls for. Don't invoke them; if you want one of those things built, start with /chisel-change-new.

How a change flows

/chisel-change-new  ────►  /chisel-change-implement
scope, then plan            builds one phase at a time, three stops per phase:
in phases                   plan review → build + npx chisel-verify → summary, wait for "next"
                                     ▲
                                     │  a fresh session picks the change
                                     │  up cold with /chisel-change-resume

The plan lands in context/changes/{NN}-{slug}/ — a PLAN.md plus one file per phase — and gets committed, so the work survives /compact, a closed laptop, or a handoff to someone else. Every phase stops three times: plan review before building, summary after, then wait for "next". The mechanical checks run automatically before each summary; /chisel-verify is only for running them by hand.

What implement picks, and when

If the change was scoped from a Figma file, /chisel-change-implement hands each page section to /chisel-figma-to-chisel, which then picks from the same list below.

Project setup — phases 1–3 of the first change only, in this order:

tokens from the design spec ............. /chisel-setup-theme-json
buttons, typography, forms, spacing ..... /chisel-adapt-base-styles
header, footer, nav, logo ............... /chisel-adapt-header-footer

Order is load-bearing: tokens first so everything downstream references presets, base styles next so patterns inherit correct defaults instead of overriding them. On the second screen they're already done and get skipped.

Then, per section — cheapest option that works, top of the list down:

a page section from core blocks ......... /chisel-create-pattern      ← default
field-driven repeating content .......... /chisel-create-acf-block    ← default custom block
editor-canvas interactivity ............. /chisel-create-block        ← last resort, asks first
shared UI rendered from PHP ............. /chisel-create-component
many entries of one content shape ....... /chisel-create-cpt
a site-wide editable value .............. /chisel-create-acf-options
a variant of a core block ............... /chisel-extend-core-block
one token added or changed .............. /chisel-theme-json

Frontend interactivity — a slider, tabs, an accordion — is not a reason to reach for a React block. That's an ACF block plus view.js.

The way around the spine

/chisel-quick-fix — QA notes, review comments, visual nits on work that already exists. No change folder, no phases, no plan gate: it triages, fixes, reports. Anything that turns out to be real scope gets handed back to /chisel-change-new.

Verification

No test framework ships and none is added — Chisel has no Jest, PHPUnit or spec files, and the toolkit doesn't scaffold any. What the theme produces is markup and SCSS driven by a design spec, and "the hero renders a heading" passes while the section looks wrong. Verification is three layers instead:

automated ... npx chisel-verify + npm run build-scripts   reads files, never renders
rendered .... Playwright MCP: console, screenshots, a11y  the only pass that sees seeded
                                                          content, dead images, JS that throws
manual ...... the user's eyes                             editor behaviour, copy, sign-off

Playwright MCP is optional — unlike xfive-mcp-chisel, which is the default and falls back to WP-CLI only with your explicit permission. Without Playwright the agent asks you for a screenshot and reports the render as not checked rather than passed. With it, the agent catches its own drift before handing the work over instead of after. Either way a screenshot the agent took never ticks a manual item.

The site URL lives on a **Site URL:** line in context/INDEX.md — asked once, on the first change.

The core/ guard

core/ is upstream Chisel — anything you change there is overwritten by the next Chisel update. The toolkit installs a PreToolUse hook that refuses writes into it, so the agent is stopped at the moment of the edit rather than told off afterwards. Put the change in custom/ instead.

The hook is one entry inside .claude/settings.json. The installer rewrites only that entry and leaves the rest of the file alone; uninstall removes it and deletes the file only if nothing else is in it. If that file isn't valid JSON the installer skips the hook and says so rather than guessing.

Editing the hook by hand doesn't stick — the next install puts it back.

Everything lands in the theme directory — the same place npm and the build already run.

Where it installs

Always the theme: the nearest directory above the install location with style.css, functions.php and theme.json. Nothing outside it is touched, and if no theme is found the installer stops rather than guessing.

Launch your agent from the theme directory. That's the only place .claude/ and CLAUDE.md are discovered, and it's what puts npx chisel-verify on the path. In a full WordPress project that means opening the theme folder, not the site root.

Check what was detected with:

npx chisel-ai-toolkit --dry-run

Override it with --root <path> or CHISEL_AI_TOOLKIT_ROOT if detection guesses wrong.

Options

--agent=claude,agents   emit only for the listed agents (default: both)
--root <path>           override theme detection
--dry-run               report the detected theme, write nothing

Local edits

Don't edit the installed files. .claude/skills/ and .claude/chisel/ are deleted and rewritten on every install — including the postinstall that fires on any unrelated npm install — so local changes disappear without warning. Make the change in this repo instead.

CLAUDE.md and AGENTS.md are the exception: only the text between the managed markers is replaced, so anything you write outside them is safe.

Uninstall

node node_modules/@xfive/chisel-ai-toolkit/uninstall.js

Uses the manifest to remove exactly what it installed, strips the managed blocks from CLAUDE.md and AGENTS.md, and leaves your own content untouched.

Adding a skill

Drop a directory under skills/ containing a SKILL.md. The frontmatter name must match the directory name. Use {{THEME_ROOT}} for any theme-relative path. Then:

npm run validate