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

@jasonrobey/idd-forge

v0.7.0

Published

Repo-local web UI for Intent-Driven Development artifacts

Downloads

59

Readme

idd-forge

Repo-local web UI for Intent-Driven Development (IDD) artifacts. Reads and writes YAML files produced by the IDD Claude Code plugin — no database, no Docker, no auth.

What It Does

  • Product workspace — Overview, Roadmap, Product map, Delivery and Evidence keep product context visible; expand an outcome to edit its expectations
  • Draft creation — Review and create user-authored Draft intentions and expectations, with confirmed edge cases and reciprocal parent links
  • Flow Board — Kanban view of all Specs across six phases (Draft → Ready → In Progress → Review → Validating → Done) with drag-and-drop and WIP limits
  • Gap-check awareness — Reads each Spec's gap_check annotation (the IDD adversarial pre-execution gate) and shows gate badges on board cards and detail pages; Ready → In Progress is gated on a clean gap-check (passed, or warnings with recorded human acknowledgment), with override + audit trail
  • Pipeline reports — Gap-check reports, execution reports, and validation reviews from docs/reviews/ are browsable and linked from each Spec
  • Pipeline metrics — A per-product Metrics view computed read-only from artifacts already on disk: Gap-Check First-Round Pass Rate, average rounds-to-pass, execution-report gap counts, review-stage First-Pass Rate, cycle time, and review queue depth
  • Artifact hierarchy — Browse Products, Intentions, Expectations, and Specs with full detail and inline editing
  • Markdown rendering — Descriptions, problem statement, vision, boundaries, deliverables, and other prose fields render as formatted markdown (bold, lists, headings, code, tables) instead of raw text
  • Completeness checklist — Gates Draft → Ready transitions with 11 criteria; supports override with audit trail
  • YAML editing — Edit any artifact's raw YAML directly in the browser
  • Spec export — Export Specs as AI-ready Markdown prompts or structured YAML
  • Live reload — Detects external file changes (e.g. from AI agents) and updates the UI in real time

Quick Start

Run it directly with npx from any repo that has (or will have) a docs/ directory:

npx @jasonrobey/idd-forge

Or install it as a dev dependency and run via the short binary name:

npm install -D @jasonrobey/idd-forge
npx idd-forge

Forge scans docs/ for IDD artifacts and opens a browser to http://localhost:4000. If docs/ doesn't exist, it will offer to create the directory structure for you.

CLI Options

idd-forge [options]

Options:
  --port <number>   Server port (default: 4000, auto-increments if in use)
  --docs <path>     Path to docs directory (default: ./docs)
  --no-open         Don't open browser automatically
  -h, --help        Show help
  -v, --version     Show version

How It Works

Forge reads from the IDD directory structure:

your-repo/
├── docs/
│   ├── products/       PROD-001.yaml
│   ├── intentions/     INT-001.yaml
│   ├── expectations/   EXP-001.yaml
│   ├── specs/          SPEC-001.yaml
│   └── reviews/        SPEC-001-review.md
└── package.json

Changes to YAML files are detected in real time — edit files with the IDD Claude Code plugin or any editor, and the UI updates automatically.

Product Workspace

The product workspace is included starting with version 0.7.0. To run a source checkout, use npm ci, npm run build, then npm start.

Overview separates expectation coverage, spec delivery and reported validation, with links to supporting records. There is no overall percent complete. Done is delivery status, not proof of validation; a reported Validated expectation still has unknown evidence unless a supported source establishes a result. Missing or unsupported reports remain visibly missing or unknown. Parse errors mark the snapshot incomplete.

Roadmap groups intentions into Now, Next, Later and Unscheduled, using optional forge.roadmap metadata. Move and reorder controls work by keyboard. Placement never changes intention status or spec phase. Target windows are user-entered labels. Existing artifacts need no migration; reading them writes nothing. Product map retains ancestors when filtering and paginates large child lists. Delivery retains server-enforced phase gates and recorded override reasons.

Create an intention from its product, or an expectation from its intention, then review the exact Draft content before creating it. Expectations require validation criteria, at least two distinct nonempty edge cases and explicit confirmation. Forge adds the parent backlink and does not promote lifecycle status. Product/spec creation, deletion, AI authoring and execution remain outside this workflow.

Saving and Recovery

Editors preserve drafts through external refreshes and failed saves. When “File changed outside Forge” appears, compare the current source, copy your draft, or reload after confirming discard. There is no force-overwrite action. Session recovery is scoped to the repository, artifact and original revision, and requires explicit restoration. If browser storage is unavailable, the editor explains that recovery is unavailable while retaining the open draft.

While a save is pending, its inputs are protected. Requests have a 30-second client deadline; a timeout does not prove the server write failed. Creation retains its draft and requires current-source/child review before another explicit submission, without automatic replay. Other transport failures or invalid responses can also leave creation uncertain: inspect children and parent links before submitting again. A failed workspace refresh keeps cached content visible with a warning and Retry, including inside an open editor.

Saves check exact source revisions, validate before writing and preserve unrelated YAML structure, comments and fields. Unsupported structured fields remain read-only in ordinary forms, with advanced source access. API writes require If-Match: missing preconditions return 428; stale or deleted source returns 409 REVISION_CONFLICT. Phase changes still use the transition service.

Single-file writes use a checked temporary-file rename. An external process can still write between the final revision check and rename; this is not cross-process transaction isolation. Creation and reparenting use recoverable multi-file writes, so external readers can observe intermediate files. If RECOVERY_REQUIRED appears, preserve the affected files and docs/.forge-transactions/ journals, and inspect the reported paths before retrying. Startup attempts hash-checked recovery without overwriting intervening external edits; unresolved affected paths remain blocked. Do not delete recovery journals to bypass the block.

For a future local upgrade, stop Forge and other artifact writers, and back up the configured docs root, including hidden journals and permissions. Reverting application code does not undo artifact changes; older writers may strip new metadata. See the local upgrade and recovery runbook before upgrading or rolling back.

Development Verification

npm run typecheck
npm test
npm run build
npm run test:e2e
# Workspace-only selection, including its build step:
npm run test:e2e:workspace

Both Playwright configurations start a dedicated server on port 4181 against a generated temporary docs root; they do not reuse an existing server. Leave that port available and build before test:e2e. Never point fixture helpers at real repository artifacts. Normal harness shutdown removes its temporary root and state marker.

Requirements

  • Node.js 20 or later

Project Status