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

@adlc/ticket-sync

v1.4.1

Published

Two-way sync between ADLC tickets and external trackers (GitHub Issues first).

Downloads

431

Readme

@adlc/ticket-sync

Two-way sync between the canonical ADLC ticket store and an external tracker — GitHub Issues first. Import issues into tickets, create issues for local-only tickets, and write ADLC execution metadata back into the issue body. Dry-run by default; all network I/O goes through the gh CLI.

npm i -g @adlc/ticket-sync
gh auth login                       # the provider shells out to gh
adlc-ticket-sync --help

Commands

| Command | What it does | |---|---| | adlc-ticket-sync pull | Import issues → the active ticket store (3-way reconcile; unions; fails closed on conflict). | | adlc-ticket-sync push | Write tickets back: update synced issues + idempotent create for local-only tickets + display-only status labels/comment. | | adlc-ticket-sync sync | pull then push (a non-clean pull aborts before push). | | adlc-ticket-sync doctor | Read-only, offline health checks (config / tickets / schema drift / sidecar / stale lock). |

Dry-run by default — pass --write to apply. --json on all commands. Exit codes: 0 ok · 1 operational · 2 blocked.

adlc-ticket-sync pull               # preview the import
adlc-ticket-sync pull --write       # apply it
adlc-ticket-sync push --write       # create/update issues + status
adlc-ticket-sync doctor             # check repo health, read-only

How it works

  • Metadata GitHub Issues lack lives in a fenced JSON block in the issue body, between <!-- adlc:begin … --> / <!-- adlc:end --> sentinels. Prose around it is preserved verbatim.
  • Sync bookkeeping (node ids, the 3-way base hash, create keys) lives in a gitignored sidecar (.adlc/ticket-sync.state.json) — so routine syncs never touch the rails trust root. Its metadata is rebuildable, but writers durably retain and fail closed around pendingCreates recovery handles.
  • Storage-independent: sharded .adlc/tickets/ is canonical for new repos; legacy .adlc/tickets.json continues to work through the migration bridge.
  • Idempotent create: a stable sentinel key + a pre-create adoption scan + pendingCreates crash-recovery mean a re-run never duplicates an issue. The handle remains until the ID rewrite and hash-chained evidence re-attestation both complete, so a re-run can resume either half. On create, the ticket id is reassigned T<n>gh:<owner>/<repo>#<n> with a store-wide edge rewrite.
  • Offline-first: all logic is tested offline via an injected gh runner; the one live edge has an opt-in smoke (scripts/ticket-sync-smoke.mjs).

Token scopes

pull needs issues:read; push needs issues:write. Prefer a fine-grained PAT over the broad repo scope. GH_HOST is honored for GitHub Enterprise.

Full guide

See docs/ticket-sync.md for the flag matrix, config reference, the block/sidecar formats, idempotency details, the rails-trust-root interaction, and the live smoke.

License

MIT © Chris Williams (@voodootikigod)