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

@dotdotgod/pi

v0.1.19

Published

Pi adapter for dotdotgod: project-initializer skill, shared docs scaffold, plan/archive workflow, and project loading extensions.

Readme

@dotdotgod/pi

npm version GitHub License: MIT

Change a file, know what else must be checked.

$ dotdotgod graph impact . --changed packages/cli/src/core.mjs --compact
docs:
- docs/spec/REFERENCE_EXPANSION.md (91; incoming:implemented_by, semantic_similarity)
- docs/test/REFERENCE_EXPANSION.md (65.3; verified_by, semantic_similarity)
- docs/spec/LOAD_PROJECT.md (35.8; related_doc, semantic_similarity)

tests:
- packages/cli/test/core.test.mjs (78.6; semantic_similarity, incoming:semantic_similarity, verified_by)
- packages/cli/test/e2e.test.mjs (51.4; verified_by)

files:
- packages/cli/src/core.mjs (100; changed-file)
- packages/pi/extensions/plan-mode/index.ts (45; implemented_by, semantic_similarity)

graph impact ranks the specs, tests, architecture notes, config docs, and source files most likely to matter for a change. --compact keeps the result agent-facing: grouped by docs/tests/files and annotated with the reasons each item is likely relevant. It uses the project-memory graph built from Markdown links, README routes, headings, traceability blocks, package metadata, memory areas, and deterministic routing hints.

Pi adapter for dotdotgod's context curation workflow. It gives Pi the most complete dotdotgod loop: initialize a project-memory scaffold, load bounded context, plan before source edits, execute explicit steps, verify, and archive completed work.

Use this package when you want Pi to make repository work start from stable specs, tests, architecture, active plans, archive maps, and graph/cache metadata instead of raw chat history.

Start Here: Run the Project Initializer Skill

After installing the package, open Pi in your repository and ask it to initialize or normalize the project memory scaffold. The bundled skill is named project-initializer; it uses dotdotgod init when the CLI is available, but it also includes a shell fallback.

pi install npm:@dotdotgod/pi

Use natural language in Pi:

Initialize this project with dotdotgod.
Set up AGENTS.md, CLAUDE.md, CODEX.md, and docs folders.
Create a doc-first project baseline for this repository.

A good first-run flow is:

  1. Install the package.
  2. Start Pi in the target repository.
  3. Ask: Initialize this project with dotdotgod.
  4. Review the files the skill plans to create or skip.
  5. Let the skill create the scaffold.
  6. Run /dd:load to load bounded project memory.
  7. Use /plan before implementation work.

What You Get

  • Project initializer skill: create AGENTS.md, thin CLAUDE.md/CODEX.md, docs indexes, active-plan space, archive map, and local memory/cache ignores.
  • Task-directed loading: /dd:load starts from dotdotgod load-snapshot when available, then reads only relevant docs.
  • Safe planning: /plan keeps source/config changes blocked while the agent writes or updates durable task intent under docs/plan/.
  • Impact-aware context shaping: Plan Mode can use dotdotgod expand --with-impact for explicit [[...]] refs and expand --fuzzy --with-impact for high-signal natural references.
  • Execution continuity: completed plan steps are reported with explicit [DONE:n] markers so progress survives long sessions and compaction.
  • Reusable history: completed work moves to docs/archive/plan/, while docs/archive/README.md remains the lightweight history map.
  • Cross-agent conventions: the same AGENTS.md, docs, plan, and archive structure works with dotdotgod's CLI, Claude Code, and Codex packages.

The Memory Shape Initialized by the Skill

AGENTS.md                    # canonical working rules for agents
CLAUDE.md                    # thin Claude Code pointer to AGENTS.md
CODEX.md                     # thin Codex pointer to AGENTS.md
docs/
  README.md                  # project documentation map
  spec/README.md             # behavior, requirements, product truth
  arch/README.md             # architecture, conventions, boundaries
  test/README.md             # verification strategy and smoke tests
  plan/README.md             # active local plans, ignored by git
  archive/README.md          # completed-work history map, ignored by git

By default, docs/spec/** has two roles: it is stable shared/fresh project memory, and it is the traceability-enforced behavior-spec path. Those knobs are separate: projects can customize memory classification with memory.areas and traceability enforcement with traceability.required / traceability.exclude.

Graph and Bounded Loading

The Pi adapter relies on the CLI graph when available but does not ask agents to read a giant graph report. load-snapshot returns bounded cache status, graph size, memory areas, communities, and archive policy. graph impact and reference expansion can surface related specs, tests, source, and config for a change before broad scanning.

The graph uses more than traceability blocks: Markdown links, README routes, headings, package metadata, memory-area membership, commands, tests, and deterministic routing hints all contribute. Archive bodies are excluded by default; docs/archive/README.md is the map.

Commands

/plan      Toggle safe planning mode.
/todos     Show tracked plan progress during execution.
/load      Load project memory for the current repository.
/dd:load   Stable namespaced alias for project memory loading.

Included

  • project-initializer skill: the starting point for AGENTS.md, thin agent entrypoints, docs folders, README indexes, and local memory/cache ignores.
  • plan-mode extension: read-first planning mode with restricted tools, optional --plan-extra-tools, docs/plan writes, execution tracking, tiered hidden prompts, and /todos.
  • load-project extension: read-only project context loading through /load and /dd:load.

Local Development

pi install /Users/dotdot/Workspace/dotdotgod/packages/pi
pnpm --filter @dotdotgod/pi run verify
pnpm --filter @dotdotgod/pi run pack:dry-run

Learn More

See the root README, GitHub repository, docs/concept/CONTEXT_CURATION.md, docs/concept/CONTEXT_MECHANICS.md, docs/spec/MEMORY_AREA_CONFIG.md, and docs/spec/TRACEABILITY_CONFIG.md.

Compared with Graphify-Style Memory

The Pi adapter focuses on workflow: initialize the project memory scaffold, load a bounded snapshot, plan before source edits, and archive completed work for future sessions. Graph/cache output is a compact map; detail still comes from targeted file reads.