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

pam-maps

v0.2.3

Published

πŸ‘ Finds which parts of your monorepo are ASS (Architecturally System-Significant) and which are just PASS. Generates ASS_MASTER.md, ReadMyAss.md, and dependency maps. Project Architectural Maps β€” living, multi-layer cartography for monorepos that maintai

Downloads

425

Readme

πŸ—ΊοΈ PAM - Project Architectural Maps

PAM is an anagram of MAP. That is intentional. The acronyms are load-bearing. So is your architecture β€” PAM finds out which parts are πŸ‘.

PAM scans your monorepo (or multi-repo system), reads every README and project structure, and tells you which parts are πŸ‘ ASS and which are just PASS.

The Naming Convention

These are not jokes. They are the literal filenames.

| Term | Stands for | What it means | |------|-----------|---------------| | PAM | Project Architectural Maps | The tool itself | | MAP | (anagram of PAM) | The visual file-tree artifact PAM generates | | πŸ‘ ASS | Architectural System Significance | This project is load-bearing β€” remove it and other systems break | | PASS | Project-Architectural Semi-Significance | Matters internally, but the rest of the system doesn't care if it disappears | | πŸ‘ ReadMyAss | (literal filename) | Human-readable map with a β€œYou Are Here” marker. Like a README, but for your architecture |

Your monorepo gets rated. Every project is either πŸ”΄πŸ‘ ASS (system-critical) or 🟑 PASS (self-contained). The ones that are both? That’s where you pay attention.

The Problem

Nobody documents architecture. README files rot. New developers guess at relationships. AI agents hallucinate dependencies. One project gets renamed and three downstream systems break because nobody mapped the dependency graph.

PAM fixes this by generating a multi-layer map that actually stays current:

  • ASS_MASTER.md πŸ‘ β€” The most important file. Which projects are architecturally significant, what depends on what, and what breaks if something disappears
  • ReadMyAss.md - Human-readable narrative with Mermaid diagrams and a "You Are Here" breadcrumb
  • PAM_Master.md - Quick visual tree with ⭐ markers on the load-bearing projects
  • PASS.md - Per-project: what matters inside this project even if nobody else cares

Third-Party Repo Evaluation

Drop in a link to any public repo, npm package, or tool and ask:

"Would this benefit my system?"

PAM reads the repo, compares it against ASS_MASTER.md πŸ‘, and gives you a verdict:

| Verdict | Translation | |---------|------------| | βœ… ADDS VALUE | Real gap-fill. PAM names exactly where it slots in | | 🟑 MAYBE | Some overlap. PAM names the conditional | | πŸ”΄ REDUNDANT | You already have something that does this | | ⚠️ COULD CONFLICT | Port collision, hook overlap, or it'll step on something running | | β›” NOT USEFUL | Wrong domain, wrong runtime, abandoned, doesn't fit |

Every verdict comes with rationale, touched systems, and a recommended action - not just a label.

πŸ“¦ Install

npm install -g pam-maps

Use with AI Coding Agents

PAM works with any CLI agent - Pi, Claude Code, Codex, Cursor, Aider, or standalone. Copy the skill files into your agent config:

# Pi
cp -r skills/ ~/.pi/agent/skills/
cp agents/PAM.md ~/.pi/agent/agents/

# Claude Code / Codex / others
cp -r skills/ ~/.claude/skills/    # or ~/.codex/skills/

Then use /pam status, /pam sync, or /pam evaluate <url> inside any session.

πŸš€ Usage

CLI (standalone)

# Scan your monorepo β†’ structured JSON of every project
pam-scan /path/to/your/monorepo

# Evaluate a third-party repo without cloning it
pam-fetch https://github.com/expressjs/express

# Log a change for the next sync
pam-log --project my-api --type contract-change \
        --summary "Changed default port from 3000 to 8080" \
        --ripple "frontend, reverse-proxy"

Agent Commands

