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

@juanklagos/sdd-core

v2.3.0

Published

Typed core operations for Spec-Driven Development: workspaces, specs, validation, gate, consent, status and logbook. Bilingual EN/ES.

Readme

sdd-core

Core library for Spec-Driven Development operations.

Purpose:

  • centralize the reusable business logic behind the template
  • avoid using shell stdout as the primary contract
  • provide typed functions for CLI, MCP, and future integrations

Initial responsibilities:

  • workspace path validation
  • spec numbering and creation
  • policy loading and interpretation
  • SDD validation
  • implementation gate checks
  • user consent recording

Target consumers:

  • scripts/ compatibility layer
  • packages/sdd-mcp/

Framework payload

The tools read framework documents and shell out to the scaffolding scripts. In a checkout of the template those live at the repo root; there is no repo root in an npm install, so the tarball ships a mirror of them under framework/, built at pack time by scripts/build-framework-payload.mjs.

resolveFrameworkRoot() reports which one is in use:

| Layout | Root | When | |---|---|---| | repo | the template checkout | packages/sdd-core inside the monorepo | | package | <package>/framework | installed from npm | | missing | the package directory | broken install; every asset read fails with an actionable message |

The checkout always wins, so monorepo development operates on the live files. getWorkspacesRoot() follows the same split: the repo root in a checkout, the current working directory when installed from npm, and SDD_WORKSPACES_ROOT overrides both.

Current exported operations:

  • createWorkspace
  • createSpec
  • listSpecs
  • validateProject
  • checkGate
  • recordUserConsent
  • generateStatus
  • generateRoadmap
  • appendProjectLogEntry
  • writeDailyLog
  • writeHandoff
  • writeDecision

Pruebas / Tests

Vitest. Las pruebas (src/**/*.test.ts) cubren la regla única de estado de spec —isApprovedStatus y specTone— y getBoardView sobre un workspace SDD temporal, verificando el invariante «la aprobación manda»: una spec con todas las tareas marcadas pero sin aprobar nunca es «hecha» (spec 024).

Tests (src/**/*.test.ts) cover the one spec-state rule —isApprovedStatus and specTone— and getBoardView against a throwaway SDD workspace, verifying the "approval comes first" invariant: a spec with every task ticked but never approved is never "done" (spec 024).

npm test --workspace @juanklagos/sdd-core    # o / or: cd packages/sdd-core && npm test

src/approval-cases.fixture.ts es la tabla de verdad compartida contra la que se verifican ambas copias de la regla de aprobación: la de aquí y su espejo en builder/src/sections.ts. Si divergen, una de las dos suites se pone roja. El build excluye *.test.ts y *.fixture.ts de dist. / src/approval-cases.fixture.ts is the shared truth table both copies of the approval rule are checked against (this one and its builder/src/sections.ts mirror); if they diverge, one suite goes red. The build excludes *.test.ts and *.fixture.ts from dist.