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

connections-arkitect

v0.3.6

Published

The Connections Arkitect — a portable, self-updating checks-and-balances framework. Ships a generic core of checks; you add your own in your-checks/ (the core never touches them); it keeps your codebase (and, via the Connections MCP, your hosted cloud) fr

Readme

connections-arkitect

The Architect — a portable checks-and-balances framework. A generic CORE of checks ships from Connections; you add your OWN under your-checks/ (the core never touches them); together they form a cast on your codebase that catches breakage and drift and gets tighter as you add rules.

One product, two halves: static code checks in your repo, and hosted checks against your live cloud (your database on AWS RDS/Aurora — Supabase/generic Postgres transports are on the roadmap) — distilled from Connections' internal code-audit and live-DB governance engines. Zero runtime dependencies.

Use it

npx -y connections-arkitect init             # OPT-IN install: lay .arkitect/ (config + your-checks + spines)
npx -y connections-arkitect                  # run every applicable check
npx -y connections-arkitect --check no-secrets-committed
npx -y connections-arkitect list             # what's discovered (core + your-checks)
npx -y connections-arkitect --fail-on-drift  # exit 1 if a gating check fails (CI)

Output: tmp/arkitect/FIX_QUEUE.md (ranked) + tmp/arkitect/manifest.json whose pass.nextAction (fix-errorsreview-warningsdone) is the one field an agent reads to know if it's finished.

Native telemetry — every check, always, no opt-in. The runner itself records, per check, its duration and its bounces — every outbound round-trip the check made (vault DB/cloud calls and fetch HTTP calls), counted and timed at the seams, so a check's author writes zero telemetry code and can't forget to. "Login worked" is half a report; "login worked, 87 bounces at ~200ms each" is why it took 30 seconds. Aggregates ride the manifest + FIX_QUEUE lines ([1.2s · 14 bounces]); the per-hop trace is tmp/arkitect/telemetry.json.

Saved reports. A bare repo stays stateless (outputs only in tmp/arkitect/, overwritten each run). But when the repo has a .arkitect/, every run is archived to .arkitect/reports/<stamp>/ — manifest, fix queue, telemetry, and every check's full report — so you can pull any past run in depth later. Pruned to reports.keep (config, default 20).

Installing is a choice: nothing but an explicit init (or the MCP architect_install tool, on a direct request) ever creates .arkitect/ — a normal run writes only its tmp/arkitect/ outputs. The split it lays down is the whole model: the Architect Core (this package: engine + generalist base checks) updates from Connections; your-checks/ (your code checks) and spines/ (your DB policy) are YOURS — a core update never touches them, so pulling the newest core never breaks your additions. Updating is also a choice: update.autoUpdate: false or update.pinnedVersion stops the pulls, and forking the core to own it outright is legitimate.

Two halves, one shape

  • code — checks that run statically in your repo. Work anywhere, offline, no account needed.
  • hosted — checks that run through the Connections MCP against your own cloud, credential-blind: you never paste a key. The MCP signs you in (browser sign-in), binds your workspace to your company, and your cloud calls are signed server-side in the Connections vault — the standalone CLI physically cannot reach a hosted check (no vault handle exists outside the MCP). Ships the db-justify-existence governor: every table judged on the 3-axis model (exact live rows × app-code references × in-DB references) against your spine — strictly read-only; it emits verdicts + a review-only remediation block a human executes.

To run hosted checks: connect the Connections MCP, sign in when it prompts (no key to paste), and invoke the arkitect_run tool with scope: "hosted" (or "all"). Declare your DB targets in arkitect.config.jsonhosted.targets — non-secret coordinates only (ARNs, database name); the credential stays in the vault. Set hosted.failOnBounty: true to make CONDEMNED / PROVE-OR-DIE verdicts gate the run (CI-style), or leave it off for advisory reports.

Make it yours

Add .mjs files under your-checks/ — each exports an audit and auto-registers, no wiring. A user check whose id matches a core check shadows it (patch the core without editing it). Pin or fork via arkitect.config.json (update.pinnedVersion / update.autoUpdate: false) to stop pulling the core and own it outright.

Config + checks can live at the repo root (arkitect.config.json, your-checks/) or tucked under .arkitect/ (.arkitect/arkitect.config.json, .arkitect/your-checks/) if you prefer to keep the Architect's footprint in one folder — the .arkitect/ location wins when both exist.

export const audit = {
  id: "my-rule",
  title: "My rule",
  category: "custom",
  domain: "code", // or "hosted"
  requires: {}, // {} = any repo
  gating: false, // true ⇒ blocks --fail-on-drift
  async run(ctx) {
    return { failed: false, findings: [], report: "" };
  },
};

For the hosted half, your policy is the spine (spine/justify-existence.json or per-target via hosted.targets[].spine): each feature claims the tables it owns ("payment_*" prefix claims or exact names — { "tables": [...], "tablePrefixes": [...] } is accepted too), and explicit verdicts: { "table": "REMOVE" | "INVESTIGATE" } (or { "verdict": "...", "reason": "..." }) override any claim.

Node ≥ 18. node test/smoke.mjs proves the engine end to end.

Roadmap

| Phase | What | | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | 1 (shipped) | portable core engine (runner + two-root discovery + requires gating + FIX_QUEUE/manifest) + 3 generic checks + the your-checks/ extension layer | | 2 (shipped) | conformance-oracle reference mode (runFamilyConformance — reference + consensus), SARIF 2.1.0 (findings.sarif), DECISION_BRIEF flat finding list, tsconfig-conformance check, dependency-freshness check | | 3 (shipped) | the hosted/DB half — generic 5-verdict justify-existence judge + spine (claims/overrides) + read-only vault seam + the db-justify-existence governor (runs through the MCP vault against your own DB; review-only remediation) | | 4 (shipped) | self-update machinery — version-gated manifest pull + SHA-pinned apply with .prev rollback (mirrors the MCP loader) + the release publisher | | 5 (shipped 2026-06-30) | public release: npm (connections-arkitect) + the S3 core-update channel + the MCP arkitect_run tool (code half + hosted-via-vault) | | 6 (next) | grow the core, breadth-first: a generalist base that does a good job checking everything, in-depth on nothing — distill every concept from Connections' internal engines (generic code-check classes: dead code, duplication, circular deps, complexity, css, perf, security; generalized DB-governance blades: required roles, migration-chain gaps, TTL backstops) + the full conformance-oracle projection tier + more hosted target kinds (Supabase / generic Postgres). Depth stays in your-checks/ — the core is the floor, yours is the specialist tier |