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

@introspection-ai/recipe-documents-docx

v0.4.0

Published

Word (.docx) format for the Introspection Recipes documents tool: tracked edits, comments and responses on paper-docx.

Readme

@introspection-ai/recipe-documents-docx

The Word (.docx) format for the Recipes documents tool: read, propose_edits, comment, respond and remove_section, on paper-docx. render is not registered.

Recipes installs this package alongside itself (an optionalDependencies entry), so a Recipe that declares the format without listing the package uses that copy, with its Python environment and profiles. Declare it in peerDependencies ("@introspection-ai/recipe-documents-docx": ">=X.Y.Z"), which says the platform provides it. To pin an exact version, list "@introspection-ai/recipe-documents-docx": "X.Y.Z" in dependencies instead, and the Recipe's copy wins. X.Y.Z stands for a released version (npm view @introspection-ai/recipe-documents-docx version): a peer takes an open floor, >=X.Y.Z, and a pin an exact version.

With and without a profile

The tool is the same either way: the same commands, the same checks, and the original is never changed. A profile only adds guidance the agent reads.

Without a profile — any Word work: editing a policy, filling a template, marking up a memo, answering comments.

{ "pi": { "documents": [{ "format": "docx" }] } }

The agent gets the core documents skill: which command fits which change, how to quote text so an edit lands, and what to do when an edit fails. It says nothing about any one kind of work, so the Recipe's own skills decide how changes should read.

With legal-redlining-en-US — contract redlines, and responses to the other side's redline.

{ "pi": { "documents": [{ "format": "docx", "profile": "legal-redlining-en-US" }] } }

The agent also gets profiles/legal-redlining-en-us/SKILL.md, which covers:

  • planning a first markup by what moves a right, an obligation or a risk;
  • making the changes in revise batches, one rationale comment per change;
  • removing a clause with remove_section, leaving Reserved. so numbering still lines up;
  • answering the other side's changes with counters and replies, so the discussion stays visible, rather than accepting or rejecting;
  • writing each rationale as the reason, in your side's voice, never narrating the edit.

The profile is generic legal practice. A firm's own positions, playbook and comment style belong in the Recipe's skills, beside it.

Your own profile — for another kind of work with its own way of using the tool, write a profile in the Recipe: a folder holding a SKILL.md whose frontmatter name is the folder's name, and point profile at it.

{ "pi": { "documents": [{ "format": "docx", "profile": "./profiles/house-style-en-gb" }] } }

Write your own profile has the contract, what a profile should say, and a complete example.

Python

The helpers in python/ run in this package's own Python environment. The package declares it in package.json#pi.runtime.python (python/pyproject.toml, locked by python/uv.lock, with paper-docx), and the host prepares it with uv beside the Recipe and passes its interpreter to the adapter. A Recipe declares no Python for Word: it needs none of its own, and one it does declare is its agent's shell environment, which the helpers don't use. This needs @introspection-ai/recipes 0.39.0 or later.

The interpreter is the first of:

  1. RECIPE_DOCUMENTS_PYTHON, an explicit override;
  2. the package environment's interpreter, from the host;
  3. VIRTUAL_ENV (bin/python, or Scripts\python.exe on Windows), for a host that prepares no package environment;
  4. python3 on PATH.

Licences: the anchoring and section removal follow RedlineBench's redline engine (MIT, Crosby Legal), see python/recipe_documents_docx/LICENSE-redline-bench. The rest is Apache-2.0.