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

autonomous-startups

v0.1.0

Published

The abstract self-running startup: the capstone primitive that composes business-as-code, services-as-software, digital-products, digital-tools, and digital-workers into one definition, with every lifecycle transition gated by @org.ai/authority.

Readme

autonomous-startups

The abstract self-running startup. This is the capstone conceptual primitive: it defines what an autonomous startup is by composing exactly five primitives — the commercial model, its paid delivery, what it sells, what it wields, and who performs the work — and gates every lifecycle transition with @org.ai/authority.

It is a definition kit: types, a defineStartup() constructor, an authority-gated lifecycle walk, and validation. Pure domain — no HTTP, no database, no platform coupling. The only runtime dependency is @org.ai/types, whose Startup schema noun it consumes rather than redefines.

What an autonomous startup is

An autonomous startup is the composition of five primitives plus a construction lifecycle. Each register answers one question:

| Register | Question | Primitive | |---|---|---| | business | What is the commercial model? | business-as-code | | offers | How does paid value cross the boundary? | services-as-software | | products | What does it sell? | digital-products | | tools | What does it wield? | digital-tools | | workforce | Who performs the work? | digital-workers (agent | human) |

The workforce is the digital-workers interface over both autonomous agents and humans, so a startup composes its labor uniformly regardless of who performs each unit of work.

graph TD
  AS["autonomous-startups<br/>(the capstone)"]
  BAC["business-as-code<br/>· the commercial model"]
  SAS["services-as-software<br/>· paid delivery / offers"]
  DP["digital-products<br/>· what it sells"]
  DT["digital-tools<br/>· what it wields"]
  DW["digital-workers<br/>· who performs (agent | human)"]
  AUTH["@org.ai/authority<br/>· gates every transition"]
  TYPES["@org.ai/types<br/>· the Startup schema noun"]

  AS --> BAC
  AS --> SAS
  AS --> DP
  AS --> DT
  AS --> DW
  AS -. "type-level gate" .-> AUTH
  AS -. "projects onto" .-> TYPES

The lifecycle

A startup is constructed through a linear, forward-only lifecycle. Each state has exactly one legal successor, and each transition draws on a distinct competence domain from @org.ai/authority:

graph LR
  idea -->|growth| named
  named -->|product| sited
  sited -->|money| sellable
  sellable -->|delivery| running

advance() walks a construct one step forward. It is gated by @org.ai/authority at the type level: the caller must present an unforgeable Passed token whose competence domain is exactly the one the transition draws on and whose principal is exactly the startup's tenant. A wrong-domain token, a token minted for another tenant, or advancing a terminal running startup is a compile error — not a runtime check. The token is a compile-time proof; nothing about it is inspected at runtime, so the capstone carries no authority machinery.

This construction lifecycle is distinct from the maturity stage on the Startup data noun (idea | validating | building | scaling | established), which each construct projects onto.

Position in the G1–G5 ladder

autonomous-startups defines the G3 abstraction — the abstract artifact — in the platform's layering:

  • G1 — seed: public standards (NAICS, O*NET, UNSPSC, …) at standards.org.ai.
  • G2 — canon: the .org.ai properties canonicalize the graph; startups.org.ai is this primitive's canon.
  • G3 — abstract: this primitive defines what a startup is; the builders (startup-builder) build the abstract artifact.
  • G4 — branded: a brand and a priced offer mint the concrete startup, homed on a commercial property.
  • G5 — tenant: a live, running startup is a tenant instance operated on startups.studio, behind the authority membrane.

Standards seed the graph → the .org.ai properties canonicalize it → this primitive defines and the builders build the abstract artifact → a brand + offer mint the startup → tenants run it.

Usage

Define a startup, validate it, and walk it forward under authority.

import { defineStartup, advance, validateStartup } from 'autonomous-startups'
import { tenant } from '@org.ai/authority'

// The five registers come from their primitives; sketched here for shape.
const inboxZero = defineStartup({
  name: 'Inbox Zero',
  description: 'An autonomous startup that triages a team’s inbox to empty, every day.',
  industry: 'Productivity',
  principal: tenant('inbox-zero'),

  business,   // business-as-code:        the commercial model
  offers,     // services-as-software:    "Managed inbox triage" delivered as software
  products,   // digital-products:        the "Inbox Zero" API and dashboard
  tools,      // digital-tools:           the mail, calendar, and search tools it wields
  workforce,  // digital-workers:         a triage agent + a human escalation reviewer
})

// Readiness is validation, not exceptions — issues come back typed.
const { valid, issues } = validateStartup(inboxZero)
// issues: e.g. { code: 'workforce.empty', severity: 'warning', path: 'composition.workforce', ... }

// Walk the construct forward. Each `advance` demands the authority token for that exact
// transition; the type system rejects a wrong-domain or wrong-tenant token at compile time.
const named = advance(inboxZero, growthPass)   // idea → named   (draws on 'growth')
const sited = advance(named, productPass)       // named → sited  (draws on 'product')
const sellable = advance(sited, moneyPass)      // sited → sellable ('money')
const running = advance(sellable, deliveryPass) // sellable → running ('delivery')

// The construct projects onto the canonical schema.org.ai/Startup noun for free.
running.startup // { $type: 'https://schema.org.ai/Startup', name: 'Inbox Zero', stage: 'scaling', ... }

In production the Passed tokens are minted by an @org.ai/authority gate; they cannot be constructed by hand, which is what makes each transition genuinely gated.

Surface

  • defineStartup(spec)AutonomousStartup<'idea'> — compose the five registers into a construct at the idea state.
  • advance(startup, authorityToken) → the construct at its next state — the authority-gated, type-safe lifecycle walk.
  • validateStartup(startup){ valid, issues } — readiness validation that returns typed issues and never throws.
  • toStartupNoun(startup)StartupType — the projection onto the canonical Startup data noun.
  • Lifecycle machine: LIFECYCLE_STATES, NEXT_STATE, TRANSITION_DOMAIN, legalNextStates, canTransition.
  • Types: StartupSpec, AutonomousStartup, StartupComposition, LifecycleState, NextOf, DomainOf, ValidationResult, ValidationIssue.

License

MIT