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

haltr

v4.0.0

Published

Quality assurance tool for coding agent outputs

Readme


Installation

npm install -g haltr

Quick Start

# 1. Register hooks (first time only)
hal setup

# 2. Start Claude Code — the agent will use hal to manage tasks
claude

The agent uses hal commands as needed during work to manage tasks.

Why haltr?

Current coding agents cannot work for extended periods without issues.

Forgetting

  • Problem: As context grows, agents forget initial goals and rules. They may leave mocks in place, ignore quality standards, or break their own code.
  • Solution: Decompose tasks into steps, persist goals/state/history in task.yaml. Force agents to record and reference.

Cutting Corners

  • Problem: Agents sometimes report "done" without verification. They skip tests, skip manual checks, or swallow errors.
  • Solution: Set accept criteria for each step, with independent verification by Sub Agent to prevent shortcuts.

Early Exit

  • Problem: Agents stop midway. They wait for confirmation, give up on errors, or abandon work when unsure of next steps.
  • Solution: Stop hook blocks until task completion. pause/resume explicitly switches to interactive mode.

Key Features

  • External Memory — task.yaml persists goals, steps, and history to prevent context degradation
  • Quality Gates — accept criteria → verify → done flow enforces verification
  • Stop Hook — Blocks attempts to stop before completion
  • Lightweight — No directory structure enforcement. Just create task.yaml anywhere

How It Works

Workflow

flowchart LR
    subgraph Interactive["Interactive"]
        direction LR
        U1[Request] --> U2[Plan Agreement] --> A1[Create Task]
    end
    subgraph Autonomous["haltr enforces completion"]
        direction LR
        S1 --> S2
        S2 --> SN
        SN --> END[Done]
        subgraph S1[Step 1]
            W1[Work] --> V1[Verify]
        end
        subgraph S2[Step 2]
            W2[Work] --> V2[Verify]
        end
        subgraph SN[Step N]
            WN[Work] --> VN[Verify]
        end
    end
    subgraph Review["Final Review"]
        U3[Review]
    end
    Interactive --> Autonomous --> Review

Use hal step pause to switch to interactive mode when confirmation is needed.

Architecture

Agent (1 session)
  │
  ├─ hal command ← Data management only, no LLM calls
  │
  └─ task.yaml   ← State management (goal, steps, history)

hal does not make decisions. The agent decides, hal records.

Commands

User Commands

| Command | Description | | ------------ | ------------------------------ | | hal setup | Register hooks (first time only) |

Agent Commands

| Command | Description | | --------------------------------------------------- | -------------- | | hal task create --file <name> --goal "..." | Create task | | hal task edit --goal "..." --message "..." | Update task | | hal status | Check status | | hal step add --step <id> --goal "..." | Add step | | hal step start --step <id> | Start step | | hal step verify --step <id> --result PASS\|FAIL | Verify step | | hal step done --step <id> --result PASS\|FAIL | Complete step | | hal step pause --message "..." | Switch to interactive | | hal step resume | Switch to autonomous |

Automatic (hooks)

| Command | Description | | ------------------- | ------------------- | | hal session-start | SessionStart hook | | hal check | Stop hook gate |

Task File Resolution

All commands accept the --file option to explicitly specify the task file. When omitted, resolution follows this order:

  1. Session mapping (auto-registered on hal task create / hal step start)
  2. task.yaml or *.task.yaml in current directory

Design Notes

Why Not Multi-Agent?

haltr v1 used a multi-agent architecture with orchestrator + worker + verification agents. However, real-world usage revealed issues:

  • Telephone Game — Information degrades as the orchestrator relays user intent to workers
  • Context Loss — Re-spawning workers per step loses implicit knowledge
  • Overhead — Full flow runs even for simple fixes

v2 consolidated to a single main worker, with haltr focusing on data management (task.yaml + quality gates).

v3 further narrowed the scope, removing directory structure enforcement. It focuses on being a "tool" that doesn't conflict with existing project structures.

Bitter Lesson: Minimize Structure

Models are evolving rapidly. All structure haltr adds is designed with the assumption that "it's needed for current models but may become unnecessary for future models." For each feature, we ask "If we remove this structure, will the agent fail to work autonomously?" Only features with a "Yes" answer remain.

License

MIT