| Command | What it does | |---------|-------------| | /pam status | Which projects have maps, what's stale, pending changes | | /pam sync | Regenerate all maps (cached - only re-syncs what changed) | | /pam sync <project> | Refresh just one project's ASS/PASS/ReadMyAss files | | /pam evaluate <url> | Verdict on a third-party repo against your πŸ‘ ASS_MASTER |

πŸ” What PAM Generates

Master Layer (whole system)

<monorepo>/.pi/MAPS/
β”œβ”€β”€ ASS_MASTER.md  πŸ‘   ← THE important file. Global significance breakdown.
β”‚                         "What contributes to the system, what depends on what,
β”‚                          what breaks if this disappears."
β”œβ”€β”€ ReadMyAss.md        ← Human-readable narrative. Mermaid diagrams.
β”‚                         "You Are Here" breadcrumb navigation.
└── PAM_Master.md       ← Quick visual tree. ⭐ = ASS, 🟑 = PASS, βšͺ = neither.

Slave Layer (per-project)

<project>/.pi/MAPS/
β”œβ”€β”€ ASS_SLAVE.md   πŸ‘   ← Only the parts that affect OTHER systems.
β”‚                         Hand-off points, shared contracts, ports, daemons.
β”œβ”€β”€ PASS.md             ← What matters INSIDE this project.
β”‚                         Hot paths, fragile glue, critical configs.
β”œβ”€β”€ ReadMyAss.md        ← This project's narrative + its place in the graph.
└── PAM_Slave.md        ← Visual tree. ⭐ = files the program actually uses.

Significance Ratings

| Rating | Meaning | Example | |--------|---------|---------| | πŸ”΄πŸ‘ ASS | Remove it and other systems break | Shared API gateway, auth service, message bus | | 🟑 PASS | Self-contained - the system doesn't notice if it's gone | Internal CLI tool, standalone utility | | πŸ”΄πŸ‘πŸŸ‘ Both | Load-bearing and internally complex β€” pay attention here | Core service with fragile internal architecture |

πŸ“ Repo Structure

pam-maps/
β”œβ”€β”€ agents/PAM.md              ← PAM's identity, vocabulary, and rules
β”œβ”€β”€ skills/pam/SKILL.md        ← The /pam workflow (for AI agent sessions)
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ scan-readmes.mjs       ← Walk a monorepo, emit structured JSON
β”‚   β”œβ”€β”€ fetch-repo-readme.mjs  ← Fetch a GitHub repo's README via API (no clone)
β”‚   └── log-pending.mjs        ← Append/read/drain the pending change log
β”œβ”€β”€ templates/
β”‚   β”œβ”€β”€ ASS_MASTER.template.md πŸ‘ ← Template for the global significance file
β”‚   β”œβ”€β”€ ASS_SLAVE.template.md  πŸ‘ ← Template for per-project significance
β”‚   β”œβ”€β”€ PASS.template.md       ← Template for internal significance
β”‚   β”œβ”€β”€ ReadMyAss_*.template.md πŸ‘ ← Templates for human-readable narratives
β”‚   β”œβ”€β”€ PAM_*.template.md      ← Templates for visual maps
β”‚   └── pre-commit-pam-check.sh ← Git hook: warns on ASS-significant changes
β”œβ”€β”€ prompts/pam.md             ← Slash command entry point
└── package.json

βš™οΈ Configuration

# Set your monorepo root (or PAM defaults to cwd)
export PAM_ROOT=/path/to/your/monorepo
pam-scan

# Or pass it directly
pam-scan /path/to/monorepo

PAM reads READMEs to understand project roles. No Nx, Turborepo, or Lerna config required - any directory with a README is a project.

🀝 Contributing

PRs welcome. If your monorepo has a structure PAM doesn't handle well, open an issue.

πŸ“„ License

MIT - built by @CymatiStatic


πŸ‘ Yes, you will have files named ASS_MASTER.md and ReadMyAss.md in your repo. Your coworkers will ask questions. That's a feature. πŸ‘