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

nova-spec

v1.0.7

Published

Spec-Driven Development framework for Claude Code and OpenCode

Readme


What it is

nova-spec adds seven /nova-* slash commands to Claude Code (and OpenCode) that turn a ticket into a traceable change: classify, close requirements, plan, implement task by task, review, and wrap up with commit + PR + memory update.

Architectural memory (context/decisions/, context/gotchas/, context/services/) lives in atomic markdown files that humans edit and grep finds.

It's not a template or a generator. It's a set of conventions + commands that your AI agent runs as slash commands inside your repo.

Who is this for

  • Developers using Claude Code or OpenCode on real projects, not toy demos.
  • Teams that want their AI agent to follow a disciplined ticket → PR flow instead of one-shotting code.
  • Anyone tired of re-explaining the same architectural context every new chat.

If you only use Claude Code for one-off scripts, this is overkill. If you ship to production with it, read on.

Quickstart

npx nova-spec init

That's it. The interactive wizard asks where to install (global or per-project), which runtime (Claude Code, OpenCode, or both), and optionally your Jira connection. It generates a ready-to-use config.yml — no manual editing required.

Then open your editor and run your first ticket:

/nova-start PROJ-123

A taste of it

What /nova-start PROJ-42 actually does:

> /nova-start PROJ-42

Ticket: PROJ-42 — "Add rate limiting to /api/login"
Classification: feature (2h-3d)
Affected services: auth-api ✓

Branch created: feature/PROJ-42-rate-limit-login (from main)

Loaded context:
  Stack: ✓ loaded
  Conventions: ✓ loaded
  Services: auth-api ✓
  Decisions read: throttling-strategy.md, redis-usage.md
  Gaps: none
  Questions: none

Next step: /nova-spec

No code yet. The agent classified the work, created the branch, and pulled in only the architectural decisions that matter for this ticket.

Flow

/nova-start → /nova-spec → /nova-plan → /nova-build → /nova-review → /nova-wrap

| Command | What it does | |---|---| | /nova-start <TICKET> | Pulls the ticket, classifies it (quick-fix / feature / architecture), creates a branch, loads context | | /nova-spec | Closes open decisions and writes proposal.md | | /nova-plan | Translates the spec into tasks.md (plan + tasks) | | /nova-build | Executes tasks one by one with incremental review | | /nova-review | Final code review against spec, conventions and decisions | | /nova-wrap | Updates memory, archives the spec, creates commit and PR | | /nova-status [TICKET] | Current status of the ticket (read-only) | | /nova-sync | Updates nova-spec core to the latest version | | /nova-diff <path> | Shows diff between your local edits and the latest package version |

quick-fix tickets skip /nova-spec and /nova-plan.

Customizing the framework

Edit any file under novaspec/ directly. There is no separate "custom" folder — your edits live where they're used. npx nova-spec sync hash-compares every file and never overwrites the ones you've touched.

The 5 things your team will likely want to change

  1. PR / MR templatenovaspec/templates/pr-body.md What /nova-wrap puts in the description box. Add your team's QA checklist, ticket-link format, security notes.

  2. Code review checklistnovaspec/templates/review.md The structure /nova-review follows. Add your conventions, your blockers, your sections.

  3. Commit message formatnovaspec/templates/commit.md Conventional commits, custom prefixes, ticket-in-subject — whatever your team enforces.

  4. Ticket systemnovaspec/config.ymlticket_system Set to jira for Atlassian Jira, or none to paste tickets manually. none skips ticket-key validation in /nova-start.

  5. Stack & conventions contextcontext/stack.md and context/conventions.md Loaded at the start of every ticket so the agent knows your tech, your patterns, your "we don't do that here". The installer creates both files with comments explaining what to put in them.

Other useful tweaks: forge (config.ymlforge.type: github/gitlab), branch base (branch.base), guardrails (novaspec/guardrails/*.sh).

After any edit, commit it with the team — everyone gets the same flow.

Keeping up to date

npx nova-spec sync runs automatically when Claude Code or OpenCode start (via a SessionStart hook). You can also run it manually:

npx nova-spec sync

It updates only the files you haven't edited locally and reports the rest.

Principles

  • No skipping steps. Each command has a guardrail that checks preconditions.
  • No making up context. If info is missing, the command asks.
  • Human checkpoints after /nova-spec and before /nova-wrap.
  • Memory that doesn't decay: one fact = one file, name = index, explicit supersede.

Documentation

License

MIT — see LICENSE.