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

@ajgreyling/cursor-doctor

v1.12.6

Published

CLI tool that audits projects for documentation, rules, and skills, then generates a prescription plan

Downloads

31

Readme

Cursor Doctor

A Node.js/TypeScript CLI that audits a project for documentation, rules, skills, and related knowledge artifacts. It compares what exists against a reference concept catalog and generates a prescription plan (cursor-doctor-prescription-plan.md) with frontmatter todos for missing or incomplete elements.

Cursor Doctor

Install

Use directly via npx:

npx -y @ajgreyling/cursor-doctor@latest generate

Or install globally:

npm install -g @ajgreyling/cursor-doctor
cursor-doctor generate

Requirements

  • Node.js >=18
  • npm (or npx)

CLI commands

Generate prescription plan (default)

cursor-doctor generate [--project <path>] [--out <filename>]

If no command is provided, generate is used by default:

cursor-doctor --project /path/to/project

Audit only

cursor-doctor audit [--project <path>] [--json]

Read a discovered document

cursor-doctor read --file <path> [--project <path>]

Help

cursor-doctor help

Features

  • Audits discovered artifacts against a 23-concept catalog across six tiers.
  • Detects found, incomplete, and missing concepts with reason details.
  • Generates a markdown prescription plan with machine-readable YAML todos.
  • Supports read-only JSON audits for CI/reporting workflows.
  • Reads project files directly for quick artifact inspection (read command).

README completeness checklist

  • project name or title
  • setup/install steps
  • features or capabilities
  • how to run or use

Operational workflow

Use this sequence for a full doctor cycle:

  1. Run cursor-doctor generate (or npx -y @ajgreyling/cursor-doctor@latest generate).
  2. Open cursor-doctor-prescription-plan.md and work through frontmatter todos in order.
  3. Create/update missing artifacts from each todo prompt.
  4. Complete the final artifact-sync todo by updating affected docs/rules/skills.
  5. Re-run cursor-doctor generate to confirm gaps are resolved.

Doctor command in Cursor

If you want a doctor / cursor doctor skill in Cursor, point that skill to run the CLI (npx -y @ajgreyling/cursor-doctor@latest generate) and then work from the frontmatter todos in the generated plan.

Tracked Cursor artifacts

These files are committed in this repo so the doctor workflow stays consistent:

| File | Purpose | |------|--------| | .cursor/skills/cursor-doctor/SKILL.md | Skill for "doctor" / "cursor doctor" that runs the CLI and works from plan todos. | | .cursor/rules/cursor-doctor.mdc | Rule applied when editing the prescription plan or rules/skills; complete the final Update Artifacts step. | | .cursor/rules/required-cursor-doctor-skill.mdc | Rule (always apply): the cursor-doctor skill must exist at .cursor/skills/cursor-doctor/SKILL.md; if missing, recreate it from this README. |

Concept catalog

The tool checks for 23 concepts in 6 tiers. Artifacts are matched by file patterns (for example README.md, .cursor/rules/*.mdc) and by content signals so differently named files can still satisfy a concept.

  • Tier 1 – Foundation: README, project-overview rule, file-locations rule, agent-workflow rule.
  • Tier 2 – Architecture: Architecture doc, data model doc, API spec (for example OpenAPI).
  • Tier 3 – Development conventions: Backend, frontend, database, and lessons-learnt rules.
  • Tier 4 – AI knowledge and skills: AGENTS doc, knowledge-base skill, code-generation skill, operational skills, dependency-management skill.
  • Tier 5 – Quality and documentation: Testing spec, accessibility doc, style guide, UI documentation.
  • Tier 6 – Infrastructure: MCP config, container config, CI/CD config.
  • Final – Artifact sync: “Update Artifacts” is always the final todo.

Project-specific concept profiles

cursor-doctor supports per-project concept customization with this precedence:

  1. package.json field: cursorDoctor
  2. fallback file: .cursor/cursor-doctor.concepts.yaml
  3. built-in default catalog

This makes it possible to enforce domain-specific docs (for example, custom architecture/data-workflow docs) without changing the CLI code.

package.json profile example

{
  "cursorDoctor": {
    "includeDefaultCatalog": true,
    "concepts": [
      {
        "id": "domain-workflows-doc",
        "name": "Domain Workflows",
        "tier": 2,
        "intent": "Domain workflow coverage and execution paths",
        "filePatterns": ["docs/WORKFLOWS.md"],
        "contentSignals": ["workflow", "flowchart", "sequence"],
        "completenessChecks": ["mermaid", "actors", "happy path", "failure path"],
        "generationPrompt": "Create docs/WORKFLOWS.md with mermaid diagrams and workflow coverage."
      }
    ]
  }
}

YAML fallback example (non-Node repos)

Create .cursor/cursor-doctor.concepts.yaml:

includeDefaultCatalog: true
concepts:
  - id: domain-state-machines-doc
    name: Domain State Machines
    tier: 2
    intent: Lifecycle status transitions and guards
    filePatterns:
      - docs/STATE_MACHINES.md
    contentSignals:
      - state machine
      - transition
      - status
    completenessChecks:
      - mermaid
      - states
      - transitions
    generationPrompt: Create docs/STATE_MACHINES.md with mermaid state diagrams.

Override behavior

  • Concept IDs are unique keys.
  • A project profile concept with an existing ID overrides the built-in concept.
  • A new ID appends a new concept.
  • The final artifact-sync todo is always enforced.

Build and local run

npm install
npm run build
node dist/index.js generate

Audit-only examples

# Human-readable summary
node dist/index.js audit

# JSON output for automation
node dist/index.js audit --json

Publishing

npm login                # once, if needed
./publish.sh             # build + npm publish
./publish.sh --dry-run   # test without publishing

License

MIT